Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX® Aviage Multimedia Suite 1.0 Release Notes

QNX® Aviage Multimedia Suite 1.0 Release Notes

Date of this edition: April 30, 2009

Target OS: This software is compatible with target systems running QNX® Neutrino® 6.3.0 SP2, 6.3.0 SP3, or 6.3.2.

Host OS: You must have already installed the QNX® Momentics® development suite 6.3.0 SP2, 6.3.0 SP3, or 6.3.2 as a self-hosted QNX Neutrino system, or on one of the following hosts:

Version of QNX Momentics Microsoft Windows Linux
6.3.0 SP3 Windows Vista, XP SP2, 2000 SP4, or NT SP6a Linux Red Hat 8 or 9, Red Hat Enterprise WS 3 or 4, Red Hat Fedora Core 3 or 4, Debian 3.1, or SUSE 10
6.3.2 Windows Vista, XP SP2, or 2000 SP4 Linux Red Hat Enterprise Workstation 4 or 5, Red Hat Fedora Core 6 or 7, Ubuntu 6.0.6 LTS or 7.0.4, 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 available?

This release makes available installation packages for the standard QNX Aviage Multimedia Core 1.0.0 , and for components that support devices, media formats and functionality that require special licenses. These packages can be run on QNX Neutrino, Linux or Microsoft Windows platforms, and will install the QNX Aviage Multimedia Suite for the ARM, PPC, SHLE or x86 target platforms running QNX Neutrino 6.3.0 SP3 or 6.3.2. See “Host OS” and “Target OS” above for more detailed information about supported host and target platforms.

Installers

This section lists the installers included with this release, by host OS.

QNX Neutrino

  • QNX Aviage Multimedia Core 1.0.0 — mmedia-core-1.0.0-2007nnnnnnn-nto.sh
  • QNX Aviage Multimedia Software Codec for AAC 1.0.0 — mmedia-aac-1.0.0-2007nnnnnnn-nto.sh
  • QNX Aviage Multimedia Software Codec for MP3 1.0.0 — mmedia-mp3-1.0.0-2007nnnnnnn-nto.sh
  • QNX Aviage Multimedia Software Codec for WMA9 1.0.0 — mmedia-wma9-1.0.0-2007nnnnnnn-nto.sh
  • QNX Aviage Multimedia Interface for iPod 1.0.0 — mmedia-ipod-1.0.0-2007nnnnnnn-nto.sh
  • QNX Aviage Multimedia Interface for PlaysForSure 1.0.0 — mmedia-pfs-1.0.0-2007nnnnnnn-nto.sh
  • QNX Aviage Multimedia Interface for WMDRM10-ND 1.0.0 — mmedia-wmdrm10-nd-1.0.0-2007nnnnnnn-nto.sh

Linux

  • QNX Aviage Multimedia Core 1.0.0 — mmedia-core-1.0.0-2007nnnnnnn-linux.bin
  • QNX Aviage Multimedia Software Codec for AAC 1.0.0 — mmedia-aac-1.0.0-2007nnnnnnn-linux.bin
  • QNX Aviage Multimedia Software Codec for MP3 1.0.0 — mmedia-mp3-1.0.0-2007nnnnnnn-linux.bin
  • QNX Aviage Multimedia Software Codec for WMA9 1.0.0 — mmedia-wma9-1.0.0-2007nnnnnnn-linux.bin
  • QNX Aviage Multimedia Interface for iPod 1.0.0 — mmedia-ipod-1.0.0-2007nnnnnnn-linux.bin
  • QNX Aviage Multimedia Interface for PlaysForSure 1.0.0 — mmedia-pfs-1.0.0-2007nnnnnnn-linux.bin
  • QNX Aviage Multimedia Interface for WMDRM10-ND 1.0.0 — mmedia-wmdrm10-nd-1.0.0-2007nnnnnnn-linux.bin

Microsoft Windows

  • QNX Aviage Multimedia Core 1.0.0 — mmedia-core-1.0.0-2007nnnnnnn-win32.exe
  • QNX Aviage Multimedia Software Codec for AAC 1.0.0 — mmedia-aac-1.0.0-2007nnnnnnn-win32.exe
  • QNX Aviage Multimedia Software Codec for MP3 1.0.0 — mmedia-mp3-1.0.0-2007nnnnnnn-win32.exe
  • QNX Aviage Multimedia Software Codec for WMA9 1.0.0 — mmedia-wma9-1.0.0-2007nnnnnnn-win32.exe
  • QNX Aviage Multimedia Interface for iPod 1.0.0 — mmedia-ipod-1.0.0-2007nnnnnnn-win32.exe
  • QNX Aviage Multimedia Interface for PlaysForSure 1.0.0 — mmedia-pfs-1.0.0-2007nnnnnnn-win32.exe
  • QNX Aviage Multimedia Interface for WMDRM10-ND 1.0.0 — mmedia-wmdrm10-nd-1.0.0-2007nnnnnnn-win32.exe

For installation instructions, see the Installation Note. For instructions on how to install and start using the MME, see the “Quickstart Guide” in Introduction to the MME.

Documentation

The documentation for this release includes:

  • The Installation Note: mme_1.0_inst.html. Please read it before starting your installation.
  • The Release Notes: mme_1.0_rel.html (this file). Please read them before starting your installation.
  • Introduction to the MME: mme_intro.pdf (includes “MME Architecture” and “MME Quickstart Guide”. Follow the instructions in the “Quickstart Guide” to get started with the MME.
  • The QDB Developer's Guide: qdb_dev_guide.pdf.
  • The MME Developer's Guide: mme_dev_guide.pdf.

QNX Aviage Multimedia Core 1.0.0 binaries

The standard QNX Aviage Multimedia Suite binaries are delivered in the mmedia-core-1.0.0-2007nnnnnnn-* installers. They include the binaries, DLLs, and SQL configuration files required to run the QNX Aviage Multimedia Core 1.0.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:

  • lib/dll/mmedia/aac_parser.so — (PPCBE, SHLE and x86 targets only) AAC parser filter DLL for io-media.
  • lib/dll/mmedia/ade3_writer.so — (ARMLE targets only) Audio Decode Engine support.
  • lib/dll/mmedia/cdda_parser.so — the CD-ROM parser filter for io-media.
  • lib/dll/mmedia/cdda_streamer.so — the CD-ROM streamer filter for io-media.
  • lib/dll/mmedia/fildes_streamer.so — the file streamer for io-media.
  • lib/dll/mmedia/media_streamer.so — media streamer filter for io-media.
  • lib/dll/mmedia/mp4_parser.so — MPEG-4 video parser for io-media.
  • lib/dll/mmedia/mpega_parser.so — MPEG audio parser for io-media.
  • lib/dll/mmedia/ogg_decoder.so — (PPCBE, SHLE and x86 targets only) Ogg Vorbis decoder for io-media.
  • lib/dll/mmedia/ogg_encoder.so — (PPCBE, SHLE and x86 targets only) Ogg Vorbis encoder for io-media.
  • lib/dll/mmedia/queue_filter.so — buffer queue filter for io-media.
  • lib/dll/mmedia/rawfile_writer.so — raw file writer filter for io-media.
  • lib/dll/mmedia/stream_reader.so — stream reader filter for io-media.
  • lib/dll/mmedia/tmpfile_streamer.so — temp file streamer filter, used to support concurrent reading and writing of a file for io-media.
  • lib/dll/mmedia/wav_parser.so — WAV file parser filter for io-media
  • lib/dll/mmedia/wavfile_writer.so — WAV file encoder/writer filter for io-media.
  • sbin/io-fs-media — a version of io-fs with built-in modules for PFS, iPod, and tmpfs (requires appopriate licenses).
  • sbin/io-media-generic — generic version of io-media.
  • sbin/mme-generic — generic version of mme.
  • usr/bin/qdbc — a utility for executing statements on a qdb database.
  • usr/lib/libaoi.so — the addon interface library, required by io-media
  • usr/lib/libaoi.so.1
  • usr/lib/libmmedia.so — multimedia library, required by the MME and io-media.
  • usr/lib/libmmedia.so.1
  • usr/lib/libmmfilter.so — filter support library, required by the MME and io-media
  • usr/lib/libmmfilter.so.1
  • usr/lib/libogg.so — library for Ogg Vorbis.
  • usr/lib/libogg.so.1
  • usr/lib/libvorbis.so — (PPCBE, SHLE and x86 targets only) library for Ogg Vorbis.
  • usr/lib/libvorbis.so.1 — (PPCBE, SHLE and x86 targets only)
  • usr/lib/libsqlite3.so — SQLite 3 library, used by qdb.
  • usr/lib/libsqlite3.so.1
  • usr/sbin/mcd — a utility for executing commands on mme.
  • usr/sbin/qdb — the QDB database binary.

These SQL support files are installed under target/qnx6/sql/:

  • mme.sql — the MME configuration schema.
  • mme_connect.sql — connection schema.
  • mme_custom.sql — the configuration schema for a custom table.
  • mme_data.sql — the customer configurable default data.
  • mme_library.sql — the MME library schema.
  • mme_temp.sql — the in-memory MME schema.
  • mmgui.sql — the mmegui schema.

These io-fs configuration tables and files are installed under target/qnx6/etc/:

  • iofs.fsd
  • iofs.fsf
  • iofs.fsm
  • mme.conf — MME configuration file.

These configuration files are installed under target/qnx6/etc/mme/:

  • fstab — sample MCD configuration file.
  • mcd.conf — sample MME configuration file for using MCD.
  • mcd_auto.conf — sample MME configuration file for using MCD.
  • qdb.cfg — the qdb configuration file.

Headers and libraries

The following files are included under target/qnx6/[target]/:

  • bin/mmecli
  • bin/mme-cdripper
  • bin/mme-player-simple
  • bin/mme-player-multisource
  • bin/mme-shuffle
  • usr/lib/libmme.a
  • usr/lib/libqdb.a
  • usr/lib/libiomedia.a

The following files are included under target/qnx6/usr/include/:

  • iomedia/api.h
  • iomedia/events.h
  • iomedia/types.h
  • mm/types.h
  • mme/config.h
  • mme/event.h
  • mme/interface.h
  • mme/mme.h
  • mme/types.h
  • mmedia/media_error.h
  • mmedia/media_event.h
  • mmedia/media_interfaces.h
  • mmedia/mediafilter_defs.h
  • mmedia/medialib_defs.h
  • mmedia/mmedia.h
  • qdb/qdb.h
  • sqlite3.h
  • sys/dcmd_dio.h
  • sys/dcmd_fsys.h
  • sys/dcmd_io-media.h
  • sys/dcmd_media.h
  • sys/io.h
  • sys/scsi_cmds.h
  • sys/uuid.h

Sample applications

Sample applications with their source code and required headers and libraries are delivered in the QNX Aviage Multimedia Core 1.0.0 installer mmedia-core-1.0.0-2007nnnnnnn-*.

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:

  • mmecli — a command-line interface to the MME.
  • mme-cdripper — rip and play media.
  • mme-shuffle — just play some tracks.
  • mme-player-multisource — enable selection of media from different sources.
  • mme-player-simple — simple media player, with unlimited SQL requests.
  • priorityfolder — an example of how to set a specific folder as a priority folder.

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

QNX Aviage Multimedia Software Codec for AAC 1.0.0

The installers mmedia-aac-1.0.0-2007nnnnnnn-* contain the binary for AAC codec support:

  • lib/dll/mmedia/qnx_raac_decoder.so — a AAC audio format decoder.
  • lib/libqaacd.so — library for AAC codec support.
  • lib/libqaacd.so.1 — library for AAC codec support.

QNX Aviage Multimedia Software Codec for MP3 1.0.0

The installers mmedia-mp3-1.0.0-2007nnnnnnn-* contain the binaries for MP3 codec support. They include the following files:

  • lib/dll/mmedia/fraunhofer_mp3_decoder.so (ARMLE targets only) — fixed-point decoder.
  • lib/dll/mmedia/xing_mpega_decoder.so — (PPCBE, SHLE and x86 targets only) MP3 floating-point decoder.

QNX Aviage Multimedia Software Codec for WMA9 1.0.0

The installers mmedia-wma9-1.0.0-2007nnnnnnn-* contain the binaries for WMA codec support. They include the following files:

  • lib/dll/mmedia/wma9_decoder.so — Windows Media 9 decoder for io-media.
  • lib/dll/mmedia/wma9_parser.so — Windows Media 9 parser filter for io-media.

QNX Aviage Multimedia Interface for iPod 1.0.0

The installers mmedia-ipod-1.0.0-2007nnnnnnn-* contain binaries for iPod support. They include the following files:

  • lib/dll/iofs-usb-ipod.so — a module for using iPod devices through a USB connection.
  • lib/dll/iofs-ipod.so — a module for io-fs, for iPod device support.
  • lib/dll/iofs-ser-ipod.so — a module for using iPod devices through a serial connection.

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 sales support team.

QNX Aviage Multimedia Interface for PlaysForSure 1.0.0

The installers mmedia-pfs-1.0.0-2007nnnnnnn-* contain binaries for PFS device support. They include the following file:

  • lib/dll/iofs-pfs.so — a module for io-fs, for Microsoft PlaysForSure (PFS) device support.

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 sales support team.

QNX Aviage Multimedia Interface for WMDRM10-ND 1.0.0

The installers mmedia-wmdrm10-nd-1.0.0-2007nnnnnnn-* contain binaries for DRM support. They include the following files:

  • lib/dll/cipher-aes.so — a library used by the PFS module to io-fs for supporting DRM on PFS devices.
  • lib/dll/iofs-msdrm10.so — a library used by the PFS module to io-fs for supporting DRM on PFS devices.

Known issues

  • The MCD path monitor doesn't discover mediastores if its thread priority is set higher than the synchronization thread priority. (Ref. 48163)

    Workaround: Always set the synchronization thread priority higher than the path monitor thread priority. For example:

    	<Synchronization>
    		<Priority>9</Priority>
    		<MonitorPriority>11</MonitorPriority>
    	</Synchronization>
    	
  • Incorrect configuration of the MME can cause it to fall into a loop while pruning a mediastore during synchronization. (Ref. 47264)

    Workaround: Always configure the MME so that the maximum memory permitted for synchronization operations is less than the maximum RAM size configured for tmpfs.

  • If a mediastore changes, then the user requests playback of a fid from the removed mediastore, the MME attempts to play the track on the new mediastore.(Ref. 42329)

    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.

  • At startup, the MME restores the language to the setting in the MME configuration, rather than keeping the last language value set before shutdown. (Ref. 46642)

  • In gapless mode, the unlikely event that io-media attempts to build two graphs at the same time may cause a memory leak or a failure. (Ref. 41909)

  • An unexpected stopped playstate has been observed on some mediastores during a fast rewind. (Ref. 53104)

  • MPEG4 audio playback on ARMLE has been shown to cause a temporary deterioration of system performance. This deterioration is due to the ARMLE target's use of floating-point emulation instead of a fixed-point decoder to handle AAC file formats. (Ref. 53547)

  • The QDB client (qdbc) may incorrectly parse code in a database column as a comment. For example, in the statement SELECT folder FROM folders WHERE basepath glob '/Coldplay/*';, qdbc interprets /* as a C comment, and not as part of the column data. (Ref. 46691)

  • Some PFS devices don't support DRM correctly. A device may, for example, allows DRM registration to complete but decrypt the protected content incorrectly. The MME cannot playback protected media on these devices. (Ref. 52263)

  • When playing tracks from a PFS device, the MME gets metadata from the PFS device instead of parsing the media file itself to extract the metadata (which would be a much slower process). If a PFS device doesn't provide metadata values, the MME fills in the values with its defaults. Note, however, that a PFS device's failure to provide metadata may indicate that there is a problem with the track, the device, or the way that the track was put on the device. (Ref. 44770)

  • Removing an iPod (mediastore type is MME_MSCAP_DELETE_ON_EJECT) before the MME has completed synchronization of the mediastore can result in entries for the mediastore being left in the MME database, leaving folder IDs in the library with no corresponding folders. (Ref. 52688)

  • During testing, iofs-ipod has failed to access a third generation iPod (model M8976LL). (Ref. 47033)

  • The MME has been observed to incorrectly report an error (errno=5) when setting repeat or random modes repeatedly and in rapid succession on an iPod. (Ref. 49402)

  • Testing has been able to make the MME fail under the following specific conditions (Ref. 47399):
    • Playback MPEG4 tracks from a USB stick.
    • Initiate some other process to consume a large portion of the system memory.
    • Change tracks, then immediately remove the USB stick.

  • Trick play (fast forward, fast reverse) doesn't work for very large files (over 1.5 gigabytes) on PFS devices. (Ref. 42847)

  • The MME doesn't return the event MME_PLAY_ERROR_TRACKSESSIONEMPTY when an attempt is made to play an empty track session. (Ref. 44209)

    Workaround: If there are no fids to play in a track session, mme_play() returns -1 with errno set to ENODATA. Check for these values.

  • The MME may deliver events from a ripping operation after delivering the MME_EVENT_SHUTDOWN_COMPLETED event. This behavior does not conform to the expected behavior that MME_EVENT_SHUTDOWN_COMPLETED be the last event delivered after all MME threads have stopped. Since the MME must not be used after a call to mme_shutdown(), this behavior has no adverse implications. (Ref. 52886)

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.