Caution: This version of this document is no longer maintained. For the latest documentation, see



The QNX Aviage multimedia suite consists of several packages, including the multimedia core package, codec packages that provide WMA9, MP3, and AAC decoding and encoding, and software packages that support iPod and PlaysForSure media players.

The major component of the multimedia core package is the MultiMedia Engine (MME). The MME provides the main interfaces for configuring and controlling your multimedia applications. Designed to run on the QNX Neutrino OS, which can be installed on a wide variety of hardware platforms, the MME provides consumer-product developers a component-based solution that reduces the work required to develop and deliver multimedia products to their end customers.

MME components

High-level view of the MME components.

The MME is designed to simplify and speed development of end-user applications that require device and filesystem access, content synchronization, playback control, and audio and graphics delivery. It handles multiple clients, sessions and streams, and abstracts hardware and protocol dependencies from other functional areas. It provides integration with a wide variety of media sources, including those requiring Digital Rights Management (DRM), and provides a high-level API for media transport control, device control and browsing, and media library management; and it automatically detects media devices and integrates their contents into a general database view. The applications the MME can be used to develop include:

The MME lets Human-Machine Interface (HMI) developers apply their talents to designing the best possible user experience instead of focusing on managing the media. When you build a client application that uses the MME, you can focus on:

You need to know about the configurations for your system's storage devices, but you can leave a long list of responsibilities to the MME:

Note: For a more in-depth description of the MME architecture, see Introduction to the MME.

MME functional areas

The MME is designed to bring together media management and playback control, providing a single, consistent interface for client applications. Internally, it has the broad functional areas described below.

Mediastore access

Mediastores are any source for multimedia data, including hard drives, DVDs, CDs and media devices such as iPods or MP3 players. The MME's mediastore access capabilities include:

Mediastore content management

The MME's mediastore content-management capabilities include:

Media playback and recording

The MME's media playback and recording capabilities include:

The MME interface

The MME API includes a primary interface and a secondary interface. The primary interface (mme) offers the media management functionality required of a multimedia middleware platform, while the secondary interface (qdb) offers the required database functionality. Together the primary and secondary interfaces offer multimedia applications a consistent API that provides:

Component-based architecture

The MME is comprised of several independent components. Each MME component executes independently as a Neutrino resource manager process. A resource manager is a user-level server process that accepts messages from other programs and, optionally, communicates with hardware.

The MME's component-based architecture delivers:

The MME resource managers

The MME resource managers can be placed into these groups:

The resource managers that provide the interfaces to multimedia client applications are:

MME resource managers

MME architecture showing mme and qdb resource managers.

Both the mme and the qdb resource managers support device-specific functionality within a POSIX framework. Together they make up the interface to HMI client applications, providing them with an API to control, browse, copy or rip, and play media, as well as the ability to monitor and manage multimedia processing. The mme controls the low-level resource managers that directly access and process media data.

Multimedia client applications don't normally interface with the MME's lower-level resource managers. You may nonetheless find it useful to know about these resource managers and understand what they do, especially if you are tuning your system configuration. The MME's low-level resource managers include:

Other low-level resource managers that are not specific to the MME, but which the MME uses, include: