Date of this edition: June 27, 2008 Target OS: This software is compatible with target systems running QNX® Neutrino® 6.3.0 SP3 or 6.3.2.
Host OS: You must have already installed the QNX® Momentics® development suite 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 |
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 may also find the reference numbers useful for tracking issues as they become fixed. |
The packages in this release contain libraries, binaries, and sample application source code for the Multimedia Engine running on QNX Neutrino.
This release contains the following:
|
This release includes the following documentation:
This release implements a new client library, which renders this release incompatible with releases prior to MME Alpha 20.4.0. If you are upgrading from a release before MME Alpha 20.4.0, you must recompile and relink all client applications to use this release. |
The the QDB startup has been changed to enable the file locking required for database vacuums. See “Change to QDB temporary storage” below.
The following new features have been implemented in this release:
For information about features implemented since the MME 1.0.0 general availability release but before this release, see “Previously implemented features” below.
The QDB no longer uses /dev/shmem for temporary storage. This location cannot be used for temporary storage because it does not provide file locking. File locking is required for database vacuuming.
QDB behavior at startup is now as follows:
If all the above conditions are met, the QDB sets the internal temporary storage to the location specified by the tempstore option. If any of the above conditions are not met, the QDB logs errors to the slog and fails to start up.
If all the above conditions are met, the QDB sets the internal temporary storage to the value of TMPDIR. If any of the above conditions are not, the QDB logs errors to the slog and fails to start up.
The filesystem selected for temporary storage must support POSIX file locking. |
This release introduces the MME Bluetooth Integration Kit, which includes the header file:
and other files located in the following directory:
For more information about the Bluetooth Intergration Kit and how to use it, see the chapter Working with External Devices in the MME Developer's Guide included with this release.
This release includes new default indexes that have provided improvements in synchronization performance during testing. Significant reductions in time were measured for the second and third passes of initial mediastore synchronizations, and for the second pass of resynchronizations.
Synchronization performance and the effects of indexing on performance depends on a number of factors, including the system platform and the specific contents of the mediastores being synchronized, in particular the number and size of folders and files. However, the following should be noted:
We have changed the default set of indexes to a minimal set, based on observed synchronization performance. The new indexes are in the mme.sql and mme_library.sql schema files delivered with this release. These files otherwise remain unchanged: (there are no schema changes), and the index changes affect only the following tables: library, folders, playlist and playlistdata.
To ensure optimal synchronization performance in your environment, we suggest that you consider the recommendations below.
The damping_audio_writer filter can fade the PCM stream IN or OUT.
To have this filter drop the volume level during trickplay mode by ramping down the PCM stream use:
io-media-generic -Mmmf,audio_writer=damping_audio_writer
The following new resources have been added:
Below is a portion of an io-media.cfg showing how to set these new resources:
resource { name = "TrickPlayVolumeFade" type = long value = 10 optional = yes } resource { name = "TrickFadeTime" type = long value = 20000 optional = yes } resource { name = "FadeTime" type = long value = 20000 optional = yes }
You only need the settings in the io-media configuration file: io-media.cfg, if you want to override the default settings for the resources. |
This release implements a new configuration element that allows you to determine the MME's behavior when it encounters a file marked as unplayable. The MME configuration file mme.conf includes a new <Playback> element: <SkipUnplayable enabled="false"/>.
The default setting for <SkipUnplayable> is false: attempt to play all files and handle errors according to the error handling configurations. In other words, behavior is unchanged from previous releases.
To configure the MME to skip files that have been previously marked as unplayable, set the <SkipUnplayable> element to true. With this configuration, the MME treats unplyable files as though they did not exist. It:
|
See also “Marking unplayable files” in the chapter Playing Media of the MME Developer's Guide.
Client applications that support HD radio tagging for iPods can now do so when running the MME. To implement radio tagging, simply pass instructions directly to io-fs-media, which passes the instructions on to the iPod. The next time the iPod is plugged into a system with iTunes, iTunes will pick up the radio tags.
HD radio tagging requires authentication.
Below is an example of code that can be used to write HD radio tags to an iPod. Your client application should be designed to manage writing to more than one iPod (/ipod0, /ipod1, etc.).
#include <sys/dcmd_media.h> ... if((fd = open("/fs/ipod0/.FS_info./control, O_RDWR)) == -1) { printf("Failed to access ipod"); } else { rc = devctl(fd, DCMD_MEDIA_IPOD_TAG, plist_single, plist_single_len, &ret); if (rc == 0) printf("Items were written, only iTunes can confirm contents"); else printf("Write of tag file to iPod failed err:%d (%s): ret:%d", rc, strerror(rc), ret); }
|
At time of this MME release, the following iPod models supported HD radio tagging:
Model | Firmware* |
---|---|
iPod nano 3G | 1.0 |
iPod 5G | 1.2.3 |
iPod classic | 1.0 |
*Firmware listed is the minimum required.
The MME now supports retrieval of artwork form iPods. To retrieve the artwork for the currently playing iPod track, call mme_getphoto() with the fid argument set to 0.
iPod images are BMP files. The MME supports iPod artwork in color only; it does not support grayscale iPod artwork.
The MME release implements two new configuration elements that allow you to change the MME's default behavior when it synchronizes iPods. Both these elements are contained in the <MSS>/<ipod> element:
|
The MP3 parser filter mpega_parser now logs additional error messages to record conditions such as the ID3Tag in MP3 files exceeding the maximum size handled by the filter, and thus requiring pre-parsing of the tag. For example:
Jun 20 14:36:18 5 20 1 io-media-generic/aoi: mpega_parser: ID3TagV2.3 too big (320940bytes) pre-parsing .. Jun 20 14:36:18 3 20 1 io-media-generic/aoi: PreParseID3Tag() offset 10 truncating at offset on invalid frame id from size = 863 Jun 20 14:36:18 3 20 1 io-media-generic/aoi: mpega_parser couldn't preparse the ID3TagV2.3 Looking for ID3TagV1.. Jun 20 14:36:18 3 20 1 io-media-generic/aoi: ID3Tag V2.3 size 10bytes max = 65536 checking ID3V1 failed for /media/drive/pr/milk__massive_attack_very_rare_trance_mix_.mp3
To have mpega_parser log these types of messages, start io-media with at least one level of debug verbosity (at least one -D).
In a production environment, always run the MME, io-media, and other components and modules at zero verbosity. |
The table below lists the most significant new features and updates that were after the MME 1.0.0 general availability release but before this release.
For more complete information about these and other features in this release, please refer to the MME documentation.
Feature | See |
---|---|
Explorer API | “Exploring unsynchronized mediastores” in the MME Developer's Guide. |
File-based track sessions | See “About track sessions” in the MME Developer's Guide. |
Pre-copy synchronization | “Pre-copy synchronization” in the MME Developer's Guide. |
Support for external DLLs for character encoding | “Creating an external DLL to provide character encoding routines” in the MME Configuration Guide. |
Improved handling of damaged media | “Managing playback errors” in the MME Developer's Guide and “Configuring how io-media handles playback read errors” in the MME Configuration Guide. |
Notification of corrupt database | “Handling of corrupt database” in the MME Developer's Guide. |
Configurable limit to the number of entries in the library table | “Configurable maximum entries for library table” in the MME Configuration Guide. |
Configurable limit to the number of items per folder | “Limiting the number of items synchronized in a folder” in the MME Configuration Guide. |
New io-media features, including optimizations for selecting parsers and decoders | “Configuring other MME components” in the MME Configuration Guide and io-media-generic in the MME Utilities reference. |
New functions for reading and setting the default playback language | mme_media_get_def_lang() and mme_media_set_def_lang() in the MME API Library Reference. |
New synchronization event indicating that the files per folder limit has been exceded. | “Synchronization error events” in the MME API Library Reference. |
Pruning options for unavailable mediastores | “Database pruning” in the MME Configuration Guide. |
User-created playlists | “User-created playlists” in the MME Developer's Guide. |
Improved synchronization features and metadata handling | “Configuring synchronization behavior” in the MME Configuration Guide. |
Customizable language sort order | “Adding languages” in the MME Configuration Guide. |
Configuration options for track session view behavior. | “Configuring playback behavior” in the MME Configuration Guide. |
Directed PFS device startup | “Directed PFS device startup” in the MME Developer's Guide. |
Bluetooth support | “Enabling Bluetooth support” in the MME Developer's Guide. |
New and changed database tables | “MME Database Schema Reference” in the MME API Library Reference. |
Solution for database deadlock issues | “Solutions for database deadlock issues” in the MME Developer's Guide. |
Video support is documented, but is not yet implemented. |
See “New features” above.
None in this release.
MME binaries are delivered in the patch-630SP2-0315-mmedia-*.tar archive. This archive includes binaries, DLLs, and SQL configuration files required to run the MME and support binaries.
These files are installed under target/qnx6/, under the subdirectories for each supported target platform:
These SQL support files are installed under target/qnx6/sql/:
These io-fs configuration tables are installed under target/qnx6/etc/:
Example source code and required headers and libraries are delivered in the patch-630SP2-0315-mmedia-*.tar archive.
The sample source is installed under target/qnx6/examples/*. These applications illustrate various features and functionality provided by the Multimedia Engine. To view command-line options for these examples, use the use utility; for example: use mmecli.
For information about the command-line applications and the sample applications delivered with the MME, see the MME Utilities Reference and the MME Developer's Guide.
With this release only, to build the source for mmecli you must remove the following line: #include <mme/mme_ext.h>. |
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.
The following files are included under target/qnx6/[target]/:
The following files are included under target/qnx6/usr/include/:
Binaries for features requiring special licenses are delivered separately from the MME core package.
The archive patch-630SP2-0999-extra-aac-*.tar contains the binary for AAC codec support:
The archive patch-630SP2-0999-extra-mp3-*.tar contains the binaries for MP3 codec support:
The archive patch-630SP2-0315-extra-wma9-04-1*.tar contains the binaries for WMA codec support:
The archive patch-630SP2-0315-extra-ipod-*.tar contains binaries for iPod support:
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.
Note also that if you want to support a two-wire USB connection to an iPod, additional support is required from QNX Software Systems. Please contact your QNX sales support team. |
The archive patch-630SP2-0315-extra-pfs-*.tar contains binaries for PFS device support:
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 archive patch-630SP2-0315-extra-drm-*.tar contains binaries for DRM support:
This section describes resolved and outstanding issues.
This section lists issues identified in a previous release, and fixed in this release
This section lists issues that have been identified in this release or a previous release and are still outstanding:
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.