6 #include <condition_variable> 10 #include <nx/sdk/uuid.h> 11 #include <nx/sdk/analytics/helpers/video_frame_processing_device_agent.h> 16 namespace vms_server_plugins {
26 virtual nx::sdk::Error setNeededMetadataTypes(
32 virtual std::string
manifest()
const override;
42 virtual bool pullMetadataPackets(
43 std::vector<nx::sdk::analytics::IMetadataPacket*>* metadataPackets)
override;
46 virtual Engine* engine()
const override {
return engineCasted<Engine>(); }
51 int64_t usSinceEpoch()
const;
55 nx::sdk::Error startFetchingMetadata(
58 void stopFetchingMetadata();
60 void processPluginEvents();
63 std::unique_ptr<std::thread> m_pluginEventThread;
64 std::mutex m_pluginEventGenerationLoopMutex;
65 std::condition_variable m_pluginEventGenerationLoopCondition;
66 bool m_terminated =
false;
68 std::unique_ptr<std::thread> m_eventThread;
69 std::condition_variable m_eventGenerationLoopCondition;
70 std::mutex m_eventGenerationLoopMutex;
71 std::atomic<bool> m_stopping{
false};
73 bool m_previewAttributesGenerated =
false;
74 int m_frameCounter = 0;
76 int m_objectCounter = 0;
77 int m_currentObjectIndex = -1;
79 std::string m_eventTypeId;
80 int64_t m_lastVideoFrameTimestampUsec = 0;
83 const std::string kLineCrossingEventType =
"nx.stub.lineCrossing";
84 const std::string kObjectInTheAreaEventType =
"nx.stub.objectInTheArea";
85 const std::string kLoiteringEventType =
"nx.stub.loitering";
86 const std::string kIntrusionEventType =
"nx.stub.intrusion";
87 const std::string kGunshotEventType =
"nx.stub.gunshot";
88 const std::string kSuspiciousNoiseEventType =
"nx.stub.suspiciousNoise";
89 const std::string kSoundRelatedEventGroup =
"nx.stub.soundRelatedEvent";
90 const std::string kCarObjectType =
"nx.stub.car";
91 const std::string kHumanFaceObjectType =
"nx.stub.humanFace";
virtual bool pushCompressedVideoFrame(const nx::sdk::analytics::ICompressedVideoPacket *videoFrame) override
Definition: device_agent.cpp:96
Definition: i_string_map.h:8
virtual bool pushUncompressedVideoFrame(const nx::sdk::analytics::IUncompressedVideoFrame *videoFrame) override
Definition: device_agent.cpp:110
Definition: i_compressed_video_packet.h:14
virtual std::string manifest() const override
Definition: device_agent.cpp:52
Definition: video_frame_processing_device_agent.h:34
Definition: i_uncompressed_video_frame.h:11
virtual void settingsReceived() override
Definition: device_agent.cpp:83
Definition: device_agent.h:20