Skip to content

cvedia::rt::solution::SolutionManagerImpl

Inherits from SolutionManager, std::enable_shared_from_this< SolutionManager >

Inherited by DefaultSolutionManager

Public Functions

Name
SolutionManagerImpl()
virtual Uuid getInstanceUuid() const override
virtual std::string getInstanceName() const override
virtual std::string getVersion() const override
virtual int64_t getStartTime() const override
virtual int getTrackCount() const override
virtual int getRecentMaxTracks() const override
virtual int getInputQueueSize() const override
virtual int getDroppedFramesCount() const override
virtual std::string getInputResolution() const override
virtual std::string getInputFormat() const override
virtual float getInputFramerate() const override
virtual float getActualFramerate() const override
virtual float getAppSrcFramerate() const
expected< std::pair< int, int > > getAppSrcResolution() const
virtual uint64_t getFramesProcessed() const override
virtual float getLatency() const override
virtual float getCurrentFrameRate() const override
Returns the current frame rate of the solution based on the speed of frames being supplied, the frame rate limit and processing limitations.
virtual std::optional< cvedia::rt::Codec > getInputCodec() const override
virtual InstanceStatistics getInstanceStatistics() const override
Returns the current instance statistic state.
virtual void setFrameRateLimit(int frameRateLimit) override
virtual int getFrameRateLimit() const override
Returns the user specified frame rate processing limit.
virtual void setInputPixelLimit(int pixels) override
virtual int getInputPixelLimit() const override
virtual int getRecommendedFrameRate() const override
Returns the recommended frame rate as specified by the solution for best results.
virtual bool needData(std::chrono::milliseconds const currentFrameTime) override
Returns whether the solution is currently throttling the frame rate and data should be dropped.
virtual expected< void > pushRawFrame(const rt::cbuffer & image) override
virtual expected< void > pushRawFrame(void const * buffer, int width, int height, RawFrameType type, std::chrono::milliseconds timestamp) override
virtual expected< void > pushEncodedFrame(unsigned char const * data, size_t dataSize, EncodingType type, std::chrono::milliseconds timestamp) override
virtual std::unique_ptr< solution::Event > consumeEvents() override
virtual std::vector< std::unique_ptr< solution::Event > > consumeAllEvents() override
virtual std::set< std::string > getInternalSchemaEventTypes() const override
expected< void > submitSchemaEvents(std::vector< solution::SchemaEvent > events) override
virtual void setMetadataMode(bool enable) override
virtual void setStatisticsMode(bool enable) override
virtual void setDiagnosticsMode(bool enable) override
virtual void setDebugMode(bool enableDebug) override
virtual bool getMetadataMode() const override
virtual bool getStatisticsMode() const override
virtual bool getDiagnosticsMode() const override
virtual bool getDebugMode() const override
virtual void setTentativeTracks(bool enable) const override
virtual bool getTentativeTracks() const override
virtual bool isDebugMode() const override
virtual bool isMetadataEnabled() const override
virtual bool isStatisticsEnabled() const override
virtual bool isDiagnosticsEnabled() const override
virtual types::DetectorMode getDetectorMode() const override
Get the operating mode of the AI detector.
virtual void setDetectorMode(types::DetectorMode mode) const override
Change the operating mode of the AI detector.
virtual types::Modality getSensorModality() const override
virtual void setSensorModality(types::Modality const modality) const override
Change the modality of the AI detector.
virtual types::Sensitivity getDetectionSensitivity() const override
virtual void setDetectionSensitivity(types::Sensitivity mode) const override
virtual types::Sensitivity getMovementSensitivity() const override
virtual void setMovementSensitivity(types::Sensitivity mode) const override
virtual std::string getConfigurationFile() const override
virtual bool setInputToManual() override
virtual bool setInputToRtsp(std::string const & rtspUri) override
virtual int getInputOrientation() const override
virtual bool setInputOrientation(int orientation) override
virtual std::string enableHlsOutput() override
virtual bool disableHlsOutput() override
virtual bool enableRtspOutput(std::string const & uri) override
virtual bool disableRtspOutput(std::string const & uri) override
virtual bool setRenderPreset(std::string const & preset) override
virtual void setBlockingReadaheadQueue(bool enable) override
virtual NODISCARD expected< void > attachToInstanceController(iface::InstanceController *const instanceController) override
virtual pCValue getConfigValue(std::string const & path) const override
virtual bool setStateValue(std::string const & path, CValue value) const override
virtual expected< bool > setConfigValue(std::string const & path, CValue value) const override
virtual expected< bool > setConfigValues(std::vector< std::pair< std::string, CValue > > const & pathsToValues) const override
virtual bool deleteStateValue(std::string const & path) const override
virtual expected< bool > deleteConfigValue(std::string const & path) const override
virtual expected< bool > deleteConfigValues(std::vector< std::string > const & paths) const override
virtual nlohmann::json extractInfo() const override
virtual void pushStatisticsEvent() override
virtual bool isOverloaded() override
virtual uint64_t getEventsEmitted() const override
void releaseInputReferences()

Protected Functions

Name
bool loadFromController()
bool unloadFromController()
virtual bool load() override
virtual bool unload() override
virtual void setRecommendedFrameRate(int fps) const override
virtual void setupCallbacks() override
virtual void removeCallbacks() override
virtual iface::InstanceController * getInstanceController() const override
virtual iface::InstanceController * getInstanceController() override
virtual std::shared_ptr< iface::Instance > getInstance() const override
virtual std::shared_ptr< iface::Instance > getInstance() override
virtual std::shared_ptr< iface::Solution > getSolution() const override
virtual std::shared_ptr< iface::Solution > getSolution() override
virtual void setInstanceController(iface::InstanceController *const instanceController) override
expected< void > _authorizeInputPixelLimit(int pixels) const
virtual expected< void > _handleInput()

Protected Attributes

Name
std::unique_ptr< solution::AnalyticsManager > analytics_
std::deque< std::unique_ptr< Event > > eventsQueue_
std::mutex eventsQueueMutex_
std::atomic< uint64_t > eventsEmitted_
bool isStatisticsRunning_

Friends

Name
class ::cvedia::rt::InstanceControllerImpl

Additional inherited members

Public Types inherited from SolutionManager

Name
enum uint8_t RawFrameType
enum uint8_t EncodingType

Public Functions inherited from SolutionManager

Name
std::optional< Codec > encodingTypeToCodec(EncodingType encodingType)
virtual ~SolutionManager() =default

Protected Functions inherited from SolutionManager

Name
virtual bool _loadInstanceCallback() =0
virtual bool _unloadInstanceCallback() =0

Public Functions Documentation

function SolutionManagerImpl

SolutionManagerImpl()

function getInstanceUuid

virtual Uuid getInstanceUuid() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInstanceUuid

function getInstanceName

virtual std::string getInstanceName() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInstanceName

function getVersion

virtual std::string getVersion() const override

Reimplements: cvedia::rt::iface::SolutionManager::getVersion

function getStartTime

virtual int64_t getStartTime() const override

Reimplements: cvedia::rt::iface::SolutionManager::getStartTime

function getTrackCount

virtual int getTrackCount() const override

Reimplements: cvedia::rt::iface::SolutionManager::getTrackCount

function getRecentMaxTracks

virtual int getRecentMaxTracks() const override

Reimplements: cvedia::rt::iface::SolutionManager::getRecentMaxTracks

function getInputQueueSize

virtual int getInputQueueSize() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInputQueueSize

function getDroppedFramesCount

virtual int getDroppedFramesCount() const override

Reimplements: cvedia::rt::iface::SolutionManager::getDroppedFramesCount

function getInputResolution

virtual std::string getInputResolution() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInputResolution

function getInputFormat

virtual std::string getInputFormat() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInputFormat

function getInputFramerate

virtual float getInputFramerate() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInputFramerate

function getActualFramerate

virtual float getActualFramerate() const override

Reimplements: cvedia::rt::iface::SolutionManager::getActualFramerate

function getAppSrcFramerate

virtual float getAppSrcFramerate() const

Reimplements: cvedia::rt::iface::SolutionManager::getAppSrcFramerate

function getAppSrcResolution

expected< std::pair< int, int > > getAppSrcResolution() const

function getFramesProcessed

virtual uint64_t getFramesProcessed() const override

Reimplements: cvedia::rt::iface::SolutionManager::getFramesProcessed

function getLatency

virtual float getLatency() const override

Reimplements: cvedia::rt::iface::SolutionManager::getLatency

function getCurrentFrameRate

virtual float getCurrentFrameRate() const override

Returns the current frame rate of the solution based on the speed of frames being supplied, the frame rate limit and processing limitations.

Return: Achieved frame rate in frames per second

Reimplements: cvedia::rt::iface::SolutionManager::getCurrentFrameRate

function getInputCodec

virtual std::optional< cvedia::rt::Codec > getInputCodec() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInputCodec

function getInstanceStatistics

virtual InstanceStatistics getInstanceStatistics() const override

Returns the current instance statistic state.

Return: Instance statistics state

Reimplements: cvedia::rt::iface::SolutionManager::getInstanceStatistics

function setFrameRateLimit

virtual void setFrameRateLimit(
    int frameRateLimit
) override

Reimplements: cvedia::rt::iface::SolutionManager::setFrameRateLimit

function getFrameRateLimit

virtual int getFrameRateLimit() const override

Returns the user specified frame rate processing limit.

Return: Frame rate in frames per second

Reimplements: cvedia::rt::iface::SolutionManager::getFrameRateLimit

function setInputPixelLimit

virtual void setInputPixelLimit(
    int pixels
) override

Reimplements: cvedia::rt::iface::SolutionManager::setInputPixelLimit

function getInputPixelLimit

virtual int getInputPixelLimit() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInputPixelLimit

function getRecommendedFrameRate

virtual int getRecommendedFrameRate() const override

Returns the recommended frame rate as specified by the solution for best results.

Return: Frame rate in frames per second

Reimplements: cvedia::rt::iface::SolutionManager::getRecommendedFrameRate

function needData

virtual bool needData(
    std::chrono::milliseconds const currentFrameTime
) override

Returns whether the solution is currently throttling the frame rate and data should be dropped.

Return: Returns true if more data should be fed to the solution

Reimplements: cvedia::rt::iface::SolutionManager::needData

function pushRawFrame

virtual expected< void > pushRawFrame(
    const rt::cbuffer & image
) override

Reimplements: cvedia::rt::iface::SolutionManager::pushRawFrame

function pushRawFrame

virtual expected< void > pushRawFrame(
    void const * buffer,
    int width,
    int height,
    RawFrameType type,
    std::chrono::milliseconds timestamp
) override

Reimplements: cvedia::rt::iface::SolutionManager::pushRawFrame

function pushEncodedFrame

virtual expected< void > pushEncodedFrame(
    unsigned char const * data,
    size_t dataSize,
    EncodingType type,
    std::chrono::milliseconds timestamp
) override

Reimplements: cvedia::rt::iface::SolutionManager::pushEncodedFrame

function consumeEvents

virtual std::unique_ptr< solution::Event > consumeEvents() override

Reimplements: cvedia::rt::iface::SolutionManager::consumeEvents

function consumeAllEvents

virtual std::vector< std::unique_ptr< solution::Event > > consumeAllEvents() override

Reimplements: cvedia::rt::iface::SolutionManager::consumeAllEvents

function getInternalSchemaEventTypes

virtual std::set< std::string > getInternalSchemaEventTypes() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInternalSchemaEventTypes

function submitSchemaEvents

expected< void > submitSchemaEvents(
    std::vector< solution::SchemaEvent > events
) override

function setMetadataMode

virtual void setMetadataMode(
    bool enable
) override

Reimplements: cvedia::rt::iface::SolutionManager::setMetadataMode

function setStatisticsMode

virtual void setStatisticsMode(
    bool enable
) override

Reimplements: cvedia::rt::iface::SolutionManager::setStatisticsMode

function setDiagnosticsMode

virtual void setDiagnosticsMode(
    bool enable
) override

Reimplements: cvedia::rt::iface::SolutionManager::setDiagnosticsMode

function setDebugMode

virtual void setDebugMode(
    bool enableDebug
) override

Reimplements: cvedia::rt::iface::SolutionManager::setDebugMode

function getMetadataMode

virtual bool getMetadataMode() const override

Reimplements: cvedia::rt::iface::SolutionManager::getMetadataMode

function getStatisticsMode

virtual bool getStatisticsMode() const override

Reimplements: cvedia::rt::iface::SolutionManager::getStatisticsMode

function getDiagnosticsMode

virtual bool getDiagnosticsMode() const override

Reimplements: cvedia::rt::iface::SolutionManager::getDiagnosticsMode

function getDebugMode

virtual bool getDebugMode() const override

Reimplements: cvedia::rt::iface::SolutionManager::getDebugMode

function setTentativeTracks

virtual void setTentativeTracks(
    bool enable
) const override

Reimplements: cvedia::rt::iface::SolutionManager::setTentativeTracks

function getTentativeTracks

virtual bool getTentativeTracks() const override

Reimplements: cvedia::rt::iface::SolutionManager::getTentativeTracks

function isDebugMode

virtual bool isDebugMode() const override

Reimplements: cvedia::rt::iface::SolutionManager::isDebugMode

function isMetadataEnabled

virtual bool isMetadataEnabled() const override

Reimplements: cvedia::rt::iface::SolutionManager::isMetadataEnabled

function isStatisticsEnabled

virtual bool isStatisticsEnabled() const override

Reimplements: cvedia::rt::iface::SolutionManager::isStatisticsEnabled

function isDiagnosticsEnabled

virtual bool isDiagnosticsEnabled() const override

Reimplements: cvedia::rt::iface::SolutionManager::isDiagnosticsEnabled

function getDetectorMode

virtual types::DetectorMode getDetectorMode() const override

Get the operating mode of the AI detector.

Return: The operating mode of the detector, either SmartDetection or Detection.

Reimplements: cvedia::rt::iface::SolutionManager::getDetectorMode

function setDetectorMode

virtual void setDetectorMode(
    types::DetectorMode mode
) const override

Change the operating mode of the AI detector.

Parameters:

  • mode The operating mode to use, either SmartDetection or Detection.

Reimplements: cvedia::rt::iface::SolutionManager::setDetectorMode

Smart Detection is a mixture of motion detection and object detection. It provides better overall performance than just object detection, and should be used as the default for most use cases.

function getSensorModality

virtual types::Modality getSensorModality() const override

Reimplements: cvedia::rt::iface::SolutionManager::getSensorModality

function setSensorModality

virtual void setSensorModality(
    types::Modality const modality
) const override

Change the modality of the AI detector.

Parameters:

  • modality The modality to use, either RGB or Thermal.

Reimplements: cvedia::rt::iface::SolutionManager::setSensorModality

The modality of the detector can be either RGB or Thermal. This is used to determine which AI model to use for object detection.

function getDetectionSensitivity

virtual types::Sensitivity getDetectionSensitivity() const override

Reimplements: cvedia::rt::iface::SolutionManager::getDetectionSensitivity

function setDetectionSensitivity

virtual void setDetectionSensitivity(
    types::Sensitivity mode
) const override

Reimplements: cvedia::rt::iface::SolutionManager::setDetectionSensitivity

function getMovementSensitivity

virtual types::Sensitivity getMovementSensitivity() const override

Reimplements: cvedia::rt::iface::SolutionManager::getMovementSensitivity

function setMovementSensitivity

virtual void setMovementSensitivity(
    types::Sensitivity mode
) const override

Reimplements: cvedia::rt::iface::SolutionManager::setMovementSensitivity

function getConfigurationFile

virtual std::string getConfigurationFile() const override

Reimplements: cvedia::rt::iface::SolutionManager::getConfigurationFile

function setInputToManual

virtual bool setInputToManual() override

Reimplements: cvedia::rt::iface::SolutionManager::setInputToManual

function setInputToRtsp

virtual bool setInputToRtsp(
    std::string const & rtspUri
) override

Reimplements: cvedia::rt::iface::SolutionManager::setInputToRtsp

function getInputOrientation

virtual int getInputOrientation() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInputOrientation

function setInputOrientation

virtual bool setInputOrientation(
    int orientation
) override

Reimplements: cvedia::rt::iface::SolutionManager::setInputOrientation

function enableHlsOutput

virtual std::string enableHlsOutput() override

Reimplements: cvedia::rt::iface::SolutionManager::enableHlsOutput

function disableHlsOutput

virtual bool disableHlsOutput() override

Reimplements: cvedia::rt::iface::SolutionManager::disableHlsOutput

function enableRtspOutput

virtual bool enableRtspOutput(
    std::string const & uri
) override

Reimplements: cvedia::rt::iface::SolutionManager::enableRtspOutput

function disableRtspOutput

virtual bool disableRtspOutput(
    std::string const & uri
) override

Reimplements: cvedia::rt::iface::SolutionManager::disableRtspOutput

function setRenderPreset

virtual bool setRenderPreset(
    std::string const & preset
) override

Reimplements: cvedia::rt::iface::SolutionManager::setRenderPreset

function setBlockingReadaheadQueue

virtual void setBlockingReadaheadQueue(
    bool enable
) override

Reimplements: cvedia::rt::iface::SolutionManager::setBlockingReadaheadQueue

function attachToInstanceController

virtual NODISCARD expected< void > attachToInstanceController(
    iface::InstanceController *const instanceController
) override

Reimplements: cvedia::rt::iface::SolutionManager::attachToInstanceController

function getConfigValue

virtual pCValue getConfigValue(
    std::string const & path
) const override

Reimplements: cvedia::rt::iface::SolutionManager::getConfigValue

function setStateValue

virtual bool setStateValue(
    std::string const & path,
    CValue value
) const override

Reimplements: cvedia::rt::iface::SolutionManager::setStateValue

function setConfigValue

virtual expected< bool > setConfigValue(
    std::string const & path,
    CValue value
) const override

Reimplements: cvedia::rt::iface::SolutionManager::setConfigValue

function setConfigValues

virtual expected< bool > setConfigValues(
    std::vector< std::pair< std::string, CValue > > const & pathsToValues
) const override

Reimplements: cvedia::rt::iface::SolutionManager::setConfigValues

function deleteStateValue

virtual bool deleteStateValue(
    std::string const & path
) const override

Reimplements: cvedia::rt::iface::SolutionManager::deleteStateValue

function deleteConfigValue

virtual expected< bool > deleteConfigValue(
    std::string const & path
) const override

Reimplements: cvedia::rt::iface::SolutionManager::deleteConfigValue

function deleteConfigValues

virtual expected< bool > deleteConfigValues(
    std::vector< std::string > const & paths
) const override

Reimplements: cvedia::rt::iface::SolutionManager::deleteConfigValues

function extractInfo

virtual nlohmann::json extractInfo() const override

Reimplements: cvedia::rt::iface::SolutionManager::extractInfo

function pushStatisticsEvent

virtual void pushStatisticsEvent() override

Reimplements: cvedia::rt::iface::SolutionManager::pushStatisticsEvent

function isOverloaded

virtual bool isOverloaded() override

Reimplements: cvedia::rt::iface::SolutionManager::isOverloaded

function getEventsEmitted

virtual uint64_t getEventsEmitted() const override

Reimplements: cvedia::rt::iface::SolutionManager::getEventsEmitted

function releaseInputReferences

void releaseInputReferences()

Protected Functions Documentation

function loadFromController

bool loadFromController()

function unloadFromController

bool unloadFromController()

function load

virtual bool load() override

Reimplements: cvedia::rt::iface::SolutionManager::load

function unload

virtual bool unload() override

Reimplements: cvedia::rt::iface::SolutionManager::unload

function setRecommendedFrameRate

virtual void setRecommendedFrameRate(
    int fps
) const override

Reimplements: cvedia::rt::iface::SolutionManager::setRecommendedFrameRate

function setupCallbacks

virtual void setupCallbacks() override

Reimplements: cvedia::rt::iface::SolutionManager::setupCallbacks

function removeCallbacks

virtual void removeCallbacks() override

Reimplements: cvedia::rt::iface::SolutionManager::removeCallbacks

function getInstanceController

virtual iface::InstanceController * getInstanceController() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInstanceController

function getInstanceController

virtual iface::InstanceController * getInstanceController() override

Reimplements: cvedia::rt::iface::SolutionManager::getInstanceController

function getInstance

virtual std::shared_ptr< iface::Instance > getInstance() const override

Reimplements: cvedia::rt::iface::SolutionManager::getInstance

function getInstance

virtual std::shared_ptr< iface::Instance > getInstance() override

Reimplements: cvedia::rt::iface::SolutionManager::getInstance

function getSolution

virtual std::shared_ptr< iface::Solution > getSolution() const override

Reimplements: cvedia::rt::iface::SolutionManager::getSolution

function getSolution

virtual std::shared_ptr< iface::Solution > getSolution() override

Reimplements: cvedia::rt::iface::SolutionManager::getSolution

function setInstanceController

virtual void setInstanceController(
    iface::InstanceController *const instanceController
) override

Reimplements: cvedia::rt::iface::SolutionManager::setInstanceController

function _authorizeInputPixelLimit

expected< void > _authorizeInputPixelLimit(
    int pixels
) const

function _handleInput

virtual expected< void > _handleInput()

Reimplements: cvedia::rt::iface::SolutionManager::_handleInput

Protected Attributes Documentation

variable analytics_

std::unique_ptr< solution::AnalyticsManager > analytics_;

variable eventsQueue_

std::deque< std::unique_ptr< Event > > eventsQueue_;

variable eventsQueueMutex_

std::mutex eventsQueueMutex_;

variable eventsEmitted_

std::atomic< uint64_t > eventsEmitted_ {0};

variable isStatisticsRunning_

bool isStatisticsRunning_ = false;

Friends

friend ::cvedia::rt::InstanceControllerImpl

friend class ::cvedia::rt::InstanceControllerImpl(
    ::cvedia::rt::InstanceControllerImpl 
);