Date of this edition: March 13, 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 release contains libraries, binaries, and source code for sample applications for the Multimedia Engine running on QNX Neutrino packeaged in the following archives:
|
This release includes changes and upgrades that require changes to your enviroment:
Starting with the Aviage MME 1.2 alpha 20.12 release, the MME requires a Neutrino 6.4 system.
Upgrade your system to Neutrino 6.4.
With release 20.13, enumerated types and data structures changed, making binaries for that an all subsequent releases (including this one) incompatible with all previous releases.
Update all system components to the most recent QNX Aviage Multimedia Suite 1.2.0. Your environment must not contain components from this release and from earlier releases.
The Aviage MME 1.2 alpha 20.12 release implemented a new client library, which rendered it and subsequent releases incompatible with releases older than the Aviage MME alpha 20.4 releases.
Recompile and relink all client applications to use this release.
Starting with release 20.13, some binary files are installed in a new location. Binaries that in previous releases were installed under target/qnx6/bin/, target/qnx6/sbin/ or target/qnx6/lib/ are now installed under target/qnx6/usr/bin/, target/qnx6/usr/sbin/ or target/qnx6/usr/lib/, as appropriate.
Affected components include:
The items under target/qnx6/lib/dll/ have not been moved.
Before installing this release, manually remove the old binaries from the old locations . If you do not remove the old binaries, you will not load the updated binaries when you execute.
In release MME 1.2 alpha 20.12, MDSs (metadata synchronizers) were been replaced by MDPs (metadata plugins).
If you are upgrading from a release prior to alpha 20.12, change the <MDS> element in your configuration file to <MDP>.
In release MME 1.2 alpha 20.12, SQLite was upgraded to SQLite 3.6.3, and the MME and QDB now use SQLite 3.6.3:
Recompile any applications that link against the SQLite library directly.
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 |
---|---|
iPod driver cross transport authentication (CTA) support | “iPod driver cross transport authentication (CTA) support” below. |
Support for playback of audio input from a system | “Audio input playback” below. |
Improved synchronization management of apparently changed files | “New configuration element <ChangedFilesHaveConstantId>” below. |
Improved QDB thread management | “New qdb -o thread* options” below. |
Improved character conversion control for playlists | “MME_EXPLORE_UNCONVERTED_CHAR_ENCODING flag” below. |
Improved copy queue error management | “<DeleteOnError> configuration element” below. |
Improved synchronization activity reporting | “New synchronization event MME_SYNC_ERROR_FOLDER_DEPTH_LIMIT” below. |
Imporvements to the Explorer API | “Improved Explorer API performance” below. |
Patch to enable JPEG pre-processing quality selection | “Image pre-processing patch” below. |
Solution for QDB/MME lockup problem. | “QDB/MME lockup problem and solution” and “New QDB thread options” below. |
Multimedia project launched on Foundry27 | The project pages on Foundry 27, at http://community.qnx.com/sf/projects/multimedia/. |
This release introduces cross transport authentication (CTA) support for iPod drivers. The iofs-ipod.so acp option loads iofs-interface-ipod.so and checks if it supports an authentication chip interface. This option accepts one of the following values:
A cross transport authentication chip can be built into the cable connection iPods to your system. This authentication method is available for USB transport connections only; it authenticates iPods over the serial pins and tell the iPods to grant authenticated privileges to the USB transport.
As well as offering the same advantages as an authentication chip built in to your system, a cross transport authentication chip in a cable:
Please contact Apple for more information about licenses and specifications for a cross transport authentication chip.
To instruct the iPod driver to use this authentication method, start <iofs-ipod.so with the the acp option set to cta:
# io-fs-media -dipod,transport=usb,acp=cta
The following iPod devices support cross transport authentication, provided they have the latest firmware:
|
The MME now supports playback of audio inputs on a system by treating audio inputs as type of mediastore.
This feature uses a new mediastore type and a new slot type:
To have the MME recognize audio input “mediastores”, you must:
To use audio input “mediastores”, you must add an entry to the slots table that sets:
For example:
INSERT INTO slots(path, zoneid, name, slottype) VALUES('/dev/snd', 1, 'snd', 11);
You must also configure the MCD to tell the MME about the appearance of audio input “mediastores” by adding a section like the following to the MCD configuration:
[/dev/snd] Callout = PATH_MEDIA_SCAN Argument = 5000 Priority = 11,10 Start Rule = INSERTED Stop Rule = EJECTED
Since /dev/snd is normally permanent, the argument and priority values may be changed. The section name must be the path to the audio input devices.
An audio input “mediastore” is not synchronizable; an explicit attempt to synchronize it will result in a MME_EVENT_SYNCABORTED error. |
Media from an audio input “mediastore” is played in a file-based track session. Once playback has begun, however, it will continue until explicitly stopped because it will never reach an end of file.
To play media from an audio input “mediastore” you must know the exact path to the mixer output you want to play. Generally tis path is something like pcmC0D0c#Mic In.
You may learn what is available by:
|
Once you know the path of your audio input, simply create a file-based track session and play the media
This release introduces a new MME synchronization control element:
Element | Attributes | Default | Description |
---|---|---|---|
<ChangedFilesHaveConstantId> | enabled | off | Determine how MME synchronization handles files whose size or date has changed. |
The <ChangedFilesHaveConstantId> element determines how, during a file and folder discovery synchronization pass, the MME handles a media or playlist file whose size or date has changed since the previous file and folder discovery pass.
The default MME behavior is to consider a file or folder whose size or date has changed as new, and to synchronize it accordingly, assigning it a new file ID (fid).
If the <ChangedFilesHaveConstantId> enabled attribute is set to true, the MME's file and folder discovery synchronization pass does not consider files and folders whose dates or sizes have changed to be new files or folders, and:
Thus, if you configure the MME to maintain the file ID of a file or folder whose sizes or date has changed, to determine if file metadata is accurate, you must check its accurate field. If the field is 0, then the file requires a metadata synchronization pass.
If media files have not been successfully synchronized during the metadata pass, or playlist files have not been synchronized during the playlist synchronization pass, the accurate field for these files will be 0, regardless of the <ChangedFilesHaveConstantId> configuration. |
Playlist synchronization differs from media file synchronization:
A new <DeleteOnError> configuration element for controlling copying and ripping operations when they encounter errors replaces the <DeleteOnNonRecoverableError> configuration element.
Element | Attributes | Default | Description |
---|---|---|---|
<DeleteOnError> | type | "none" | Delete the current entry from the copyqueue table, based on the value of the type attribute. See “Copy queue entry deletion control settings” below for more detailed information. |
To maintain the same behavior as having the removed <DeleteOnNonRecoverableError> element enabled, set type to "nonrecoverable".
Attempting to use the removed <DeleteOnNonRecoverableError> configuration element will cause a fatal error. |
The following flags determine when the MME automatically deletes entries from the copyqueue table, and their equivalent setting for the <DeleteOnError> type attribute:
Constant | Value | type | Description |
---|---|---|---|
CONFIG_DELETE_ON_TYPE_NONE | 0 | "none" | Do not automatically delete copyqueue table entries |
CONFIG_DELETE_ON_TYPE_ANY | 1 | "any" | Delete the copyqueue table entry on any error. |
CONFIG_DELETE_ON_TYPE_NR | 2 | "nonrecoverable" | Delete the copyqueue table entry on a nonrecoverable error. |
CONFIG_DEF_COPYING_DELETE_ON_TYPE | – | "none" | Do not automatically delete copyqueue table entries |
The mediacopier considers a nonrecovereable error to be an attempt to copy or rip a file that meets one or more of the following criteria:
If the nonrecoverable option is set (<DeleteOnError type="nonrecoverable"/> files that meet any of the above criteria are automatically removed from the copy queue.
The nonrecoverable setting does not cause the mediacopier to remove from the copy queue files that generate read errors . To remove files (scratched or bad media) that cause read errors, and files that are DRM or copy protected, corrupt, use unsupported codecs, set the type attribute to "any".
The MME delivers the event MME_SYNC_ERROR_FOLDER_DEPTH_LIMIT when it has skipped sychronizing a folder to avoid synchronizing beyond the permitted depth, set by the <MaxRecursionDepth> configuration element. The MME delivers this event the first time it skips a folder because it has reached the maximum configured recursion depth.
Synchronization information in mme_sync_error_t, including
No database tables are updated.
Media status information, and the reason for delivery of the event, in mm_media_status_event_t.
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.
This release implements improvements to the Explorer API performance. Specifically, the API now attempts to use a device control command to determine the number of items in a folder, rather than counting the items in the folder.
This improvement is implemented for iPods as well as for other types of devices.
Testing of the MME has revealed that increasing the MME's maximum number of synchronization threads (<MaxThreads> in the MME configuration file) without also increasing the maximum number of threads available to the QDB can result in the QDB and MME locking up.
If multiple MME synchronization threads that need to lock the database exhaust the number of available threads, the QDB can find itself without the thread it requires to unlock the database, thus causing a deadlock with the MME waiting for the QDB to unlock the database while the QDB is waiting for the MME to release the thread it needs in order to unlock the database.
Deadlocks like the one described above have been observed in scenarios where the MME has attempted to synchronize multiple and large mediastores at the same time; for example, a USB stick with eight partitions.
Always ensure that the QDB has a threadpool with more threads than will be required by the MME synchronization threads plus any other processes that may lock the MME database. In other words, be sure that henceforth your projects start the QDB with the -o thread option set to 20 or greater, as required by your project.
In order to ensure that the MME and QDB do not enter into a deadlock due to an inadequate number of available threads for the QDB:
See also “QDB/MME lockup problem and solution” above.
Normally, the MME attempts to convert playlist file entries to UTF-8.
The new constant MME_EXPLORE_UNCONVERTED_CHAR_ENCODING (0x0004000) is an inbound flag instructing the MME to not perform any character conversion on entries before returning them. Setting this flag is useful for seeing what comes out of playlists when their entries don't appear to convert to real files.
If the MME_EXPLORE_RESOLVE_PLAYLIST_ITEM (0x00010000) flag is set, this setting overrides the MME_EXPLORE_UNCONVERTED_CHAR_ENCODING flag. |
The table below lists the features and capabilities that have be deprecated or removed from this release.
Feature | Status | Reference |
---|---|---|
<DeleteOnNonRecoverableError> | Removed; see <DeleteOnNonRecoverableError> below, and “<DeleteOnError> configuration element” above. | 65510 |
qdb -o thread option | Deprecated in release alpha 20.13. | 65069 |
qdb_transaction() | Previously deprecated; removed from the QDB client library in release alpha 20.13. | 48615 |
The table below lists the removed element and its settings, and the new element and its equivalent settings.
Removed element | New element |
---|---|
<<DeleteOnNonRecoverableError enabled="false"/> | <DeleteOnError type="none"/> |
<DeleteOnNonRecoverableError enabled="true"/> | <DeleteOnError type="nonrecoverable"/> |
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 connections to iPod nano 2G devices; do not use a full speed port.
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.