Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.9 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    nvsipl::INvSIPLCamera Class Referenceabstract

    Detailed Description

    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
     
    INvSIPLCameraoperator= (INvSIPLCamera &other) &=delete
     
     INvSIPLCamera (INvSIPLCamera &&other)=delete
     
    INvSIPLCameraoperator= (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< INvSIPLCameraGetInstance ()
     Get a handle to an INvSIPLCamera instance. More...
     

    Protected Member Functions

     INvSIPLCamera ()=default
     

    Constructor & Destructor Documentation

    ◆ ~INvSIPLCamera()

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

    Default destructor.

    ◆ INvSIPLCamera() [1/3]

    nvsipl::INvSIPLCamera::INvSIPLCamera ( INvSIPLCamera other)
    delete

    ◆ INvSIPLCamera() [2/3]

    nvsipl::INvSIPLCamera::INvSIPLCamera ( INvSIPLCamera &&  other)
    delete

    ◆ INvSIPLCamera() [3/3]

    nvsipl::INvSIPLCamera::INvSIPLCamera ( )
    protecteddefault

    Member Function Documentation

    ◆ Deinit()

    virtual SIPLStatus nvsipl::INvSIPLCamera::Deinit ( )
    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.

    Precondition
    This function can be called anytime after Init().
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Async
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: No
      • Runtime: No
      • De-Init: Yes

    ◆ DisableLink()

    virtual SIPLStatus nvsipl::INvSIPLCamera::DisableLink ( uint32_t const  index)
    pure virtual

    Disable a given link.

    This method disables a given link.

    Precondition
    This function should only be called after Start() and before Stop().

    Error notifications to the client are dropped until EnableLink() is called.

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


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: Yes
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: No
      • Runtime: Yes
      • De-Init: No

    ◆ EnableLink()

    virtual SIPLStatus nvsipl::INvSIPLCamera::EnableLink ( uint32_t const  index,
    bool const  resetModule 
    )
    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.

    Precondition
    This function should only be called after Start() and before Stop().

    Error notifications to the client that were disabled by DisableLink() are resumed.

    Parameters
    [in]indexThe ID of the sensor.
    [in]resetModuleIf true, reconfigure the camera module before enabling the link.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: Yes
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: No
      • Runtime: Yes
      • De-Init: No

    ◆ FillNvSciSyncAttrList()

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

    • NvSciSyncAccessPerm_WaitOnly for clientType SIPL_WAITER
    • NvSciSyncAccessPerm_SignalOnly for clientType SIPL_SIGNALER NvSciSyncAttrKey_PrimitiveInfo set to
    • NvSciSyncAttrValPrimitiveType_Syncpoint

    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.

    • NvSciBufHwEngName set to NvSciBufHwEngName_Vi
    • NvSciBufPlatformName set to NvSciBufPlatformName_Orin
    Precondition
    This function must be called
    Parameters
    [in]indexThe ID of the sensor.
    [in]outTypeThe output for which NvSciSync attributes are being fetched.
    [out]attrListAttribute list to be filled.
    [in]clientTypeWaiter, signaler, or both.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ GetDeserializerErrorInfo()

    virtual SIPLStatus nvsipl::INvSIPLCamera::GetDeserializerErrorInfo ( uint32_t const  devBlkIndex,
    SIPLErrorDetails *const  deserializerErrorInfo,
    bool &  isRemoteError,
    uint8_t &  linkErrorMask 
    )
    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.

    Precondition
    This function must be called after Init() and before Stop().
    Parameters
    [in]devBlkIndexIndex of the device block associated with the deserializer to retrieve information from.
    [out]deserializerErrorInfoSIPLErrorDetails buffer to populate with error information and the size of data written. Zero size means that no valid data was written.
    [out]isRemoteErrorbool set to true if remote (serializer) error detected.
    [out]linkErrorMaskuint8_t to store link mask for link error state (1 in index position indicates error; all 0 means no link error detected).
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: Yes
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: Yes
      • De-Init: No

    ◆ GetDeserializerInterfaceProvider()

    virtual SIPLStatus nvsipl::INvSIPLCamera::GetDeserializerInterfaceProvider ( uint32_t const  devBlkIndex,
    IInterfaceProvider *&  interfaceProvider 
    )
    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.

    Precondition
    This function must be called after Init() and before Start().
    Parameters
    [in]devBlkIndexIndex of the device block associated with the deserializer.
    [out]interfaceProviderThe custom interface provider for this deserializer. May be nullptr if no custom interfaces are implemented.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ GetErrorGPIOEventInfo()

    virtual SIPLStatus nvsipl::INvSIPLCamera::GetErrorGPIOEventInfo ( uint32_t const  devBlkIndex,
    uint32_t const  gpioIndex,
    SIPLGpioEvent event 
    )
    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.

    Precondition
    This function must be called after Init() and before Stop().
    Parameters
    [in]devBlkIndexIndex of the device block associated with the error notification.
    [in]gpioIndexIndex of the CDAC Error GPIO that issued an interrupt event notification.
    [out]eventThe latest-updated CDAC GPIO event code.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: Yes
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: Yes
      • De-Init: No

    ◆ GetImageAttributes()

    virtual SIPLStatus nvsipl::INvSIPLCamera::GetImageAttributes ( uint32_t const  index,
    INvSIPLClient::ConsumerDesc::OutputType const  outType,
    NvSciBufAttrList imageAttr 
    )
    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.

    • NvSciBufHwEngName set to
      • NvSciBufHwEngName_Vi for OutputType ICP
      • NvSciBufHwEngName_Csi for OutputType ICP
      • NvSciBufHwEngName_Isp for OutputType ICP, ISP0, ISP1 or ISP2
    • NvSciBufPlatformName set to NvSciBufPlatformName_Orin
    Precondition
    This function must be called after SetPipelineCfg() but before RegisterImages() for the specific output type
    Parameters
    [in]indexThe ID of the sensor.
    [in]outTypeThe output for which image attributes are being fetched.
    [in,out]imageAttrReference to the image attributes structure.
    • The surface type for ICP output is determined by the properties of the image sensor and must not be overridden by the user
    • The surface type for ISP0 output is set to the following by default for both RGB Bayer and RGB-IR sensor if not already set by the client. Note, if set by client it must only be to one of the supported surface types of ISP output listed in RegisterImages or an error will be generated.
    Surface Type Layout Data Type Memory Sub-sampling Type Bits Per Component Component Order Color Standard
    YUV BLOCK LINEAR UINT SEMI PLANAR 420 8 YUV REC709_ER

    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

    • The surface type for ISP1 output is set to the following by default if not already set by the client. Note, if set by client it must only be to one of the supported surface types of ISP output listed in RegisterImages or an error will be generated.
    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

    • The surface type for ISP2 output is set to the following by default if not already set by the client. Note, if set by client it must only be to one of the supported surface types of ISP output listed in RegisterImages or an error will be generated. note: ISP2 output is not supported for RGB-IR sensor
      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

    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ GetInstance()

    static std::unique_ptr<INvSIPLCamera> nvsipl::INvSIPLCamera::GetInstance ( )
    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.

    Precondition
    None.
    Returns
    a pointer to a new INvSIPLCamera instance.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ GetMaxErrorSize()

    virtual SIPLStatus nvsipl::INvSIPLCamera::GetMaxErrorSize ( uint32_t const  devBlkIndex,
    size_t &  maxErrorSize 
    )
    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.

    Precondition
    This function must be called after Init() and before Start().
    Parameters
    [in]devBlkIndexIndex of the device block associated with the deserializer to retrieve error size from.
    [out]maxErrorSizeMaximum size of device error information, in bytes (0 if no valid size found).
    Returns
    SIPLStatus the completion status of the operation.
    See also
    SIPLErrorDetails


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: Yes
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ GetModuleErrorInfo()

    virtual SIPLStatus nvsipl::INvSIPLCamera::GetModuleErrorInfo ( uint32_t const  index,
    SIPLErrorDetails *const  serializerErrorInfo,
    SIPLErrorDetails *const  sensorErrorInfo,
    SIPLModuleErrorReadFlag const  errorsToRead = NVSIPL_MODULE_ERROR_READ_ALL 
    )
    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.

    Precondition
    This function must be called after Init() and before Stop().
    Parameters
    [in]indexID of the sensor associated with the devices to retrieve error information from.
    [out]serializerErrorInfoBuffer to populate with serializer error information and the size of data written. Zero size means that no valid data was written.
    [out]sensorErrorInfoBuffer to populate with sensor error information and the size of data written. Zero size means that no valid data was written.
    [in]errorsToReadFlag 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.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: Yes
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: Yes
      • De-Init: No

    ◆ GetModuleInterfaceProvider()

    virtual SIPLStatus nvsipl::INvSIPLCamera::GetModuleInterfaceProvider ( uint32_t const  index,
    IInterfaceProvider *&  interfaceProvider 
    )
    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.

    Precondition
    This function must be called after Init() and before Start().
    Parameters
    [in]indexID of the sensor associated with the module to retrieve interface from.
    [out]interfaceProviderThe customer interface provider for this module. May be nullptr if no custom interfaces are implemented.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ Init()

    virtual SIPLStatus nvsipl::INvSIPLCamera::Init ( )
    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.

    Precondition
    This function must be called must be called after SetPipelineCfg() but before RegisterImages.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ operator=() [1/2]

    INvSIPLCamera& nvsipl::INvSIPLCamera::operator= ( INvSIPLCamera &&  other) &
    delete

    ◆ operator=() [2/2]

    INvSIPLCamera& nvsipl::INvSIPLCamera::operator= ( INvSIPLCamera other) &
    delete

    ◆ ReadEEPROMData()

    virtual SIPLStatus nvsipl::INvSIPLCamera::ReadEEPROMData ( uint32_t const  index,
    uint16_t const  address,
    uint32_t const  length,
    uint8_t *const  buffer 
    )
    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.

    Precondition
    This function can only be called after Init() but before Start().
    Parameters
    [in]indexThe ID of the sensor to which the EEPROM is associated.
    [in]addressThe start address to read from in the EEPROM.
    [in]lengthContiguous size of data to be read. [byte]
    [out]bufferBuffer that EEPROM data is to be written into, must be at least size length.
    Returns
    SIPLStatus. The completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: Yes
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ RegisterAutoControlPlugin()

    virtual SIPLStatus nvsipl::INvSIPLCamera::RegisterAutoControlPlugin ( uint32_t const  index,
    PluginType  type,
    ISiplControlAuto *const  autoControl,
    std::vector< uint8_t > const &  blob 
    )
    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.

    Precondition
    This function must be called after RegisterImages() but before Start().
    Parameters
    [in]indexThe ID of the sensor.
    [in]typeAuto Control plugin type.
    [in]autoControlHandle to plugin implementation, or nullptr if type is NV_PLUGIN.
    [in]blobReference to binary blob containing the ISP configuration.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ RegisterImages()

    virtual SIPLStatus nvsipl::INvSIPLCamera::RegisterImages ( uint32_t const  index,
    INvSIPLClient::ConsumerDesc::OutputType const  outType,
    std::vector< NvSciBufObj > const &  images 
    )
    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.

    Precondition
    This function must be called after Init() and before Start(). ICP output images must be registered before ISP output images. Additionally, if ISP output is enabled, images for ISP outputs must be registered before calling RegisterAutoControlPlugin().
    Parameters
    [in]indexThe ID of the sensor.
    [in]outTypeThe output which images are being registered; can be ICP, ISP0 or ISP1.
    [in]imagesVector of NvSciBufObj to be registered.
    • Supported number of images that can be registered:
    • [1, 40] for ICP output
    • [1, 64] for ISP outputs
    • Supported surface formats for ISP0 output for both RGB Bayer and RGB-IR sensor:
    Row # Surface Type Layout Data Type Memory Sub-sampling Type Bits Per Component Component Order Color Standard
    1 YUV BLOCK LINEAR UINT SEMI PLANAR 420 8 YUV REC709_ER
    2 YUV PITCH LINEAR UINT SEMI PLANAR 420 8 YUV REC709_ER
    3 YUV BLOCK LINEAR UINT SEMI PLANAR 420 16 YUV REC709_ER
    4 YUV PITCH LINEAR UINT SEMI PLANAR 420 16 YUV REC709_ER
    5 YUV BLOCK LINEAR UINT PACKED NONE 8 VUYX REC709_ER
    6 YUV PITCH LINEAR UINT PACKED NONE 8 VUYX REC709_ER
    7 YUV PITCH LINEAR UINT PACKED NONE 16 VUYX REC709_ER
    8 YUV BLOCK LINEAR UINT SEMI PLANAR 444 8 YUV REC709_ER
    9 YUV PITCH LINEAR UINT SEMI PLANAR 444 8 YUV REC709_ER
    10 YUV BLOCK LINEAR UINT SEMI PLANAR 444 16 YUV REC709_ER
    11 YUV PITCH LINEAR UINT SEMI PLANAR 444 16 YUV REC709_ER
    • Supported surface formats for ISP1 output:
    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
    • Supported surface formats for ISP2 output: note: ISP2 output is not supported for RGB-IR sensor
    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
    • Supported surface formats for ICP output:
    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}
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ RegisterNvSciSyncObj()

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

    Register an NvSciSyncObj.

    Precondition
    This function must be called after Init() and before Start().
    Parameters
    [in]indexThe ID of the sensor.
    [in]outTypeThe output for which the NvSciSyncObj is being registered.
    [in]syncobjtypePresync or EOF sync
    [in]syncobjThe object to be registered.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ SetPipelineCfg()

    virtual SIPLStatus nvsipl::INvSIPLCamera::SetPipelineCfg ( uint32_t const  index,
    NvSIPLPipelineConfiguration const &  pipelineCfg,
    NvSIPLPipelineQueues queues 
    )
    pure virtual

    Set a pipeline configuration.

    This method sets a camera pipeline configuration.

    Precondition
    This function must be called after SetPlatformCfg() but before Init().
    Parameters
    [in]indexThe ID of the sensor.
    [in]pipelineCfgThe pipeline configuration to set.
    [out]queuesThe queues that will deliver completed frames and events to the client.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ SetPlatformCfg() [1/2]

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

    Precondition
    None.
    Parameters
    [in]platformConfigThe platform configuration. The external devices referenced in the platform configuration must be supported by the SIPL Device Block drivers.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel, nvsys/hardware_ability
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ SetPlatformCfg() [2/2]

    virtual SIPLStatus nvsipl::INvSIPLCamera::SetPlatformCfg ( PlatformCfg const *const  platformConfig,
    NvSIPLDeviceBlockQueues queues 
    )
    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().

    Precondition
    None.
    Parameters
    [in]platformConfigPlatformCfg The external devices referenced in the platform configuration must be supported by the SIPL Device Block drivers.
    [out]queuesThe queues that will deliver device block notifications.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ SetSensorCharMode()

    virtual SIPLStatus nvsipl::INvSIPLCamera::SetSensorCharMode ( uint32_t const  index,
    uint8_t  expNo 
    )
    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'.

    Precondition
    This function must be called after Init() and before Start().
    Parameters
    [in]indexThe ID of the sensor.
    [in]expNoSensor exposure number to be used for characterization.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ Start()

    virtual SIPLStatus nvsipl::INvSIPLCamera::Start ( )
    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.

    Precondition
    This function must be called after RegisterImages() is called for capture and enabled ISP outputs, RegisterAutoControlPlugin() (if ISP output is enabled), and RegisterNvSciSyncObj().
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Async
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: Yes
      • Runtime: No
      • De-Init: No

    ◆ Stop()

    virtual SIPLStatus nvsipl::INvSIPLCamera::Stop ( )
    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.

    Precondition
    This function must be called after Start() and before Deinit().
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: No
      • Async/Sync: Async
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: No
      • Runtime: No
      • De-Init: Yes

    ◆ ToggleLED()

    virtual SIPLStatus nvsipl::INvSIPLCamera::ToggleLED ( uint32_t const  index,
    bool  enable 
    )
    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.

    Precondition
    This function should only be called after Start() and before Stop().
    Parameters
    [in]indexThe ID of the sensor.
    [in]enableEnable or disable LED.
    Returns
    SIPLStatus the completion status of the operation.


    Usage considerations

    • Allowed context for the API call
      • Interrupt handler: No
      • Signal handler: No
      • Thread-safe: No
      • Re-entrant: Yes
      • Async/Sync: Sync
    • Required privileges: Yes, with the following conditions:
      • Grants: nonroot, allow
      • Abilities: public_channel
      • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
    • API group
      • Init: No
      • Runtime: Yes
      • De-Init: No

    The documentation for this class was generated from the following file:
    人人超碰97caoporen国产