9 #include <condition_variable> 11 #include <nx/sdk/uuid.h> 12 #include <nx/sdk/analytics/helpers/plugin.h> 13 #include <nx/sdk/analytics/helpers/engine.h> 14 #include <nx/sdk/analytics/i_uncompressed_video_frame.h> 17 namespace vms_server_plugins {
24 using PixelFormat = nx::sdk::analytics::IUncompressedVideoFrame::PixelFormat;
28 virtual ~
Engine()
override;
31 bool needUncompressedVideoFrames()
const {
return m_needUncompressedVideoFrames; }
32 PixelFormat pixelFormat()
const {
return m_pixelFormat; }
35 virtual std::string manifestString()
const override;
40 virtual void doObtainDeviceAgent(
45 const std::string& actionId,
50 const std::map<std::string, std::string>& params)
override;
53 void obtainPluginHomeDir();
54 void initCapabilities();
55 void generatePluginDiagnosticEvents();
60 mutable std::mutex m_pluginDiagnosticEventGenerationLoopMutex;
61 mutable std::condition_variable m_pluginDiagnosticEventGenerationLoopCondition;
62 std::unique_ptr<std::thread> m_pluginDiagnosticEventThread;
63 std::atomic<bool> m_terminated{
false};
64 std::atomic<bool> m_needToThrowPluginDiagnosticEvents{
false};
66 std::string m_pluginHomeDir;
67 std::string m_capabilities;
68 bool m_needUncompressedVideoFrames =
false;
69 PixelFormat m_pixelFormat = PixelFormat::yuv420;
72 const std::string kGenerateEventsSetting{
"generateEvents"};
73 const std::string kGenerateCarsSetting{
"generateCars"};
74 const std::string kGenerateTrucksSetting{
"generateTrucks"};
75 const std::string kGeneratePedestriansSetting{
"generatePedestrians"};
76 const std::string kGenerateHumanFacesSetting{
"generateHumanFaces"};
77 const std::string kGenerateBicyclesSetting{
"generateBicycles"};
79 const std::string kGenerateObjectsEveryNFramesSetting{
"generateObjectsEveryNFrames"};
80 const std::string kNumberOfObjectsToGenerateSetting{
"numberOfObjectsToGenerate"};
81 const std::string kGeneratePreviewPacketSetting{
"generatePreviewPacket"};
82 const std::string kGeneratePreviewAfterNFramesSetting(
"generatePreviewAfterNFrames");
83 const std::string kThrowPluginDiagnosticEventsFromDeviceAgentSetting{
84 "throwPluginDiagnosticEventsFromDeviceAgent"};
86 const std::string kThrowPluginDiagnosticEventsFromEngineSetting{
87 "throwPluginDiagnosticEventsFromDeviceAgent"};
88 const std::string kLeakFrames{
"leakFrames"};
89 const std::string kAdditionalFrameProcessingDelayMs{
"additionalFrameProcessingDelayMs"};
Definition: i_device_info.h:14
Definition: apple_utils.h:6
virtual nx::sdk::Result< const nx::sdk::IStringMap * > settingsReceived() override
Definition: engine.cpp:394
virtual nx::sdk::Result< sdk::analytics::IAction::Result > executeAction(const std::string &actionId, nx::sdk::Uuid trackId, nx::sdk::Uuid deviceId, int64_t timestampUs, nx::sdk::Ptr< nx::sdk::analytics::IObjectTrackInfo > objectTrackInfo, const std::map< std::string, std::string > ¶ms) override
Definition: engine.cpp:483