Updated: October 26, 2022

The QNX additions to the OpenMAX AL API let you extract, transcode, play, and record audio and video content. Your applications can write raw or encoded content to buffer queues to send it to the underlying media engine for processing, and read content after it's been processed by the media engine (from different buffer queues) and then direct it to the output.

The functionality for reading and writing buffers and handling buffer events is defined in three interfaces that aren't part of the standard specification from the Khronos Group. The XAQNXBufferQueueSourceItf interface provides functions for writing buffers containing audio or video data items to an OpenMAX source, and for defining a callback to handle buffer events. The XAQNXVideoBufferQueueSourceItf interface provides similar functionality for writing buffers containing video data generated by the Screen Graphics Subsystem. Finally, the XAQNXBufferQueueSinkItf interface lets applications read the media data sent to an OpenMAX sink as well as information about the data formatting.

The QNX-extended API also supports logging.

Note: It's not safe to call these API functions in all situations. The safety status for these functions is:
  • Cancellation - No
  • Interrupt - No
  • Signal - No
  • Thread - Yes; the QNX media engine supports the thread-safe mode of the Khronos OpenMAX AL API, and the QNX extensions are thread-safe