Buffer data types

Updated: April 19, 2023

The QNX-extended API defines data structures to represent the buffers used for reading and writing media data as well as the data items within these buffers.

The XAQNXBuffer structure stores pointers to a buffer's media data and to its context (which contains state information), the handle of the Screen buffer (for video data), the total bytes available, the total bytes used, and information about the individual data items. This last information is stored in an array of XAQNXBufferItem structures, with each structure storing an item's data pointer, size, and type. The item type is an XAQ_ITEMKEY_* constant, which indicates what the data pointer refers to.

Metadata fields describing the buffer itself are kept in an XAQNXBufferInfo structure, which is used to set buffer information at the source and get buffer information at the sink.

The API also defines the XADataLocator_QNXBufferQueue structure, which provides metadata, such as the number of buffers in the queue, to a source or sink.