nx_server_plugin_sdk  1.0
Server Plugin 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 IObjectTrackInfo1: public Interface<IObjectTrackInfo1, 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 };
76 
77 class IObjectTrackInfo: public Interface<IObjectTrackInfo, IObjectTrackInfo1>
78 {
79 public:
80  static auto interfaceId() { return makeId("nx::sdk::analytics::IObjectTrackInfo2"); }
81 
85  virtual const char* titleText() const = 0;
86 
93  virtual const char* titleImageData() const = 0;
94 
99  virtual int titleImageDataSize() const = 0;
100 
106  virtual const char* titleImageDataFormat() const = 0;
107 };
109 
110 } // namespace nx::sdk::analytics
Ptr< IList< ITimestampedObjectMetadata > > track() const
Definition: i_object_track_info.h:21
virtual const char * titleImageData() const =0
virtual int bestShotImageDataSize() const =0
virtual const char * titleText() const =0
Definition: interface.h:48
Ptr< ITimestampedObjectMetadata > bestShotObjectMetadata() const
Definition: i_object_track_info.h:44
virtual IList< ITimestampedObjectMetadata > * getTrack() const =0
Definition: ptr.h:18
Definition: i_object_track_info.h:77
virtual const char * titleImageDataFormat() const =0
Definition: consuming_device_agent.cpp:25
virtual IUncompressedVideoFrame * getBestShotVideoFrame() const =0
Definition: i_object_track_info.h:50
virtual const char * bestShotImageDataFormat() const =0
virtual int titleImageDataSize() const =0
virtual const char * bestShotImageData() 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
Definition: i_uncompressed_video_frame.h:70
Definition: i_list.h:10
static const InterfaceId * makeId(const char(&charArray)[len])
Definition: i_ref_countable.h:77
virtual ITimestampedObjectMetadata * getBestShotObjectMetadata() const =0