NVIDIA DRIVE OS Linux SDK API Reference

6.0.8 Release

Detailed Description

Contains a list of NvSciStream datatypes.

NvSciStream version: It is expected that, when the NvSciStream library is being developed, it might potentially be incompatible with previous versions. An application built for a given major and minor version of NvSciStream will be compatible with any NvSciStream library with the same major version and equal or greater minor version.

Different processes using different minor versions of NvSciStream libraries with the same major version may share a stream as long as the stream does not make use of any features not supported in the lower minor version.

NvSciStream version numbers are incremented in the following circumstances:

Typedefs

typedef uintptr_t NvSciStreamBlock
 Handle to a block. More...
 
typedef uintptr_t NvSciStreamPacket
 NvSciStream assigned handle for a packet. More...
 
typedef uintptr_t NvSciStreamCookie
 Application assigned cookie for a NvSciStreamPacket. More...
 

Enumerations

enum  NvSciStreamQueryableAttrib {
  NvSciStreamQueryableAttrib_MaxElements = 0x000000,
  NvSciStreamQueryableAttrib_MaxSyncObj = 0x000001,
  NvSciStreamQueryableAttrib_MaxMulticastOutputs = 0x000002
}
 Defines NvSciStream attributes that are queryable. More...
 
enum  NvSciStreamBlockType {
  NvSciStreamBlockType_Producer,
  NvSciStreamBlockType_Consumer,
  NvSciStreamBlockType_Pool
}
 Most queries on one block request information received from ! another block. More...
 
enum  NvSciStreamSetup {
  NvSciStreamSetup_ElementExport = 0x0001,
  NvSciStreamSetup_ElementImport = 0x0002,
  NvSciStreamSetup_PacketExport = 0x0011,
  NvSciStreamSetup_PacketImport = 0x0012,
  NvSciStreamSetup_WaiterAttrExport = 0x0021,
  NvSciStreamSetup_WaiterAttrImport = 0x0022,
  NvSciStreamSetup_SignalObjExport = 0x0031,
  NvSciStreamSetup_SignalObjImport = 0x0032,
  NvSciStreamSetup_Connect = 0x0041,
  NvSciStreamSetup_CrcImport = 0x0051,
  NvSciStreamSetup_CrcExport = 0x0052
}
 Setup information will be broken into several distinct groups, ! with restrictions on when they can be specified and queried. More...
 
enum  NvSciStreamEventType {
  NvSciStreamEventType_Connected = 0x004004,
  NvSciStreamEventType_Disconnected = 0x004005,
  NvSciStreamEventType_WaiterAttr = 0x004013,
  NvSciStreamEventType_SignalObj = 0x004014,
  NvSciStreamEventType_Elements = 0x004026,
  NvSciStreamEventType_PacketCreate = 0x004030,
  NvSciStreamEventType_PacketsComplete = 0x004038,
  NvSciStreamEventType_PacketDelete = 0x004032,
  NvSciStreamEventType_PacketStatus = 0x004037,
  NvSciStreamEventType_PacketReady = 0x004040,
  NvSciStreamEventType_SetupComplete = 0x004050,
  NvSciStreamEventType_Validate = 0x004060,
  NvSciStreamEventType_Error = 0x0040FF
}
 Defines event types for the blocks. More...
 

Variables

static const uint32_t NvSciStreamMajorVersion = 4U
 NvSciStream major version number. More...
 
static const uint32_t NvSciStreamMinorVersion = 2U
 NvSciStream minor version number. More...
 
static const NvSciStreamPacket NvSciStreamPacket_Invalid = 0U
 Constant variable denoting an invalid NvSciStreamPacket. More...
 
static const NvSciStreamCookie NvSciStreamCookie_Invalid = 0U
 Constant variable denoting an invalid NvSciStreamCookie. More...
 

Typedef Documentation

◆ NvSciStreamBlock

typedef uintptr_t NvSciStreamBlock

Handle to a block.

Definition at line 79 of file nvscistream_types.h.

◆ NvSciStreamCookie

typedef uintptr_t NvSciStreamCookie

Application assigned cookie for a NvSciStreamPacket.

Definition at line 87 of file nvscistream_types.h.

◆ NvSciStreamPacket

typedef uintptr_t NvSciStreamPacket

NvSciStream assigned handle for a packet.

Definition at line 82 of file nvscistream_types.h.

Enumeration Type Documentation

◆ NvSciStreamBlockType

Most queries on one block request information received from ! another block.

Where there is ambiguity in the kind of block the ! information originated from, this type is used to specify it.

Enumerator
NvSciStreamBlockType_Producer 

Query information received from the producer.

NvSciStreamBlockType_Consumer 

Query information received from a consumer.

NvSciStreamBlockType_Pool 

Query information received from the pool.

Definition at line 183 of file nvscistream_types.h.

◆ NvSciStreamEventType

Defines event types for the blocks.

Enumerator
NvSciStreamEventType_Connected 

Indicates the stream containing the block is fully connected.

At all blocks, the following functions become available:

At the producer and consumer blocks, the element export phase may begin, and the following functions become available:

NvSciStreamEventType_Disconnected 

Indicates portions of the stream have disconnected such that no more useful work can be done with the block.

Note that this event is not always triggered immediately when any disconnect occurs. For instance:

  • If a consumer still has packets waiting in its queue when a producer is destroyed, it will not be informed of the disconnection until all packets are acquired by calling NvSciStreamConsumerPacketAcquire().

Received by all blocks.

NvSciStreamEventType_WaiterAttr 

Signals the arrival of NvSciSync waiter information from the opposing endpoint(s).

Received by producer and consumer blocks.

The following function becomes available:

NvSciStreamEventType_SignalObj 

Signals the arrival of NvSciSync signal information from the opposing endpoint(s).

Received by producer and consumer blocks.

The following function becomes available:

NvSciStreamEventType_Elements 

Signals the arrival of all element-related information.

At the pool, both the element import and export phases may begin, and the following functions become available:

At the producer and consumer(s), the element import and waiter information export phases may begin, and the following functions become available:

Not received by any other block types.

NvSciStreamEventType_PacketCreate 

Signals the arrival of a new packet definition from the pool.

Received by producer and consumer blocks.

These events become available to the producer and consumer after they have indicated that they are done importing element information by calling NvSciStreamBlockSetupStatusSet() with NvSciStreamSetup_ElementImport. The following functions become available to query and accept or reject packet information:

NvSciStreamEventType_PacketsComplete 

Signals that the pool has finished defining all of its packets.

Received by producer and consumer blocks.

This event becomes available to the producer and consumer after the pool indicates it has sent all the packets.

NvSciStreamEventType_PacketDelete 

Signals that the pool has deleted a packet and no further paylaods using the packet will arrive.

Received by producer and consumer blocks.

The following function becomes available to query the deleted packet:

NvSciStreamEventType_PacketStatus 

Signals the arrival of status for a packet from producer and all consumers.

Received by pool blocks.

The following functions become available to query the packet status:

NvSciStreamEventType_PacketReady 

Specifies a packet is available for reuse or acquire.

Received by producer and consumer blocks.

NvSciStreamEventType_SetupComplete 

Specifies all setup operations have completed and streaming may begin.

Received by all blocks.

NvSciStreamEventType_Validate 

Signals the validation data provided by all consumers.

Received by producer block only.

NvSciStreamEventType_Error 

Indicates a failure not directly triggered by user action.

Received by any block.

Definition at line 385 of file nvscistream_types.h.

◆ NvSciStreamQueryableAttrib

Defines NvSciStream attributes that are queryable.

Enumerator
NvSciStreamQueryableAttrib_MaxElements 

Maximum number of elements allowed per packet.

NvSciStreamQueryableAttrib_MaxSyncObj 

Maximum number of NvSciSyncObjs allowed.

NvSciStreamQueryableAttrib_MaxMulticastOutputs 

Maximum number of multicast outputs allowed.

Definition at line 170 of file nvscistream_types.h.

◆ NvSciStreamSetup

Setup information will be broken into several distinct groups, ! with restrictions on when they can be specified and queried.

The ! application will indicate when each group has been fully specified ! and is ready to send (for *Export groups) or when it has finished ! querying the group and the driver can reclaim space and allow dependent ! operations to proceed (for *Import groups).

Enumerator
NvSciStreamSetup_ElementExport 

Specification of element-related support.

In the producer and consumer(s), this group contains the list of elements supported by the endpoint. Marking this complete causes the list to be sent to the pool.

In the pool, this group contains the list of elements which will be used for the final packet layout. Marking this complete causes the list to be sent to the producer and consumer(s). This group of operations are not supported on the secondary pool.

When element export is complete, the following functions are no longer available on the block:

When element export is complete, the following functions become available on the pool:

NvSciStreamSetup_ElementImport 

Processing of element-related support.

In the pool, this group contains the lists of supported elements sent by the producer and consumer(s). Marking this complete releases resources associated with these lists. This must be completed before element export can complete.

In the producer and consumer(s), this group contains the list of elements sent by the pool for use in the final packet layout, as well as the flags tracking whether the block uses each element (for consumers only). Marking this complete releases resources associated with the element list, sends the usage list through the stream for use in optimization, and unblocks any pending NvSciStreamEventType_PacketCreate events waiting at the block.

When element import is complete, the following functions are no longer available on the block:

NvSciStreamSetup_PacketExport 

Specification of all packets.

In the pool, this group contains the lists of all packet definitions. Marking this complete releases resources associated with the packet setup, and indicates no more packets will be created. The producer and consumer will receive an NvSciStreamEventType_PacketsComplete event after receiving all of the individual packets.

When packet export is completed, the following functions are no longer available on the pool:

NvSciStreamSetup_PacketImport 

Mapping of all packets.

In the producer and consumer, this group contains the lists of all packet definitions and their status. This cannot be completed until the NvSciStreamEventType_PacketsComplete event arrives from the pool and status has been returned for all received packets.

In the pool, this group contains the packet status returned by the producer and consumers. This cannot be completed until packet export has finished and NvSciStreamEventType_PacketStatus events have arrived for all packets.

Marking this complete releases resources associated with the packet setup.

When packet import is completed, the following functions are no longer available on the relevant blocks:

NvSciStreamSetup_WaiterAttrExport 

Specification of waiter sync attributes.

In the producer and consumer, this group contains the per-element NvSciSync attribute lists containing the requirements to wait for sync objects signalled by the opposing endpoints. This cannot be completed until NvSciStreamSetup_ElementImport is completed, so the list of used elements is known.

When waiter information export is completed, the following functions are no longer available:

NvSciStreamSetup_WaiterAttrImport 

Processing of waiter sync attributes.

In the producer and consumer, this group contains the per-element NvSciSync attribute lists containing the requirements provided by the opposing endpoints so that they can wait for sync objects signalled by this endpoint. This cannot be completed until NvSciStreamSetup_ElementImport is completed and the NvSciStreamEventType_WaiterAttr event has arrived.

When waiter information import is completed, the following functions are no longer available:

NvSciStreamSetup_SignalObjExport 

Specification of signaling sync objects.

In the producer and consumer, this group contains the per-element NvSciSync objects used to signal when writing and reading, respectively, of each element has completed. This cannot be completed until NvSciStreamSetup_WaiterAttrImport is completed.

When signal information export is completed, the following functions are no longer available:

NvSciStreamSetup_SignalObjImport 

Mapping of signaling sync objects.

In the producer and consumer, this group contains the per-element NvSciSync objects that are signalled when the opposing endpoint(s) are done reading and writing, respectively, each element. This cannot be completed until the NvSciStreamEventType_SignalObj event has arrived.

When waiter information import is completed, the following functions are no longer available:

NvSciStreamSetup_Connect 

Continue initialization with the new connected consumers.

In the multicast, even though not all consumers are connected, marking this complete allows the application to continue the initialization and streaming with the existing consumers. This is applicable to both early-attach and late-attach consumers. This cannot be completed until there's a new connection to the multicast.

When the existing consumer(s) finish initialization and enter the streaming phase, the multicast can start another connection with the new late-attach consumer(s), after receiving the NvSciStreamEventType_SetupComplete event.

NvSciStreamSetup_CrcImport 

Indication for successful CRC validation.

In the producer, marking this complete means the producer finishes all validation and validation is successful, which unblocks the pending NvSciStreamEventType_SetupComplete event.

This must be used by producer after receiving the NvSciStreamEventType_Validate event.

NvSciStreamSetup_CrcExport 

Specification CRC validation data.

In the consumer, marking this complete means that CRC data is set and is ready for validation. This triggers the validation event NvSciStreamEventType_Validate at producer.

Definition at line 199 of file nvscistream_types.h.

Variable Documentation

◆ NvSciStreamCookie_Invalid

const NvSciStreamCookie NvSciStreamCookie_Invalid = 0U
static

Constant variable denoting an invalid NvSciStreamCookie.

Definition at line 101 of file nvscistream_types.h.

◆ NvSciStreamMajorVersion

const uint32_t NvSciStreamMajorVersion = 4U
static

NvSciStream major version number.

Definition at line 73 of file nvscistream_types.h.

◆ NvSciStreamMinorVersion

const uint32_t NvSciStreamMinorVersion = 2U
static

NvSciStream minor version number.

Definition at line 76 of file nvscistream_types.h.

◆ NvSciStreamPacket_Invalid

const NvSciStreamPacket NvSciStreamPacket_Invalid = 0U
static

Constant variable denoting an invalid NvSciStreamPacket.

Definition at line 94 of file nvscistream_types.h.