Date of this edition: January 19, 2009
Target OS: This software is compatible with target systems running QNX® Neutrino® 6.4.0.
Host OS: You must have already installed the QNX® Momentics® development suite 6.4.0 as a self-hosted QNX Neutrino system, or on one of the following hosts:
Version of QNX Momentics | Microsoft Windows | Linux |
---|---|---|
6.4.0 | Windows Vista, Vista 64-bit, XP SP2 or SP3, or 2000 SP4 | Linux Red Hat Enterprise Workstation 4 or 5, Red Hat Enterprise Server 5.1 64-bit, Red Hat Fedora Core 6 or 7, Ubuntu 6.0.6 LTS or 7, or SUSE 10 |
![]() |
For information on installing this package, see the Installation Note. |
Throughout this document, you may see reference numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, please quote the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.
![]() |
The QNX Aviage Multimedia Suite:
|
This package contains libraries, binaries, and source code for sample applications for the Multimedia Engine running on QNX Neutrino.
The main archive, mme_build20.12.0_jan16_09.zip, contains the following:
![]() |
|
As of this release the Aviage MME releases require a Neutrino 6.4 system.
This release includes changes and upgrades that make it incompatible with older releases, as follows:
Any applications that link against the SQLite library directly must be recompiled.
You must recompile and relink all client applications to use this release.
You must change the <MDS> element in your configuration file to <MDP>. See Metadata plugins replace metadata synchronizers below.
![]() |
|
This release includes the following preliminary MME 1.2 documentation:
This release introduces many new features and improvements, and deprecates some features available in older releases:
The table below lists the most significant new features and updates that were implemented in this release. For more complete information about these and other features in this release, please refer to the MME documentation.
Feature | See |
---|---|
Changes to synchronization behavior and options | “Changes to synchronization behavior” below, the MME Developer's Guide chapter Synchronizing Media, and “Automatic and on-demand synchronizations” in the MME Configuration Guide chapter Configuring Media Synchronizations. |
Metadata extraction API for artwork | The MME Developer's Guide chapter Metadata and Artwork, and the MME API Library Reference. |
Image metadata pre-processing | The MME Developer's Guide chapter Metadata and Artwork. |
Metadata rating support | “Metadata ratings” in the MME Developer's Guide chapter Metadata and Artwork. |
Variable length events | The MME API Library Reference chapter MME Events. |
New, changed and removed database tables | “MME Database Schema Reference” in the MME API Library Reference. |
Support for playing MP3 media streamed for the internet | “Working with internet streamed media” in the MME Developer's Guide chapter Working with Streamed Media and with CD Changers. |
New logging level functions and command-line option | The mme_*_logging() functions in the MME API Library Reference, and mme in the MME Utilities Reference. |
New API for getting and setting external device configuration options | “Getting and setting external device options” in the MME Developer's Guide chapter External Devices, CD Changers and Streamed Media. See also “Upcoming changes to the <interface> element” below. |
Option for setting iPod preferences | “Preferences” in the MME Utilities Reference chapter iofs-ipod.so. |
Album artwork support for iPods | “Retrieving artwork from iPods” in the MME Developer's Guide chapter Working with iPods. |
iPod capabilities reporting | “Checking for optimal connections” in the MME Developer's Guide chapter Working with iPods. |
New mediacopier function for specifying strings for unknown metadata | mme_mediacopier_add_with_metadata() in the MME API Library Reference. |
io-media now uses DLLs | “io-media DLLs” below, and the MME Utilities Reference chapter io-media-generic. |
io-media QuickMetadataScan resource, and other configuration and behavior features | The MME Utilities Reference chapter io-media-generic. |
io-media default configuration files are now shipped with the release | “Default io-media configuration files” below. |
In this release the <interface> element returned with the device configuration by mme_device_get_config() uses sub-elements for the different device and connection types. For example, for a an iPod connected through a USB transport, the <interface> element and sub-elements might look as follows:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <device api_version="1"> <interface> <usb path="1" devno="14" vendorid="0x5ac" productid="0x5ac"/> </interface> ...
In the next release:
Thus, the information in the example above will be presented as follows:
<interface type="usb" path="/dev/usb1" devno="14" vendorid="0x5ac" productid="0x5ac"/>
An iPod connected through a serial transport will have an <interface> element with the type attribute set to “serial”:
<interface type="serial" path="/dev/ser1" />
A Bluetooth device will have an <interface> element with the type attribute set to “bluetooth”:
<interface type="bluetooth" path="/dev/wms/player1" />
![]() |
The MME Developer's Guide describes the <interface> element as it will be in the next release. |
This release implements some changes to synchronizations:
In previous releases, CDDA mediastore synchronization passes 1 and 2 were combined in a single pass.
Starting with this release, CDDA synchronizations no longer combine these two passes. The MME now perform the files synchronization pass and the metadata synchronization pass separately for CDDA mediastores, just as it does for other mediastore types.
This change allows configurable fallback through multiple CDDA metadata synchronizers, such as Gracenotes, Musicbrainz, CDTEXT, and none.
In earlier releases, if a directed synchronization was pointed to a folder that no longer existed, but was in the MME's database, the synchronization would fail.
With this release, a directed synchronization does not fail when it is unable to find a folder that is in its database. Instead, it deletes the folder and its contents from the MME database.
This change means that the client application can remove a folder from a mediastore, then use directed synchronization to remove this folder from the MME database.
As part of the MME's improved metadata handling, in this release (with one exception) metadata plugins replace the metadata synchronizers of previous releases. This change means that you must change the <MDS> element in mme.conf into an <MDP> element. For example:
<MDP> ... <dvdifo skipdurationzero="true"> <dvdaudio> <devicefid create="true"/> <chapterfids create="true"/> </dvdaudio> ... <cdtext rating="80"/> ... </MDP>
![]() |
The Gracenote client mdp-gracenote_client.so replaces mds-gracenote_client.so. |
Starting with this release io-media-generic no longer links statically to filters. It therefore now requires more DLLs to be present that it did when it linked statically to filters. The following filters and streamers are now required by the io-media default configuration:
The default io-media configuration loads some filters and streamers permanently into memory; other filters are loaded and unloaded dynamically when necessary. Some filters are loaded permanently because they are needed by the majority of graphs; if any of these required filters are missing, there is a high probability that io-media will not be able to play any media. These filters are, therefore, specified as required by the default configuration; if any of these filters is missing, io-media will exit at startup.
Some other filters are loaded permanently because they might be used for potentially high-bandwidth operations that could be significantly slowed down by having to load and unload filters. These filters typically support a particular operation or media type; if they're missing, io-media will not be able to play some media but will have no problems playing other media. Some of these filters are shipped in a separate, optional package, and may not be present on some targets. These filters are flagged as optional in the default configuration; if they are missing, io-media logs a warning to the system log, but does not treat the situation as a fatal error.
You can change the minimum DLL set that io-media maintains in memory in order to make optimal use for your environment of the system resources you have available. Generally, the more DLLs in memory, the better the performance but the greater the memory required.
The io-media configuration file includes multiple keepdll elements under the mmf module's module-options element. Each keepdll element determines if the named filter or streamer is in the set or is optional.
The default setting is required: if it the DLL is missing, log an error and exit. Thus, in the example below:
module-options { ... keepdll { name = "tmpfile_streamer" optional = yes } keepdll { name = "stream_reader" } ... }
Starting with this release, to facilitate updating io-media default configuration files are included as a reference in the release package under etc/.
These files have the format io-media-version.cfg. For example, io-media-generic.cfg is the configuration file for io-media-generic.
The table below lists the features and capabilities that have be deprecated or removed from this release.
Feature | Status |
---|---|
mme_freephoto() and mme_getphoto() | Removed: see “New metadata extraction API” under “New features”above. |
library_extra table | Removed. See “library_extra table” below. |
iPod “compat” mode | Removed. |
qdb_getdbsize() | Soon to be deprecated and replaced by another function. Note that the qdb_getdbsize() function's free_pages parameter is now always returned as 0. |
MME performance has been improved by the integration of the library_extra table columns into the library table. These columns are:
If the removal of the library_extra will cause problems with your projects, as a temporary measure until you have removed all references to the library_extra from your applications, you can uncomment the following “CREATE VIEW” line in mme_library.sql to create an SQL view that mimics the library_extra table:
-- CREATE VIEW library_extra AS select fid, last_played, fullplay_count, duration, copied_fid, playable, permanent FROM library;
![]() |
In order to benefit from the performance improvements gained by the integration of the library_extra table's columns into the library table, you should remove references to the removed table from your applications as soon as possible. |
The standard QNX Aviage Multimedia Suite binaries are delivered in the patch-630SP2-0315-mmedia-mm-dd-hhmm.tar pathc. They include the binaries, DLLs, and SQL configuration files required to run the QNX Aviage Multimedia Core 1.2.0 and support binaries. Binaries for features requiring special licenses are listed under “Binaries requiring special licenses” below.
These files are installed under target/qnx6/, under the subdirectories for the supported target platform:
These SQL support files are installed under target/qnx6/sql/:
These configuration files are installed under target/qnx6/etc/:
The following files are included under target/qnx6/[target]/:
The following files are included under target/qnx6/usr/include/:
In addition to the files listed above, target/qnx6/usr/include/ includes the libxml directory with third-party header files for libxml2.
Sample applications with their source code and required headers and libraries are delivered in the QNX Aviage Multimedia Core 1.2.0 patch patch-630SP2-0315-mmedia-mm-dd-hhmm.tar.
The sample source code is installed under target/qnx6/examples/*. These applications illustrate various features and functionality provided by the MME. You can view command-line options for these applications by typing “use” then the application name. For example: use mmecli will list the command-line options for mmecli.
The sample applications are:
If you have QNX Momentics PE, you can compile the sample applications using the IDE or the command-line tools; if you have SE, you have to use the command-line tools.
Binaries for features requiring special licenses are delivered in individual patches.
The patch patch-630SP2-0999-extra-aac-mm-dd-hhmm.tar contains the binaries for AAC codec support:
The patch patch-630SP2-0315-extra-mp3-mm-dd-hhmm.tar contains the binaries for MP3 codec support. They include the following files:
The patch patch-630SP2-0315-extra-wma9-mm-dd-hhmm.tar contains the binaries for WMA codec support. They include the following files:
The patch patch-630SP2-0315-extra-ipod-mm-dd-hhmm.tar contains the binaries for iPod support, and a sample application. They include the following files:
![]() |
This package is designed for use with the QNX Aviage Multimedia Core package. If you intend to use this package independently of the Multimedia Core, please contact your QNX sales support team. |
The patch patch-630SP2-0999-extra-pfs-mm-dd-hhmm.tar contains the binaries for PFS device support. They include the following file:
![]() |
This package is designed for use with the QNX Aviage Multimedia Core package. If you intend to use this package independently of the Multimedia Core, please contact your QNX sales support team. |
The patch patch-630SP2-0315-extra-wma9-mm-dd-hhmm.tar contain binaries for DRM support. They include the following files:
Binaries for packages requiring distribution licenses acquired directly from a third party are delivered separately.
The patch with the binary for H.264 video codec support is patch-630SP2-0590-extra-ipp-632-mm-dd-hhmm.tar. This package contains:
![]() |
|
At time of release, the issues listed below were identified and under investigation. Check the QNX web site (www.qnx.com) for the latest information.
Workaround: When installing on co-existing baselines, before installing the MME, check for and remove any instances of the MME previously installed on the Neutrino baseline where you are performing the current installation.
Workaround: After uninstallation, manually reset the permissions for libaoi.so.1 to rwxrwxr-x.
Workaround: Use a high speed port for the iPod connection.
Workaround: the client application should enforce a brief pause when requesting track changes on these devices.
Workaround: Always configure the MME so that the maximum memory permitted for synchronization operations is less than the maximum RAM size configured for tmpfs.
Workaround: After a mediastore state change event, check the mediastore IDs (msid) for the tracks in a track session, and recreate the track session if needed.
During testing of playback from iPod devices, connection of a second device that takes a long time to access or scan files has occasionally produced audible gaps in the playback, or reports of buffer underuns. The cause of this behavior may be the test environment configuration, but this hypothesis has not been confirmed.
If you have any questions, comments, or problems with a QNX product, please contact Technical Support. For more information, see the How to Get Help chapter of the Welcome to QNX Momentics guide or visit our website, www.qnx.com.