QNX® Aviage MM Suite — Build 20.18.0 Release Notes

Date of this edition: August 21, 2009

Target OS: This software is compatible with target systems running QNX® Neutrino® 6.4.1.

Host OS: You must have already installed the QNX® Software Development Platform (SDP) 6.4.1 as a self-hosted QNX Neutrino system, or on one of the following hosts:

Version Microsoft Windows Linux
6.4.1 Windows Vista, Vista 64-bit, XP SP2 or SP3, or 2000 SP4 Linux Red Hat Enterprise Workstation 4.0 or 5.0, Red Hat Enterprise Server 5.1 64-bit, Red Hat Fedora Core 10, Ubuntu 8.0.4 LTS or 8.10, or SUSE 11

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 release?

This release contains libraries, binaries, and source code for sample applications for the Multimedia Engine running on QNX Neutrino.

The main archive, mme_build20.18.0_aug21_09.zip, contains the following:

patch-640-0315-mmedia-08-17-1516.tar
MME core product binaries.
patch-640-0315-extra-drm-08-17-1516.tar
MME binaries for DRM support.
patch-640-0315-extra-dvd-08-17-1516.tar
MME binaries for software DVD player support.
patch-640-0315-extra-ipod-08-17-1516.tar
MME binaries for iPod support.
patch-640-0315-extra-pfs-08-17-1516.tar
MME binaries for PFS device support.
patch-640-0315-extra-wma9-08-17-1516.tar
MME software codec for WMA files.
patch-640-0315-extra-zune-08-17-1516.tar
MME library for Zune support.
patch-640-0999-extra-aac-08-17-1516.tar
MME software codec for AAC files.
patch-640-0999-extra-codecengine-07-17-1251.tar
QNX Codec Engine to support QNX multimedia applications on OMAP3530 (Beagle) platforms.
patch-640-0999-extra-ipp-08-17-1516.tar
MME software codec for H.264 files.
patch-640-0999-extra-mp3-08-17-1516.tar
MME binaries for MP3 support.

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 milestone release has not been tested on Jacinto platforms.

Notices

This release includes changes and upgrades that require changes to your enviroment:

MME requires Neutrino 6.4.1

Starting with the Aviage MME 1.3 build 20.18.0 release, the MME requires a Neutrino 6.4.1 system.

Upgrade your system to Neutrino 6.4.1

Changed installation procedure

QNX Neutrino 6.4.1 introduced the applypatch utility to simplify patch installation.

Action:

To apply this patch:

  1. Download and install the applypatch patch: patch-640-1523-applypatch.tar.
  2. Follow the instructions in the Installation Note included with this release.

For information about applypatch, see the Neutrino RTOS Utilities Reference.

Image pre-processing patch

A new patch is available that enables you to select the quality of JPEG images when performing image pre-processing. The patch is available in the archive patch-640-1383-img-quality.tar, under the Foundry27 Multimedia project's Downloads tab.

For more information, see “Image pre-processing” in the MME Configuration Guide chapter Configuring Metadata Support.

New dependencies

With the implementation of MusicBrainz online metadata support in this release, mme has two new dependencies:

You must ensure that these binaries are on your target even if you do not plan to use the MusicBrainz feature. If these binaries are not on your targer, mme will not start.

See also MusicBrainz web lookup below.

Documentation

This release includes the following preliminary MME 1.3 documentation:

mme_patch_build20.18.0_inst.html
The installation note. Please read it before installing.
mme_patch_build20.18.0_rel.html
The release notes (this file).
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
New function to change MME connection type. mme_set_connect_flags() below.
New event to indicate that output has been attached to or detached from a zone. New MME_EVENT_ZONEOUTPUT_CHANGE event below.
New support for MusicBrainz web metadata lookup. MusicBrainz web lookup below, and “MusicBrainz support” in the MME Configuration Guide chapter Configuring Metadata Support.
New support for .m3u8 (UTF-8) playlists. “Supported playlist formats” in the MME Developer's Guide chapter Playlists, and “Filtering synchronization by file type” in the MME Configuration Guide chapter Configuring Media Synchronizations.

mme_set_connect_flags()

Change the MME connection flags

Synopsis

#include <mme/mme.h>

int mme_set_connect_flags( mme_hdl_t *hdl,
                           uint32_t flags );

Arguments

hdl
An MME connection handle.
flags
A flag to set the MME connection behavior. For more information, see mme_connect() in the MME API Library Reference.

Library

mme

Description

The function mme_set_connect_flags() sets the MME connection flags for the current connection. It can be used to switch the connection mode between synchronous and asynchronous, as well as between blocking and non-blocking.

This function can be used to change the MME connection mode to handle cases where behavior or information not offered by the preferred connection method is needed.

For example, not all MME functions deliver events to indicate that they have completed execution. Thus, if the preferred connection mode is asynchronous, the client application has no way of knowing when a call to one of these functions has run to completion.

Now, with the implementation of mme_set_connect_flags(), if the client application must know when a function has completed execution, it does not need a second connection, in synchronous mode. It can simply call mme_set_connect_flags() to make the current connection synchronous, call the required function, then when the function returns, call mme_set_connect_flags() a second time to reset the current connection mode to asynchronous.

Events

None delivered.

Blocking and validation

This function fully validates all data; all arguments are checked before the call returns. The operation is complete when the call returns.

Returns

0
Success.
-1
An error occurred (errno is set).

New MME_EVENT_ZONEOUTPUT_CHANGE event

The MME delivers the event MME_EVENT_ZONEOUTPUT_CHANGE when any output is attached to or detached from a zone.

Event data

The structure mme_zoneoutput_change_t with the ID of the changed zone, the ID of the output that was attached or detached, the type of operation (attach or detach) and, as appropriate, either EOK or an error code.

Database tables updated

The following table is updated:

mme_zoneoutput_change_t

Data for MME_EVENT_ZONEOUTPUT_CHANGE events

Synopsis

typedef struct mme_zoneoutput_change_event {
    uint64_t    zoneid;
    uint64_t    outputid;
    uint32_t    operation;
    uint32_t    error;
} mme_zoneoutput_change_t;

The structure mme_zoneoutput_change_event includes at least the members described in the table below.

Member Type Description
zoneid uint64_t The ID of the zone which has changed.
outputid uint64_t The ID of the output that was attached or detached.
operation uint32_t A flag identifying whether the output was attached or detached; can be set to eitherMME_ZONEOUTPUT_ATTACH (0x00) or MME_ZONEOUTPUT_DETACH (0x01).
error uint32_t Set to EOK if the operation was successful, or to and errno if an error occured fulfilling the attach or detach request.

MusicBrainz web lookup

This release introduces support for MusicBrainz online metadata services for CDDA mediastores. This service links to the Musicbrainz web site, and looks up and retrieves CD metadata, such as album and artist, for insertion in the MME database during synchronization, making it available for display to the user.

If the MusicBrianz metadata service is unable to provide metadata for a CD, the MME will attempt to use the next-highest rated metadata service. The mediastores table's metadatapluginid field indicates the source of the metadata.

For information about configuring the MME to use this service, see the MME Configuration Guide chapter Configuring Metadata Support.

Support for genre metadata, cover art, and the MusicBraiz embedded service are not provided at this time.


Deprecated and removed features

None in this release.

QNX Aviage Multimedia Core 1.3.0 binaries

The standard QNX Aviage Multimedia Suite binaries are delivered in the patch-640-0315-mmedia-08-17-1516.tar patch. They include the binaries, DLLs, and SQL configuration files required to run the QNX Aviage Multimedia Core 1.3.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]/:

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.3.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 are running QNX SDP on a Linux or Windows host, you can compile the sample applications using the IDE or the command-line tools. If you are running QNX SDP on a Neutrino host, 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.3.0

The patch patch-640-0999-extra-aac-08-17-1516.tar contains the binaries for AAC codec support:

QNX Aviage Multimedia Software Codec for MP3 1.3.0

The patch patch-640-0999-extra-mp3-08-17-1516.tar contains the binaries for MP3 codec support. They include the following files:

QNX Aviage Multimedia Software Codec for WMA9 1.3.0

The patch patch-640-0315-extra-wma9-08-17-1516.tar contains the binaries for WMA codec support. They include the following files:

QNX Aviage Multimedia Interface for iPod 1.3.0

The patch patch-640-0315-extra-ipod-08-17-1516.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.3.0

The patch patch-640-0315-extra-pfs-08-17-1516.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.3.0

The patch patch-640-0315-extra-drm-07-16-1239.tar contains binaries for DRM support. They include the following files:

QNX Aviage Multimedia Interface for Zune 1.3.0

The patch patch-640-0315-extra-zune-08-17-1516.tar contains a binary for Zune support:

QNX Aviage Multimedia Software DVD Player 1.3.0

The patch patch-640-0315-extra-dvd-08-17-1516.tar contains the binaries for the software DVD player. They include the following files (x86 targets only):

QNX Aviage Multimedia Interface for TI OMAP Codec Engine

The patch with the binaries for the QNX Aviage Multimedia Interface for TI OMAP Codec Engine is patch-640-0999-extra-codecengine-07-17-1251.tar. They include the following file:

They also include the following MME component, located under lib/mmedia/filters/decoders/:

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

The patch with the binary for H.264 video codec support is patch-640-0999-extra-ipp-08-17-1516.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 the QNX Software Development Platform guide or visit our website, www.qnx.com.