The top-level API for SIPL.
A SIPL client acquires this API by calling GetInstance() exactly once.
Definition at line 141 of file NvSIPLCamera.hpp.
Public Member Functions | |
virtual SIPLStatus | SetPlatformCfg (PlatformCfg const *const platformConfig)=0 |
Set a platform configuration. More... | |
virtual SIPLStatus | SetPlatformCfg (PlatformCfg const *const platformConfig, NvSIPLDeviceBlockQueues &queues)=0 |
Set a platform configuration and returns the device block notification queues. More... | |
virtual SIPLStatus | SetPipelineCfg (uint32_t const index, NvSIPLPipelineConfiguration const &pipelineCfg, NvSIPLPipelineQueues &queues)=0 |
Set a pipeline configuration. More... | |
virtual SIPLStatus | RegisterAutoControlPlugin (uint32_t const index, PluginType type, ISiplControlAuto *const autoControl, std::vector< uint8_t > const &blob)=0 |
Register the Auto Control plugin to be used for a specific pipeline. More... | |
virtual SIPLStatus | Init ()=0 |
Initialize the API for the selected platform configuration. More... | |
virtual SIPLStatus | SetSensorCharMode (uint32_t const index, uint8_t expNo)=0 |
Set sensor in characterization mode. More... | |
virtual SIPLStatus | GetImageAttributes (uint32_t const index, INvSIPLClient::ConsumerDesc::OutputType const outType, NvSciBufAttrList &imageAttr)=0 |
Get image attributes. More... | |
virtual SIPLStatus | ReadEEPROMData (uint32_t const index, uint16_t const address, uint32_t const length, uint8_t *const buffer)=0 |
Read from an EEPROM in a camera module. More... | |
virtual SIPLStatus | RegisterImages (uint32_t const index, INvSIPLClient::ConsumerDesc::OutputType const outType, std::vector< NvSciBufObj > const &images)=0 |
Register images. More... | |
virtual SIPLStatus | Start ()=0 |
Begin streaming from all sensors in the selected platform configuration. More... | |
virtual SIPLStatus | Stop ()=0 |
Stop streaming from all sensors in the selected platform configuration. More... | |
virtual SIPLStatus | Deinit ()=0 |
Deinitialize the API for the selected platform configuration. More... | |
virtual SIPLStatus | GetMaxErrorSize (uint32_t const devBlkIndex, size_t &maxErrorSize)=0 |
Get maximum size of error information. More... | |
virtual SIPLStatus | GetErrorGPIOEventInfo (uint32_t const devBlkIndex, uint32_t const gpioIndex, SIPLGpioEvent &event)=0 |
Get the error interrupt event information for a GPIO activation. More... | |
virtual SIPLStatus | GetDeserializerErrorInfo (uint32_t const devBlkIndex, SIPLErrorDetails *const deserializerErrorInfo, bool &isRemoteError, uint8_t &linkErrorMask)=0 |
Get generic deserializer error information. More... | |
virtual SIPLStatus | GetModuleErrorInfo (uint32_t const index, SIPLErrorDetails *const serializerErrorInfo, SIPLErrorDetails *const sensorErrorInfo, SIPLModuleErrorReadFlag const errorsToRead=NVSIPL_MODULE_ERROR_READ_ALL)=0 |
Gets generic module error information. More... | |
virtual SIPLStatus | DisableLink (uint32_t const index)=0 |
Disable a given link. More... | |
virtual SIPLStatus | EnableLink (uint32_t const index, bool const resetModule)=0 |
Enable a given link. More... | |
virtual SIPLStatus | ToggleLED (uint32_t const index, bool enable)=0 |
Control the LED on the associated camera module. More... | |
virtual | ~INvSIPLCamera ()=default |
Default destructor. More... | |
INvSIPLCamera (INvSIPLCamera &other)=delete | |
INvSIPLCamera & | operator= (INvSIPLCamera &other) &=delete |
INvSIPLCamera (INvSIPLCamera &&other)=delete | |
INvSIPLCamera & | operator= (INvSIPLCamera &&other) &=delete |
virtual SIPLStatus | FillNvSciSyncAttrList (uint32_t const index, INvSIPLClient::ConsumerDesc::OutputType const outType, NvSciSyncAttrList const attrList, NvSiplNvSciSyncClientType const clientType)=0 |
Fill an NvSciSyncAttrList. More... | |
virtual SIPLStatus | RegisterNvSciSyncObj (uint32_t const index, INvSIPLClient::ConsumerDesc::OutputType const outType, NvSiplNvSciSyncObjType const syncobjtype, NvSciSyncObj const syncobj)=0 |
Register an NvSciSyncObj. More... | |
virtual SIPLStatus | GetDeserializerInterfaceProvider (uint32_t const devBlkIndex, IInterfaceProvider *&interfaceProvider)=0 |
Retrieve custom interface provider for deserializer. More... | |
virtual SIPLStatus | GetModuleInterfaceProvider (uint32_t const index, IInterfaceProvider *&interfaceProvider)=0 |
Retrieve custom interface provider for module. More... | |
Static Public Member Functions | |
static std::unique_ptr< INvSIPLCamera > | GetInstance () |
Get a handle to an INvSIPLCamera instance. More... | |
Protected Member Functions | |
INvSIPLCamera ()=default | |
|
virtualdefault |
Default destructor.
|
delete |
|
delete |
|
protecteddefault |
|
pure virtual |
Deinitialize the API for the selected platform configuration.
This method 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.
Usage considerations
|
pure virtual |
Disable a given link.
This method disables a given link.
Error notifications to the client are dropped until EnableLink() is called.
[in] | index | The ID of the sensor. |
Usage considerations
|
pure virtual |
Enable a given link.
This method enables a given link and, if reset is asserted, reconfigures the camera module to reestablish the link.
Error notifications to the client that were disabled by DisableLink() are resumed.
[in] | index | The ID of the sensor. |
[in] | resetModule | If true, reconfigure the camera module before enabling the link. |
Usage considerations
|
pure virtual |
Fill an NvSciSyncAttrList.
The method is used to fetch the NvSciSync attributes required for compatiblility with the underlying image processing pipelines.
This method updates the input NvSciSyncAttrList with values equivalent to the following public attribute key-values: NvSciSyncAttrKey_RequiredPerm set to
This interfaces updates the input NvSciBufAttrList with values equivalent to the following public attribute key-values: NvSciSyncAttrKey_PeerHwEngineArray set to following NvSciBufPeerHwEngine value only for OutputType ICP.
[in] | index | The ID of the sensor. |
[in] | outType | The output for which NvSciSync attributes are being fetched. |
[out] | attrList | Attribute list to be filled. |
[in] | clientType | Waiter, signaler, or both. |
Usage considerations
|
pure virtual |
Get generic deserializer error information.
This method queries the driver for detailed error information and populates a provided buffer for the deserializer associated with the device block index. The contents, size written, and order are determined by the driver.
If no error info is expected (max error size is 0), this may be called with null error info to retrieve only the remote and link error information.
It is expected that the provided buffer is the correct size for the driver-provided errors.
[in] | devBlkIndex | Index of the device block associated with the deserializer to retrieve information from. |
[out] | deserializerErrorInfo | SIPLErrorDetails buffer to populate with error information and the size of data written. Zero size means that no valid data was written. |
[out] | isRemoteError | bool set to true if remote (serializer) error detected. |
[out] | linkErrorMask | uint8_t to store link mask for link error state (1 in index position indicates error; all 0 means no link error detected). |
Usage considerations
|
pure virtual |
Retrieve custom interface provider for deserializer.
Retrieve the custom interface provider for the deserializer associated with the specified device block index. This allows for direct access to custom deserializer functionality.
[in] | devBlkIndex | Index of the device block associated with the deserializer. |
[out] | interfaceProvider | The custom interface provider for this deserializer. May be nullptr if no custom interfaces are implemented. |
Usage considerations
|
pure virtual |
Get the error interrupt event information for a GPIO activation.
This method queries CDAC for the latest event code of a GPIO pin, called in response to Deserializer, Serializer and/or Sensor error notification(s).
This API is only supported on QNX with the Version 2 CDI API. NVSIPL_STATUS_NOT_SUPPORTED is returned on all other platforms.
[in] | devBlkIndex | Index of the device block associated with the error notification. |
[in] | gpioIndex | Index of the CDAC Error GPIO that issued an interrupt event notification. |
[out] | event | The latest-updated CDAC GPIO event code. |
Usage considerations
|
pure virtual |
Get image attributes.
This method is 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 interfaces updates the input NvSciBufAttrList with values equivalent to the following public attribute key-values: NvSciBufGeneralAttrKey_PeerHwEngineArray set to following NvSciBufPeerHwEngine value.
[in] | index | The ID of the sensor. | ||||||||||||||||
[in] | outType | The output for which image attributes are being fetched. | ||||||||||||||||
[in,out] | imageAttr | Reference to the image attributes structure.
|
YUV 420 SEMI-PLANAR UINT8 Block Linear is defined by NvSciBuf with: NvSciBufImageAttrKey_SurfType set to NvSciSurfType_YUV NvSciBufImageAttrKey_SurfBPC set to NvSciSurfBPC_8 NvSciBufImageAttrKey_SurfMemLayout set to NvSciSurfMemLayout_SemiPlanar NvSciBufImageAttrKey_SurfSampleType set to NvSciSurfSampleType_420 NvSciBufImageAttrKey_SurfComponentOrder set to NvSciSurfComponentOrder_YUV NvSciBufImageAttrKey_SurfColorStd set to NvSciColorStd_REC709_ER NvSciBufImageAttrKey_Layout set to NvSciBufImage_BlockLinearType
Surface Type | Layout | Data Type | Memory | Sub-sampling Type | Bits Per Component | Component Order | Color Standard | Sensor Type |
---|---|---|---|---|---|---|---|---|
YUV | BLOCK LINEAR | UINT | SEMI PLANAR | 420 | 8 | YUV | REC709_ER | RGB Bayer |
Y | PITCH LINEAR | UINT | PACKED | N/A | 16 | Y | REC709_ER | RGB-IR |
YUV 420 SEMI-PLANAR UINT8 Block Linear is defined by NvSciBuf same as shown above for ISP0 Y PACKED UINT16 Pitch Linear is defined by NvSciBuf with: NvSciBufImageAttrKey_PlaneCount set to 1U NvSciBufImageAttrKey_PlaneColorFormat set with NvSciColor_Y16 NvSciBufImageAttrKey_PlaneColorStd set to NvSciColorStd_REC709_ER NvSciBufImageAttrKey_Layout set to NvSciBufImage_PitchLinearType
Surface Type | Layout | Data Type | Memory | Sub-sampling Type | Bits Per Component | Component Order | Color Standard | Sensor Type |
---|---|---|---|---|---|---|---|---|
RGBA | PITCH LINEAR | FLOAT | PACKED | NONE | 16 | RGBA | SENSOR_RGBA | RGB Bayer |
RGBA PACKED FLOAT16 Pitch Linear is defined by NvSciBuf with: NvSciBufImageAttrKey_PlaneCount set to 1U NvSciBufImageAttrKey_PlaneColorFormat set with NvSciColor_Float_A16 NvSciBufImageAttrKey_PlaneColorStd set to NvSciColorStd_SENSOR_RGBA NvSciBufImageAttrKey_Layout set to NvSciBufImage_PitchLinearType
Usage considerations
|
static |
Get a handle to an INvSIPLCamera instance.
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.
Usage considerations
|
pure virtual |
Get maximum size of error information.
This method queries the drivers for sizes of error information and returns the largest. This size should be used to allocate buffers for requesting detailed errors.
[in] | devBlkIndex | Index of the device block associated with the deserializer to retrieve error size from. |
[out] | maxErrorSize | Maximum size of device error information, in bytes (0 if no valid size found). |
Usage considerations
|
pure virtual |
Gets generic module error information.
This method queries the drivers for detailed error information and populates a provided buffer for module devices (sensor, serializer) associated with the index. The contents, size written, and order are determined by each driver.
It is expected that the provided buffers are the correct size for the driver-provided errors.
A flag is provided indicating whether sensor, serializer, or both errors should be read. If not read, the errorInfo may be null for that device.
[in] | index | ID of the sensor associated with the devices to retrieve error information from. |
[out] | serializerErrorInfo | Buffer to populate with serializer error information and the size of data written. Zero size means that no valid data was written. |
[out] | sensorErrorInfo | Buffer to populate with sensor error information and the size of data written. Zero size means that no valid data was written. |
[in] | errorsToRead | Flag indicating which errors to read - sensor, serializer, or both. If this flag indicates that errors should be read, the corresponding SIPLErrorDetails must be valid. Default behavior is to read both. |
Usage considerations
|
pure virtual |
Retrieve custom interface provider for module.
Retrieve the custom interface provider for the module associated with the specified sensor index. This allows for direct access to custom module functionality.
[in] | index | ID of the sensor associated with the module to retrieve interface from. |
[out] | interfaceProvider | The customer interface provider for this module. May be nullptr if no custom interfaces are implemented. |
Usage considerations
|
pure virtual |
Initialize the API 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 outputs set via SetPipelineCfg.
Usage considerations
|
delete |
|
delete |
|
pure virtual |
Read from an EEPROM in a camera module.
This method is used to perform data reads from an EEPROM in a camera module.
[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. |
Usage considerations
|
pure virtual |
Register the Auto Control plugin to be used for a specific pipeline.
This method must be called for every pipeline with ISP output enabled.
[in] | index | The ID of the sensor. |
[in] | type | Auto Control plugin type. |
[in] | autoControl | Handle to plugin implementation, or nullptr if type is NV_PLUGIN. |
[in] | blob | Reference to binary blob containing the ISP configuration. |
Usage considerations
|
pure virtual |
Register images.
This method is used to register the images to be used within the image processing pipelines. These images serve as the output of ISP or as the output of ICP and input to ISP.
[in] | index | The ID of the sensor. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[in] | outType | The output which images are being registered; can be ICP, ISP0 or ISP1. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[in] | images | Vector of NvSciBufObj to be registered.
|
Row # | Surface Type | Layout | Data Type | Memory | Sub-sampling Type | Bits Per Component | Component Order | Color Standard | Sensor Type |
---|---|---|---|---|---|---|---|---|---|
1 | YUV | BLOCK LINEAR | UINT | SEMI PLANAR | 420 | 8 | YUV | REC709_ER | RGB Bayer |
2 | YUV | PITCH LINEAR | UINT | SEMI PLANAR | 420 | 8 | YUV | REC709_ER | RGB Bayer |
3 | YUV | BLOCK LINEAR | UINT | SEMI PLANAR | 420 | 16 | YUV | REC709_ER | RGB Bayer |
4 | YUV | PITCH LINEAR | UINT | SEMI PLANAR | 420 | 16 | YUV | REC709_ER | RGB Bayer |
5 | YUV | BLOCK LINEAR | UINT | PACKED | NONE | 8 | VUYX | REC709_ER | RGB Bayer |
6 | YUV | PITCH LINEAR | UINT | PACKED | NONE | 8 | VUYX | REC709_ER | RGB Bayer |
7 | YUV | PITCH LINEAR | UINT | PACKED | NONE | 16 | VUYX | REC709_ER | RGB Bayer |
8 | YUV | BLOCK LINEAR | UINT | SEMI PLANAR | 444 | 8 | YUV | REC709_ER | RGB Bayer |
9 | YUV | PITCH LINEAR | UINT | SEMI PLANAR | 444 | 8 | YUV | REC709_ER | RGB Bayer |
10 | YUV | BLOCK LINEAR | UINT | SEMI PLANAR | 444 | 16 | YUV | REC709_ER | RGB Bayer |
11 | YUV | PITCH LINEAR | UINT | SEMI PLANAR | 444 | 16 | YUV | REC709_ER | RGB Bayer |
12 | Y | PITCH LINEAR | UINT | PACKED | N/A | 16 | Y | REC709_ER | RGB-IR |
Row # | Surface Type | Layout | Data Type | Memory | Sub-sampling Type | Bits Per Component | Component Order | Color Standard | Sensor Type |
---|---|---|---|---|---|---|---|---|---|
1 | YUV | BLOCK LINEAR | UINT | SEMI PLANAR | 420 | 8 | YUV | REC709_ER | RGB Bayer |
2 | YUV | PITCH LINEAR | UINT | SEMI PLANAR | 420 | 8 | YUV | REC709_ER | RGB Bayer |
3 | YUV | BLOCK LINEAR | UINT | SEMI PLANAR | 420 | 16 | YUV | REC709_ER | RGB Bayer |
4 | YUV | PITCH LINEAR | UINT | SEMI PLANAR | 420 | 16 | YUV | REC709_ER | RGB Bayer |
5 | YUV | BLOCK LINEAR | UINT | PACKED | NONE | 8 | VUYX | REC709_ER | RGB Bayer |
6 | YUV | PITCH LINEAR | UINT | PACKED | NONE | 8 | VUYX | REC709_ER | RGB Bayer |
7 | YUV | PITCH LINEAR | UINT | PACKED | NONE | 16 | VUYX | REC709_ER | RGB Bayer |
8 | YUV | BLOCK LINEAR | UINT | SEMI PLANAR | 444 | 8 | YUV | REC709_ER | RGB Bayer |
9 | YUV | PITCH LINEAR | UINT | SEMI PLANAR | 444 | 8 | YUV | REC709_ER | RGB Bayer |
10 | YUV | BLOCK LINEAR | UINT | SEMI PLANAR | 444 | 16 | YUV | REC709_ER | RGB Bayer |
11 | YUV | PITCH LINEAR | UINT | SEMI PLANAR | 444 | 16 | YUV | REC709_ER | RGB Bayer |
12 | RGBA | PITCH LINEAR | FLOAT | PACKED | NONE | 16 | RGBA | SENSOR_RGBA | RGB-Bayer |
Row # | Surface Type | Layout | Data Type | Memory | Sub-sampling Type | Bits Per Component | Component Order |
---|---|---|---|---|---|---|---|
1 | RAW | PITCH LINEAR | UINT | PACKED | NONE | 10 | {RGGB, BGGR, GRBG, GBRG, RCCB, BCCR, CRBC, CBRC, CCCC, BGGI_RGGI, GBIG_GRIG, GIBG_GIRG, IGGB_IGGR, RGGI_BGGI, GRIG_GBIG, GIRG_GIBG, IGGR_IGGB} |
2 | RAW | PITCH LINEAR | UINT | PACKED | NONE | 12 | {RGGB, BGGR, GRBG, GBRG, RCCB, BCCR, CRBC, CBRC, CCCC} |
3 | RAW | PITCH LINEAR | UINT | PACKED | NONE | 16 | {RGGB, BGGR, GRBG, GBRG, RCCB, BCCR, CRBC, CBRC, CCCC} |
4 | YUV | PITCH LINEAR | UINT | SEMI PLANAR | 422 | 8 | {YUV, YVU} |
5 | YUV | PITCH LINEAR | UINT | PACKED | 422 | 8 | {YUYV, YVYU, VYUY, UYVY} |
Usage considerations
|
pure virtual |
Register an NvSciSyncObj.
[in] | index | The ID of the sensor. |
[in] | outType | The output for which the NvSciSyncObj is being registered. |
[in] | syncobjtype | Presync or EOF sync |
[in] | syncobj | The object to be registered. |
Usage considerations
|
pure virtual |
Set a pipeline configuration.
This method sets a camera pipeline configuration.
[in] | index | The ID of the sensor. |
[in] | pipelineCfg | The pipeline configuration to set. |
[out] | queues | The queues that will deliver completed frames and events to the client. |
Usage considerations
|
pure virtual |
Set a platform configuration.
This method sets a PlatformCfg camera platform configuration. The configuration specifies all sensors that will be used by this client. This method must be called before SetPipelineCfg().
[in] | platformConfig | The platform configuration. The external devices referenced in the platform configuration must be supported by the SIPL Device Block drivers. |
Usage considerations
|
pure virtual |
Set a platform configuration and returns the device block notification queues.
This method sets a PlatformCfg camera platform configuration and returns the device block notification queues. The configuration specifies all sensors that will be used by this client.
This method must be called before SetPipelineCfg().
[in] | platformConfig | PlatformCfg The external devices referenced in the platform configuration must be supported by the SIPL Device Block drivers. |
[out] | queues | The queues that will deliver device block notifications. |
Usage considerations
|
pure virtual |
Set sensor in characterization mode.
This function re-configures the sensor i.e. changes the sensor static attributes like numActiveExposures, sensorExpRange, sensorGainRange and hence, should be called during sensor initialization time. In order to characterize the sensor exposure number 'n', where n = {1,2,3, ... , N} for N-exposure HDR sensor, the input parameter 'expNo' should be set to 'n'. For a non-HDR sensor, the input parameter 'expNo' should always be set to '1'.
[in] | index | The ID of the sensor. |
[in] | expNo | Sensor exposure number to be used for characterization. |
Usage considerations
|
pure virtual |
Begin streaming from all sensors in the selected platform configuration.
This method starts the streaming from sensors belonging to each device block in the selected platform configuration, and starts the associated image processing pipelines.
Usage considerations
|
pure virtual |
Stop streaming from all sensors in the selected platform configuration.
This method stops the streaming from sensors belonging to each device block in the selected platform configuration, and stops the associated image processing pipelines.
Usage considerations
|
pure virtual |
Control the LED on the associated camera module.
This method tries to enable or disable the LED on the specific module. It is valid only if there is an LED on the camera module and it is controlled by the sensor.
[in] | index | The ID of the sensor. |
[in] | enable | Enable or disable LED. |
Usage considerations