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;
31 public: Ptr<IUncompressedVideoFrame> bestShotVideoFrame() const
32 {
33 return Ptr(getBestShotVideoFrame());
34 }
35
37 protected: virtual ITimestampedObjectMetadata* getBestShotObjectMetadata() const = 0;
44 public: Ptr<ITimestampedObjectMetadata> bestShotObjectMetadata() const
45 {
46 return Ptr(getBestShotObjectMetadata());
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 };
108 using IObjectTrackInfo2 = IObjectTrackInfo;
109
110 } // namespace nx::sdk::analytics
nx::sdk::analytics::IObjectTrackInfo0::track
Ptr< IList< ITimestampedObjectMetadata > > track() const
Definition: i_object_track_info.h:21
nx::sdk::analytics::IObjectTrackInfo::titleImageData
virtual const char * titleImageData() const =0
nx::sdk::analytics::IObjectTrackInfo1::bestShotImageDataSize
virtual int bestShotImageDataSize() const =0
nx::sdk::analytics::IObjectTrackInfo::titleText
virtual const char * titleText() const =0
nx::sdk::Interface
Definition: interface.h:48
nx::sdk::analytics::IObjectTrackInfo0::bestShotObjectMetadata
Ptr< ITimestampedObjectMetadata > bestShotObjectMetadata() const
Definition: i_object_track_info.h:44
nx::sdk::analytics::IObjectTrackInfo0::getTrack
virtual IList< ITimestampedObjectMetadata > * getTrack() const =0
nx::sdk::Ptr
Definition: ptr.h:18
nx::sdk::analytics::IObjectTrackInfo
Definition: i_object_track_info.h:77
nx::sdk::analytics::IObjectTrackInfo::titleImageDataFormat
virtual const char * titleImageDataFormat() const =0
nx::sdk::analytics
Definition: consuming_device_agent.cpp:25
nx::sdk::analytics::IObjectTrackInfo0::getBestShotVideoFrame
virtual IUncompressedVideoFrame * getBestShotVideoFrame() const =0
nx::sdk::analytics::IObjectTrackInfo1
Definition: i_object_track_info.h:50
nx::sdk::analytics::IObjectTrackInfo1::bestShotImageDataFormat
virtual const char * bestShotImageDataFormat() const =0
nx::sdk::analytics::IObjectTrackInfo::titleImageDataSize
virtual int titleImageDataSize() const =0
nx::sdk::analytics::IObjectTrackInfo1::bestShotImageData
virtual const char * bestShotImageData() const =0
nx::sdk::analytics::IObjectTrackInfo0::bestShotVideoFrame
Ptr< IUncompressedVideoFrame > bestShotVideoFrame() const
Definition: i_object_track_info.h:31
nx::sdk::analytics::IObjectTrackInfo0
Definition: i_object_track_info.h:13
nx::sdk::analytics::ITimestampedObjectMetadata
Definition: i_timestamped_object_metadata.h:9
nx::sdk::analytics::IUncompressedVideoFrame
Definition: i_uncompressed_video_frame.h:70
nx::sdk::IList
Definition: i_list.h:10
nx::sdk::IRefCountable::makeId
static const InterfaceId * makeId(const char(&charArray)[len])
Definition: i_ref_countable.h:77
nx::sdk::analytics::IObjectTrackInfo0::getBestShotObjectMetadata
virtual ITimestampedObjectMetadata * getBestShotObjectMetadata() const =0