![]() |
![]() |
![]() |
![]() |
This Quickstart Guide is designed to help you get the QNX Aviage Multimedia Suite up and running on a desktop target system, such as an x86 or a VMware workstation running QNX Neutrino. After you've completed the steps below, you should be able to play some WAVE files on the target system.
Note that the MME is the main component of the QNX Aviage Multimedia Core Package, which is part of the QNX Aviage Multimedia Suite. The MME is used for configuration and control of your multimedia applications.
Other useful things to try:
If you have problems with the installation or playing media, see:
Instructions for installing the MME on other hosts are included in the MME 1.2.0 Installation Note, available on the QNX website: www.qnx.com/products/.
![]() |
Read through the complete Quickstart Guide before starting your installation. |
Your target machine needs to be running one of the following:
You need the MME installers:
If you don't have a QNX Momentics CD, you can download an evaluation version from: www.qnx.com/products/. This target machine must also support audio output. For a list of supported audio drivers, go to www.qnx.com/developers/hardware_support/index.html and check the drivers for your platform.
You need to perform this step only if you are upgrading from an older version of the MME. If you are installing the MME for the first time, go to Step 3.
To uninstall the old MME:
# cd /usr/qnx641/install/mmedia-core/1.2.0/
# ./uninstall.sh
# cd /db # rm *mme* usb*
If you do not know where the MME database and schema files are stored, see your qdb.cfg file for the location of your database. This file is usually located under /db (from the root directory).
![]() |
You must update all system components to the current QNX Aviage Multimedia Suite 1.2.0 components. Your environment must contain no 1.2.n or 1.2.0 multimedia components when you begin your installation. |
To install the MME runtime files:
# chmod a+x mmedia-core-1.2.0-20071841543-nto.sh
# ./mmedia-core-1.2.0-20071841543-nto.sh
![]() |
If you will be installing more than one Multimedia Suite component, you can enter all the required licenses at this time. You can also enter addditional licenses when you install the components that require them. |
![]() |
Any client applications that were compiled against QNX Aviage Multimedia Suite (MME) 1.0.n or 1.1.n must be recompiled in order to work with QNX Aviage Multimedia Suite (MME) 1.2.0. |
The MME uses an SQL schema to describe the database tables it uses to store media metadata. You should perform this step every time you get a new version of the MME, because the MME runtime is dependent on a specific schema version.
The MME will use the new schema to generate new tables:
# mkdir /db
# cd $QNX_TARGET # cp -c sql/* /db/
You need to run an audio driver in order to hear music:
# pidin | grep io-audio
# io-audio -daudiopci
# wave /usr/share/audio/hallelujah.wav SampleRate = 11025, Channels = 1, SampleBits = 8 Format Unsigned 8-bit Frag Size 256 Rate 11025 Mixer Pcm Group [PCM Subchannel]
![]() |
Your machine must support audio output. For a list of audio drivers supported for your platform, see www.qnx.com/developers/hardware_support/index.html . |
Now start the temporary filesystem. The MME needs this filesystem running for some of its database tables:
# io-fs-media -d tmp -cpages=4 -cbundles=0
The QNX database (qdb) provides database services to the MME. You must start the database before you start the MME:
# qdb -c /db/qdb.cfg -v -Otempstore=/fs/tmpfs -Rset
The -Otempstore=/fs/tmpfs option is the capital letter “O”. It directs the QBD to use temporary files in a memory location instead of on a disk. This configuration reduces possible disk loads generated by the MME's complex SQL statements. The -Rset option specifies the QDB database recovery mode.
The MME uses the Media Content Detector (MCD) utility to detect mediastore availability. The MCD requires a configuration file. The MME installation includes a sample configuration file, mcd.conf, which you can use to get started on systems, such as an x86 or a VMware workstation running QNX Neutrino, that automatically mount CD filesystems.
Start the MCD as follows:
# mcd $QNX_TARGET/etc/mcd.conf
The MME requires io-media to decode media. For dlldir, pass in the location where you installed the filters used by io-media. The default location is:
# io-media-generic -M mmf,dlldir=$QNX_TARGET/x86/lib/dll/mmedia
By default, the MME searches recursively for media files along pre-configured paths, starting with /media/drive/, and including /fs/cd0 and /fs/usb0.
The easiest way to give the MME some media to play is to insert a CD or a USB stick with playable media files into your machine. When you start the MME, it will use the MCD utility to detect the mediastore you inserted and synchronize its library with the mediastore.
If you want to play tracks from your hard drive, you must copy them into the directory /media/drive/:
On an x86 platform, the MME supports the following media formats: CDDA and WAVE (standard installation), and MP2, MP3, M4A and WMA (additional licences and runtime files required). The MME may parse other media formats but may not be able to play them because it does not currently have decoders for them.
You need to specify the path to the mme.conf configuration file at /etc/:
# mme-generic -c $QNX_TARGET/etc/mme.conf
You can now use the qdbc and mmecli utilities to query the database, create a track session, and play some music. The MME installer puts qdbc in the directory /usr/bin/, and mmecli in $QNX_TARGET/target/qnx6/examples/.
Before playing some files, it's a good idea to confirm that the MME has detected the files in the mediastore you are using, and synchronized them with its library of media.
Use qdbc to query the MME database: point qdbc at the MME database and retrieve the file ID (fid), mediastore ID (msid) and filename (filename) for all media files in the library, as shown below:
# qdbc -d /dev/qdb/mme "select fid,msid,filename from library;" Rows:3 Cols: 3 Names: +fid+msid+filename+ 00000: |1|1|05 Come Away With Me.wav| 00001: |2|1|09 I've Got to See You Again.wav| 00002: |3|1|12 Nightingale.wav|
The result of the query shown above indicates that the MME sees three WAV files in /media/drive, which has the mediastore ID of 1 (msid=1).
The MME uses a track session to play media. A track session is defined by an SQL statement that selects one or more files from the database. Use the MME command-line tool mmecli to create and play a track session:
# mmecli newtrksession l "select fid from library where ftype !=5" (rc=0,errno=0) new trksessionid=1
# mmecli settrksession 1 (rc=0,errno=0) trksessionid=1
# mmecli play (rc=0,errno=0) Playing from track session fid/bid = 0
You should now hear some music.
![]() |
|
Some things to note about the mmecli commands:
# mmecli
Use the same mmecli commands as with the mmecli command line interface. To exit, type quit.
To simplify MME startup, you can write a simple startup script that performs all the startup steps:
slay -fv io-fs-media qdb io-media-generic mme-generic mcd io-fs-media -d tmp -cpages=4 -cbundles=0 waitfor /fs/tmpfs qdb -c /db/qdb.cfg -v -Otempstore=/fs/tmpfs -Rset waitfor /dev/qdb mcd $QNX_TARGET/etc/mcd.conf io-media-generic -M mmf,dlldir=$QNX_TARGET/x86/lib/dll/mmedia waitfor /dev/io-media/graphs mme-generic -c $QNX_TARGET/etc/mme.conf waitfor /dev/mme/default
The startup script above starts the modules required for a simple system. For a more comprehensive system with, for example, the capability to manage and play media from iPod and PFS devices, you would need to add instructions to start the drivers for these devices.
If you want to add more media files to your system after you've started the MME, you'll need to force it to resynchronize its database.
# qdbc -d/dev/qdb/mme "select msid,mountpath from mediastores;" Rows: 2 Cols: 2 Names: +msid+mountpath+ 00000:|1|/media/drive| 00001:|2|/fs/cd0|
The second line returned by the QDB lists the table column headings. Thus, the msid for the CD at mountpath /fs/cd0 is 2.
# mmecli resync_mediastore msid 0 7
To resynchronize files on your hard drive at /media/drive, use its msid, which is 1 (one). Setting the third argument to 0 (zero) tells the MME that no folder is specified, and therefore synchronize the entire mediastore. Setting the last argument to 7 tells the MME to synchronize all information and metadata.
If you want to play file formats (such as MP3 or WMA) not supported by the MME standard installation, you need to install the appropriate runtime files:
If you want use an external media player, such as an iPod or a PFS device, you need to:
![]() |
The arguments for io-usb may be different for embedded targets. |
You can connect to newer iPods (Generation 5 and more recent) either through a serial connection or, with an Apple authentication chip, through a USB connection. Older iPods (Generation 4 and older) support only the serial connection.
Before designing your client application, you should contact Apple to obtain:
For more detailed information about connecting to iPods, see the MME Developer's Guide chapter Working with iPods.
To set up the MME to play media from PFS devices:
# io-usb -duhci -dohci -dehci
# io-fs-media -dpfs
![]() |
When you have finished playing media from an iPod or PFS device, you do not need to disconnect it from the MME. Just physically remove it from the system. |
If you want to synchronize USB devices, you need to enable the MME to discover these devices:
# io-usb -duhci -dohci -dehci
# umass-enum -a -d /dev/ -h umass,umasscd
![]() |
|
You can use the following command line utilities to explore the MME's capabilities:
If you have trouble with the installation or playing media, try the following:
# pidin arg
# io-media-generic -M mmf,dlldir=$QNX_TARGET/x86/lib/dll/mmedia -DD
To start mme in verbose mode:
# mme-generic -c $QNX_TARGET/etc/mme.conf -vvv
If the MME does not detect your mediastore, edit the MME's MCD configuration file with the information the MCD needs to find the mediastore. See “Mediastore detection path configuration” in the MME Configuration Guide for more information.
If you need to contact us, the information you gather will help us solve your problem.
![]() |
![]() |
![]() |
![]() |