Streaming#
Combining the buffer and synchronization functions from the previous chapters allows you to develop applications that stream sequences of data from one rendering component to another, building an efficient processing pipeline. For developers who wish to have complete control over the process, no additional functionality is required.
However, use cases for streaming can become quite complex, making the details difficult to manage. This is particularly true when portions of the pipeline are provided by independent developers who must coordinate the stream management. NVIDIA therefore provides an additional NvSciStream library layered on NvSciBuf and NvSciSync with utilities for constructing streaming application suites. For additional information, see NvSciStream
APIs in the NVIDIA DriveOS API Reference.
- A Simple Stream
- More Complex Streams
- Data Packets
- Building Block Model
- Stream Creation
- NvSciBuf and NvSciSync Initialization
- NvSciIpc Initialization
- NvSciEventService Initialization
- Block Creation
- Configure Block to Use NvSciEventService
- Configure NvSciStreamBlock to Use External NvSciEventService for Internal Events
- User-defined Endpoint Information
- Block Connection
- Comparison with EGL
- Simple Example
- Event Handling
- Resource Creation
- Frame Production
- Frame Consumption
- Special Note Regarding Cache Coherence
- Disconnect Dead Consumer
- Late-Attach/Re-Attach Consumer
- Teardown
- Safety Validation
- NvSciStream Sample Application
- NvSciStream Performance Test Application