Defines public data structures and describes the interfaces for NvSIPLCamera.
Definition at line 57 of file NvSIPLCamera.hpp.
Public Member Functions | |
virtual SIPLStatus | SetPlatformCfg (const PlatformCfg *platformCfg)=0 |
Sets a platform configuration. More... | |
virtual SIPLStatus | SetPipelineCfg (std::uint32_t index, const NvSIPLPipelineCfg &pipelineCfg)=0 |
Sets a pipeline configuration. More... | |
virtual SIPLStatus | SetPipelineCfg (std::uint32_t index, const NvSIPLPipelineConfiguration &pipelineCfg, NvSIPLPipelineQueues &queues)=0 |
Sets a pipeline configuration. More... | |
virtual SIPLStatus | RegisterAutoControlPlugin (std::uint32_t index, PluginType type, ISiplControlAuto *autoControl, const std::vector< std::uint8_t > &blob)=0 |
Register Auto Control plugin to be used for specific pipeline. More... | |
virtual SIPLStatus | Init (void)=0 |
Initializes NvSIPL Camera for the selected platform configuration. More... | |
virtual SIPLStatus | GetImageAttributes (std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType, NvSIPLImageAttr &imageAttr)=0 |
Gets image attributes. More... | |
virtual SIPLStatus | ReadEEPROMData (const std::uint32_t index, const std::uint16_t address, const std::uint32_t length, std::uint8_t *const buffer)=0 |
Read from an EEPROM in a camera module. More... | |
virtual DevBlkCDIDevice * | GetE2PHandle (std::uint32_t index)=0 |
Get EEPROM CDI handle. More... | |
virtual SIPLStatus | RegisterImageGroups (std::uint32_t index, const std::vector< NvMediaImageGroup * > &imageGroups)=0 |
Registers image groups. More... | |
virtual SIPLStatus | RegisterImages (std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType, const std::vector< NvMediaImage * > &images)=0 |
Registers images. More... | |
virtual SIPLStatus | Start (void)=0 |
Starts NvSIPL Camera for the selected platform configuration. More... | |
virtual SIPLStatus | Stop (void)=0 |
Stops NvSIPL Camera for the selected platform configuration. More... | |
virtual SIPLStatus | Deinit (void)=0 |
Deinitializes NvSIPL Camera for the selected platform configuration. More... | |
virtual SIPLStatus | RecoverLink (std::uint32_t index)=0 |
Attempts to recover a given link. More... | |
virtual SIPLStatus | ToggleLED (std::uint32_t index, bool enable)=0 |
Control the LED on the associated camera module. More... | |
virtual | ~INvSIPLCamera (void)=default |
Default destructor. More... | |
virtual SIPLStatus | FillNvSciSyncAttrList (std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType, NvSciSyncAttrList attrList, NvMediaNvSciSyncClientType clientType)=0 |
Fills an NvSciSyncAttrList. More... | |
virtual SIPLStatus | RegisterNvSciSyncObj (std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType, NvMediaNvSciSyncObjType syncobjtype, NvSciSyncObj syncobj)=0 |
Register an NvSciSyncObj. More... | |
virtual SIPLStatus | SetNvSciSyncObjForEOF (std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType, NvSciSyncObj syncobj)=0 |
Set the EOF NvSciSyncObj. More... | |
Static Public Member Functions | |
static std::unique_ptr< INvSIPLCamera > | GetInstance (void) |
Gets a handle to an INvSIPLCamera instance. More... | |
|
virtualdefault |
Default destructor.
|
pure virtual |
Deinitializes NvSIPL Camera for the selected platform configuration.
The method internally deinitializes the camera module(s) and deserializer for each device block in the selected platform configuration and deinitializes and destroys the image processing pipelines.
Any registered images are automatically deregistered and can be safely destroyed.
This method must be called after Stop().
|
pure virtual |
Fills an NvSciSyncAttrList.
The method can be used to fetch the NvSciSync attributes required for compatiblility with the underlying image processing pipelines.
If using NvSci, this method must be called after Init() and before RegisterNvSciSyncObj().
[in] | index | The ID of the sensor. |
[in] | outType | nvsipl::INvSIPLClient::ConsumerDesc::OutputType. |
[out] | attrList | NvSciSyncAttrList to be filled. |
[in] | clientType | Waiter, signaler, or both. |
|
pure virtual |
Get EEPROM CDI handle.
This method can be used to get the EEPROM CDI handle. This method can only be called after Init() but before Start().
WARNING: This API will be deprecated in an imminent future release in favour of ReadEEPROMData().
[in] | index | The ID of the sensor. |
|
pure virtual |
Gets image attributes.
The method can be used to get the attributes of the images to be used with the image processing pipeline. The user must reconcile the attributes returned by this function with the attributes required by the downstream consumers of the output of the pipeline and allocate the images.
This method must be called after Init() but before Start().
[in] | index | The ID of the sensor. |
[in] | outType | nvsipl::INvSIPLClient::ConsumerDesc::OutputType. |
[out] | imageAttr | Reference to the image attributes structure. |
|
static |
Gets a handle to an INvSIPLCamera instance.
Static function to create an instance of the implementation class and return the handle. The object is automatically destroyed when the variable holding the return value goes out of scope.
|
pure virtual |
Initializes NvSIPL Camera for the selected platform configuration.
The method internally initializes the camera module(s) and deserializer for each device block in the selected platform configuration and creates and initializes the image processing pipelines based on the number and type of the consumers set via SetPipelineCfg.
This method must be called after SetPipelineCfg() but before RegisterImageGroups().
|
pure virtual |
Read from an EEPROM in a camera module.
This method can be used to perform data reads from an EEPROM in a camera module. This method can only be called after Init() but before Start().
[in] | index | The ID of the sensor to which the EEPROM is associated. |
[in] | address | The start address to read from in the EEPROM. |
[in] | length | Contiguous size of data to be read. [byte] |
[out] | buffer | Buffer that EEPROM data is to be written into, must be at least size length. |
|
pure virtual |
Attempts to recover a given link.
The method tries to recover a link that has failed.
If this method is called on a link that has not failed, nothing will happen.
This method should only be called after Start() and before Stop().
[in] | index | The ID of the sensor. |
|
pure virtual |
Register Auto Control plugin to be used for specific pipeline.
This method must be called for every pipeline with ISP output enabled. This function must be called after RegisterImages() but before Start().
[in] | index | The ID of the sensor. |
[in] | type | Plugin type. |
[in] | autoControl | ISiplControlAuto Handle to plugin implementation. |
[in] | blob | Reference to binary blob containing the ISP configuration. |
|
pure virtual |
Registers image groups.
The method can be used to register the NvMedia image groups to be used within the image processing pipelines. NvMediaImageGroup serve as the output of ICP and input to ISP.
This method must be called after Init() but before Start() and if ISP output is enabled also before RegisterImages().
[in] | index | The ID of the sensor. |
[in] | imageGroups | Vector of NvMediaImageGroup pointers to be registered. |
|
pure virtual |
Registers images.
The method can be used to register the images to be used within the image processing pipelines. NvMediaImage serve as the output of ISP.
If ISP output is enabled, this method must be called after RegisterImageGroups() but before RegisterAutoControlPlugin().
[in] | index | The ID of the sensor. |
[in] | outType | nvsipl::INvSIPLClient::ConsumerDesc::OutputType, can be ISP0 or ISP1. |
[in] | images | Vector of NvMediaImage pointers to be registered. |
|
pure virtual |
Register an NvSciSyncObj.
If using NvSci, this method must be called after FillNvSciSyncAttrList() and before SetNvSciSyncObjForEOF().
[in] | index | The ID of the sensor. |
[in] | outType | nvsipl::INvSIPLClient::ConsumerDesc::OutputType. |
[in] | syncobjtype | Presync, EOF sync, or presync and EOF. |
[in] | syncobj | NvSciSyncObj to be registered. |
|
pure virtual |
Set the EOF NvSciSyncObj.
Set the engine's current EOF NvSciSync object.
If using NvSci, this method must be called after RegisterNvSciSyncObj() and before Start().
[in] | index | The ID of the sensor. |
[in] | outType | nvsipl::INvSIPLClient::ConsumerDesc::OutputType. |
[in] | syncobj | NvSciSyncObj to be registered. |
|
pure virtual |
Sets a pipeline configuration.
The method sets a camera pipeline configuration. NvSIPLCamera uses the information in the pipeline configuration to initialize the Pipeline Manager. This function must be called after SetPlatformCfg() but before Init().
[in] | index | The ID of the sensor. |
[in] | pipelineCfg | An NvSIPLPipelineCfg to set. |
|
pure virtual |
Sets a pipeline configuration.
The method sets a camera pipeline configuration. NvSIPLCamera uses the information in the pipeline configuration to initialize the Pipeline Manager. This function must be called after SetPlatformCfg() but before Init().
[in] | index | The ID of the sensor. |
[in] | pipelineCfg | An NvSIPLPipelineConfiguration to set. |
[out] | queues | The queues that will deliver completed frames and events to the client. |
|
pure virtual |
Sets a platform configuration.
The method sets a PlatformCfg camera platform configuration. NvSIPLCamera uses the information in the platform configuration to create the necessary DeviceBlock(s) and Pipeline Manager(s). This function must be called before SetPipelineCfg().
[in] | platformCfg | PlatformCfg The external devices referenced in the platform configuration must be supported by the SIPL Device Block drivers. |
|
pure virtual |
Starts NvSIPL Camera for the selected platform configuration.
The method internally starts the streaming from sensors belonging to each device block in the selected platform configuration and starts the associated image processing pipelines.
This method must be called after RegisterImageGroups(), (if ISP output is enabled) RegisterImages(), and (if using NvSci) SetNvSciSyncObjForEOF().
|
pure virtual |
Stops NvSIPL Camera for the selected platform configuration.
The method internally stops the streaming from sensors belonging to each device block in the selected platform configuration and stops the associated image processing pipelines.
This method must be called after Start().
|
pure virtual |
Control the LED on the associated camera module.
The method tries to enable or disable the LED on the specific module.
This method is valid only if there is an LED on the camera module and it is controlled by the sensor.
This method should only be called after Start() and before Stop().
[in] | index | The ID of the sensor. |
[in] | enable | Enable or disable LED. |