nx_metadata_sdk  1.0
Metadata SDK
i_object_track_info.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/analytics/i_compressed_video_packet.h>
6 #include <nx/sdk/analytics/i_timestamped_object_metadata.h>
7 #include <nx/sdk/analytics/i_uncompressed_video_frame.h>
8 #include <nx/sdk/i_list.h>
9 #include <nx/sdk/interface.h>
10 
11 namespace nx::sdk::analytics {
12 
13 class IObjectTrackInfo0: public Interface<IObjectTrackInfo0>
14 {
15 public:
16  static auto interfaceId() { return makeId("nx::sdk::analytics::IObjectTrackInfo"); }
17 
19  protected: virtual IList<ITimestampedObjectMetadata>* getTrack() const = 0;
21  public: Ptr<IList<ITimestampedObjectMetadata>> track() const { return Ptr(getTrack()); }
22 
24  protected: virtual IUncompressedVideoFrame* getBestShotVideoFrame() const = 0;
32  {
33  return Ptr(getBestShotVideoFrame());
34  }
35 
37  protected: virtual ITimestampedObjectMetadata* getBestShotObjectMetadata() const = 0;
45  {
47  }
48 };
49 
50 class IObjectTrackInfo: public Interface<IObjectTrackInfo, IObjectTrackInfo0>
51 {
52 public:
53  static auto interfaceId() { return makeId("nx::sdk::analytics::IObjectTrackInfo1"); }
54 
61  virtual const char* bestShotImageData() const = 0;
62 
67  virtual int bestShotImageDataSize() const = 0;
68 
74  virtual const char* bestShotImageDataFormat() const = 0;
75 };
77 
78 } // namespace nx::sdk::analytics
Ptr< IList< ITimestampedObjectMetadata > > track() const
Definition: i_object_track_info.h:21
Definition: interface.h:48
Ptr< ITimestampedObjectMetadata > bestShotObjectMetadata() const
Definition: i_object_track_info.h:44
virtual IList< ITimestampedObjectMetadata > * getTrack() const =0
virtual const char * bestShotImageData() const =0
Definition: ptr.h:18
Definition: i_object_track_info.h:50
Definition: consuming_device_agent.cpp:22
virtual IUncompressedVideoFrame * getBestShotVideoFrame() const =0
virtual const char * bestShotImageDataFormat() const =0
Ptr< IUncompressedVideoFrame > bestShotVideoFrame() const
Definition: i_object_track_info.h:31
Definition: i_object_track_info.h:13
Definition: i_timestamped_object_metadata.h:9
static constexpr const InterfaceId * makeId(const char(&charArray)[len])
Definition: i_ref_countable.h:76
Definition: i_uncompressed_video_frame.h:70
virtual int bestShotImageDataSize() const =0
Definition: i_list.h:10
virtual ITimestampedObjectMetadata * getBestShotObjectMetadata() const =0