7 #include <condition_variable> 9 #include <nx/sdk/analytics/common_engine.h> 10 #include <nx/sdk/analytics/uncompressed_video_frame.h> 13 namespace mediaserver_plugins {
17 using PixelFormat = nx::sdk::analytics::UncompressedVideoFrame::PixelFormat;
23 virtual ~
Engine()
override;
29 bool needUncompressedVideoFrames()
const {
return m_needUncompressedVideoFrames; }
30 PixelFormat pixelFormat()
const {
return m_pixelFormat; }
33 virtual std::string
manifest()
const override;
38 const std::string& actionId,
42 const std::map<std::string, std::string>& params,
43 std::string* outActionUrl,
44 std::string* outMessageToUser,
45 nx::sdk::Error* error)
override;
48 void initCapabilities();
49 void processPluginEvents();
52 mutable std::mutex m_pluginEventGenerationLoopMutex;
53 mutable std::condition_variable m_pluginEventGenerationLoopCondition;
55 std::unique_ptr<std::thread> m_thread;
56 std::atomic<bool> m_terminated{
false};
58 std::string m_capabilities;
59 bool m_needUncompressedVideoFrames =
false;
60 PixelFormat m_pixelFormat = PixelFormat::yuv420;
virtual const IString * manifest(Error *outError) const =0
Definition: device_agent.h:36
virtual DeviceAgent * obtainDeviceAgent(const DeviceInfo *deviceInfo, Error *outError)=0
Definition: engine.cpp:32
Definition: common_engine.h:28
virtual void executeAction(Action *action, Error *outError)=0
GUID of plugin interface.
Definition: plugin_api.h:21
virtual Plugin * plugin() const =0