7 #include <nx/sdk/analytics/helpers/consuming_device_agent.h> 8 #include <nx/sdk/analytics/i_object_metadata_packet.h> 9 #include <nx/sdk/analytics/i_object_track_best_shot_packet.h> 10 #include <nx/sdk/analytics/i_object_track_title_packet.h> 11 #include <nx/sdk/analytics/rect.h> 14 namespace vms_server_plugins {
17 namespace best_shots {
26 virtual std::string manifestString()
const override;
40 enum class BestShotGenerationPolicy
47 enum class TitleGenerationPolicy
54 struct BestShotGenerationContext
56 BestShotGenerationPolicy policy;
57 int frameNumberToGenerateBestShot = 0;
61 std::string imageDataFormat;
62 std::vector<char> imageData;
67 struct TitleGenerationConext
69 TitleGenerationPolicy policy;
70 int frameNumberToGenerateTitle = 0;
74 std::string imageDataFormat;
75 std::vector<char> imageData;
83 using BestShotList = std::vector<nx::sdk::Ptr<nx::sdk::analytics::IObjectTrackBestShotPacket>>;
84 BestShotList generateBestShots();
86 using TitleList = std::vector<nx::sdk::Ptr<nx::sdk::analytics::IObjectTrackTitlePacket>>;
87 TitleList generateTitles();
107 void maybeGenerateBestShotAndTitle();
108 void generateBestShotObject();
109 void generateTitleObject();
111 void configureBestShots(std::map<std::string, std::string>& settings);
112 void configureTitles(std::map<std::string, std::string>& settings);
114 static BestShotGenerationPolicy bestShotGenerationPolicyFromString(
const std::string& str);
115 static TitleGenerationPolicy titleGenerationPolicyFromString(
const std::string& str);
118 std::vector<TrackContext> m_bestShotTrackContexts;
119 BestShotGenerationContext m_bestShotGenerationContext;
120 std::map<nx::sdk::Uuid, int> m_bestShotGenerationCounterByTrackId;
122 std::vector<TrackContext> m_titleTrackContexts;
123 TitleGenerationConext m_titleGenerationContext;
124 std::map<nx::sdk::Uuid, int> m_titleGenerationCounterByTrackId;
126 int64_t m_lastFrameTimestampUs = 0;
127 bool m_generateBestShot =
true;
128 bool m_generateTitle =
true;
Definition: device_agent.h:19
Definition: consuming_device_agent.h:36
Definition: i_device_info.h:13
Definition: apple_utils.h:6
virtual bool pushCompressedVideoFrame(nx::sdk::Ptr< const nx::sdk::analytics::ICompressedVideoPacket > videoFrame) override
Definition: device_agent.cpp:167
virtual nx::sdk::Result< const nx::sdk::ISettingsResponse * > settingsReceived() override
Definition: device_agent.cpp:303