NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
nvsipl::INvSIPLClient::INvSIPLBuffer Class Referenceabstract

Detailed Description

Abstract interface for SIPL buffers.

Definition at line 190 of file NvSIPLClient.hpp.

Inheritance diagram for nvsipl::INvSIPLClient::INvSIPLBuffer:

Public Member Functions

virtual void AddRef ()=0
 Adds a reference. More...
 
virtual SIPLStatus Release ()=0
 Release a reference. More...
 
virtual SIPLStatus AddNvSciSyncPrefence (NvSciSyncFence const &prefence)=0
 Add an NvSciSync prefence. More...
 
virtual SIPLStatus GetEOFNvSciSyncFence (NvSciSyncFence *const postfence)=0
 Retrieve the latest NvSciSync EOF fence. More...
 
virtual ~INvSIPLBuffer ()=default
 Default destructor. More...
 
 INvSIPLBuffer (INvSIPLBuffer &other)=delete
 Delete copy constructor. More...
 
INvSIPLBufferoperator= (INvSIPLBuffer &other) &=delete
 Delete copy assignment operator. More...
 
 INvSIPLBuffer (INvSIPLBuffer &&other)=delete
 Delete move constructor. More...
 
INvSIPLBufferoperator= (INvSIPLBuffer &&other) &=delete
 Delete move assignment operator. More...
 

Protected Member Functions

 INvSIPLBuffer ()=default
 Default constructor declared in order to allow construction of derived objects. More...
 

Constructor & Destructor Documentation

◆ ~INvSIPLBuffer()

virtual nvsipl::INvSIPLClient::INvSIPLBuffer::~INvSIPLBuffer ( )
virtualdefault

Default destructor.

◆ INvSIPLBuffer() [1/3]

nvsipl::INvSIPLClient::INvSIPLBuffer::INvSIPLBuffer ( INvSIPLBuffer other)
delete

Delete copy constructor.

◆ INvSIPLBuffer() [2/3]

nvsipl::INvSIPLClient::INvSIPLBuffer::INvSIPLBuffer ( INvSIPLBuffer &&  other)
delete

Delete move constructor.

◆ INvSIPLBuffer() [3/3]

nvsipl::INvSIPLClient::INvSIPLBuffer::INvSIPLBuffer ( )
protecteddefault

Default constructor declared in order to allow construction of derived objects.

Member Function Documentation

◆ AddNvSciSyncPrefence()

virtual SIPLStatus nvsipl::INvSIPLClient::INvSIPLBuffer::AddNvSciSyncPrefence ( NvSciSyncFence const &  prefence)
pure virtual

Add an NvSciSync prefence.

Add an NvSciSync prefence to be used with the next ISP or ICP operation. ICP operations support up to 3 unique pre-fences per pipeline ISP operations support up to 8 unique pre-fences per pipeline

Attention
This function creates its own duplicate of the fence, so the caller must clear their copy of the fence by calling NvSciSyncFenceClear().
The caller ensure that the added prefences expire in a timely manner.
Note
Users need to ensure that the number of unique pre-fences for ISP does not exceed 8 across the all output buffers if using more than one ISP outputs for the pipeline.
Precondition
None.
Parameters
[in]prefencePrefence to be added.
Return values
NVSIPL_STATUS_OKThe function succeeds.
NVSIPL_STATUS_ERRORIf internal NvSci fence operations fail.
(SIPLStatus)Other values of SIPLStatus if there are failures due to dependencies.


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • 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: No
    • Runtime: Yes
    • De-Init: No

◆ AddRef()

virtual void nvsipl::INvSIPLClient::INvSIPLBuffer::AddRef ( )
pure virtual

Adds a reference.

Adding a reference to the buffer ensures that this buffer is not re-used by the producer of the buffer.

Attention
The user must release the references in a timely manner using Release to avoid starving SIPL of the buffers required for capture and/or processing
Precondition
None.


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes, with the following conditions:
      • There is no active release operation that results in the buffer available for re-use.
    • 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: No
    • Runtime: Yes
    • De-Init: No

◆ GetEOFNvSciSyncFence()

virtual SIPLStatus nvsipl::INvSIPLClient::INvSIPLBuffer::GetEOFNvSciSyncFence ( NvSciSyncFence *const  postfence)
pure virtual

Retrieve the latest NvSciSync EOF fence.

Retrieve the buffer's latest NvSciSync EOF fence associated with the engine's set NvSciSync EOF object.

Attention
The caller must clear the returned fence by calling NvSciSyncFenceClear().
Precondition
None.
Parameters
[out]postfenceEOF fence being returned.
Return values
NVSIPL_STATUS_OKThe function succeeds.
NVSIPL_STATUS_ERRORIf internal NvSci fence operations fail.
(SIPLStatus)Other values of SIPLStatus if there are failures due to dependencies.


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • 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

◆ operator=() [1/2]

INvSIPLBuffer& nvsipl::INvSIPLClient::INvSIPLBuffer::operator= ( INvSIPLBuffer &&  other) &
delete

Delete move assignment operator.

◆ operator=() [2/2]

INvSIPLBuffer& nvsipl::INvSIPLClient::INvSIPLBuffer::operator= ( INvSIPLBuffer other) &
delete

Delete copy assignment operator.

◆ Release()

virtual SIPLStatus nvsipl::INvSIPLClient::INvSIPLBuffer::Release ( )
pure virtual

Release a reference.

Once the reference has been released as many times as the reference was added, it implies that the user has finished working with the buffer and the buffer is available for re-use by SIPL.

Precondition
None.
Return values
NVSIPL_STATUS_OKThe releasing operation succeeds.
NVSIPL_STATUS_BAD_ARGUMENTIf the buffer is already released.
(SIPLStatus)Other values of SIPLStatus if there are failures due to dependencies.


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • 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: No
    • Runtime: Yes
    • De-Init: No

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