Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/sys_arch/mme.html on line 1
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/sys_arch/mme.html on line 1
Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/sys_arch/mme.html on line 8
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/sys_arch/mme.html on line 8
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.
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:
- transport media systems
- in-seat entertainment systems
- medical device imaging and sound monitoring units
- industrial control systems
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:
- designing and building the best possible user interface (HMI)
- implementing simple playback functionality such as track session creation, “play”, “next”, “pause” etc.
- configuring audio and video output
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:
- device and mediastore insertion and removal — HDD, CD, DVD, USB key with media, etc.
- mediastore synchronization — find, itemize, extract, and manage media content and metadata
- input and output media connection management
- extensible support for specialized consumer devices, as well as for hardware offload to digital signal processors (DSPs)
|
For a more in-depth description of the MME architecture, see Introduction to the MME. |
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.
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:
- detection of devices, and integration of content from static and dynamic media sources: drives, external players, USB stores, iPods, networks
- media stack and protocol implementations for diverse protocols: iPod Access Protocol, MTP, etc., many with DRM requirements
- management of different media filesystem and stream formats: DOS FAT32, UDF 2.01, etc.
The MME's mediastore content-management capabilities include:
- media metadata extraction and storage — tags, third-party metadata, cover art, etc.
- media content browsing and searching
- playlist extraction and custom playlist creation
The MME's media playback and recording capabilities include:
- media content recording, copying and ripping
- media stream processing:
- a flexible plugin architecture for filters that decrypt, parse, decode, encode and encrypt media data streams
- a transparent communication mechanism to external codecs for flexible HW/SW partitioning of filter functionality
- media stream rendering and deployment:
- route to output devices (displays, amplifiers, headphones, etc.)
- store registered and encoded media data to storage device (HDD)
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:
- media transport, rendering and control — control of playback, and of aspects of media rendering such as volume, brightness, and playback modes (mme)
- notification — receiving information about the status of media, devices and operations; and effecting changes to media library content (mme)
- navigation — browsing media devices that support internal navigation, such as a DVD menu system or an iPod (mme, qdb, or both)
- database capabilities — searching, sorting, organizing, and updating of media information and metadata (qdb)
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:
- flexibility — developers using the MME to build multimedia products can easily configure the MME and its individual resource managers to meet their specific needs.
- easy deployment — multimedia applications build with the MME can be deployed on a single processor, or on a distributed network of processors with no changes to their application code.
- reliability — the MME's resource managers all have their own failure and restart; a resource manager failure doesn't mean a system failure.
- portability — all MME components offer standard interfaces, such as POSIX or SQL.
The MME resource managers can be placed into these groups:
- high-level resource managers that provide the interfaces to HMI client applications
- low-level resource managers that don't normally interface with HMI client applications
The resource managers that provide the interfaces to multimedia client applications are:
- the qdb database engine
- the mme multimedia engine
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:
- the io-fs resource managers that provide access to media devices and mediastores
- the io-media resource managers that are responsible for media stream processing and rendering, for managing complex media streams, and for performing tasks that include CD and DVD playback, file playback, media copying, and media recording
Other low-level resource managers that are not specific to the MME, but which the MME uses, include:
- the devb resource managers, such as devb-eide and devb-atapi, that provide access to data on block-oriented devices and filesystems
- the io-usb resource manager that provides access to media on USB stores
- io-audio, io-display, and other resource managers that provide an abstraction of media output devices
Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/sys_arch/mme.html on line 259
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/sys_arch/mme.html on line 259