Registering a User Defined Auto Control Plugin
The application is responsible for allocating and deallocating the plugin object. To avoid resource allocation during safety critical operation, the plugin should only allocate required resources during initialization and deallocate during deinitialization.
To register a user-defined (custom) auto control plugin, the user must derive from the ISiplControlAuto
interface class and implement its functions.
class ISiplControlAuto {
public:
virtual SIPLStatus Process(const SiplControlAutoInputParam& inParams,
SiplControlAutoOutputParam& outParams) = 0;
virtual SIPLStatus GetNoiseProfile(
const SiplControlEmbedInfo& currFrameEmbedInfo,
const uint32_t maxSupportedNoiseProfiles,
uint32_t& noiseProfile) {
noiseProfile = 0;
return NVSIPL_STATUS_OK;
}
virtual ~ISiplControlAuto() = default;
protected:
ISiplControlAuto() = default;
private:
ISiplControlAuto(const ISiplControlAuto&) = delete;
ISiplControlAuto& operator= (const ISiplControlAuto&) = delete;
};