OutputStream type that writes to application-managed buffers (STREAM_TYPE_BUFFER).
Buffer-based OutputStream objects maintain a set of Buffer objects that are created by the application to wrap native image buffers allocated and owned by the application. These Buffer objects do not take possession of the native resources, which continue to be owned by the application; rather, they are used to control data access between libargus (as capture results are written) and the application (as the capture results are read).
Every Buffer stream is associated with a single BufferType, which corresponds to the native resource type that is being wrapped by its Buffers. This BufferType dictates which interfaces will be supported by the OutputStream and the child BufferSettings and Buffer objects created by it, and is immutable after stream creation.
In addition to image data, Buffer objects may be optionally used to transport sync information between libargus and the application in order to support hardware level synchronization and pipelining across the API boundary. The type of sync information, and the sync interfaces supported by a Buffer, is controlled by the SyncType.
Data Structures | |
class | Argus::IBufferOutputStream |