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; }
33 PixelFormat pixelFormat()
const {
return m_pixelFormat; }
35 std::string capabilities()
const;
38 virtual std::string manifestString()
const override;
43 virtual void doObtainDeviceAgent(
48 const std::string& actionId,
53 const std::map<std::string, std::string>& params)
override;
55 virtual void getPluginSideSettings(
59 void obtainServerSdkVersion();
60 void obtainPluginHomeDir();
61 void initCapabilities();
62 void generatePluginDiagnosticEvents();
67 mutable std::mutex m_pluginDiagnosticEventGenerationLoopMutex;
68 mutable std::condition_variable m_pluginDiagnosticEventGenerationLoopCondition;
69 std::unique_ptr<std::thread> m_pluginDiagnosticEventThread;
70 std::atomic<bool> m_terminated{
false};
71 std::atomic<bool> m_needToThrowPluginDiagnosticEvents{
false};
72 std::atomic<bool> m_disableStreamSelection{
false};
74 std::string m_pluginHomeDir;
75 std::string m_capabilities;
76 std::string m_streamTypeFilter;
77 bool m_needUncompressedVideoFrames =
false;
78 PixelFormat m_pixelFormat = PixelFormat::yuv420;
virtual nx::sdk::Result< const nx::sdk::ISettingsResponse * > settingsReceived() override
Definition: engine.cpp:400
Definition: i_device_info.h:14
Definition: apple_utils.h:6
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:469