QNX® Aviage Multimedia Suite 1.2.0 Alpha 20.12.0 Release Notes

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

Note: For information on installing this package, see the Installation Note.

Contents

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.


Note: The QNX Aviage Multimedia Suite:
  • is compatible with generic filesystems, such as FAT32, ISO9660, and others provided with the QNX Neutrino operating system or with a QNX board support package. Media-specific filesystems, such as for Apple iPod devices and Microsoft PlaysForSure devices, are provided in the relevant QNX Aviage Multimedia Suite packages.
  • uses QDB, QNX's embeddable SQL database server that is based on the SQLite project (http://www.sqlite.org) and supports most SQL-92 syntax. For more information about what SQL-92 syntax SQLite doesn't support, see SQL Features That SQLite Does Not Implement on the SQLite web site.

What's in this package?

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:

patch-630SP2-0315-mmedia-01-15-1650.tar
MME core product binaries.
patch-630SP2-0999-extra-aac-01-15-1650.tar
MME software codec for AAC files.
patch-630SP2-0315-extra-drm-01-15-1650.tar
MME binaries for DRM support.
patch-630SP2-0315-extra-mp3-01-15-1650.tar
MME binaries for MP3 support.
patch-630SP2-0315-extra-ipod-01-15-1650.tar
MME binaries for iPod support.
patch-630SP2-0999-extra-ipp-01-15-1650.tar
MME software codec for H.264 files.
patch-630SP2-0315-extra-pfs-01-15-1650.tar
MME binaries for PFS device support.
patch-630SP2-0315-extra-wma9-01-15-1650.tar
MME software codec for WMA files.
patch-630SP2-0999-extra-mp3-01-15-1650.tar
MME software codec for MP3 files.

Note:
  • You should replace existing .sql and configuration files with the files included in this release.
  • Benchmarks for this release are available on request.
  • This alpha release has not been tested on Jacinto platforms.

 

Notices

MME requires Neutrino 6.4

As of this release the Aviage MME releases require a Neutrino 6.4 system.

Imcompatibility with older MME releases

This release includes changes and upgrades that make it incompatible with older releases, as follows:


Caution:
  • A client application compiled against QNX Aviage Multimedia Suite (MME) 1.0.n must be recompiled in order to work with QNX Aviage Multimedia Suite (MME) 1.2.0.
  • You must update all system components to QNX Aviage Multimedia Suite 1.2.0. Alpha 20.12.0. Your environment must not contain both 1.0.n and 1.2.0 multimedia components.

Documentation

This release includes the following preliminary MME 1.2 documentation:

mme_patch_build20.12.0_inst.html
The installation note. Please read it before installing.
mme_patch_build20.12.0_rel.html
The release notes (this file).
ReleaseNotesMMF.20.x-7.mht
Release notes for the Margi component.
mme_intro.pdf
The Introduction to the MME, which includes:
mme_dev_guide.pdf
The MME Developer's Guide.
mme_api_ref.pdf
The MME API Library Reference.
mme_utils_ref.pdf
The MME Utilities Reference.
mme_config_guide.pdf
The MME Configuration Guide.
mme_tn_ref.pdf
MME Technotes.
qdb_dev_guide.pdf
The QDB Developer's Guide.

What's new in this release

This release introduces many new features and improvements, and deprecates some features available in older releases:

New features

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.

Upcoming changes to the <interface> element

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" />

Note: The MME Developer's Guide describes the <interface> element as it will be in the next release.

Changes to synchronization behavior

This release implements some changes to synchronizations:

CDDA synchronizations no longer combine passes

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.

Directed synchronizations remove missing folders from MME database

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.


Metadata plugins replace metadata synchronizers

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>

Note: The Gracenote client mdp-gracenote_client.so replaces mds-gracenote_client.so.

io-media DLLs

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.

Configuring the set of required filters and streamers

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"
    }
    ...
}

Default io-media configuration shipped with the release

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.


Deprecated and removed features

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 featuresabove.
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.

library_extra table

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;

Note: 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.

QNX Aviage Multimedia Core 1.2.0 binaries

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/:

Headers and libraries

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

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.

Sample source code

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 packages requiring special licenses

Binaries for features requiring special licenses are delivered in individual patches.

QNX Aviage Multimedia Software Codec for AAC 1.2.0

The patch patch-630SP2-0999-extra-aac-mm-dd-hhmm.tar contains the binaries for AAC codec support:

QNX Aviage Multimedia Software Codec for MP3 1.2.0

The patch patch-630SP2-0315-extra-mp3-mm-dd-hhmm.tar contains the binaries for MP3 codec support. They include the following files:

QNX Aviage Multimedia Software Codec for WMA9 1.2.0

The patch patch-630SP2-0315-extra-wma9-mm-dd-hhmm.tar contains the binaries for WMA codec support. They include the following files:

QNX Aviage Multimedia Interface for iPod 1.2.0

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:


Note: 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.

QNX Aviage Multimedia Interface for PlaysForSure 1.2.0

The patch patch-630SP2-0999-extra-pfs-mm-dd-hhmm.tar contains the binaries for PFS device support. They include the following file:


Note: 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.

QNX Aviage Multimedia Interface for WMDRM10-ND 1.2.0

The patch patch-630SP2-0315-extra-wma9-mm-dd-hhmm.tar contain binaries for DRM support. They include the following files:

Binaries for other packages

Binaries for packages requiring distribution licenses acquired directly from a third party are delivered separately.

QNX Aviage Multimedia Software Codec for H.264 1.2.0

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:


Note:

Known issues

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.


Technical support

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.