nx_metadata_sdk  1.0
Metadata SDK
i_uncompressed_video_frame.h
1 // Copyright 2018-present Network Optix, Inc. Licensed under MPL 2.0: www.mozilla.org/MPL/2.0/
2 
3 #pragma once
4 
5 #include <nx/sdk/interface.h>
6 
7 #include <nx/sdk/i_list.h>
8 #include <nx/sdk/analytics/i_metadata_packet.h>
9 #include <nx/sdk/analytics/i_uncompressed_media_frame.h>
10 
11 namespace nx {
12 namespace sdk {
13 namespace analytics {
14 
15 class IUncompressedVideoFrame0: public Interface<IUncompressedVideoFrame0, IUncompressedMediaFrame>
16 {
17 public:
18  static auto interfaceId() { return makeId("nx::sdk::analytics::IUncompressedVideoFrame"); }
19 
20  enum class PixelFormat: int
21  {
22  yuv420,
23  argb,
24  abgr,
25  rgba,
26  bgra,
27  rgb,
28  bgr,
29  count
30  };
31 
33  {
34  int numerator;
35  int denominator;
36  };
37 
41  virtual int width() const = 0;
42 
46  virtual int height() const = 0;
47 
51  protected: virtual void getPixelAspectRatio(PixelAspectRatio* outValue) const = 0;
52  public: PixelAspectRatio pixelAspectRatio() const
53  {
54  PixelAspectRatio value;
55  getPixelAspectRatio(&value);
56  return value;
57  }
58 
59  virtual PixelFormat pixelFormat() const = 0;
60 
65  virtual int lineSize(int plane) const = 0;
66 };
67 
71 class IUncompressedVideoFrame: public Interface<IUncompressedVideoFrame, IUncompressedVideoFrame0>
72 {
73 public:
74  static auto interfaceId() { return makeId("nx::sdk::analytics::IUncompressedVideoFrame0"); }
75 
76  protected: virtual IList<IMetadataPacket>* getMetadataList() const = 0;
77  public: Ptr<IList<IMetadataPacket>> metadataList() const
78  {
79  return toPtr(getMetadataList());
80  }
81 };
82 
83 } // namespace analytics
84 } // namespace sdk
85 } // namespace nx
virtual void getPixelAspectRatio(PixelAspectRatio *outValue) const =0
virtual int lineSize(int plane) const =0
Definition: interface.h:28
Definition: ptr.h:18
Definition: apple_utils.h:6
Definition: i_uncompressed_video_frame.h:15
Definition: i_uncompressed_video_frame.h:71
Definition: i_list.h:9
Definition: i_uncompressed_video_frame.h:32