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/interface.h>
6 #include <nx/sdk/i_list.h>
7 
8 #include <nx/sdk/analytics/i_timestamped_object_metadata.h>
9 #include <nx/sdk/analytics/i_uncompressed_video_frame.h>
10 #include <nx/sdk/analytics/i_compressed_video_packet.h>
11 
12 namespace nx::sdk::analytics {
13 
14 class IObjectTrackInfo0: public Interface<IObjectTrackInfo0>
15 {
16 public:
17  static auto interfaceId() { return makeId("nx::sdk::analytics::IObjectTrackInfo"); }
18 
20  protected: virtual IList<ITimestampedObjectMetadata>* getTrack() const = 0;
22  public: Ptr<IList<ITimestampedObjectMetadata>> track() const { return Ptr(getTrack()); }
23 
25  protected: virtual IUncompressedVideoFrame* getBestShotVideoFrame() const = 0;
33  {
34  return Ptr(getBestShotVideoFrame());
35  }
36 
38  protected: virtual ITimestampedObjectMetadata* getBestShotObjectMetadata() const = 0;
46  {
48  }
49 };
50 
51 class IObjectTrackInfo: public Interface<IObjectTrackInfo, IObjectTrackInfo0>
52 {
53 public:
54  static auto interfaceId() { return makeId("nx::sdk::analytics::IObjectTrackInfo1"); }
55 
62  virtual const char* bestShotImageData() const = 0;
63 
68  virtual int bestShotImageDataSize() const = 0;
69 
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:22
Definition: interface.h:48
Ptr< ITimestampedObjectMetadata > bestShotObjectMetadata() const
Definition: i_object_track_info.h:45
virtual IList< ITimestampedObjectMetadata > * getTrack() const =0
virtual const char * bestShotImageData() const =0
Definition: ptr.h:18
Definition: i_object_track_info.h:51
Definition: consuming_device_agent.cpp:21
virtual IUncompressedVideoFrame * getBestShotVideoFrame() const =0
virtual const char * bestShotImageDataFormat() const =0
Ptr< IUncompressedVideoFrame > bestShotVideoFrame() const
Definition: i_object_track_info.h:32
Definition: i_object_track_info.h:14
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:71
virtual int bestShotImageDataSize() const =0
Definition: i_list.h:8
virtual ITimestampedObjectMetadata * getBestShotObjectMetadata() const =0