NVIDIA DRIVE OS Linux SDK API Reference

5.1.15.0 Release
For Test and Development only

Detailed Description

Defines public data structures and describes the interfaces for NvSIPLCamera.

Definition at line 57 of file NvSIPLCamera.hpp.

Data Structures

struct  PoolCookies
 Vector of buffer cookies and associated producer NvSciStreamBlock. More...
 

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 RegisterAutoControlPlugin (std::uint32_t index, INvSIPLAutoControl::PluginType type, INvSIPLAutoControl *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 (libnvsipl.so) for the selected platform configuration. More...
 
virtual SIPLStatus SetISPConfig (std::uint32_t index, INvSIPLAutoControl::PluginType autoPluginType)=0
 Set ISP configuration for a pipeline. More...
 
virtual SIPLStatus GetImageAttributes (std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType, NvSIPLImageAttr &imageAttr)=0
 Gets Image Attributes. More...
 
virtual NvMediaISCDeviceGetE2PHandle (std::uint32_t index)=0
 Get EEPROM ISC handle. More...
 
virtual SIPLStatus RegisterImageGroups (std::uint32_t index, const std::vector< NvMediaImageGroup * > &imageGroups, PoolCookies *poolCookies=nullptr)=0
 Registers image groups. More...
 
virtual SIPLStatus RegisterImages (std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType, const std::vector< NvMediaImage * > &images, PoolCookies *poolCookies=nullptr)=0
 Registers images. More...
 
virtual SIPLStatus Start (void)=0
 Starts NvSIPL Camera (libnvsipl.so) for the selected platform configuration. More...
 
virtual SIPLStatus Stop (void)=0
 Stops NvSIPL Camera (libnvsipl.so) for the selected platform configuration. More...
 
virtual SIPLStatus Deinit (void)=0
 De-initializes NvSIPL Camera (libnvsipl.so) for the selected platform configuration. More...
 
virtual SIPLStatus RecoverLink (std::uint32_t index)=0
 Attempts to recover a given link. 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< INvSIPLCameraGetInstance (void)
 Gets a handle to INvSIPLCamera instance. More...
 

Constructor & Destructor Documentation

◆ ~INvSIPLCamera()

virtual nvsipl::INvSIPLCamera::~INvSIPLCamera ( void  )
virtualdefault

Default destructor.

Member Function Documentation

◆ Deinit()

virtual SIPLStatus nvsipl::INvSIPLCamera::Deinit ( void  )
pure virtual

De-initializes NvSIPL Camera (libnvsipl.so) for the selected platform configuration.

The method internally De-initializes the NvSIPL DeviceBlock (libnvsipl_devblk.so) for each device block in the selected platform configuration and De-initializes and destroys the image processing pipelines.

Any registered images are automatically de-registered and can be safely destroyed.

This method must be called after Stop().

Returns
SIPLStatus. The completion status of the operation.

◆ FillNvSciSyncAttrList()

virtual SIPLStatus nvsipl::INvSIPLCamera::FillNvSciSyncAttrList ( std::uint32_t  index,
INvSIPLClient::ConsumerDesc::OutputType  outType,
NvSciSyncAttrList  attrList,
NvMediaNvSciSyncClientType  clientType 
)
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().

Parameters
[in]indexThe ID of the sensor.
[in]outTypenvsipl::INvSIPLClient::ConsumerDesc::OutputType.
[out]attrListNvSciSyncAttrList to be filled.
[in]clientTypeWaiter, signaler, or both.
Returns
SIPLStatus. The completion status of the operation.

◆ GetE2PHandle()

virtual NvMediaISCDevice* nvsipl::INvSIPLCamera::GetE2PHandle ( std::uint32_t  index)
pure virtual

Get EEPROM ISC handle.

This method can be used to get EEPROM ISC handle.

Parameters
[in]indexID of the sensor
Returns
NvMediaISCDevice* pointer to EEPROM ISC handle

◆ GetImageAttributes()

virtual SIPLStatus nvsipl::INvSIPLCamera::GetImageAttributes ( std::uint32_t  index,
INvSIPLClient::ConsumerDesc::OutputType  outType,
NvSIPLImageAttr imageAttr 
)
pure virtual

Gets Image Attributes.

The method can be used to get the attributes of the images to be used with image processing pipelines. User must reconcile the attributes returned by this function with the attributes required by the downstream consumers of the output of pipeline and allocate the images.

This method must be called after Init() but before Start().

Parameters
[in]indexThe ID of the sensor.
[in]outTypenvsipl::INvSIPLClient::ConsumerDesc::OutputType.
[out]imageAttrreference to the image attributes structures.
Returns
SIPLStatus. The completion status of the operation.

◆ GetInstance()

static std::unique_ptr<INvSIPLCamera> nvsipl::INvSIPLCamera::GetInstance ( void  )
static

Gets a handle to INvSIPLCamera instance.

Static function to create an instance of implementation class and return the handle. The object is automatically destroyed when the variable holding the return value goes out of scope.

Returns
unique_ptr A pointer to an INvSIPLCamera instance.

◆ Init()

virtual SIPLStatus nvsipl::INvSIPLCamera::Init ( void  )
pure virtual

Initializes NvSIPL Camera (libnvsipl.so) for the selected platform configuration.

The method internally initializes the NvSIPL DeviceBlock (libnvsipl_devblk.so) 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 SetPlatformCfg and SetPipelineCfg.

Returns
SIPLStatus. The completion status of the operation.

◆ RecoverLink()

virtual SIPLStatus nvsipl::INvSIPLCamera::RecoverLink ( std::uint32_t  index)
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().

Parameters
[in]indexThe ID of the sensor.
Returns
SIPLStatus. The completion status of the operation.

◆ RegisterAutoControlPlugin()

virtual SIPLStatus nvsipl::INvSIPLCamera::RegisterAutoControlPlugin ( std::uint32_t  index,
INvSIPLAutoControl::PluginType  type,
INvSIPLAutoControl autoControl,
const std::vector< std::uint8_t > &  blob 
)
pure virtual

Register Auto Control plugin to be used for specific pipeline.

This method must be called for every pipeline with ISP output enabled.

Parameters
[in]indexThe ID of the sensor.
[in]typeType of plugin type.
[in]autoControlINvSIPLAutoControl Handle to plugin implementation.
[in]blobReference to binary blob containing the ISP configuration.
Returns
SIPLStatus. The completion status of the operation.

◆ RegisterImageGroups()

virtual SIPLStatus nvsipl::INvSIPLCamera::RegisterImageGroups ( std::uint32_t  index,
const std::vector< NvMediaImageGroup * > &  imageGroups,
PoolCookies poolCookies = nullptr 
)
pure virtual

Registers image groups.

The method can be used to register the NvMedia image groups to be used within image processing pipelines. NvMediaImageGroup serve as output of ICP and input to ISP.

This method must be called after Init() but before Start() and before RegisterAutoControlPlugin().

Parameters
[in]indexThe ID of the sensor.
[in]imageGroupsVector of NvMediaImageGroup pointers to be registered.
[in]poolCookiesVector of NvSciStream cookies in the same order as imageGroups.
Returns
SIPLStatus. The completion status of the operation.

◆ RegisterImages()

virtual SIPLStatus nvsipl::INvSIPLCamera::RegisterImages ( std::uint32_t  index,
INvSIPLClient::ConsumerDesc::OutputType  outType,
const std::vector< NvMediaImage * > &  images,
PoolCookies poolCookies = nullptr 
)
pure virtual

Registers images.

The method can be used to register the images to be used within image processing pipelines. Images serve as output of ISP.

This method must be called after Init() but before Start() and before RegisterAutoControlPlugin().

Parameters
[in]indexThe ID of the sensor.
[in]outTypenvsipl::INvSIPLClient::ConsumerDesc::OutputType, can be ISP0 or ISP1.
[in]imagesVector of NvMediaImage pointers to be registered.
[in]poolCookiesVector of NvSciStream cookies in the same order as images.
Returns
SIPLStatus. The completion status of the operation.

◆ RegisterNvSciSyncObj()

virtual SIPLStatus nvsipl::INvSIPLCamera::RegisterNvSciSyncObj ( std::uint32_t  index,
INvSIPLClient::ConsumerDesc::OutputType  outType,
NvMediaNvSciSyncObjType  syncobjtype,
NvSciSyncObj  syncobj 
)
pure virtual

Register an NvSciSyncObj.

If using NvSci, this method must be called after FillNvSciSyncAttrList() and before SetNvSciSyncObjForEOF().

Parameters
[in]indexThe ID of the sensor.
[in]outTypenvsipl::INvSIPLClient::ConsumerDesc::OutputType.
[in]syncobjtypePresync, EOF sync, or presync and EOF.
[in]syncobjNvSciSyncObj to be registered.
Returns
SIPLStatus. The completion status of the operation.

◆ SetISPConfig()

virtual SIPLStatus nvsipl::INvSIPLCamera::SetISPConfig ( std::uint32_t  index,
INvSIPLAutoControl::PluginType  autoPluginType 
)
pure virtual

Set ISP configuration for a pipeline.

This method can be used to set ISP configuration for a pipeline. This function can be called only after RegisterAutoControlPlugin() and Init().

Parameters
[in]indexID of the pipeline.
[in]autoPluginTypetype of the Auto Plug-in type.
Returns
SIPLStatus. The completion status of the operation.

◆ SetNvSciSyncObjForEOF()

virtual SIPLStatus nvsipl::INvSIPLCamera::SetNvSciSyncObjForEOF ( std::uint32_t  index,
INvSIPLClient::ConsumerDesc::OutputType  outType,
NvSciSyncObj  syncobj 
)
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().

Parameters
[in]indexThe ID of the sensor.
[in]outTypenvsipl::INvSIPLClient::ConsumerDesc::OutputType.
[in]syncobjNvSciSyncObj to be registered.
Returns
SIPLStatus. The completion status of the operation.

◆ SetPipelineCfg()

virtual SIPLStatus nvsipl::INvSIPLCamera::SetPipelineCfg ( std::uint32_t  index,
const NvSIPLPipelineCfg pipelineCfg 
)
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.

Parameters
[in]indexThe ID of the sensor.
[in]pipelineCfgAn NvSIPLPipelineCfg to set.
Returns
SIPLStatus. The completion status of the operation.

◆ SetPlatformCfg()

virtual SIPLStatus nvsipl::INvSIPLCamera::SetPlatformCfg ( const PlatformCfg platformCfg)
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).

Parameters
[in]platformCfgPlatformCfg The external devices referenced in the platform configuration must be supported by the NvSIPL DeviceBlock (libnvsipl_devblk.so).
Returns
SIPLStatus. The completion status of the operation.

◆ Start()

virtual SIPLStatus nvsipl::INvSIPLCamera::Start ( void  )
pure virtual

Starts NvSIPL Camera (libnvsipl.so) 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 Init(), RegisterImageGroups() and/or RegisterImages(), and (only if using NvSci) SetNvSciSyncObjForEOF().

Returns
SIPLStatus. The completion status of the operation.

◆ Stop()

virtual SIPLStatus nvsipl::INvSIPLCamera::Stop ( void  )
pure virtual

Stops NvSIPL Camera (libnvsipl.so) 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().

Returns
SIPLStatus. The completion status of the operation.

The documentation for this class was generated from the following file: