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;
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 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 };
76 using IObjectTrackInfo1 = IObjectTrackInfo;
77
78 } // namespace nx::sdk::analytics
nx::sdk::analytics::IObjectTrackInfo0::track
Ptr< IList< ITimestampedObjectMetadata > > track() const
Definition: i_object_track_info.h:21
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::analytics::IObjectTrackInfo::bestShotImageData
virtual const char * bestShotImageData() const =0
nx::sdk::Ptr
Definition: ptr.h:18
nx::sdk::analytics::IObjectTrackInfo
Definition: i_object_track_info.h:50
nx::sdk::analytics
Definition: consuming_device_agent.cpp:24
nx::sdk::analytics::IObjectTrackInfo0::getBestShotVideoFrame
virtual IUncompressedVideoFrame * getBestShotVideoFrame() const =0
nx::sdk::analytics::IObjectTrackInfo::bestShotImageDataFormat
virtual const char * bestShotImageDataFormat() 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::analytics::IObjectTrackInfo::bestShotImageDataSize
virtual int bestShotImageDataSize() const =0
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