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;
75 int currentEventTypeIndex = 0;
76 int m_objectCounter = 0;
77 int m_currentObjectIndex = -1;
79 std::string m_eventTypeId;
80 std::string m_objectTypeId;
81 int m_currentObjectTypeIndex = 0;
82 int64_t m_lastVideoFrameTimestampUsec = 0;
85 const std::string kLineCrossingEventType =
"nx.stub.lineCrossing";
86 const std::string kObjectInTheAreaEventType =
"nx.stub.objectInTheArea";
87 const std::string kLoiteringEventType =
"nx.stub.loitering";
88 const std::string kIntrusionEventType =
"nx.stub.intrusion";
89 const std::string kGunshotEventType =
"nx.stub.gunshot";
90 const std::string kSuspiciousNoiseEventType =
"nx.stub.suspiciousNoise";
91 const std::string kSoundRelatedEventGroup =
"nx.stub.soundRelatedEvent";
92 const std::string kCarObjectType =
"nx.stub.car";
93 const std::string kHumanFaceObjectType =
"nx.stub.humanFace";
94 const std::string kTruckObjectType =
"nx.stub.truck";
95 const std::string kPedestrianObjectType =
"nx.stub.pedestrian";
96 const std::string kBicycleObjectType =
"nx.stub.bicycle";
virtual bool pushCompressedVideoFrame(const nx::sdk::analytics::ICompressedVideoPacket *videoFrame) override
Definition: device_agent.cpp:112
Definition: i_string_map.h:8
virtual bool pushUncompressedVideoFrame(const nx::sdk::analytics::IUncompressedVideoFrame *videoFrame) override
Definition: device_agent.cpp:126
Definition: i_compressed_video_packet.h:14
Definition: i_device_info.h:12
virtual std::string manifest() const override
Definition: device_agent.cpp:53
Definition: video_frame_processing_device_agent.h:34
Definition: i_uncompressed_video_frame.h:11
virtual void settingsReceived() override
Definition: device_agent.cpp:99
Definition: device_agent.h:20