6 #include <condition_variable> 8 #include <nx/sdk/analytics/common_video_frame_processing_device_agent.h> 13 namespace mediaserver_plugins {
29 virtual std::string
manifest()
const override;
39 virtual bool pullMetadataPackets(
40 std::vector<nx::sdk::analytics::MetadataPacket*>* metadataPackets)
override;
43 virtual Engine*
engine()
const override {
return engineCasted<Engine>(); }
48 int64_t usSinceEpoch()
const;
52 nx::sdk::Error startFetchingMetadata(
55 void stopFetchingMetadata();
57 void processPluginEvents();
60 std::unique_ptr<std::thread> m_pluginEventThread;
61 std::mutex m_pluginEventGenerationLoopMutex;
62 std::condition_variable m_pluginEventGenerationLoopCondition;
63 std::atomic<bool> m_terminated{
false};
65 std::unique_ptr<std::thread> m_eventThread;
66 std::condition_variable m_eventGenerationLoopCondition;
67 std::mutex m_eventGenerationLoopMutex;
68 std::atomic<bool> m_stopping{
false};
70 bool m_previewAttributesGenerated =
false;
71 int m_frameCounter = 0;
73 int m_objectCounter = 0;
74 int m_currentObjectIndex = -1;
76 std::string m_eventTypeId;
77 int64_t m_lastVideoFrameTimestampUsec = 0;
80 const std::string kLineCrossingEventType =
"nx.stub.lineCrossing";
81 const std::string kObjectInTheAreaEventType =
"nx.stub.objectInTheArea";
82 const std::string kCarObjectType =
"nx.stub.car";
83 const std::string kHumanFaceObjectType =
"nx.stub.humanFace";
Definition: device_agent.h:36
virtual Settings * pluginSideSettings() const =0
Definition: device_agent.cpp:242
Definition: compressed_video_packet.h:16
GUID of plugin interface.
Definition: plugin_api.h:21
Definition: common_video_frame_processing_device_agent.h:33
Definition: uncompressed_video_frame.h:17
virtual const IString * manifest(Error *error) const =0
virtual Engine * engine() const =0
virtual Error setNeededMetadataTypes(const IMetadataTypes *neededMetadataTypes)=0
Definition: device_agent.cpp:151
Definition: settings.h:15