Feed for discussion Development in project Multimedia.
http://community.qnx.com/sf/discussion/do/listTopics/projects.multimedia/discussion.development
Posts for Developmentpost101073: Re: Query related QDB - Client API usage
http://community.qnx.com/sf/go/post101073
qdbc is a standard QNX 6.5.0 binary. When you install the 6.5.0 runtime,
this binary should already be included.
Regards,
GillesGilles Roy2013-05-02T02:33:10Zpost101072: Re: Query related QDB - Client API usage
http://community.qnx.com/sf/go/post101072
Hi im a student trying to use QDB for the first time and i'm wondering where can i get qdbc? please enlighten meJian Rong Yong2013-05-02T02:27:11Zpost100057: Re: Query related QDB - Client API usage
http://community.qnx.com/sf/go/post100057
Hi Gilles,
Thanks for your reply.
I am new to both DBMS and qdb.
I didn't understand your reply.
Could you please explain it little details.Kathirvel Kuppusamy2013-03-20T16:40:51Zpost100056: Re: Query related QDB - Client API usage
http://community.qnx.com/sf/go/post100056
It sounds like your application is directly modifying the underlying DB
file.
Regards,
GillesGilles Roy2013-03-20T16:37:00Zpost100049: Re: Query related QDB - Client API usage
http://community.qnx.com/sf/go/post100049
Executing the same logic from command line interface before "application" execution, it works fine.Kathirvel Kuppusamy2013-03-20T15:32:16Zpost100048: Re: Query related QDB - Client API usage
http://community.qnx.com/sf/go/post100048
1) Is QDB running?
QDB process is running after executing the example code
2) What does the output of "pidin arg" show?
Displays that QDB process is running
3) What does the output of "ls -al /dev/qdb" show?
Shows the database which was created by my application and size of that file is 0.
Refer to attachement (ls_l_qdb_dev.jpg)
4) try using qdbc to run your query:
qdbc -d<name_of_db> "SELECT ...."
I tried using "INSERT INTO" command after executing the example code, got the following error
file is encrypted or is not a database(S26)
Refer to attcahment (INSERT_INTO.jpg)Kathirvel Kuppusamy2013-03-20T15:30:17Zpost100042: Re: Query related QDB - Client API usage
http://community.qnx.com/sf/go/post100042
I don't think there is any details for use to help.
1) Is QDB running?
2) What does the output of "pidin arg" show?
3) What does the output of "ls -al /dev/qdb" show?
4) try using qdbc to run your query:
qdbc -d<name_of_db> "SELECT ...."
Regards,
GillesGilles Roy2013-03-20T14:14:01Zpost100040: Query related QDB - Client API usage
http://community.qnx.com/sf/go/post100040
Hello Everyone,
I have created a "C Application" to play around with qdb and I have plan to use it in my actual project later.
I am facing the following issue - "database get results api returns - Input/Output error". I copied the DB to local system and tried opening using SQLite Browser - "file is encrypted or is not a database" error.
Logic implemented in Application
1) Connect to database
2) Insert an data
3) Operate on that data(SELECT) and get the results of that operation. I followed the same code in "QDB Examples" of QNX documentation.
Please provide some guidance to go ahead.Kathirvel Kuppusamy2013-03-20T14:09:56Zpost99205: Webkit running on QNX 6.5.0
http://community.qnx.com/sf/go/post99205
I'm having trouble getting the webkit browser window to show in tandem with a embedded Flash interface as demonstrated in QNX-CAR VMware where the Flash based browser controls appear around the browser.
In my flash based interface I can get the webkit browser to appear but it seems to completely overlay the Flash interface. The browser shows graphics, and can be controlled via pps control object. However the onscreen browser, with sized defined smaller than the screen, shows black in areas where I'd like Flash to show through.
How can I get the browser to appear with Flash?Ralph Canapa2013-02-11T16:48:53Zpost97804: QSA errors
http://community.qnx.com/sf/go/post97804
Hi all!
Here some problems when referring to QSA calls.
- snd_pcm_plugin_params fails with error "invalid argument", though the pcm handle is valid and the snd_pcm_channel_params_t structure is initialized;
- also, snd_pcm_plugin_params fails if the format is set to SND_PCM_SFMT_FLOAT_LE or SND_PCM_SFMT_FLOAT_BE;
- snd_pcm_channel_status_t: the stime member is always to 0, though the time member in snd_pcm_channel_params_t is set to 1.
Where can be the problem?
Thank you very much!
G.a g2012-12-05T10:54:38Zpost96625: Re: Using Simple Remote Lingo by means of QNX Aviage Multimedia Interface for iPod 1.2.1
http://community.qnx.com/sf/go/post96625
Hello
Given the licensing restrictions and other agreements related to iPod, we
are unable to discuss our implementation in public forums.
Please go through your existing support contacts to discuss this and any
other issues related to iPod.
Regards,
>Jim Gilderson2012-10-25T14:08:16Zpost96617: Using Simple Remote Lingo by means of QNX Aviage Multimedia Interface for iPod 1.2.1
http://community.qnx.com/sf/go/post96617
Hello,
I'm using the QNX Aviage Multimedia Interface for iPod 1.2.1 to control an iPod. To my knowledge (besides the Extended Interface Lingo) you can use the simple remote lingo to control an apple device using ContextButtonStatus-Commands (Play, Stop, Next Track etc.). Unfortunately the "ipod_smplrmt_button"-Command has no effect. Using a high verbose (=6) regarding the iPod driver I see, that the ContextButtonStatus-Command is correctly send to and acknowledged by the apple device. What's the trick to control the apple device using the "ipod_smplrmt_*" commands? Is it really possible to use the "ipod_smplrmt_*" commands to control the ipod as specified in the MFI? Or is the simple remote lingo supported by QNX restricted to iPod Out? To control the iPod by means of the extended interface is completely unproblematic.The procedure is simply 1. connecting to the apple device (ipod_connect()) 2. use the "ipod_smplrmt_button" command (for instance IPOD_BUTTON_CONTEXT_NEXT_TRACK [playback engine is not empty]).
I'm looking forward that anybody can give me a hint.Andreas Kruschwitz2012-10-25T12:36:36Zpost94521: Re: How to handle mediastore addition and deletion during playback?
http://community.qnx.com/sf/go/post94521
Thank you. Back to coding now... :)Yuh-Fwu Guu2012-07-30T18:05:59Zpost94519: Re: How to handle mediastore addition and deletion during playback?
http://community.qnx.com/sf/go/post94519
Yes, your plan would work as long as your goal was to treat media from all
USB sticks as if it was available in one tracksession.
Note: you'll want to update your tracksession after files pass (1st pass)
of the newly inserted mediastore is complete.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2012-07-30T17:21:01Zpost94518: Re: How to handle mediastore addition and deletion during playback?
http://community.qnx.com/sf/go/post94518
Ryan,
If I had only one USB stick inserted and created a track session using the following statement...
select fid from library where msid in (select msid from mediastores where (mountpath="/fs/usb0" or mountpath="/fs/usb1" or mountpath="/fs/usb2" or mountpath="/fs/usb3") and available=1)
I used to create a new track session when I detected any of the other USB sticks was inserted, my understanding now is that I can use the mme_trksessionview_update() to refresh the files in the track session and have new files included when any of the other USB was inserted or removed.
So there is really no need to call mme_settrksession() anymore if all I needed are the files from any of those possible mediastores, is this correct?
Thanks.Yuh-Fwu Guu2012-07-30T17:17:41Zpost94516: Re: How to handle mediastore addition and deletion during playback?
http://community.qnx.com/sf/go/post94516
Thank you Ryan,
Off to write the code now.Yuh-Fwu Guu2012-07-30T15:19:47Zpost94515: Re: How to handle mediastore addition and deletion during playback?
http://community.qnx.com/sf/go/post94515
Yes, trksessionview_update will update the play order. It should not
affect the currently playing fid. You should ensure that your playing fid
remains in the tracksession.
The fids themselves will not change by using this call. The position of
the fid in the tracksession may change, and the random position of the fid
in the tracksession will definitely change.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2012-07-30T15:10:46Zpost94514: Re: How to handle mediastore addition and deletion during playback?
http://community.qnx.com/sf/go/post94514
Will calling mme_trksessionview_update() affects what's being played back at the time the call was made in any way (stops the file currently being playback, etc)?
In the MME API documentation for mme_trksessionview_update(), it says...
"For both library-based and file-based track sessions, a call to mme_trksessionview_update() refreshes the pseudo-random order of the tracks in the track session."
Does it means the files (same file from USB_1 for example) will get a different fid, when USB_2 was inserted and mme_trksessionview_update() was called?Yuh-Fwu Guu2012-07-30T14:56:22Zpost94513: Re: How to handle mediastore addition and deletion during playback?
http://community.qnx.com/sf/go/post94513
MME will not automatically refresh the tracksession to include the new
files. You will have to call mme_trksessionview_update() to have it
re-run the query. After this the tracksession should contain tracks from
both mediastores.
If a user disconnects USB_1 (/fs/usb0) while playback is still occurring
on that mediastore you will likely receive playback errors. MME will try
to play additional tracks and will, most likely, hit the consecutive play
error count limit and stop playback completely. You should have to update
the tracksession query and re-issue the play command.
How you handle ejections and insertions of mediastores will depend on how
you want your product to behave. Some products will limit the scope of
tracksessions to a single mediastore (only tracks from USB_1 or USB_2 but
not both); other products will play files across a number of different
connected mediastores.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2012-07-30T14:09:00Zpost94512: How to handle mediastore addition and deletion during playback?
http://community.qnx.com/sf/go/post94512
Hello,
I have MME and MCD setup to detect mediastores on USB sticks, how do I handle mediastore addition and deletion due to the insertion and removal of the USB sticks during a library based track session playback?
For example, when I have one USB inserted, and I am playing audio files from this USB with track session created using the following statement...
select fid from library where msid in (select msid from mediastores where (mountpath="/fs/usb0" or mountpath="/fs/usb1") and available=1)
The track session playback will contain only files from USB_1, which is mounted as /fs/usb0. Now, if I inserted a second USB stick, it will be mounted as /fs/usb1, will MME add the files from the second USB stick and let the playback continue to play files in USB_2 when all files from USB_1 have been played back?
Thanks.Yuh-Fwu Guu2012-07-30T13:59:36Zpost94394: Re: Question
http://community.qnx.com/sf/go/post94394
Hi Robb,
I will send you an e-mail.
--
Ryan J. Allen
QNX Software Systems
From: Robbie Tarte <community-noreply@qnx.com<mailto:community-noreply@qnx.com>>
Reply-To: "development-multimedia@community.qnx.com<mailto:development-multimedia@community.qnx.com>" <development-multimedia@community.qnx.com<mailto:development-multimedia@community.qnx.com>>
Date: Tuesday, 24 July, 2012 11:14 AM
To: "development-multimedia@community.qnx.com<mailto:development-multimedia@community.qnx.com>" <development-multimedia@community.qnx.com<mailto:development-multimedia@community.qnx.com>>
Subject: Question
I am a RIM employee and I need to post a question about BB10. Is there a private forum for that?
Robb Tarte
Test Automation Developer
x13167Ryan Allen2012-07-24T15:37:27Zpost94393: Question
http://community.qnx.com/sf/go/post94393
I am a RIM employee and I need to post a question about BB10. Is there a private forum for that?
Robb Tarte
Test Automation Developer
x13167Robbie Tarte(deleted)2012-07-24T15:26:07Zpost94219: Re: USB Audio Driver with QNX SDP 6.5 Service Pack1
http://community.qnx.com/sf/go/post94219
Hello
It is a standard audio driver supporting playback and capture.
It supports USB Audio Classes 1 and 2.
There is no specific documentation other than the Utilities guide and
regular audio documentation regarding use of the drivers.
Regards,
On 12-07-12 2:31 AM, "Rohit Nair" <community-noreply@qnx.com> wrote:
>Hi Jim,
>My ultimate goal is to use the ipod to stream audio over the usb,
>I'm not sure how to use this driver if it facilitates this in anyway.
>Else i shall have to write usb client driver to prepare for isochronous
>data transfer.
>
>It'll be great if you could point to some documentation (about using this
>driver for capture , playback).
>
>Appreciate the help.
>
>Regards.
>
>
>
>_______________________________________________
>
>Development
>http://community.qnx.com/sf/go/post94215
>To cancel your subscription to this discussion, please e-mail
>development-multimedia-unsubscribe@community.qnx.comJim Gilderson2012-07-12T13:18:27Zpost94215: Re: USB Audio Driver with QNX SDP 6.5 Service Pack1
http://community.qnx.com/sf/go/post94215
Hi Jim,
My ultimate goal is to use the ipod to stream audio over the usb,
I'm not sure how to use this driver if it facilitates this in anyway.
Else i shall have to write usb client driver to prepare for isochronous data transfer.
It'll be great if you could point to some documentation (about using this driver for capture , playback).
Appreciate the help.
Regards.Rohit Nair2012-07-12T06:31:27Zpost94205: Re: USB Audio Driver with QNX SDP 6.5 Service Pack1
http://community.qnx.com/sf/go/post94205
Hi
This is an audio capture and playback driver that can be used with io-audio.
It does not handle detection or mounting of USB devices - this is handled outside of the the audio framework.
QNX does not use this for iPod and I am not aware of anyone specifically using this for iPod.
Regards,Jim Gilderson2012-07-11T19:01:47Zpost94183: Re: USB Audio Driver with QNX SDP 6.5 Service Pack1
http://community.qnx.com/sf/go/post94183
Correction to subjectRohit Nair2012-07-11T06:35:56Zpost94182: USB Audio Driver with QNX SDP 6.0 Service Pack1
http://community.qnx.com/sf/go/post94182
Hi, I'm trying to setup an IPod to stream audio over the usb (with Boards Freescale i.mx53, i.mx6q).
With service Pack1 there is a new usb audio driver available. (http://www.qnx.com/developers/articles/rel_5189_3.html#New_deva)
Has anybody tried using this new driver with io-audio.?
deva-ctrl-usb.so...Can it help in auto detect / mount of usb audio devices. Has any one tried setting this up with an IPOD.
Any advice/ help in this regard is welcome.
Regards (My apologies to those added in recipients in case this does not interest them.)Rohit Nair2012-07-11T06:34:05Zpost93813: Re: how to adjust the volume of audio capture device
http://community.qnx.com/sf/go/post93813
The software mixer (software PCM mixer) only exist on the playback side of the house, as its job is to mix multiple PCM stream into one that can be written to a singe audio device (since we are doing sample by sample modifications for the mix we added in software volume controls into this path).
For capture the only gain/volume adjustments you can do depend on what the hardware codec exposes in terms of controls (there are not software volume controls on the capture path). You can use the mix_ctl utility to dump all of control groups and to make adjust to those groups.Joe Mammone2012-06-21T14:24:29Zpost93811: how to adjust the volume of audio capture device
http://community.qnx.com/sf/go/post93811
Customer needs to change the volume of captured audio data to a definite level in order to pass it to a voice recognition device. Is it possible to achieve this by using a software mixer or is there any alternative solution?.Ramesh Vemula(deleted)2012-06-21T13:56:39Zpost93356: Re: SQLite3 on QNX Neutrino 6.x
http://community.qnx.com/sf/go/post93356
Hi Dan, Thanks for the hint.
We were using no absolute path in the sample test application and it was executing from /tmp dir which is linked to the shared memory region managed by proncto. That was probably the problem.
Now after mounting a a ramdisk area created by the utility devb-ram the test application runs fine.
I shall update the same thread in case we face more issues with sqlite on qnx.
Thanks!Rohit Nair2012-05-30T06:43:25Zpost93342: Re: SQLite3 on QNX Neutrino 6.x
http://community.qnx.com/sf/go/post93342
What file system are you running it on? And what is the full path to your database?
On 2012-05-29, at 12:34 AM, Rohit Nair wrote:
> Hi,
> We are trying to Port SQLite3 onto QNX Neutrino 6.x based system as part of a multimedia program.
> We are receiving a SQL error DISK I/O ERROR on the execution of very first command (sqlite3_exec()) to create a table
> inside a database. Note: The database file was created (sqlite3_open() was successful).
>
> From a similar post on qnx 4 support site we understand that the SQLite should work straight out of the box. Could somebody guide us with the required compilation flags/ macros that we should enable.
> (For eg. is the flag -DSQLITE_OS_UNIX or more required)
> Appreciate any help with this.
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post93326
> To cancel your subscription to this discussion, please e-mail development-multimedia-unsubscribe@community.qnx.comDan Cardamore2012-05-29T12:57:59Zpost93326: SQLite3 on QNX Neutrino 6.x
http://community.qnx.com/sf/go/post93326
Hi,
We are trying to Port SQLite3 onto QNX Neutrino 6.x based system as part of a multimedia program.
We are receiving a SQL error DISK I/O ERROR on the execution of very first command (sqlite3_exec()) to create a table
inside a database. Note: The database file was created (sqlite3_open() was successful).
From a similar post on qnx 4 support site we understand that the SQLite should work straight out of the box. Could somebody guide us with the required compilation flags/ macros that we should enable.
(For eg. is the flag -DSQLITE_OS_UNIX or more required)
Appreciate any help with this.Rohit Nair2012-05-29T04:34:28Zpost91957: Re: MCD : external insertion notification doesn`t work
http://community.qnx.com/sf/go/post91957
I'm not sure this scenario is handled by MCD. If MCD only processes the
mount/umount functions when there is a callout, you could possibly
implement your own custom callout, as described in the MCD docs. Your
callout could talk to your external device to get the insertion state, or
alternatively, maybe your callout does nothing and you keep writing the to
insert/eject files. It is possible just having a callout will allow it to
mount/unmount.
Regards,
GillesGilles Roy2012-03-07T19:52:25Zpost91902: MCD : external insertion notification doesn`t work
http://community.qnx.com/sf/go/post91902
Hello QNX Developers,
My needs perfectly described by "CD-changer controlled by external firmware" section of MCD documentation.
I need to avoid using built-in CD_MEDIA_IOBLK MCD routine and report CD insertion/ejection events externally.
However, when I do that, configured start/stop rules are NOT executed.
MCD is executed with '-vvvv' CL option.
From sloginfo, I can see that notifications are received by MCD:
Jan 01 03:03:41.632.3 00023 00 /dev/cd0 media inserted
Jan 01 03:03:52.597.3 00023 00 /dev/cd0 media ejected
Implementation is really simple and is pretty much a copy-paste from official documentation. Suppose that it is OK, as MCD does indicate these reports in the log (in case of insertion, "/dev/cd0" is written to /dev/mcd/.insert, in case of ejection, write it to /dev/mcd/.eject)
Snippet of my mcd.cfg :
[/dev/cd*]
Start Rule = MOUNT
Stop Rule = UNMOUNT
[MOUNT]
Callout = MOUNT_FSYS
Argument = /etc/mcd.mnt
[UNMOUNT]
Callout = UNMOUNT_FSYS
Note :
In case of I switch to built-in CD_MEDIA_IOBLK routine, MOUNT rule is executed and CD is mounted.
(To do that, I only need to add following lines to [/dev/cd*] device entry)
> Callout = CD_MEDIA_IOBLK
> Argument = 1000,2000
> Priority = 11,10
Thank you!Konstantin V2012-03-03T17:58:42Zpost90260: Re: IO-media APIs
http://community.qnx.com/sf/go/post90260
Using the io-media API isn't supported, and isn't documented. Having said
that, you can find the API definitions in <iomedia/api.h> and related
files in the iomedia header directory.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2011-11-23T14:39:19Zpost90257: IO-media APIs
http://community.qnx.com/sf/go/post90257
HI,
i am not getting any io-media APIs. Please point me some documents that contains the io-media APIs. Thanks in advance.Partha Koley2011-11-23T13:32:56Zpost89577: Re: How to handle the Media Picker in the PlayBook
http://community.qnx.com/sf/go/post89577
Hi Vikram,
Sorry for the delayed reply...
There is currently no public API for accessing the media database.
Things are in flux currently, but there are plans to publish an API for this once Universal Search is available on the device.
In the meantime, unfortunately, you will have to scrape the directories under /accounts/1000/shared for files.
Cheers,
SeanSean McVeigh2011-10-24T21:35:55Zpost89575: Re: Finding mediastores and their states
http://community.qnx.com/sf/go/post89575
Thank you Gilles,
I tried query mediastore tables and got the info I needed.
Regards,
GuuYuh-Fwu Guu2011-10-24T16:00:56Zpost89569: Re: Finding mediastores and their states
http://community.qnx.com/sf/go/post89569
You can query the MME mediastores tables in the database. Each mediastore
has a state (active or unavailable) which will tell you if it is currently
inserted or not.
Alternatively, in your mme.conf, there is this setting:
<!-- Controls whether or not devices are automatically detected
by the MME. This is independent of synchronization. -->
<!--<DeviceDetection enabled="true"/>-->
If you uncomment the DeviceDetection and set it to false, I.e.:
<DeviceDetection enabled="false"
The MME, when it starts, won't monitor devices. Instead, once your app is
running, you can connect to the MME, register for events and then issue
mme_start_device_detection(), this way you won't miss any of the
statechange events.
Regards,
GillesGilles Roy2011-10-24T12:46:23Zpost89551: Finding mediastores and their states
http://community.qnx.com/sf/go/post89551
Hello,
Is there a way to query mme how many media stores have already been detected and what their id's and states are?
Our hardware has two USB ports and mcd can detect the presence of an USB stick in either of these two ports. It does not matter if the USB stick was inserted before or after power up. The USB stick gets mounted as /fs/usb0.
Our client application registers for mme events and can detect when a USB stick was inserted thru these events "EVENT_MS_STATECHANGE", "EVENT_MS_SYNC_STARTED", ..., "EVENT_MS_DB_SYNC_COMPLETE", and "EVENT_SYNCCOMPLETE".
These all worked fine when the USB stick was inserted after the client application has already started. I am able to determine, from the events received, the mediastore id and its state.
The problem comes if the USB stick was inserted before power up, none of the events get captured by the client application because the client application started after mcd has already detected and mounted the USB stick.
What can our client application do, when it starts, to discover mediastores that have already been detected by mcd?
Thanks.Yuh-Fwu Guu2011-10-21T20:35:55Zpost89269: RE: io-audio
http://community.qnx.com/sf/go/post89269
I am missing so many samples while playback and a 3 min file gets played over within ~1.6 mins with missed samples. I am using software mixer plugins to develop the wave application. I know my audio system is not having an overflow or underflow from DMA. So the audio system receives data without any loss as pumped from DMA.
Any hints will be greatly appreciated.
-----Original Message-----
From: David Mak-Fan [mailto:community-noreply@qnx.com]
Sent: Friday, October 07, 2011 9:16 AM
To: development-multimedia
Subject: Re: io-audio
Is your concern that the DMA might read from a memory address that io-audio is currently filling? If your DMA is feeding a system that is clocking audio data out at real-time (e.g. 48khz), then io-audio should be able to write fragments faster than that rate (on average), and then it should not be possible for DMA (read pointer) to "pass" io-audio (write pointer).
Are you using the SW mixer plugin as well? It pre-mixes 2 fragments worth before deva is actually started.
Thanks,
Dave
_______________________________________________
Development
http://community.qnx.com/sf/go/post89261Arun Johnson2011-10-07T14:41:46Zpost89261: Re: io-audio
http://community.qnx.com/sf/go/post89261
Is your concern that the DMA might read from a memory address that io-audio is currently filling? If your DMA is feeding a system that is clocking audio data out at real-time (e.g. 48khz), then io-audio should be able to write fragments faster than that rate (on average), and then it should not be possible for DMA (read pointer) to "pass" io-audio (write pointer).
Are you using the SW mixer plugin as well? It pre-mixes 2 fragments worth before deva is actually started.
Thanks,
DaveDavid Mak-Fan2011-10-07T13:16:29Zpost89253: Re: How to handle the Media Picker in the PlayBook
http://community.qnx.com/sf/go/post89253
Hi
I have developed the game using the native sdk , but to use the feature of Media Picker(like the way we can select the songs in iphone), how to access the media picker from Blacberry tablet(playbook).
Which API should we use to access the media picker.
Example : In adobe AIR SDK (http://www.blackberry.com/developers/docs/airapi/1.0.0/qnx/ui/media/MediaControl.html).
Thanks,
-Vikramvikram boidapu2011-10-07T06:48:05Zpost89249: io-audio
http://community.qnx.com/sf/go/post89249
I am developing an audio driver for our platform. the DMA is configured to execute in a looping mode with 2 descriptors.The DMA is giving interrupts at the end of each fragment this interrupt is passed on to the driver to fill in the already serviced fragment.
question :
if the dma executes faster than io-audio and generates an interrupt and moves on to the fragment that io-audio currently is filling in, how will io-audio synchronize the audio ??Arun Johnson2011-10-06T18:43:24Zpost89233: Re: How to handle the Media Picker in the PlayBook
http://community.qnx.com/sf/go/post89233
What do you mean by "Media Picker" exactly? Is you app an AIR app, a
Native App? Could we get a few more details please?
On 11-10-05 2:00 AM, "vikram boidapu" <community-noreply@qnx.com> wrote:
>Hello ,
>
>I have a small demo game app and I want to access the Media Picker in the
>Application.
>
>Please help me with the API on how to use that feature or any technical
>help on this.
>
>Thanks,
>-Vikram
>
>
>
>_______________________________________________
>
>Development
>http://community.qnx.com/sf/go/post89225
>Adrian Boak2011-10-05T18:56:47Zpost89225: How to handle the Media Picker in the PlayBook
http://community.qnx.com/sf/go/post89225
Hello ,
I have a small demo game app and I want to access the Media Picker in the Application.
Please help me with the API on how to use that feature or any technical help on this.
Thanks,
-Vikramvikram boidapu2011-10-05T06:00:18Zpost84197: Queries related to IO-audio
http://community.qnx.com/sf/go/post84197
I am have written a driver for my sound card
1. If I palce the driver in SDCard and launch the IO-Audio with -d option to specify driver path it does not use this driver instead it uses default driver present in other folder.
2. If I place the driver in tmp folder & launch the IO-Audio with -d option to specify driver path it uses this driver.
I would like to know why option 1 does not work ...Girisha SG2011-03-23T11:56:06Zpost83410: BSP for I.mx356 processor
http://community.qnx.com/sf/go/post83410
Hi,
I have installed QNX 6.4.1, and downloaded the BSP
"bsp-freescale-i.mx35".
The processor used is I.mx356. In this project it required the graphical
interface development.
1.Please let me know how to load the BSP image to target.
Since im new to QNX, please let me know what target to be used for the
project using I.mx356 processor. The guide of how
HMI interacts with the terminal mode concept.
2.Please let me know how can i project an image and manage the fonts?
Thanks & Regards
Jyothi
Please do not print this email unless it is absolutely necessary.
The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments.
WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email.
www.wipro.comjyothi Balehosur2011-02-23T13:27:38Zpost83409: BSP for I.mx356 processor
http://community.qnx.com/sf/go/post83409
Hi,
I have installed QNX 6.4.1, and downloaded the BSP "bsp-freescale-i.mx35".
The processor used is I.mx356. In this project it required the graphical interface development.
1.Please let me know how to load the BSP image to target.
Since im new to QNX, please let me know what target to be used for the project using I.mx356 processor. The guide of how HMI interacts with the terminal mode concept.
2.Please let me know how can i project an image and manage the fonts?
Please send a reply to mail id
jyothi.balehosur@wipro.com
Regards
Jyothijyothi Balehosur2011-02-23T13:22:35Zpost83208: Re: "Skipping file because it is known to be not playable" endless loop
http://community.qnx.com/sf/go/post83208
Hey Ryan,
great, thanks for the quick reply!
Regards,
DanielDaniel Endres2011-02-16T14:13:21Zpost83207: playable flag within the library table
http://community.qnx.com/sf/go/post83207
Hi all,
as you may remember we asked for an option to also mark drm-protected files as unplayable within the library-table. This is because we don't want the user to experience play errors due to drm-protected files. We don't want to play DRM-Protected files at all and therefore they will be grayed out in our HMI.
Since there is no mme configuration mechanism, we've achieved this, by using the database trigger you've provided which toggles the playable-flag if an protected file is encountered during metadata-pass.
The downside of the is that the playable flag of drm-protected files may change between Sync pass 1 and 2. The reason why I'm bringing this up again, is the error handling which I'm implementing right now. The bad case is a sd card which consists of "only" unplayable tracks. E.g. 80 files which are already known as unplayable to the mme. The sd-card was removed and extended by 10 new drm-protected files and 10 new corrupt files.
The issue I'm struggling with right now is, that I need a mechanism to determine that they're now playable files at all. Counting the playFileErrors isn't an option since e.g. I don't know if I receive playErrors for the drm-files at all (dependes on the point in time where the playback happens. Before or after the db-trigger toggles the playable flag).
My prefered way would be to fire a sql statement on every filePlayError which determines the state of the playable field within the library table (for the fids in the current tracksession). For this I need to rely on the fact that the library table is up2date when the mme fires the last filePlayError. Speaking of my example above:
80 Files were skipped automatically because they are already known as unplayable
The 10 drm files were also skipped, since pass 2 was done when the playback attempt happend
At the time the 9 corrupt files generated 9 playFileErrors and the tenth file returned with another playFileError a "select sum(playable) from library where <tracksession stmt>" would return 0, right? Or could it happen that 1 or another value may be returned instead?
Or put differently, on a playFileError the playable column within the library table gets updated before the according playFileError is emitted?
Thanks, DanielDaniel Endres2011-02-16T14:04:19Zpost83204: Re: "Skipping file because it is known to be not playable" endless
loop
http://community.qnx.com/sf/go/post83204
Daniel,
This is a side-effect of a change we made to not count "known
not-playable" files as play errors. But it is a bug--we missed this
case. We will have to fix this.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2011-02-16T13:44:04Zpost83198: "Skipping file because it is known to be not playable" endless loop
http://community.qnx.com/sf/go/post83198
Hi all,
I've just ran into an issue regarding the automatic skipping of already known unplayable tracks (just did a touch to create some files). In my use case i had a tracksession consisting of ONLY unplayable tracks. If I fire a 'mmecli play_extended offset 0' on this tracksession, the mme skips as assumed from track to track with the message:
'Skipping file because it is known to be not playable. fid=251, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//3empty.mp3'
Unfortunately the mme doesn't recognize the end of the tracksession and therefore loops until forever. At this point the mme is unresponsive as well. So it's not possible to call a stop or any other command.
There are eleven entries within my tracksession:
Jan 01 01:26:04 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=249, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//1empty.mp3'
Jan 01 01:26:04 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=250, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//2empty.mp3'
Jan 01 01:26:05 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=251, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//3empty.mp3'
Jan 01 01:26:05 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=252, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//4empty.mp3'
Jan 01 01:26:05 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=253, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//5empty.mp3'
Jan 01 01:26:05 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=254, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//6empty.mp3'
Jan 01 01:26:05 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=255, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//7empty.mp3'
Jan 01 01:26:05 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=246, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//8empty.mp3'
Jan 01 01:26:05 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=247, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//10empty.mp3'
Jan 01 01:26:05 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=248, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//11empty.mp3'
Jan 01 01:26:05 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=249, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//1empty.mp3'
Jan 01 01:26:06 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=250, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//2empty.mp3'
Jan 01 01:26:06 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=251, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//3empty.mp3'
Jan 01 01:26:06 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=252, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//4empty.mp3'
Jan 01 01:26:06 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=253, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//5empty.mp3'
Jan 01 01:26:06 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=254, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//6empty.mp3'
Jan 01 01:26:06 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=255, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//7empty.mp3'
Jan 01 01:26:06 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=246, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//8empty.mp3'
Jan 01 01:26:06 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=247, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//10empty.mp3'
Jan 01 01:26:07 5 27 0 MME:_play(3229): Skipping file because it is known to be not playable. fid=248, filename='/net/mmx.mibhigh.net/fs/sdb0//Gemischt/error testing/only corrupt files//11empty.mp3'
Hopefully this is easy to fix!?
Thanks in advance,
DanielDaniel Endres2011-02-16T10:54:30Zpost74637: Re: Zune playback
http://community.qnx.com/sf/go/post74637
> Hello Giles,
>
> Working with Vadivel on our Zune connectivity. We have obtained our Zune
> certificate (.pfx and .p7b) files from Microsoft. Was searching MME
> documentation on what to do with these files in terms of file path. Is it
> just drag and drop to the location, or do we need to run through some qnx
> process and rename the files?
>
> Kindly advise.
>
> Thank you.
>
> Michael
We're aware of the default location /etc/pfs but noticed .der and .bin file formatsG. Michael Adderley2010-11-15T15:32:22Zpost74631: Re: Zune playback
http://community.qnx.com/sf/go/post74631
Hello Giles,
Working with Vadivel on our Zune connectivity. We have obtained our Zune certificate (.pfx and .p7b) files from Microsoft. Was searching MME documentation on what to do with these files in terms of file path. Is it just drag and drop to the location, or do we need to run through some qnx process and rename the files?
Kindly advise.
Thank you.
MichaelG. Michael Adderley2010-11-15T15:25:39Zpost68615: Re: How to use iom_attach_input to attach the input from USB devices?
http://community.qnx.com/sf/go/post68615
The only thing that changes is the URL. The URL of the capture device
will depend on where the audio should come from. We can talk specifics
for your project directly.
In general, if it is an io-audio capture device you'll use a similar
snd: URL. You would have to know which capture device to use. Some
io-audio drivers will setup a link from a "known" name to the capture
device. For example, our iPod driver for io-audio has a "cap_name"
argument for this.
--
Ryan J. Allen
QNX Software Systems
On 10-09-24 04:50 PM, Jeff Sheng wrote:
> Hello all,
>
> We use io-media to play stream data from Smartphone devices in our project. If the stream data is from Bluetooth phone, I could use the following setting to play.
>
> iom_attach_input(graphId, "snd:/dev/snd/pcmC3D0c", fid );
>
> Since it is different for smartphone which gets stream data from USB port, I don't know how to set url.
>
> iom_attach_input(graphId, url, fid );
>
> Thanks for your advices,
> Jeff Sheng
>Ryan Allen2010-09-27T13:32:32Zpost68577: How to use iom_attach_input to attach the input from USB devices?
http://community.qnx.com/sf/go/post68577
Hello all,
We use io-media to play stream data from Smartphone devices in our project. If the stream data is from Bluetooth phone, I could use the following setting to play.
iom_attach_input(graphId, "snd:/dev/snd/pcmC3D0c", fid );
Since it is different for smartphone which gets stream data from USB port, I don't know how to set url.
iom_attach_input(graphId, url, fid );
Thanks for your advices,
Jeff ShengJeff Sheng2010-09-24T20:50:29Zpost67721: Re: Issue to play stream data using io-media API
http://community.qnx.com/sf/go/post67721
Gilles,
Yes, it works after I did what you mentioned.
Thanks!,
JeffJeff Sheng2010-09-17T14:22:51Zpost67686: Re: Issue to play stream data using io-media API
http://community.qnx.com/sf/go/post67686
On 10-09-16 6:25 PM, "Jeff Sheng" <community-noreply@qnx.com> wrote:
> graphId = iom_create_graph( "streamplayer", "BT_StreamPlayer", 0 );
I would try a "trackplayer" instead of "streamplayer".
> outputId = iom_attach_output(graphId, "/dev/snd/pcmC0D0p", IOM_OF_AUDIO
Here I think you should use "snd:/dev/snd/pcmC0D0p" (i.e. prefix with
"snd:")
> err = iom_attach_input(graphId, "/dev/snd/pcmC3D0c", fid );
Again here try to add an "snd:" prefix.
Start io-media with -DD and post the output of sloginfo if it doesn't work.
Regards,
GillesGilles Roy2010-09-17T01:33:47Zpost67679: Issue to play stream data using io-media API
http://community.qnx.com/sf/go/post67679
Hi,
I have an issue to playback stream data from Bluetooth phone using io-media API calls. If I use PCM API to playback the Bluetooth phone, it works. It seems no error to debug the following codes step by step, but there is no audio output. I could not find the issue, and the document is very limited. Do I miss something to configure the io-media other parameters?
pthread_mutex_init( & mutexId, NULL );
pthread_mutex_lock( & mutexId);
graphId = iom_create_graph( "streamplayer", "BT_StreamPlayer", 0 );
pthread_mutex_unlock( & mutexId);
outputId = iom_attach_output(graphId, "/dev/snd/pcmC0D0p", IOM_OF_AUDIO );
err = iom_attach_input(graphId, "/dev/snd/pcmC3D0c", fid );
if ( err != 0 ) {
iom_play(graphId);
}
Thanks,
Jeff ShengJeff Sheng2010-09-16T22:25:19Zpost66083: Re: About mme trksession
http://community.qnx.com/sf/go/post66083
Hi Gilles!
Thanks for your reply,I have fixed the problem!Kailen High2010-09-07T08:03:23Zpost66058: Re: About mme trksession
http://community.qnx.com/sf/go/post66058
On 10-09-06 3:16 AM, "Kailen High" <community-noreply@qnx.com> wrote:
> As a result,when I play the media (one of the devices),it tips there are
> no data to play,why?
> please give me some advices ,thanks very much!
You need to post logs. Can you do:
mmecli set_debug 4 0
Now repeat the whole procedure and send the output of sloginfo.
Thanks,
GillesGilles Roy2010-09-06T12:21:28Zpost66035: About mme trksession
http://community.qnx.com/sf/go/post66035
Hello all!
Now , I have two media store device(HardDrive and USB),so I created two new
trksession by calling mme_newtrksession() seperately.
Otherwise, before I use the one of trksessions, I unset the other and set the current one,such as :
mme_stop(mme);
mme_settrksession(mme,0);
mme_settrksession(mme,current_trkid);
As a result,when I play the media (one of the devices),it tips there are no data to play,why?
please give me some advices ,thanks very much!Kailen High2010-09-06T07:16:54Zpost65851: RE: mme_rmtrksession
http://community.qnx.com/sf/go/post65851
You can "unset" the current tracksession by calling mme_settrksession() with the session id of zero. This will allow deletion of the formally active tracksession. You do have to stop before unsetting the tracksession.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2010-09-03T12:17:22Zpost65846: mme_rmtrksession
http://community.qnx.com/sf/go/post65846
Hi All,
calling mme_stop()
and then mme_rmtrksession() for iPod returns with errCode=16 (Device or resource busy)
yet,
creating a new trksession, calling mme_settrksession with this new trksession allows removing of the old one.
when am i able to call mme_rmtrkseesion() ?
Does the trksession to be removed have to be inactive? How can i remove an active trksession?
Regards,
ArtjomArtjom Dizel2010-09-03T11:53:44Zpost64296: Re: Can't access the mme source
http://community.qnx.com/sf/go/post64296
See this post: http://community.qnx.com/sf/go/topc13058
After the acquisition of QNX by RIM, they changed their source policy. You'll now need to submit a QNX Restricted Content Application Form. I believe their plan is that some of the code will be released in the QNX Source project, but I don't think anything exists there yet.
StevenSteven Lougheed2010-08-25T13:20:43Zpost64276: Can't access the mme source
http://community.qnx.com/sf/go/post64276
Hello manager!
I am a member of MME project,but today I found that I can't access the mme source,the access port is forbided.Why?
Can you give me some advice,thanks!Yong Yu2010-08-25T12:11:37Zpost63271: About video decoder in mme
http://community.qnx.com/sf/go/post63271
Hello everyone!
I want to known if the mme spports video decoder based on armle(mx35) and qnx640?
In order to play a mp4 video file, I plan to write a h264 decoder filter,and do the work of h264 codec migrated. Please give me some advices, is it possible to play the video files for my plan?
Otherwise, in the release of qnx car project,I can find ffmpeg_decoder.so, is it for the video decoded? and in this case,what video formats does it supported?
Thanks very much for your reply solving my issue.Xiaolong Zhang2010-08-17T16:11:02Zpost63250: Re: About the mme playlists table
http://community.qnx.com/sf/go/post63250
On Tue, 17 Aug 2010, Kailen High wrote:
> Hi Gilles!
> Thanks for your reply!
> I have some problems need to clarify.
> (1)Is the playlist files(".pls" or ".m3u") created by myself,or the mme
> include playlist files itself,only need to be syncrhonized?
You need to create the playlist files yourself in order for them to be scanned like
the media. Only certain formats will be scanned. (look at the mme.conf file for
the extentions handled in your version)
> (2)My media files is stored in the HardDrive,if I want to get a playlist
> displayed in the HMI,how should I do ?
Once the playlist and playlistdate tables are populated, in the same manner that
you would present data from the library table.
> (3)The mme has passed the 3 syn, but the playlists table and playlist_data table is empty,why?
During the sync no playlists were found. You make things more verbose during the sync
to see exactly what is happening. During the file sync pass it will note files that
would be flagged as playlists. If it doesn't find any then there is nothing to do during
the 3rd pass sync.
Do you have playlists on your system that you expected to be found?
PeterPeter Martin2010-08-17T14:15:09Zpost63245: Re: About the mme playlists table
http://community.qnx.com/sf/go/post63245
Hi Gilles!
Thanks for your reply!
I have some problems need to clarify.
(1)Is the playlist files(".pls" or ".m3u") created by myself,or the mme include playlist files itself,only need to be syncrhonized?
(2)My media files is stored in the HardDrive,if I want to get a playlist displayed in the HMI,how should I do ?
(3)The mme has passed the 3 syn, but the playlists table and playlist_data table is empty,why?
Looking for your reply ,thanks!Kailen High2010-08-17T14:02:22Zpost63080: Re: About the mme playlists table
http://community.qnx.com/sf/go/post63080
On 10-08-15 11:17 AM, "Kailen High" <community-noreply@qnx.com> wrote:
> I can get the media file metadatas from the library table.but the mme
> internal playlists table is empty,I use the follow command:
>
> qdbc -d mme "slect * from playlists"
> result empty
If the MME syncrhonizes a device (say a USB stick) and it finds playlist
files which it recognizes (based on file extension, i.e. something like
".pls" or ".m3u") it will create a playlist entry in the playlists table and
will insert the corresponding playlist entries as fids in the playlistdata
table.
>
> please give me some advices ,how can I use the mme internal
> playlists.thanks very much! otherwise,does the mme include gracenode
> itself?how can I get it and manage the playlist.
> thanks very much!
Gracenote is not included. You are probably best off to talk to your sales
representative about how to get it.
Regards,
GillesGilles Roy2010-08-16T14:36:22Zpost63024: About the mme playlists table
http://community.qnx.com/sf/go/post63024
Hello everyone!
I can get the media file metadatas from the library table.but the mme internal playlists table is empty,I use the follow command:
qdbc -d mme "slect * from playlists"
result empty
please give me some advices ,how can I use the mme internal playlists.thanks very much! otherwise,does the mme include gracenode itself?how can I get it and manage the playlist.
thanks very much!Kailen High2010-08-15T15:17:17Zpost62564: Re: MMF Graph for a2dp playback using SBC decoder.
http://community.qnx.com/sf/go/post62564
On 10-08-10 3:43 PM, "Lakshmi Boggaram" <community-noreply@qnx.com> wrote:
> We are aware that QNX MMF supports SBC decoders to perform audio playback
> using a2dp devices.
>
> Can somebody explain how I can invoke the SBC decoder by any kind of
> configurations and also the which are the filters involved for a2dp playback
> using sbc decoder?
I don't think we have an SBC decoder for MMF. This means is that when
playing back using A2DP devices, the bluetooth stack needs to do the
decoding to PCM.
Regards,
GillesGilles Roy2010-08-11T00:42:49Zpost62534: MMF Graph for a2dp playback using SBC decoder.
http://community.qnx.com/sf/go/post62534
Hello All,
We are aware that QNX MMF supports SBC decoders to perform audio playback using a2dp devices.
Can somebody explain how I can invoke the SBC decoder by any kind of configurations and also the which are the filters involved for a2dp playback using sbc decoder?
Thanks and Regards,
LakshmiLakshmi Boggaram2010-08-10T19:43:12Zpost59318: starting ipod driver io-fs-media with nopoll
http://community.qnx.com/sf/go/post59318
Hi all,
when starting io-fs-media with following arguments:
/armle/usr/sbin/io-fs-media -d ipod,config=/armle/etc/ipod.cfg,transport=ser:dev=/dev/ser2:nopoll,playback,fnames=short,verbose=1
the ipod is recognized by MME, but when removing the iPod no events are generated by MME and iPod stays in mediastores table. Currently the iPod is connected to B-sample via serial connection and is charged.
Starting io-fs-media with "poll" argument works fine also on the B-sample.
A second question is: Where can i see debug output of io-fs-media? Adding "verbose=1" to arguments produces neither an output in sloginfo nor an output on std::out
I have attached the mcd.conf and sloginfo output (mmecli set_debug 4 4) when attaching AND detaching the iPod afterwards.Artjom Dizel2010-07-13T15:50:54Zpost59230: Re: Zune playback
http://community.qnx.com/sf/go/post59230
On 10-07-06 9:31 AM, "Malek Naffati" <community-noreply@qnx.com> wrote:
> So contrary to all of the sources claiming that Zune does not support PFS,
> the Zune supports PFS but in a fassion that is incompatible to the PFS
> spec/certification
> due to the additional encryption? Did I understand that correctly?
I believe that much of the commands are similar, but that there are
differences due to the additional encryption.
GillesGilles Roy2010-07-12T18:21:51Zpost59049: Re: mme_play_resume_msid on iPod
http://community.qnx.com/sf/go/post59049
If I understand what you're asking for, the answer is no. The iPod does
not indicate the path on the iPod where the playback engine comes from.
If you ask the iPod to play a specific path then the MME can provide the
information (for the first file that plays). After the iPod takes over
playback the MME only really knows what is in the playback engine--not
how the playback items got into the playback engine.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2010-07-09T12:16:57Zpost59038: mme_play_resume_msid on iPod
http://community.qnx.com/sf/go/post59038
Hi all,
is there a way to get the path information of active playing item when resuming a device-tracksession by calling mme_play_resume_msid?
The call "select * from nowplaying" to qdb returns with an empty filename cell.This cell is filled yet when creating a trksession manually and calling trksession_set_files afterwards.
Regards,
ArtjomArtjom Dizel2010-07-09T08:00:45Zpost58840: Re: Hang on 0 Byte Mp3s
http://community.qnx.com/sf/go/post58840
Apperently my track session the file was in was borged,
thus a non-related problem on my side.
The broken mp3 file is
now correctly removed as documented.Malek Naffati2010-07-07T14:35:27Zpost58665: Re: Zune playback
http://community.qnx.com/sf/go/post58665
This is interesting.
So contrary to all of the sources claiming that Zune does not support PFS,
the Zune supports PFS but in a fassion that is incompatible to the PFS spec/certification
due to the additional encryption? Did I understand that correctly?Malek Naffati2010-07-06T13:31:33Zpost58636: Hang on 0 Byte Mp3s
http://community.qnx.com/sf/go/post58636
Assuming that this may occur in day to day use
I tested what happens when trying to play 0 byte Mp3 files.
Apperently, this hangs up the media backend? mmecli
commands will not have any effect and mmecli will
hang up after having been "treated" with this specific file.
Is anyone able to reproduce this error?Malek Naffati2010-07-06T07:17:22Zpost58582: Re: Retrieving album artwork is not working
http://community.qnx.com/sf/go/post58582
On 10-06-30 2:08 PM, "Vadivel Palanisamy" <community-noreply@qnx.com> wrote:
> Hi Gilles,
>
> I have all the switch..case to print the received event. But none of them got
> received except 'MME_EVENT_SHUTDOWN_COMPLETED' .
Hi Vadivel,
I think you may have connected synchronously. When I look at the code, it
seems we won't send you the MME_EVENT_METADATA_INFO if you specified O_SYNC
when you called mme_connect(). If you really want a syncrhonous call, you
should pass in a buffer instead of passing NULL when you call
mme_metadata_getinfo_*() API calls.
Regards,
GillesGilles Roy2010-07-05T19:52:16Zpost58232: Re: Retrieving album artwork is not working
http://community.qnx.com/sf/go/post58232
Hi Gilles,
I have all the switch..case to print the received event. But none of them got received except 'MME_EVENT_SHUTDOWN_COMPLETED' .
Like below code,
switch (mme_event->type)
{
/// ***** CLASS_METADATA *****
case MME_EVENT_NONE: // 0 - Indicates that no 'single' type events are in the clients queue.
{
// MM_INFO("Ply status thread received MME_EVENT_NONE event.");
break; // Queue is flushed
}
case MME_EVENT_METADATA_INFO: // 53 - mme_event_metadata_info_t
{
// mme_event_metadata_info_t . EOK is the data valid.
MM_INFO("Metadata received MME_EVENT_METADATA_INFO event");
break;
}
case MME_EVENT_METADATA_IMAGE: // 54 - load an image from metadata is issued via the
// mme_metadata_image_load() API function call a metadata image request id is returned to the client.
{
MM_INFO("Metadata received MME_EVENT_METADATA_IMAGE event");
//1. If an image is available and required, call mme_metadata_image_load() to load the image into the image cache.
//2. Call mme_metadata_free_session() to close the metadata session and free the system resources it was using.
if (pWorkerMetadata->m_mmestatus.sessionID)
{
//End a metadata session
rc = mme_metadata_free_session(pWorkerMetadata->m_mmestatus.sessionID);
}
break;
}
/// ***** CLASS_GENERAL *****
case MME_EVENT_USERMSG: // 7 - An MME user event.
{
MM_INFO("General - received MME_EVENT_USERMSG event.");
break;
}
case MME_EVENT_SHUTDOWN: // 15 - mme can be requested to shutdown by any client.
{
MM_INFO("General - received MME_EVENT_SHUTDOWN event.");
break;
}
case MME_EVENT_SHUTDOWN_COMPLETED: // 16 - The shutdown process is complete. Playback and sync have stopped.
{
MM_INFO("General - received MME_EVENT_SHUTDOWN_COMPLETED event.");
// Start a database backup
qdb_backup(pWorkerMetadata->m_mmestatus.hQDB, QDB_ATTACH_DEFAULT);
//qdb_Backup
break;
}
case MME_EVENT_BUFFER_TOO_SMALL: // 55 - A client when the event buffer on the client side is
// too small to fetch any events from the MME.
{
MM_INFO("General - received MME_EVENT_BUFFER_TOO_SMALL event.");
break;
}
case MME_EVENT_DEFAULT_LANGUAGE: // 59 - default language has been set
{
MM_INFO("General - received MME_EVENT_DEFAULT_LANGUAGE event.");
break;
}
default:
{
printf(" Metadata received unhandled event(%d)\n", mme_event->type);
break;
}
} //end-switch
Regards,
VadivelVadivel Palanisamy2010-06-30T18:08:09Zpost58225: Re: Retrieving album artwork is not working
http://community.qnx.com/sf/go/post58225
On 10-06-30 12:25 PM, "Vadivel Palanisamy" <community-noreply@qnx.com>
wrote:
> // Para-4: Setting the 'metadata' argument to NULL for asynchronously.
>
> // to retrieve the required metadata for a the currently playing track and
> place it in the mme_metadata_info_t data structure.
> rc = mme_metadata_getinfo_current(pWorkerPly->m_mmestatus.sessionID, groups,
> &pWorkerPly->m_mmestatus.mdinfo_rid, NULL);
Hi Vadivel,
As in your comment above, setting metadata to NULL makes the function return
an async event MME_EVENT_METADATA_INFO will be delivered. This event
includes the XML description saying how many images there are, and a
description of each message.
You are not catching that event. You would need to add a new case statement
for MME_EVENT_METADATA_INFO and then parse the XML and then invoke
mme_metadata_load_image(). That would in turn generate the
MME_EVENT_METADATA_IMGAGE you are looking for but not receiving.
BTW, instead of parsing the XML, if you want a shortcut (for testing), you
could instead each time you receive the MME_EVENT_METADATA_INFO just call
mme_metadata_load_image() with an index of 0.
As well, I'd say that adds complexity to use a NULL metadata pointer. You
might want to just get the XML immediately instead of use it in an async
manner.
Regards,
GillesGilles Roy2010-06-30T17:10:06Zpost58218: Retrieving album artwork is not working
http://community.qnx.com/sf/go/post58218
Hi,
I am using following code and I am not getting MME_EVENT_METADATA_IMAGE event.
case MME_EVENT_TRACKCHANGE: // 2 - A track change occured while playing.
{
MM_INFO("Ply status thread received MME_EVENT_TRACKCHANGE event");
pWorkerPly->m_mmestatus.uiFID = ((mme_trackchange_t*)&mme_event->data)->fid;
pWorkerPly->m_mmestatus.fid_requested = ((mme_trackchange_t*)&mme_event->data)->fid_requested;
pWorkerPly->m_mmestatus.offset = ((mme_trackchange_t*)&mme_event->data)->offset;
#if 1 // FIXME ****
// To create a metadata session and reserve the required system resouces.
rc = mme_metadata_create_session(pWorkerPly->m_mmestatus.hMME, &pWorkerPly->m_mmestatus.sessionID) ;
if (-1 == rc) {
MM_ERROR("Fail to create a new meta-data session.");
} else {
const char* groups = "audio/common:image/format"; // "*" or NULL
// Para-2: Setting the 'metadata_groups' argument to NULL, or the group to "*" instructs the function to return all avaialble metadata for the file.
// Para-3: mdinfo_rid 0 Success: mdinfo_rid is set. -1 An error occurred (errno is set).
// Para-4: Setting the 'metadata' argument to NULL for asynchronously.
// to retrieve the required metadata for a the currently playing track and place it in the mme_metadata_info_t data structure.
rc = mme_metadata_getinfo_current(pWorkerPly->m_mmestatus.sessionID, groups, &pWorkerPly->m_mmestatus.mdinfo_rid, NULL);
if (-1 == rc) {
MM_INFO ("Fail to get metadata information.");
} else {
if( 0 != pWorkerPly->m_mmestatus.mdinfo_rid) {
MM_ERROR("Fail to get metadata info.");
}
}
} // end-if
#endif
break;
}
case MME_EVENT_METADATA_IMAGE: // 54 - load an image from metadata is issued via the
// mme_metadata_image_load() API function call a metadata image request id is returned to the client.
{
MM_INFO("Metadata received MME_EVENT_METADATA_IMAGE event");
//1. If an image is available and required, call mme_metadata_image_load() to load the image into the image cache.
//2. Call mme_metadata_free_session() to close the metadata session and free the system resources it was using.
if (pWorkerMetadata->m_mmestatus.sessionID)
{
//End a metadata session
rc = mme_metadata_free_session(pWorkerMetadata->m_mmestatus.sessionID);
}
break;
}
Regards,
VadivelVadivel Palanisamy2010-06-30T16:25:14Zpost58168: RE: Warning-Message: Couldn't get trksession mode (25), assume enabled
http://community.qnx.com/sf/go/post58168
We have an API that io-media uses to talk to devices such as iPod called MediaFS. We recently extended this API to ask the device if it is handling its own tracksession (ie, in the normal case, when a song finishes playing does it play the next song automatically). The old functionality was to assume that it was.
It seems that the iPod driver you have doesn't support the API we added. This is fine, as the behaviour is the same. To avoid it you would need to update your iPod driver. For this you should talk to your appropriate QNX rep.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2010-06-30T10:12:34Zpost58166: Warning-Message: Couldn't get trksession mode (25), assume enabled
http://community.qnx.com/sf/go/post58166
Hi all,
when starting playback of files from iPod i get following messages:
io-media-nvidia/mmf: writer hint snd:* found
io-media-nvidia/mmf: writer hint appe_output_* found
io-media-nvidia/mediafs: Couldn't get trksession mode (25), assume enabled
I've seen the first two messages all the time when playing from iPod. Now i see the additional message regarding "trksession mode".
What does this message mean? And how to avoid this warning?
It doesn't seem to affect playback, as iPod starts to play anyway and everything still works fine.
Regards,
ArtjomArtjom Dizel2010-06-30T07:56:57Zpost57939: Custom Joystick driver and is0usb
http://community.qnx.com/sf/go/post57939
We have written usb drivers for a pedal and a joystick we are using with the QNX system. The problem is we are forced to restart io-usb with the following lines in rc.local to ensure that the drivers we have written can see that the devices
are physically connected:
slay io-usb
io-usb -dehci -duhci -dohci
waitfor /dev/io-usb/io-usb
Another approach is to physically disconnect and connect the USB devices. And in fact sometimes we are forced to do this
even with the lines above.
Do you think there is a better way to handless this situation?
Thanks...Seyit Seyhan2010-06-25T18:02:56Zpost57872: Re: Detecting that an ipod has no content
http://community.qnx.com/sf/go/post57872
Ok, thanks a lot for the info.
Regards,
ArtjomArtjom Dizel2010-06-25T06:51:24Zpost57837: Re: Detecting that an ipod has no content
http://community.qnx.com/sf/go/post57837
For Music (i.e. audio only content) you just need to check /Music/Songs. For
video content you just need to check "/Videos/Video Playlists/~0". This will
contain all videos on the iPod. Things like podcasts or audiobooks will end
up in Music/Songs or Videos/Video Playlists/~0. As well, playlists are just
lists of content already on the iPod, so they don't need their own explicit
check.
/Music/Songs is the contents of playlist 0 for audio (*all* audio content on
the iPod). The "/Videos/Video Playlists/~0" folder is playlist 0 for Video,
all video content on the iPod is there.
Regards,
Gilles
On 10-06-24 12:12 PM, "Artjom Dizel" <community-noreply@qnx.com> wrote:
> ok, but what about podcasts (video-podcasts), audiobooks, videos, playlists,
> the /Music/Songs folder does not contain them or am i wrong at this point?
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post57814
>Gilles Roy2010-06-24T17:52:19Zpost57814: Re: Detecting that an ipod has no content
http://community.qnx.com/sf/go/post57814
ok, but what about podcasts (video-podcasts), audiobooks, videos, playlists, the /Music/Songs folder does not contain them or am i wrong at this point?Artjom Dizel2010-06-24T16:12:12Zpost57813: Re: Detecting that an ipod has no content
http://community.qnx.com/sf/go/post57813
On 10-06-24 11:56 AM, "Artjom Dizel" <community-noreply@qnx.com> wrote:
> is there a way to find out if an iPod has playable content stored on it or is
> completely empty?
>
> Or do i have to browse the folder-structure to find out. that all folders are
> empty?
You could just check Music/Songs. I will include all of the audio content on
the ipod (i.e. everything that is in Music/Genres/... Music/Artist/.... etc
will be in Music/Songs). If that one folder is empty, there are no songs on
the iPod.
Regards,
GillesGilles Roy2010-06-24T16:01:08Zpost57811: Detecting that an ipod has no content
http://community.qnx.com/sf/go/post57811
Hi all,
is there a way to find out if an iPod has playable content stored on it or is completely empty?
Or do i have to browse the folder-structure to find out. that all folders are empty?
Thanks for help,
ArtjomArtjom Dizel2010-06-24T15:56:37Zpost57322: Re: Issue: Total number <files/folder/play list> getting on DB sync complete
http://community.qnx.com/sf/go/post57322
Thanks Ryan! for your support.Vadivel Palanisamy2010-06-21T17:50:44Zpost57320: Re: Zune playback
http://community.qnx.com/sf/go/post57320
Hi Gilles,
Gilles: I saw those errors as well. I don't think that you would even get a mountpoint without the certificate. Are you sure you are using a Zune and not a PlaysForSure device?
Vadivel: Yes, we are using Zune device only. We have PFS device and it works fine. We are able browse (on zune device - same device) and able to see the album, artist, genre ..etc list. When we try to play particular file then we are getting 'Unsupported codec error'.
Gills: I was looking for the output of "pidin arg". In your pidin_log.txt I don't
get the info I was looking for.
Vadivel: Please find the pidin_arg_log.txt' file as a attachment.
Let me know if you any more information.
Regards,
VadivelVadivel Palanisamy2010-06-21T17:47:37Zpost57202: Re: Issue: Total number <files/folder/play list> getting on DB sync
complete
http://community.qnx.com/sf/go/post57202
The sync complete event does not contain this data.
Properly, you should be running queries on the database to get these
totals. You can do this via qdb's API.
"select count(fid) from library where msid = X and ftype != 5" will give
you files (the ftype 5 is the device fid)
"select count(folderid) from folders where msid = X" will give you
folders (including the root '/' folder)
"select count(plid) from playlists where msid = X" will give you playlists
Note that this gives you the totals for that mediastore, NOT the totals
inserted/changed for that mediastore. For example, if you are syncing a
mediastore for the first time and there are 10 files you would have 10
files added, and 10 files total. If you then add 2 files to this and
resync you will have 2 files added and 12 files total.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2010-06-18T18:54:27Zpost57200: Re: Zune playback
http://community.qnx.com/sf/go/post57200
On 10-06-18 1:47 PM, "Vadivel Palanisamy" <community-noreply@qnx.com> wrote:
> Some time we are getting following error (after inserting the device and
> before start selecting any item on the list)
>
> io-fs-media(pfs): Bad ioread status 5.
> io-fs-media(pfs): Bad ioread status 5.
> io-fs-media(pfs): Bad ioread status 5.
> io-fs-media(pfs): Bad ioread status 5.
> io-fs-media(pfs): Bad ioread status 5.
> io-fs-media(pfs): Bad ioread status 5.
>>I saw those errors as well. I don't think that you would even get a
mountpoint without the certificate. Are you sure you are using a Zune and
not a PlaysForSure device?
Vadivel: Yes, we are using Zune device only. We have PFS device and it works fine. We are able browse (on zune device - same device) and able to see the album, artist, genre ..etc list. When we try to play particular file then we are getting 'Unsupported codec error'.
> Please find an attachment of 'pidin_log.txt' file.
>>I was looking for the output of "pidin arg". In your pidin_log.txt I don't
get the info I was looking for.
Vadivel: Please find the new attachment.
> If possible, please can you provide me the information about zune
> certification?? like how to get?? any document or web-site link..etc to get
> certification that will be help for me.
>>I don't know much about this. You will have to contact Microsoft to find out
the details.
GillesVadivel Palanisamy2010-06-18T18:34:58Zpost57198: Re: Zune playback
http://community.qnx.com/sf/go/post57198
On 10-06-18 1:47 PM, "Vadivel Palanisamy" <community-noreply@qnx.com> wrote:
> Some time we are getting following error (after inserting the device and
> before start selecting any item on the list)
>
> io-fs-media(pfs): Bad ioread status 5.
> io-fs-media(pfs): Bad ioread status 5.
> io-fs-media(pfs): Bad ioread status 5.
> io-fs-media(pfs): Bad ioread status 5.
> io-fs-media(pfs): Bad ioread status 5.
> io-fs-media(pfs): Bad ioread status 5.
I saw those errors as well. I don't think that you would even get a
mountpoint without the certificate. Are you sure you are using a Zune and
not a PlaysForSure device?
> Please find an attachment of 'pidin_log.txt' file.
I was looking for the output of "pidin arg". In your pidin_log.txt I don't
get the info I was looking for.
> If possible, please can you provide me the information about zune
> certification?? like how to get?? any document or web-site link..etc to get
> certification that will be help for me.
I don't know much about this. You will have to contact Microsoft to find out
the details.
GillesGilles Roy2010-06-18T18:14:34Zpost57197: Issue: Total number <files/folder/play list> getting on DB sync complete
http://community.qnx.com/sf/go/post57197
Hi,
We are using below code to get the total number files/folders/play-list information on Sync-complete but it prints zero's. Do we missing something to get correct information.
How to get the qdb_database size??? I think have to use ' qdb_getdbsize(..)' API calls to get the DB size. But it returns pages & sizes. Is that correct????
Code:
case MME_EVENT_MS_SYNCCOMPLETE: // 13 - Synchronization of the mediastore is complete.
{
printf("Sync status thread received MME_EVENT_MS_SYNCCOMPLETE event \n");
// print_execution_time(m_tsStartTime);
int iScope = QDB_ATTACH_DEFAULT; // QDB_ATTACH_ALWAYS | QDB_ATTACH_NEVER
uint32_t page_size = 0, total_pages = 0, free_pages = 0 ;
// Return the size of a database
int iDBSize = qdb_getdbsize(m_mmestatus.hQDB, iScope, &page_size, &total_pages, &free_pages);
printf("MME databse size(%d), page_size(%d), total_pages(%d), free_pages(%d) \n", iDBSize, page_size, total_pages, free_pages);
#endif
printf ("Mediastore %llu; files %llu; folders %llu; playlists %llu; \n", ((mme_ms_update_data_t*)&mme_event->data)->msid, ((mme_ms_update_data_t*)&mme_event->data)->added_filecount, ((mme_ms_update_data_t*)&mme_event->data)->added_foldercount, ((mme_ms_update_data_t*)&mme_event->data)->playlist_count
);
break;
}
Thanks & Regards,
VadivelVadivel Palanisamy2010-06-18T18:12:30Zpost57195: Re: Zune playback
http://community.qnx.com/sf/go/post57195
Hi Gilles,
Some time we are getting following error (after inserting the device and before start selecting any item on the list)
io-fs-media(pfs): Bad ioread status 5.
io-fs-media(pfs): Bad ioread status 5.
io-fs-media(pfs): Bad ioread status 5.
io-fs-media(pfs): Bad ioread status 5.
io-fs-media(pfs): Bad ioread status 5.
io-fs-media(pfs): Bad ioread status 5.
.
..
... etc
Please find an attachment of 'pidin_log.txt' file.
If possible, please can you provide me the information about zune certification?? like how to get?? any document or web-site link..etc to get certification that will be help for me.
Regards,
VadivelVadivel Palanisamy2010-06-18T17:47:52Zpost57187: Re: Zune playback
http://community.qnx.com/sf/go/post57187
On 10-06-18 12:48 PM, "Gilles Roy" <community-noreply@qnx.com> wrote:
>
>>
>> Setup:
>> H/w: Beagle board
>> S/w: QNX 6.4.1 / Aviage multimedia 1.2.0
>> Zune 16 GB Model 1395
>>
>> Please find the log file a attachment.
>>
>> Let me know is there any configuration change?? or need any specific codec
>> for
>> zune device.
>
> Zune contents are encrypted. To play a Zune device you need a certificate
> from Microsoft. I suspect you probably don't have one.
>
> Can you show me the pidin arg output on your system?
>
>
> Thanks,
> Gilles
>
>
>Jim Gilderson2010-06-18T16:48:55Zpost57186: Re: Zune playback
http://community.qnx.com/sf/go/post57186
On 10-06-18 12:32 PM, "Vadivel Palanisamy" <community-noreply@qnx.com>
wrote:
> We are trying to play the audio from zune and HMI shows error "unsupported
> codec".
>
> Setup:
> H/w: Beagle board
> S/w: QNX 6.4.1 / Aviage multimedia 1.2.0
> Zune 16 GB Model 1395
>
> Please find the log file a attachment.
>
> Let me know is there any configuration change?? or need any specific codec for
> zune device.
Zune contents are encrypted. To play a Zune device you need a certificate
from Microsoft. I suspect you probably don't have one.
Can you show me the pidin arg output on your system?
Thanks,
GillesGilles Roy2010-06-18T16:48:09Zpost57182: Zune playback
http://community.qnx.com/sf/go/post57182
Hi,
We are trying to play the audio from zune and HMI shows error "unsupported codec".
Setup:
H/w: Beagle board
S/w: QNX 6.4.1 / Aviage multimedia 1.2.0
Zune 16 GB Model 1395
Please find the log file a attachment.
Let me know is there any configuration change?? or need any specific codec for zune device.
Regards,
VadivelVadivel Palanisamy2010-06-18T16:32:10Zpost57148: Re: RE: Creating a tracksession
http://community.qnx.com/sf/go/post57148
Thanks Ryan Allen!Vadivel Palanisamy2010-06-18T13:38:15Zpost57116: RE: Creating a tracksession
http://community.qnx.com/sf/go/post57116
Generally for iPod you will use a file-based tracksession. The iPod will fill-out a tracksession with other files in the folder you select. For example, if you create a file-based tracksession the first file in /Music/Songs/All/ the iPod will load all other items from the same folder into the playback engine. It will play the song you've selected first, but then it will play another one from that folder. The typical iPod tracksession is a file-based tracksession of only one item--the specific item that the user has selected.
There are some exceptions to this general use.
1. If you sync the iPod to the library you can use library-based tracksessions. The same "autofill" of the playback engine mentioned above occurs, so you would generally only play one fid from the library and the iPod will carry on after that;
2. if you sync the iPod to the library AND use iPod stalked mode, you build library-based tracksessions with a list of the specific fids you want to play. Stalker mode has the MME specifically stop the iPod after each track has played, then the MME tells the iPod which song to play next. It's not perfect, but it is necessary if you want specific control over the playback order;
3. if you are resuming an iPod's playback using its existing playback engine (for example, when the user first connects the device), playback is usually done with the function mme_play_resume_msid(). This function automatically creates a library-based tracksession, though that is inconsequential to the caller.
I'm not sure if iPod sync is in MME 1.2.1, and I don't think iPod stalker mode is. If you need either of these and don't have access to these features you'll have to talk to your QNX sales rep about a newer MME version.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2010-06-17T22:49:27Zpost57115: Re: Creating a tracksession
http://community.qnx.com/sf/go/post57115
Thanks Ryan!
Can I create a track session (MME_PLAYMODE_LIBRARY) for iPOD device?? is there any constrain on it for iPOD.
Advance thanks!
VadivelVadivel Palanisamy2010-06-17T22:10:55Zpost57114: Re: Creating a tracksession
http://community.qnx.com/sf/go/post57114
If you are synchronising a mediastore to the library then you can use a
library-based tracksession. This builds a list of files to play by
executing an sql query.
An example using mmecli to play all media files from msid 7:
mmecli newtrksession l "select fid from library where msid = 7 and
ftype != 5;"
If you will be exploring a mediastore (with the mme_explore_*()
functions) you will get a list of files to play. For this you would use
a file-based tracksession, adding the specific files you find that you
want to play.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2010-06-17T21:31:18Zpost57110: Creating a tracksession
http://community.qnx.com/sf/go/post57110
In MME documents says, "MME supports two type of track session 1) Library 2)file-based"
My question is: How do I decide, which one I have to use??Vadivel Palanisamy2010-06-17T20:31:20Zpost55202: Re: the porting of h264
http://community.qnx.com/sf/go/post55202
Hi peter!
thanks for your reply.
I havn't intel codec package in my target.I want to complie a h264 codec lib,can you give me some example of the codec.thanks!Kailen High2010-05-20T05:20:08Zpost55154: Re: the porting of h264
http://community.qnx.com/sf/go/post55154
On Wed, 19 May 2010, Kailen High wrote:
>Subject: the porting of h264
>
> Hi all!
> I want to play mp4 file in mme,but I can not get the decoder of
> h264.Can you descripe the interface of h264 decoder,is it similar
> with the mp4_parser? thanks very much!
Video decoding is handled thru the intel codec package... do you have that
on your system?
What errors do you get when you do try and play?
PeterPeter Martin2010-05-19T14:44:27Zpost55094: the porting of h264
http://community.qnx.com/sf/go/post55094
Hi all!
I want to play mp4 file in mme,but I can not get the decoder of h264.Can you descripe the interface of h264 decoder,is it similar with the mp4_parser?
thanks very much!Kailen High2010-05-19T07:16:09Zpost53704: Re: dose mme support the wav format?
http://community.qnx.com/sf/go/post53704
Hi Steven,
That’s interesting and news to me. My suggestion is that you open a
discussion with QNX support to address this.
Dan
On 10-05-04 9:37 AM, "Steven Lougheed" <community-noreply@qnx.com> wrote:
> I think some of the confusion around wav files is that some CD rippers do
> include metadata in the wav files. For example, I have some CDs ripped with
> Windows Media Player and if I open the files with vi I can see:
>
> RIFF6þ¡[]WAVELISTÈ[]INFOIART[]Andrea BocelliINAM[]Macchine da
> Guerra[]IPRD[]Romanza[]IGNR[]Classical[]
>
> (non-printable characters have been replaced with [])
>
> So, in fact, this wave file does have artist, title, genre. The fact that
> other players windows players (MediaMonkey, Winamp, etc) can read and display
> this data makes me believe that there is some sort of standard. Any chance
> the mme can parse this
> data?
_______________________________________________
Development
http://c
> ommunity.qnx.com/sf/go/post53511
--
Dan Cardamore <dcardamore@qnx.com>Dan Cardamore2010-05-06T19:45:29Zpost53511: Re: dose mme support the wav format?
http://community.qnx.com/sf/go/post53511
I think some of the confusion around wav files is that some CD rippers do include metadata in the wav files. For example, I have some CDs ripped with Windows Media Player and if I open the files with vi I can see:
RIFF6þ¡[]WAVELISTÈ[]INFOIART[]Andrea BocelliINAM[]Macchine da Guerra[]IPRD[]Romanza[]IGNR[]Classical[]
(non-printable characters have been replaced with [])
So, in fact, this wave file does have artist, title, genre. The fact that other players windows players (MediaMonkey, Winamp, etc) can read and display this data makes me believe that there is some sort of standard. Any chance the mme can parse this data?Steven Lougheed2010-05-04T13:37:20Zpost53491: Re: dose mme support the wav format?
http://community.qnx.com/sf/go/post53491
wav files don¹t contain as much metadata as id3 tags inside mp3s. You¹ll
only get a few fields populated for wav files such as bitrate (not artist).
Dan
On 10-05-04 7:18 AM, "Kailen High" <community-noreply@qnx.com> wrote:
> Hi all!
> I play the song of wav format to gain the artist(title) from
> nowplaying,but it is null. Otherwize ,When I play the song of mp3 format ,I
> can get the artist(titile) from the nowplaying.In the path of dll/media,I can
> find the wavparser.so.
> Can you tell me the reason.
> thaks very much!
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post53488
>
>
--
Dan Cardamore <dcardamore@qnx.com>Dan Cardamore2010-05-04T11:52:38Zpost53488: dose mme support the wav format?
http://community.qnx.com/sf/go/post53488
Hi all!
I play the song of wav format to gain the artist(title) from nowplaying,but it is null. Otherwize ,When I play the song of mp3 format ,I can get the artist(titile) from the nowplaying.In the path of dll/media,I can find the wavparser.so.
Can you tell me the reason.
thaks very much!Kailen High2010-05-04T11:18:34Zpost52753: Re: MP3 Streaming Player
http://community.qnx.com/sf/go/post52753
Hi Nischchal,
I replied too early in the morning... while we don¹t have source you can
grab the Intel IPP package which is available on the foundry27 project¹s
file releases section. If you¹re on x86 then this should do you fine. It
has many audio and video codecs, details are in our docs.
Unfortunately, we don¹t have source available for this because of licensing
issues. But you are free to use the binaries.
Dan
On 10-04-26 8:19 AM, "Nishchal Arora" <community-noreply@qnx.com> wrote:
> Hi Dan
>
> Is there any other audio/video formats that would not require a license that
> can be streamed from a remote server. The project is to build a streaming
> multimedia application, so if there are any such audio/video formats, it would
> be great. Would you also know if there are any open source filters that can be
> integrated easily into the QNX multimedia architecture? Thanks a lot !
>
> Regards,
> Nishchal
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post52746
>
>
--
Dan Cardamore <dcardamore@qnx.com>Dan Cardamore2010-04-26T13:06:09Zpost52746: Re: MP3 Streaming Player
http://community.qnx.com/sf/go/post52746
Hi Dan
Is there any other audio/video formats that would not require a license that can be streamed from a remote server. The project is to build a streaming multimedia application, so if there are any such audio/video formats, it would be great. Would you also know if there are any open source filters that can be integrated easily into the QNX multimedia architecture? Thanks a lot !
Regards,
NishchalNishchal Arora2010-04-26T12:19:07Zpost52735: Re: MP3 Streaming Player
http://community.qnx.com/sf/go/post52735
Hi Nishchal,
It isn¹t available in source form because of licensing issues. You need to
license them in order to get them from us.
Sorry, don¹t think this will be a good solution for you because of the legal
hurdles.
Dan
On 10-04-22 5:36 PM, "Nishchal Arora" <community-noreply@qnx.com> wrote:
> Hi
>
> I have been trying to build a streaming mp3 player on QNX 6.3.2 as part of my
> college project. I built the multimedia suite from the source code as
> documented.
>
> I tried to compile the code to play an mp3 file given on the website. When I
> compile it, I get an error saying that the Xing Mpeg audio decoder is not
> found.
>
> The documentation, which says that it is only available with the multimedia
> TDKs which have been discontinued.
>
> I would really appreciate some help with this.
>
> Thanks
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post52432
>
>
--
Dan Cardamore <dcardamore@qnx.com>Dan Cardamore2010-04-26T10:31:57Zpost52432: MP3 Streaming Player
http://community.qnx.com/sf/go/post52432
Hi
I have been trying to build a streaming mp3 player on QNX 6.3.2 as part of my college project. I built the multimedia suite from the source code as documented.
I tried to compile the code to play an mp3 file given on the website. When I compile it, I get an error saying that the Xing Mpeg audio decoder is not found.
The documentation, which says that it is only available with the multimedia TDKs which have been discontinued.
I would really appreciate some help with this.
ThanksNishchal Arora2010-04-22T21:36:57Zpost52004: RE: retrieving metadata information from an iPod
http://community.qnx.com/sf/go/post52004
May depend on what info you are looking for:
-- querying the nowplaying table (after you received
MME_EVENT_NOWPLAYING_METADATA and not after EVENT_TRACKCHANGE) will give
you info about the track that is being played back at the moment
-- mme_explore_info_get() + mme_metadata_extract_string() will be
useful for browsing the device or getting metadata (titles) of tracks in
the nowplaying list
You may want to take a look at the source of the mmexplore command
line utility if have not seen yet: QNX641/target/qnx6/examples/mmexploreMate Szarvas2010-04-19T07:27:28Zpost52003: retrieving metadata information from an iPod
http://community.qnx.com/sf/go/post52003
Hi all,
There are two ways of getting metadata from an iPod...
The one is to use the mme_explore_info_get() function with a previous call of mme_explore_position_set() with needed metadata_types set as flags.
The other way is to refer to the nowplaying table of the qdb.
What is the better way to get metadata-information from an iPod?Artjom Dizel2010-04-19T06:51:16Zpost52002: Re: Creating an ipod-tracksession
http://community.qnx.com/sf/go/post52002
thanks for the advice with 'io-media'.
Taking another version of the driver solved the issue.Artjom Dizel2010-04-19T06:40:58Zpost51709: Re: Creating an ipod-tracksession
http://community.qnx.com/sf/go/post51709
Is io-media running with a mountpoint of /dev/io-media/?
If you run "ls /dev/io-media/" and then "ls /dev/io-media/graphs/" do
you see the paths? The output from "pidin ar" and your io-media config
file (if any) might also reveal whether or not this is setup.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2010-04-14T20:37:55Zpost51673: Creating an ipod-tracksession
http://community.qnx.com/sf/go/post51673
Hi all,
How do i create an iPod tracksession right?
what i do is the following:
first i create a filebased tracksession with the msid of the ipod
- mme_newtrksession(mme_hdl, MME_PLAYMODE_FILE, sqlStmt)
with sqlStmt = "SELECT fid from library WHERE ftype=5 AND msid=(msid_of_ipod)"
then I set the created tracksession with its returned id in mme_settrksession
afterwards I call mme_set_trksession_files() with following path:
/Music/Artists/item~0/item~0/item~0 ( first item~0=AlbumA, sec. is ArtistA and third is the Song itself)
Here my first question: Is the path given to the mme in the described form right?
(The function returns no error)
When calling mme_play(0) or mme_play_offset(0), no playback is started.
The sloginfo reports the error: "Could not create graph..." see attached sloginfo.txt (the log-level was set to "mmecli set_debug 8 0"
Thanks for any help.Artjom Dizel2010-04-14T16:29:48Zpost51209: Re: Starting the iPod filesystem with serial cable connection
http://community.qnx.com/sf/go/post51209
> when starting io-fs-media with option -dipod,transport=ser:dev=/dev/ser1 do I
> have to specify the acp=i2c option also, or is it only needed when starting io
> -fs-media -dipod with transport option set to "usb"?
Well, specifying the acp=i2c option tells the iPod driver if you have an authentication coprocessor or not. If you do have an auth chip you should use that option regardless of the transport being used (serial or USB).
If you don't have an authentication coprocessor, you can still get playback with analog audio over a serial connection, so the authentication is really only mandatory for USB playback.
Regards,
GillesGilles Roy2010-04-06T14:49:42Zpost51207: Starting the iPod filesystem with serial cable connection
http://community.qnx.com/sf/go/post51207
Hi all,
when starting io-fs-media with option -dipod,transport=ser:dev=/dev/ser1 do I have to specify the acp=i2c option also, or is it only needed when starting io-fs-media -dipod with transport option set to "usb"?Artjom Dizel2010-04-06T14:41:15Zpost50502: Re: Error "Maximum allowed filesystems with MME reached"
http://community.qnx.com/sf/go/post50502
You are right, it is our code which is doing the limiting. Problem fixed now.
Thanks!Jasmine Fong2010-03-25T21:52:20Zpost49709: Re: [MME] Freeing memory of mme_explore_info_t structures
http://community.qnx.com/sf/go/post49709
> will the memory allocated for the mme_explore_info_t structures retrieved
> during an explore session - i.e. calling multiple times mme_explore_info_get()
> - be freed with the call mme_explore_end() - all structures related to the
> closed mme_explore_hdl?
Yes, all will be freed when you call mme_explore_end(). The MME uses a single buffer that can contain information about multiple items (when you call info_get() the first time, it can transfer multiple items from the MME to the client lib and keep them cached). The next time you call info_get() it might not even result in a context switch to the MME, instead the information might already be in the cache in the client memory space.
Of note, you should take what information you need from the result before calling the next info_get(), otherwise the first results memory could be reused and will no longer be valid.
GillesGilles Roy2010-03-17T11:20:00Zpost49696: [MME] Freeing memory of mme_explore_info_t structures
http://community.qnx.com/sf/go/post49696
Hi all,
will the memory allocated for the mme_explore_info_t structures retrieved during an explore session - i.e. calling multiple times mme_explore_info_get() - be freed with the call mme_explore_end() - all structures related to the closed mme_explore_hdl?
Kind Regards,
SebastianSebastian Kiesel2010-03-17T07:11:39Zpost49615: Re: Exploring - Retrieving the filename
http://community.qnx.com/sf/go/post49615
I believe it includes the path information as well, but not the mountpath.
Regards,
GillesGilles Roy2010-03-16T15:15:07Zpost49613: Re: [MME] Correct usage of mme_explore_playlist_find_file()
http://community.qnx.com/sf/go/post49613
> Is it only a copy and paste typo within the PDF documentation - what I guess?
> Do I need a pointer to a mme_explore_hdl_t at all while using
> mme_explore_playlist_find_file()?
I've created an internal PR:75404 to update the documentation. The header files are correct, for that API you need to pass in the mme_hdl_t.
Regards,
GillesGilles Roy2010-03-16T15:03:49Zpost49607: Re: [MME] Correct usage of mme_explore_playlist_find_file()
http://community.qnx.com/sf/go/post49607
You may want to have a look at the source of the mmexplore sample util if have not yet.
----- Original Message -----
From: Sebastian Kiesel <community-noreply@qnx.com>
To: development-multimedia <post49571@community.qnx.com>
Sent: Tue Mar 16 05:16:40 2010
Subject: [MME] Correct usage of mme_explore_playlist_find_file()
Hi all,
the documentation in the header file is different from that in the pdf.
API-Call from the Header file:
const mme_explore_info_t *mme_explore_playlist_find_file(mme_hdl_t *hdl, uint64_t msid, const char *entry, const char *path, const char *metadata_types, uint32_t flags);
Docu - Header file
hdl:= Handle to the MME
...
Docu - PDF
hdl:= A handle to the MME returned by mme_explore_start()
...
=> mme_explore_start returns a pointer to a mme_explore_hdl_t
More over in the PDF it is indicated that the result of mme_explore_playlist_find_file() - which is a mme_explore_info_t - has to be released using mme_explore_info_free().
=> mme_explore_info_free() is also documented in in different ways:
API-Call from the Header file:
int mme_explore_info_free(mme_hdl_t *hdl, const mme_explore_info_t *info);
Docu - Header file
hdl:= Handle to the MME
...
Docu - PDF
hdl:= A handle to the MME returned by mme_explore_start()
...
=> mme_explore_start returns a pointer to a mmm_explore_hdl_t
Is it only a copy and paste typo within the PDF documentation - what I guess?
Do I need a pointer to a mme_explore_hdl_t at all while using mme_explore_playlist_find_file()?
Thanks a lot,
Sebastian
_______________________________________________
Development
http://community.qnx.com/sf/go/post49571Mate Szarvas2010-03-16T14:33:47Zpost49597: Re: mme.conf - parameter for notification interval
http://community.qnx.com/sf/go/post49597
There isn¹t a configuration option so you need to use the API.
Dan
On 10-03-16 5:49 AM, "Sebastian Kiesel" <community-noreply@qnx.com> wrote:
> Hi all,
>
> is there an option within the mme.conf to set the notification interval or
> could this only be done using the api call mme_set_notification_interval()?
>
> Kind Regards,
> Sebastian
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post49573
>
>
--
Dan Cardamore <dcardamore@qnx.com>
QNX Multimedia http://community.qnx.com/sf/projects/multimediaDan Cardamore2010-03-16T13:34:27Zpost49573: mme.conf - parameter for notification interval
http://community.qnx.com/sf/go/post49573
Hi all,
is there an option within the mme.conf to set the notification interval or could this only be done using the api call mme_set_notification_interval()?
Kind Regards,
SebastianSebastian Kiesel2010-03-16T09:49:21Zpost49571: [MME] Correct usage of mme_explore_playlist_find_file()
http://community.qnx.com/sf/go/post49571
Hi all,
the documentation in the header file is different from that in the pdf.
API-Call from the Header file:
const mme_explore_info_t *mme_explore_playlist_find_file(mme_hdl_t *hdl, uint64_t msid, const char *entry, const char *path, const char *metadata_types, uint32_t flags);
Docu - Header file
hdl:= Handle to the MME
...
Docu - PDF
hdl:= A handle to the MME returned by mme_explore_start()
...
=> mme_explore_start returns a pointer to a mme_explore_hdl_t
More over in the PDF it is indicated that the result of mme_explore_playlist_find_file() - which is a mme_explore_info_t - has to be released using mme_explore_info_free().
=> mme_explore_info_free() is also documented in in different ways:
API-Call from the Header file:
int mme_explore_info_free(mme_hdl_t *hdl, const mme_explore_info_t *info);
Docu - Header file
hdl:= Handle to the MME
...
Docu - PDF
hdl:= A handle to the MME returned by mme_explore_start()
...
=> mme_explore_start returns a pointer to a mmm_explore_hdl_t
Is it only a copy and paste typo within the PDF documentation - what I guess?
Do I need a pointer to a mme_explore_hdl_t at all while using mme_explore_playlist_find_file()?
Thanks a lot,
SebastianSebastian Kiesel2010-03-16T09:16:40Zpost49334: Exploring - Retrieving the filename
http://community.qnx.com/sf/go/post49334
Hi all,
includes the path within the struct mme_explore_info_t already the filename or not
after calling mme_explore_info_get?
Thanks,
SebastianSebastian Kiesel2010-03-12T07:41:35Zpost49295: Re: MME Explorer API - mme_explore_position_set
http://community.qnx.com/sf/go/post49295
> What has to be defined by the parameter items within mme_explore_position_set
> before calling the api function mme_explorer_info_get?
> Should it be 1 all the time or the number of items read out using a bunch of
> mme_explorer_info_get calls afterwards?
You should put the number of how many info_get() calls you will make. For example, if on your HMI you display 5 items (but plan on reading 10, say 5 extra to handle a page down) you should pass in items = 10. It is treated as a hint, it allows the MME to optimize things in some situations for better performance.
Regards,
GillesGilles Roy2010-03-11T15:40:56Zpost49280: MME Explorer API - mme_explore_position_set
http://community.qnx.com/sf/go/post49280
Hi all,
using the api call mme_explorer_info_get retrieves the information for one item per call if I understood the docum correctly.
What has to be defined by the parameter items within mme_explore_position_set before calling the api function mme_explorer_info_get?
Should it be 1 all the time or the number of items read out using a bunch of mme_explorer_info_get calls afterwards?
Thanks a lot,
SebastianSebastian Kiesel2010-03-11T15:03:12Zpost48753: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48753
> I did try to build on the command line but it says the svn is not recognized.
I don't use Windows, so I am only of limited help here.
You might need to install SVN separately if it didn't come with the QNX host side tools. You could also use the IDE to check out the sources. Maybe post in a more general forum on the foundry (more users are monitoring so more chances of getting help), as this particular svn issue has nothing to do with Multimedia.
Regards,
GilllesGilles Roy2010-03-03T20:51:58Zpost48732: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48732
Hi Giles
I did try to build on the command line but it says the svn is not recognized.
Regards,
SeraphSeraph Varghese2010-03-03T17:14:21Zpost48697: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48697
> I tried to build the MM suite on Windows as you suggested. For getting the
> source code, we need to use the svn command. I noticed that there are zip
> files on subversion for windows for the source code of the operating system.
> Are there zip files that contain the multimedia source code as well?
No, I think you need to check it out with SVN. There is probably a way to use SVN with IDE as well to check out the source code.
I actually build on the command line, and then export my build area and stage over CIFS/NFS. Then on the QNX target I mount this shared folder and run a script to set my environment (LD_LIBRARY_PATH and PATH) so that it uses those binaries. Then I have a script that starts all the multimedia binaries.
Regards,
GillesGilles Roy2010-03-03T13:48:13Zpost48692: Re: high-power USB device support
http://community.qnx.com/sf/go/post48692
Might want to post this in the "BSP and drivers" project, you might get more USB experts monitoring that forum.
Regards,
GillesGilles Roy2010-03-03T13:28:45Zpost48691: Re: QDB - how to retrieve row number of result row!
http://community.qnx.com/sf/go/post48691
Hi all,
thank you very much for your answers. I created a new table without specifying a primary key, which results in the behavior to retrieve the database ROWID when i select the ROWID. Furthermore i created a unique index on one column to prevent adding the same id twice to the table.
Cheers,
FlorianFlorian Becher2010-03-03T13:23:49Zpost48666: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48666
Hi Giles
I tried to build the MM suite on Windows as you suggested. For getting the source code, we need to use the svn command. I noticed that there are zip files on subversion for windows for the source code of the operating system. Are there zip files that contain the multimedia source code as well?
Regards,
SeraphSeraph Varghese2010-03-02T21:46:45Zpost48612: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48612
> Are you suggesting to download the QNX momentics tool suite 6.4 for windows
> and build the MM suite on both windows and QNX...do all the coding there and
> setup a Neutrino OS viirtually where I would do the testing?
If the IDE is important to you, you can do a "host" install on Windows (i.e. IDE and tools) and install only the QNX runtime on an x86 machine or in a virtual machine. Then you do all of your compilation/building on Windows. You don't build the MM suite on Neutrino at all, you just run/debug your binaries there.
The IDE gives you can easy way to move over the binaries and to launch/debug binaries from the Windows host into the QNX target.
Regards,
GillesGilles Roy2010-03-02T14:40:18Zpost48597: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48597
Hi Giles
Are you suggesting to download the QNX momentics tool suite 6.4 for windows and build the MM suite on both windows and QNX...do all the coding there and setup a Neutrino OS viirtually where I would do the testing?
Regards,
SeraphSeraph Varghese2010-03-02T09:52:10Zpost48591: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48591
A text editor would be sufficient. You can also also setup a "target" box with QNX 6.4 self hosted (for testing) but build and debug from a windows or linux machine (you need to install the QNX 6.4 tools on your host machine as well). This way you will have the IDE.
GillesGilles Roy2010-03-02T01:28:04Zpost48571: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48571
Hi Dan
Okay. I will download QNX 6.4. However, it would not have the IDE. Do u think the IDE would be important for the application I am designing or would a text editor be sufficient?
Regards,
SeraphSeraph Varghese2010-03-01T21:44:47Zpost48537: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48537
Hi Seraph,
I recommend getting yourself a 6.4.1 license. Does this suit your needs?
http://www.qnx.com/products/evaluation/non-commercial_developer.html
DanDan Cardamore2010-03-01T18:35:53Zpost48528: Re: Error "Maximum allowed filesystems with MME reached"
http://community.qnx.com/sf/go/post48528
> "Maximum allowed filesystems with MME reached!"
Based on the mcd.cfg you posted, I suspect this is your software doing this, not QNX software.
> I can clearly see the 4th device being mounted.
>
> /dev/umass/usb07500t12.2 on /fs/usb2 type dos (fat32)
> /dev/umass/usb07500t12.1 on /fs/usb1 type dos (fat32)
> /dev/umass/usb07500t12 on /fs/usb0 type dos (fat32)
> /dev/umass/usb00600t11 on /mnt/umass00600t11 type dos (fat32)
> /dev/umass/usb07500t12.2 on /mnt/umass07500t12.2 type dos (fat32)
> /dev/umass/usb07500t12.1 on /mnt/umass07500t12.1 type dos (fat32)
> /dev/umass/usb07500t12 on /mnt/umass07500t12 type dos (fat32)
Looks like the media launcher is mounting all of the devices, but some other piece of software (i.e. the one I suspect isn't QNX software) seems be creating symlinks from /mnt/umass* to /fs/usb*. However, for some reason it isn't creating the fourth symlink, only 3. I think you should track down which software is responsible for doing this and start the investigation there.
Regards,
GillesGilles Roy2010-03-01T16:33:35Zpost48439: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48439
In the General Multimedia forum group there is a thread started about building on 6.3.0. You should have a look, the title of the thread is "Multimedia Suite". Here is a link:
http://community.qnx.com/sf/discussion/do/listPosts/projects.multimedia/discussion.general.topc12294
Regards,
GillesGilles Roy2010-02-26T17:29:14Zpost48396: Re: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48396
Or would it be better to build the MM suite source code directly on to the QNX 6.3 RTOS?Seraph Varghese2010-02-26T13:42:57Zpost48264: Multimedia Streaming Application in QNX
http://community.qnx.com/sf/go/post48264
Hi
I have to build a multimedia streaming application (non-commercial) to run on QNX RTOS. Since, it wouldn't be feasible for us to get a commercial license for the MM Suite, we are planning to build it from the source code released on the community website.
The problem is that to build the latest version from the source code, I need QNX 6.4 or greater, but QNX SDP 6.4.x for Neutrino Hosts does not have the IDE. The evaluation version does contain the IDE but is licensed for 30 days only. One of the options I was considering was to install the SDP for Windows Hosts (which contains the IDE), build the MM suite on windows and then transfer it to QNX 6.3.
Is this possible?
What is the best way to get around this problem?
Thanks,
SeraphSeraph Varghese2010-02-25T12:29:00Zpost48241: Re: Error "Maximum allowed filesystems with MME reached"
http://community.qnx.com/sf/go/post48241
> On Wed, 24 Feb 2010, Jasmine Fong wrote:
>
> What does your mcd.mnt file look like? All of the items that are
> mounted for you all seem to be coming from the first usb stick which
> has 3 partitions. If you insert them in the opposite order, do you get
> one item mounted and 3 that aren't?
If I insert USB, then the three partitiioned USB I will see one USB and two of three partitions being mounted, shown below.
# mount
/dev/umass/usb06900t12.1 on /fs/usb2 type dos (fat32) ==> partition 1
/dev/umass/usb06900t12 on /fs/usb1 type dos (fat32) ==> partition 2
/dev/umass/usb05500t11 on /fs/usb0 type dos (fat32) ==> another usb stick
/dev/blk/usb-8-iui-2-media on /fs/ipod1 type ipod
/dev/blk/usb-7-pfs-0-media on /fs/pfs1 type pfs
/dev/blk/usb-6-pfs-0-media on /fs/pfs0 type pfs
/dev/blk/usb-1-iui-2-media on /fs/ipod0 type ipod
/dev/blk/ram-0-alloc-0-tmp on /fs/tmpfs type tmp
/dev/umass/usb06900t12.2 on /mnt/umass06900t12.2 type dos (fat32) ==> This one didn't show up.
/dev/umass/usb06900t12.1 on /mnt/umass06900t12.1 type dos (fat32)
/dev/umass/usb06900t12 on /mnt/umass06900t12 type dos (fat32)
/dev/umass/usb05500t11 on /mnt/umass05500t11 type dos (fat32)
/dev/umass/usb06900t12.2 on /mnt/umass06900t12.2 type dos (fat32) ==> This one didn't show up, it should have been /fs/usb3
You mean mcd.cfg?
# USB MSC Devices
[/fs/usb*]
Callout = PATH_MEDIA_PROCMGR
Argument = /proc/mount
Priority = 11,10
Start Rule = SW_UPDATE
Stop Rule = MMEMediumEjected
[SW_UPDATE]
Callout = FNAME_MATCH
Argument = /CD_INFO.CDI
Fail Rule = NAV_UPDATE
Match Rule = NAV_UPDATE
[NAV_UPDATE]
Callout = FNAME_MATCH
Argument = /config.nfm
Fail Rule = GN_UPDATE
Match Rule = GN_UPDATE
[GN_UPDATE]
Callout = FNAME_MATCH
Argument = /gnupdate
Fail Rule = MIXED_AV
Match Rule = MIXED_AV
[MIXED_AV]
Callout = FNAME_PATTERN
Argument = *.MP3,*.mp3,*.WMA,*.wma,*.AAC,*.aac,*.M4A,*.m4a
Fail Rule = PICTURES
Match Rule = PICTURES
[PICTURES]
Callout = FNAME_PATTERN
Argument = *.JPG,*.jpg,*.JPEG,*.jpeg
Fail Rule = MMEMediumInserted
Match Rule = MMEMediumInserted
[IPOD]
Match Rule = MMEMediumInserted
[PFS]
Callout = FNAME_PATTERN
Argument = *.MP3,*.mp3,*.WMA,*.wma,*.AAC,*.aac,*.M4A,*.m4a
Match Rule = MMEMediumInserted
Fail Rule = MMEMediumInserted
[A2DP]
Match Rule = MMEMediumInserted
[MMEMediumInserted]
> I don't recognize the error message as the one you've listed and I just did
> a quick check and had 6 distinct usb keys found/mounted on my system.
>
> # qdbc -dmme "select msid,mountpath from mediastores"
# qdbc -d mme "select msid,mountpath from mediastores"
Rows: 8 Cols: 2
Names: +msid+mountpath+
00000: |1|/fs/ipod0|
00001: |2|/fs/usb1|
00002: |3|/fs/usb2|
00003: |4||
00004: |5|/fs/pfs0|
00005: |6|/fs/pfs1|
00006: |7|/fs/ipod1|
00007: |8|/fs/usb0|Jasmine Fong2010-02-24T21:45:35Zpost48217: Re: Error "Maximum allowed filesystems with MME reached"
http://community.qnx.com/sf/go/post48217
On Wed, 24 Feb 2010, Jasmine Fong wrote:
>Date: Wed, 24 Feb 2010 12:14:11 -0500 (EST)
>From: Jasmine Fong <community-noreply@qnx.com>
>Reply-To: post48196@community.qnx.com
>To: development-multimedia <post48196@community.qnx.com>
>Subject: Error "Maximum allowed filesystems with MME reached"
>
>
> Currently, our mme only allows 3 USB devices to be shown.
> If I insert a fouth USB device, the error I get from screen is
>
> "Maximum allowed filesystems with MME reached!"
>
> And if I look under our mme fs perspective, there is no new mout point. However, the mediaLauncher is happy with the fouth device. If I type
>
> mount
>
> I can clearly see the 4th device being mounted.
>
> /dev/fs0p4 on /HBpersistence type flash
> /dev/umass/usb07500t12.2 on /fs/usb2 type dos (fat32)
> /dev/umass/usb07500t12.1 on /fs/usb1 type dos (fat32)
> /dev/umass/usb07500t12 on /fs/usb0 type dos (fat32)
> /dev/blk/usb-4-pfs-0-media on /fs/pfs0 type pfs
> /dev/blk/ram-0-alloc-0-tmp on /fs/tmpfs type tmp
> /dev/umass/usb00600t11 on /mnt/umass00600t11 type dos (fat32)
> /dev/umass/usb07500t12.2 on /mnt/umass07500t12.2 type dos (fat32)
> /dev/umass/usb07500t12.1 on /mnt/umass07500t12.1 type dos (fat32)
> /dev/umass/usb07500t12 on /mnt/umass07500t12 type dos (fat32)
What does your mcd.mnt file look like? All of the items that are
mounted for you all seem to be coming from the first usb stick which
has 3 partitions. If you insert them in the opposite order, do you get
one item mounted and 3 that aren't?
I don't recognize the error message as the one you've listed and I just did
a quick check and had 6 distinct usb keys found/mounted on my system.
# qdbc -dmme "select msid,mountpath from mediastores"
Rows: 9 Cols: 2
Names: +msid+mountpath+
00000: |1|/dev/snd|
00001: |2|/dev/socket|
00002: |3|/media/drive|
00003: |4|/fs/usb2|
00004: |5|/fs/usb1|
00005: |6|/fs/usb0|
00006: |7|/fs/usb3|
00007: |8|/fs/usb4|
00008: |9|/fs/usb5|
# mount
/net/EAc4dd91.ott.qnx.com/dev/hd0t179 on / type qnx6
/net/EAc4dd91.ott.qnx.com/dev/umass6t12 on /fs/usb5 type dos (fat32)
/net/EAc4dd91.ott.qnx.com/dev/umass5t11 on /fs/usb4 type dos (fat32)
/net/EAc4dd91.ott.qnx.com/dev/umass4t4 on /fs/usb3 type dos (fat32)
/net/EAc4dd91.ott.qnx.com/dev/umass1t11 on /fs/usb2 type dos (fat32)
/net/EAc4dd91.ott.qnx.com/dev/umass3t11 on /fs/usb1 type dos (fat32)
/net/EAc4dd91.ott.qnx.com/dev/umass2t11 on /fs/usb0 type dos (fat32)
/net/EAc4dd91.ott.qnx.com/dev/blk/ram-0-alloc-0-tmp on /fs/tmpfs type tmp
# qdbc -dmme "select * from slots"
Rows: 20 Cols: 10
Names: +slotid+active+msid+multimsid+slottype+zoneid+max_lib_entries+delete_at_start+path+name+
00000: |1|1|3|0|3|1|1000|0|/media/drive|HardDrive|
00001: |2|1|6|0|1|1|1000|0|/fs/usb0|USB|
00002: |3|1|5|0|1|1|1000|0|/fs/usb1|USB|
00003: |4|1|4|0|1|1|1000|0|/fs/usb2|USB|
00004: |5|1|7|0|1|1|1000|0|/fs/usb3|USB|
00005: |6|1|8|0|1|1|1000|0|/fs/usb4|USB|
00006: |7|1|9|0|1|1|1000|0|/fs/usb5|USB|
00007: |8|0|0|0|1|1|1000|0|/fs/usb6|USB|
00008: |9|0|0|0|1|1|1000|0|/fs/usb7|USB|
00013: |14|0|0|0|4|1|1000|0|/fs/ipod0|iPod|
00014: |15|0|0|0|4|1|1000|0|/fs/pfs0|PlaysForSure|
00018: |19|1|2|0|10|1|1000|0|/dev/socket|INTERNET|
#
Thanks,
PeterPeter Martin2010-02-24T18:58:24Zpost48196: Error "Maximum allowed filesystems with MME reached"
http://community.qnx.com/sf/go/post48196
Currently, our mme only allows 3 USB devices to be shown.
If I insert a fouth USB device, the error I get from screen is
"Maximum allowed filesystems with MME reached!"
And if I look under our mme fs perspective, there is no new mout point. However, the mediaLauncher is happy with the fouth device. If I type
mount
I can clearly see the 4th device being mounted.
/dev/fs0p4 on /HBpersistence type flash
/dev/umass/usb07500t12.2 on /fs/usb2 type dos (fat32)
/dev/umass/usb07500t12.1 on /fs/usb1 type dos (fat32)
/dev/umass/usb07500t12 on /fs/usb0 type dos (fat32)
/dev/blk/usb-4-pfs-0-media on /fs/pfs0 type pfs
/dev/blk/ram-0-alloc-0-tmp on /fs/tmpfs type tmp
/dev/umass/usb00600t11 on /mnt/umass00600t11 type dos (fat32)
/dev/umass/usb07500t12.2 on /mnt/umass07500t12.2 type dos (fat32)
/dev/umass/usb07500t12.1 on /mnt/umass07500t12.1 type dos (fat32)
/dev/umass/usb07500t12 on /mnt/umass07500t12 type dos (fat32)
Our slot table in mme library is shown as:
# qdbc -d mme "select * from slots"
Rows: 13 Cols: 10
Names: +slotid+active+msid+multimsid+slottype+zoneid+max_lib_entries+delete_at_start+path+name+
00000: |1|1|2|0|1|1|0|0|/fs/usb0|USB 1|
00001: |2|1|1|0|1|1|0|0|/fs/usb1|USB 2|
00002: |3|1|3|0|1|1|0|0|/fs/usb2|USB 3|
00003: |4|0|0|0|1|1|0|0|/fs/usb3|USB 4|
00004: |5|0|0|0|1|1|0|0|/fs/usb4|USB 5|
00005: |6|0|0|0|1|1|0|0|/fs/usb5|USB 6|
00006: |7|0|0|0|1|1|0|0|/fs/usb6|USB 7|
00007: |8|0|0|0|1|1|0|0|/fs/usb7|USB 8|
00008: |9|0|0|0|4|1|0|0|/fs/ipod0|iPod 1|
00009: |10|0|0|0|4|1|0|0|/fs/ipod1|iPod 2|
00010: |11|1|4|0|4|1|0|0|/fs/pfs0|PFS 1|
00011: |12|0|0|0|4|1|0|0|/fs/pfs1|PFS 2|
00012: |13|0|0|0|4|1|0|0|/fs/avrcp0|Bluetooth 1|
Any idea? Thanks!Jasmine Fong2010-02-24T17:14:10Zpost47611: Re: high-power USB device support
http://community.qnx.com/sf/go/post47611
Yes, it is the same issue. The iPods and certain USB keys are only working after connected with a powered USB hub, otherwise just fail to be recognized by the usb driver. It is most likely an hardware issue and we wonder whether there is a way on software side can help to identify the problem. Now the problematic hardware is not available and will get more info once it is ready again, thanks.
Regards,
ChrisChris Li2010-02-17T21:58:23Zpost47509: Re: high-power USB device support
http://community.qnx.com/sf/go/post47509
> The scenario is after connecting the usb key, the io-usb and
> umass driver couldn't recognize the device, hence could not mount the device
> as /fs/usb0 which readable by Aviage.
Is this the same issue? The last post by Radek said the issue was with iPods. Does your USB key issue occur through a hub as well, or only when directly connected to the board?
> Jan 01 00:14:52 2 12 0 CLASS_EnumerateDevice: Get device descriptor
> failed 5
>
> Not so sure what that means, especially for the error message of "
> CLASS_ExtractDevice: no parent", it happens all the time when connected the
> problematic device (It is 128 MB usb key).
The message "no parent" is normal. The Get device descriptor failed 5 isn't. Can you slay and restart io-usb with more ehci verbosity? The slogs should then have more info. I think you need to do something like:
io-usb -c -v -dehci pindex=0,verbose=5 &
Regards,
GillesGilles Roy2010-02-17T14:38:35Zpost47467: Re: high-power USB device support
http://community.qnx.com/sf/go/post47467
Hi Gilles,
Just like to get some info about the meaning of some error messages related to the USB issue. The scenario is after connecting the usb key, the io-usb and umass driver couldn't recognize the device, hence could not mount the device as /fs/usb0 which readable by Aviage.
No info came form usb -vvvvv as:
# usb -vvvvv
USB 0 (EHCI) v1.10, v1.01 DDK, v1.01 HCD
Control, Interrupt, Bulk(SG), Isoch(Stream), Low speed, High speed
From sloginfo, there are something prompted out as
Time Sev Major Minor Args
Jan 01 00:14:49 2 12 0 CLASS_ExtractDevice: no parent
Jan 01 00:14:50 2 12 0 CLASS_EnumerateDevice: bus 0, parent 0, port 0, speed 2
Jan 01 00:14:50 2 12 0 CLASS_EnumerateDevice: Get device descriptor
Jan 01 00:14:50 2 12 0 CLASS_EnumerateDevice: Get device descriptor failed 5
Jan 01 00:14:51 2 12 0 CLASS_EnumerateDevice: bus 0, parent 0, port 0, speed 2
Jan 01 00:14:51 2 12 0 CLASS_EnumerateDevice: Get device descriptor
Jan 01 00:14:51 2 12 0 CLASS_EnumerateDevice: Get device descriptor failed 5
Jan 01 00:14:52 2 12 0 CLASS_EnumerateDevice: bus 0, parent 0, port 0, speed 2
Jan 01 00:14:52 2 12 0 CLASS_EnumerateDevice: Get device descriptor
Jan 01 00:14:52 2 12 0 CLASS_EnumerateDevice: Get device descriptor failed 5
Not so sure what that means, especially for the error message of "CLASS_ExtractDevice: no parent", it happens all the time when connected the problematic device (It is 128 MB usb key).
Regards,
ChrisChris Li2010-02-17T01:07:58Zpost47440: Re: high-power USB device support
http://community.qnx.com/sf/go/post47440
> Is there anything special we need to do to tell Aviage that the USB driver has
> 500mA available?
The output of usb -v show this:
Device Address : 2
Upstream Host Controller : 0
Upstream Device Address : 1
Upstream Port : 1
Upstream Port Speed : High
Vendor : 0x05ac (Apple Inc.)
Product : 0x1261 (iPod)
Device Release : r0.01
Class : 0x00 (Independent per interface)
Max PacketSize0 : 64
Configurations : 2
Configuration : 1
Attributes : 0xc0 (Self-powered)
Max Power : 500 mA
Configuration : 2 (iPod USB Interface)
Attributes : 0xc0 (Self-powered)
Max Power : 500 mA
You can see for both configuration 1 and 2 it says max power 500 mA. This means as soon as the configuration is selected the iPod is allowed to draw the full 500 mA.
GillesGilles Roy2010-02-16T18:33:00Zpost47374: Re: high-power USB device support
http://community.qnx.com/sf/go/post47374
> Is there anything special we need to do to tell Aviage that the USB driver has
> 500mA available?
> We currently have an issue that some iPods don't work unless plugged through a
> powered USB hub. Therefore the theory goes that the USB device is not being
> told that it can use 500mA (I think the host must tell the device this,
> otherwise the device will only draw less than 50mA??). Our hardware is
> capable of safely providing 500mA to a connected device.
There are no special Aviage APIs for anything like this. I don't think there should be anything for you to do.
Can you clarify in which way the iPods "don't work"? Once the configuration of the iPod gets selected the device is then allowed to draw up to its full reported power usage. Is the iPod displaying an error on the screen, or is it failing in some other way? Which iPods (touches, iPhones, nano, classic) don't work?
Does the output of sloginfo show anything when this occurs?
Thanks,
GillesGilles Roy2010-02-16T14:24:32Zpost47331: high-power USB device support
http://community.qnx.com/sf/go/post47331
Hi,
Is there anything special we need to do to tell Aviage that the USB driver has 500mA available?
We currently have an issue that some iPods don't work unless plugged through a powered USB hub. Therefore the theory goes that the USB device is not being told that it can use 500mA (I think the host must tell the device this, otherwise the device will only draw less than 50mA??). Our hardware is capable of safely providing 500mA to a connected device.
Regards,
Radek.Radek Pesina2010-02-15T23:39:35Zpost47227: Re: QDB - Precompiled vs. Not-Precompiled Database Queries
http://community.qnx.com/sf/go/post47227
> - How much faster is a precompiled database query?
I think it depends a lot on the complexity of the query. I'm sure a prepared statement is always faster, however note that if you were just to run it once you would have to do multiple API calls, one to prepare it, one to execute it and one to free it.
> - How much memory does the QDB need to hold one precompiled query?
It depends on the complexity of the statement. I think it can hold several kilobytes of memory for some statements.
> - What is the overall limit of precompiled queries?
I don't think there is any limit above how much memory they would consume.
> - Would you recommend to free not reused precompiled database queries manually or not?
In the MME, we create a wrapper function which we pass the prepared statement ID into. If there is no prepared statement for this ID, it goes ahead and creates one (it will be reused next time the same ID is passed in). If we don't need to hold on the ID, we pass in a special ID called FREE_AFTER_USE and the wrapper function frees the prepared statement once it has the result.
In general, I'd say always use prepared statements. We use them for almost everything in the MME, even sometimes statements we execute only once. The main benefit is that it also prevents issues with strings not being escaped properly (i.e. when using normal statements you have to take care to use %q and %Q properly, in some cases a %s is a mistake).
qdb_statement() is more useful if you are building dynamic statements that are always different and that you run frequently. In those cases you might not want the overhead of preparing/executing/freeing a normal prepared statement.Gilles Roy2010-02-12T15:53:07Zpost47218: QDB - Precompiled vs. Not-Precompiled Database Queries
http://community.qnx.com/sf/go/post47218
Hi all,
I have a few questions related to precompiled database queries.
- How much faster is a precompiled database query?
- How much memory does the QDB need to hold one precompiled query?
- What is the overall limit of precompiled queries?
- Would you recommend to free not reused precompiled database queries manually or not?
Thanks a lot for answering.
Kind Regards,
SebastianSebastian Kiesel2010-02-12T14:51:41Zpost47182: Re: QNX Multimedia Streaming Application
http://community.qnx.com/sf/go/post47182
Hi Dan
Thanks a lot for your help
Seraph
On Tue, Feb 9, 2010 at 7:49 PM, Dan Cardamore <community-noreply@qnx.com>wrote:
> Hi Seraph,
>
> The MM suite can be downloaded from from the community site and can be used
> as a hobbyist. I recommend reading the license guide here:
> http://community.qnx.com/sf/projects/multimedia
>
> You can download the core and IPP packages from the community site and this
> can give you http playback of audio and video streams on intel. I'm not
> sure what platforms, codecs, and stream protocols you need to use.
>
> http://community.qnx.com/sf/frs/do/listReleases/projects.multimedia/frs.qnx_aviage_multimedia_core_1_1
>
> http://community.qnx.com/sf/frs/do/listReleases/projects.multimedia/frs.qnx_aviage_multimedia_ipp_video
>
> In addition, you're welcome to build the latest version using the source
> guide:
>
> http://community.qnx.com/sf/wiki/do/viewPage/projects.multimedia/wiki/SourceGuide
>
> Dan
>
>
> On 2010-02-09, at 2:43 PM, Seraph Varghese wrote:
>
> > Hi Dan
> >
> > Thanks for replying. Well, the application should be able to write,
> download and play a multimedia file from a remote server onto a local
> machine running the QNX real time
> > operating system. I found out that the multimedia suite is only
> commercially available so I need the best alternative for building such an
> application
> >
> > Thanks,
> > Seraph
> >
> >
> >
> > _______________________________________________
> >
> > Development
> > http://community.qnx.com/sf/go/post46971
> >
> >
>
> Dan Cardamore
> dcardamore@qnx.com
>
>
>
>
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post46974
>
>Seraph Varghese2010-02-11T22:10:20Zpost46974: Re: QNX Multimedia Streaming Application
http://community.qnx.com/sf/go/post46974
Hi Seraph,
The MM suite can be downloaded from from the community site and can be used as a hobbyist. I recommend reading the license guide here:
http://community.qnx.com/sf/projects/multimedia
You can download the core and IPP packages from the community site and this can give you http playback of audio and video streams on intel. I'm not sure what platforms, codecs, and stream protocols you need to use.
http://community.qnx.com/sf/frs/do/listReleases/projects.multimedia/frs.qnx_aviage_multimedia_core_1_1
http://community.qnx.com/sf/frs/do/listReleases/projects.multimedia/frs.qnx_aviage_multimedia_ipp_video
In addition, you're welcome to build the latest version using the source guide:
http://community.qnx.com/sf/wiki/do/viewPage/projects.multimedia/wiki/SourceGuide
Dan
On 2010-02-09, at 2:43 PM, Seraph Varghese wrote:
> Hi Dan
>
> Thanks for replying. Well, the application should be able to write, download and play a multimedia file from a remote server onto a local machine running the QNX real time
> operating system. I found out that the multimedia suite is only commercially available so I need the best alternative for building such an application
>
> Thanks,
> Seraph
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post46971
>
>
Dan Cardamore
dcardamore@qnx.comDan Cardamore2010-02-09T19:49:45Zpost46971: Re: QNX Multimedia Streaming Application
http://community.qnx.com/sf/go/post46971
Hi Dan
Thanks for replying. Well, the application should be able to write, download and play a multimedia file from a remote server onto a local machine running the QNX real time
operating system. I found out that the multimedia suite is only commercially available so I need the best alternative for building such an application
Thanks,
SeraphSeraph Varghese2010-02-09T19:43:54Zpost46964: Re: QNX Multimedia Streaming Application
http://community.qnx.com/sf/go/post46964
Hi Seraph,
What kinds of requirements do you have? One tricky thing we have to deal with is licensing which is why our solution is commercial only.
Dan
On 2010-02-09, at 1:59 PM, Seraph Varghese wrote:
> Hi Everyone
>
> I am an Engineering student building a QNX Multimedia Streaming Application as part of my final year project. Since the QNX Multimedia Suite is only commercially available, could anyone please advise me what the best alternative would be.
>
> Thanks,
> Seraph
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post46963
>
>
Dan Cardamore
dcardamore@qnx.comDan Cardamore2010-02-09T19:01:17Zpost46963: QNX Multimedia Streaming Application
http://community.qnx.com/sf/go/post46963
Hi Everyone
I am an Engineering student building a QNX Multimedia Streaming Application as part of my final year project. Since the QNX Multimedia Suite is only commercially available, could anyone please advise me what the best alternative would be.
Thanks,
SeraphSeraph Varghese2010-02-09T18:59:50Zpost46894: Re: Definition of MME StorageType
http://community.qnx.com/sf/go/post46894
On Tue, 9 Feb 2010, Sebastian Kiesel wrote:
> Hi all,
>
> is there a reason why the range within this definition is not continuous (see below)?
>
> Thanks,
> Sebastian
>
> /* Define storage types */
> #define MME_STORAGETYPE_UNKNOWN (0)
> #define MME_STORAGETYPE_AUDIOCD (1)
> #define MME_STORAGETYPE_FS (2)
> #define MME_STORAGETYPE_DEVB MME_STORAGETYPE_FS
> #define MME_STORAGETYPE_DVDAUDIO (3)
> #define MME_STORAGETYPE_VCD (4)
> #define MME_STORAGETYPE_SVCD (5)
> #define MME_STORAGETYPE_DVDVIDEO (6)
> #define MME_STORAGETYPE_IPOD (8)
> #define MME_STORAGETYPE_KODAKCD (9)
> #define MME_STORAGETYPE_PICTURECD (10)
> #define MME_STORAGETYPE_A2DP (12)
> #define MME_STORAGETYPE_RESERVED0 (13) /* UPNP placeholder, moved to mediafs */
> #define MME_STORAGETYPE_SMB MME_STORAGETYPE_FS
> #define MME_STORAGETYPE_FTP (15)
> #define MME_STORAGETYPE_HTTP (16)
> #define MME_STORAGETYPE_NAVIGATION (17)
> #define MME_STORAGETYPE_UPGRADE (18)
> #define MME_STORAGETYPE_PLAYSFORSURE (20)
> #define MME_STORAGETYPE_UPNP (21)
> #define MME_STORAGETYPE_INTERNETSTREAM (22)
> #define MME_STORAGETYPE_SND_INPUT (23)
Removal of unclear place holders (7 was mediafs, 19 was mediafs_2wire) that
didn't map to any one single type.
I can't find reference to the missing type mapping to 11.
Where at all possible older types (like SMB) were mapped to a new version
if they were removed.
PeterPeter Martin2010-02-09T13:09:52Zpost46878: Definition of MME StorageType
http://community.qnx.com/sf/go/post46878
Hi all,
is there a reason why the range within this definition is not continuous (see below)?
Thanks,
Sebastian
/* Define storage types */
#define MME_STORAGETYPE_UNKNOWN (0)
#define MME_STORAGETYPE_AUDIOCD (1)
#define MME_STORAGETYPE_FS (2)
#define MME_STORAGETYPE_DEVB MME_STORAGETYPE_FS
#define MME_STORAGETYPE_DVDAUDIO (3)
#define MME_STORAGETYPE_VCD (4)
#define MME_STORAGETYPE_SVCD (5)
#define MME_STORAGETYPE_DVDVIDEO (6)
#define MME_STORAGETYPE_IPOD (8)
#define MME_STORAGETYPE_KODAKCD (9)
#define MME_STORAGETYPE_PICTURECD (10)
#define MME_STORAGETYPE_A2DP (12)
#define MME_STORAGETYPE_RESERVED0 (13) /* UPNP placeholder, moved to mediafs */
#define MME_STORAGETYPE_SMB MME_STORAGETYPE_FS
#define MME_STORAGETYPE_FTP (15)
#define MME_STORAGETYPE_HTTP (16)
#define MME_STORAGETYPE_NAVIGATION (17)
#define MME_STORAGETYPE_UPGRADE (18)
#define MME_STORAGETYPE_PLAYSFORSURE (20)
#define MME_STORAGETYPE_UPNP (21)
#define MME_STORAGETYPE_INTERNETSTREAM (22)
#define MME_STORAGETYPE_SND_INPUT (23)Sebastian Kiesel2010-02-09T09:13:21Zpost46764: Re: QDB - how to retrieve row number of result row!
http://community.qnx.com/sf/go/post46764
I think a better location to get this answer would be the sqlite.org forums. I think what you're looking for can't be done with sqlite the way it is now.
Dan
On 2010-02-05, at 2:35 AM, Florian Becher wrote:
> Hi Dan,
>
> thanks for your answer. Is there any chance to get this id, which is shown at a SELECT at the beginning of a row (0001,0002,...)?
>
> The background is, i SELECT over 3 tables and UNION them. Now i need an identifier which is increasing over all three SELECT statements, to be able to SELECT exactly one result of those 3 UNION SELECTS. Is there a way, to perform such a operation?
>
> Thanks in advance for your help,
>
> Florian
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post46621
>
>
Dan Cardamore
dcardamore@qnx.comDan Cardamore2010-02-08T12:50:40Zpost46738: Re: QDB - how to retrieve row number of result row!
http://community.qnx.com/sf/go/post46738
It sounds like you're just looking for the loop counter that qdbc prints when looping through the result rows. It's not a number that's stored in the database, or in the result.
The code (in services/qdb/lib/qdb.c:qdb_printmsg()) is:
496 for (row = 0; row < nrows; ++row) {
497 fprintf(fp, "%05d:\t", row);
You cannot use that specific number to refer to a row in a table; you can use it to refer to an offset in a query (with something like the OFFSET keyword as Gilles mentioned), but that might not be what you want. (For example, if rows are added/changed/deleted that would modify your result set the offset into that result will change.)Ryan Allen2010-02-08T02:59:46Zpost46737: Re: QDB - how to retrieve row number of result row!
http://community.qnx.com/sf/go/post46737
> thanks for your answer. Is there any chance to get this id, which is shown at
> a SELECT at the beginning of a row (0001,0002,...)?
>
> The background is, i SELECT over 3 tables and UNION them. Now i need an
> identifier which is increasing over all three SELECT statements, to be able to
> SELECT exactly one result of those 3 UNION SELECTS. Is there a way, to
> perform such a operation?
Hi Florian,
Say I wanted the 10th to 15th results from a union of other results. What I would try is:
select id from (select ... union ... select ... etc) LIMIT 5 OFFSET 10;
(fetch 5 results starting at offset 10)
I'm not sure I fully understand what you need to accomplish, I hope this helps.
Regards,
GillesGilles Roy2010-02-08T02:46:58Zpost46621: Re: QDB - how to retrieve row number of result row!
http://community.qnx.com/sf/go/post46621
Hi Dan,
thanks for your answer. Is there any chance to get this id, which is shown at a SELECT at the beginning of a row (0001,0002,...)?
The background is, i SELECT over 3 tables and UNION them. Now i need an identifier which is increasing over all three SELECT statements, to be able to SELECT exactly one result of those 3 UNION SELECTS. Is there a way, to perform such a operation?
Thanks in advance for your help,
FlorianFlorian Becher2010-02-05T07:35:54Zpost46592: Re: QDB - how to retrieve row number of result row!
http://community.qnx.com/sf/go/post46592
Hi Florian,
ROWID should work the same for QDB since it is just being passed back as part of the result as a column. I think ROWID is not the rowid of a result however, I think it is used as the primary key of the table.
Dan
On 2010-02-04, at 10:30 AM, Florian Becher wrote:
> Hi all,
>
> i am looking for an option to get the row number of a select or sub-selects. I found at the SQLite homepage, that "ROWID", "OID", or "_ROWID_" exists, but it doesn't work for QDB.
>
> Thanks a lot,
>
> Florian
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post46546
>
>
Dan Cardamore
dcardamore@qnx.comDan Cardamore2010-02-04T20:30:00Zpost46546: QDB - how to retrieve row number of result row!
http://community.qnx.com/sf/go/post46546
Hi all,
i am looking for an option to get the row number of a select or sub-selects. I found at the SQLite homepage, that "ROWID", "OID", or "_ROWID_" exists, but it doesn't work for QDB.
Thanks a lot,
FlorianFlorian Becher2010-02-04T15:30:42Zpost46523: Re: MME Startup - Device Autodetection
http://community.qnx.com/sf/go/post46523
> if I understood the documentation correctly, I could disable the device
> autodetection by setting the parameter <DeviceDetection> within the mme.conf to 'false'.
>
> Nevertheless the MME still detects all the devices after setting it to 'false'
> .
> Is there any other parameter which has to be configured?
No there should be no other configuration needed. If you start the mme-generic process with -vvvv you should see in the logs all of the configuration values it sets. Look for the DeviceDetection in those logs.
Of note, the default start is commented out, so even if you change the enabled to "false" you still have to uncomment the xml element.
> Version: QNX Aviage Multimedia Suite 1.2
>
> General Questions:
> - The autodetection has manally to be enabled only once during the startup?
Yes, you call mme_start_device_detection() just once (normally after you have registered for events)
> - Is there another mechanism to prevent the loss of events from the type
> MME_EVENT_MS_STATECHANGE?
The only other thing you could do is once you have connected to the MME and registered for events, you could look at the state of the mediastores table and update against what you thought your current state was.
> - Would you recommend to use/not to use the autodetection of the MME?
> - Could the client application already read information out of the table
> mediastores
> without getting a MME_EVENT_MS_STATECHANGE?
I think the client application can do this. I suppose if your system is based on a state machine some might find it easier to delay device detection and process all of the events that come in when it is started? Nothing comes to mind that would *require* delayed device detection, all of the info is available in the mediastores table.
Regards,
Gilles
> Background:
> In some scenarios the MME could be started earlier than the component reading
> /handling the MME events.
>
> Thanks a lot,
> Sebastian
>Gilles Roy2010-02-04T13:31:47Zpost46521: MME Startup - Device Autodetection
http://community.qnx.com/sf/go/post46521
Hi all,
if I understood the documentation correctly, I could disable the device autodetection by setting the parameter <DeviceDetection> within the mme.conf to 'false'.
Nevertheless the MME still detects all the devices after setting it to 'false'.
Is there any other parameter which has to be configured?
Version: QNX Aviage Multimedia Suite 1.2
General Questions:
- The autodetection has manally to be enabled only once during the startup?
- Is there another mechanism to prevent the loss of events from the type MME_EVENT_MS_STATECHANGE?
- Would you recommend to use/not to use the autodetection of the MME?
- Could the client application already read information out of the table mediastores
without getting a MME_EVENT_MS_STATECHANGE?
Background:
In some scenarios the MME could be started earlier than the component reading/handling the MME events.
Thanks a lot,
SebastianSebastian Kiesel2010-02-04T13:07:45Zpost45931: Re: charset of mme and qdb
http://community.qnx.com/sf/go/post45931
QDB is a 100% utf-8 interface. If content is placed in there that isn't UTF-8 then it is a bug in the client code that put it in there. In this example MME is the client application and it does convert different string encodings into UTF-8. All of the MME's interfaces including the explorer interface are UTF-8 also.
Dan
On 2010-01-26, at 7:40 AM, Michael Irsiegler wrote:
> Thank you for your response. I have another question though:
>
> Is it guaranteed that text objects in qdb are always in utf-8. For example the media storage device hosts mp3 files that have ID3 tags encoded in UTF-16 or any other charset, Is there a conversion done to utf-8 when the metadata is stored into the database, when the device is synced?
>
> Regards
> Mike
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post45916
>
>
Dan Cardamore
dcardamore@qnx.comDan Cardamore2010-01-26T15:52:24Zpost45916: Re: charset of mme and qdb
http://community.qnx.com/sf/go/post45916
Thank you for your response. I have another question though:
Is it guaranteed that text objects in qdb are always in utf-8. For example the media storage device hosts mp3 files that have ID3 tags encoded in UTF-16 or any other charset, Is there a conversion done to utf-8 when the metadata is stored into the database, when the device is synced?
Regards
MikeMichael Irsiegler2010-01-26T12:40:13Zpost45823: Re: charset of mme and qdb
http://community.qnx.com/sf/go/post45823
All applications in QNX are using UTF8 (including mme). Using utf-16
would likely be a large undertaking.
On 2010-01-22, at 8:20 AM, "Michael Irsiegler" <community-noreply@qnx.com
> wrote:
> Hi all,
>
> I understood that qdb is using UTF-8 as default charset for string
> values.
> What charset is mme using internally and can the charset be changed?
> For example, if I wanted to use UTF-16 system wide as default charset?
> I see that the compile flag SQLITE_OMIT_UTF16 is activated in the
> sqlite_options.mk file. What does this mean in detail?
>
> Best regards
> Mike
>
>
>
> _______________________________________________
>
> Development
> http://community.qnx.com/sf/go/post45757
>Dan Cardamore2010-01-23T02:01:01Zpost45757: charset of mme and qdb
http://community.qnx.com/sf/go/post45757
Hi all,
I understood that qdb is using UTF-8 as default charset for string values.
What charset is mme using internally and can the charset be changed?
For example, if I wanted to use UTF-16 system wide as default charset?
I see that the compile flag SQLITE_OMIT_UTF16 is activated in the sqlite_options.mk file. What does this mean in detail?
Best regards
MikeMichael Irsiegler2010-01-22T13:13:59Zpost45641: Re: Availability of a graphical database schema
http://community.qnx.com/sf/go/post45641
We used to have a script that would generate a graphical view of a schema using graphviz but I don't know where it is right now and what state it is in.
QDB uses sqlite for its underlying implementation. There are many sqlite graphical tools available.
http://www.sqlite.org/cvstrac/wiki?p=ManagementToolsDan Cardamore2010-01-21T14:38:56Zpost45620: Availability of a graphical database schema
http://community.qnx.com/sf/go/post45620
Hi all,
is there also a graphical database schema for the QDB available?
Kind Regards,
SebastianSebastian Kiesel2010-01-21T11:42:04Zpost45448: Re: Regarding libqdb_cldr
http://community.qnx.com/sf/go/post45448
Thanks a lot for this information. I will try both ways, builtin uca and icu later on. Thanks again.
Regards
MikeMichael Irsiegler2010-01-19T09:02:08Zpost45433: Re: Regarding libqdb_cldr
http://community.qnx.com/sf/go/post45433
Sorry, just further information. Maybe you don't care about libqdb_cldr.so at all, you just want ICU support in SQLite to do things like case insensitive matching, etc. You can also do this by building the ICU library for QNX. Then you can download and build an ICU extension from the sqlite.org website:
http://www.sqlite.org/cvstrac/dir?d=sqlite/ext/icu
Then, check out the sqlite3 source code from the foundry 27 Multimedia project and rebuild ti with "SQLITE_ENABLE_ICU" defined.
Regards,
GillesGilles Roy2010-01-18T20:00:26Zpost45430: Re: Regarding libqdb_cldr
http://community.qnx.com/sf/go/post45430
> 1. Where do we find this library? The guide says that it comes along with the
> files for language sorting included with the mme release but we could not find
> it.
It isn't in the product shiplist (I don't know why). This means it won't be in the Aviage release, but here is a link to the foundry 27 release that should still work:
http://community.qnx.com/integration/viewvc/viewvc.cgi/trunk/services/qdb/cldr/?root=multimedia&system=exsy1001
If you check out the multimedia source following the documentation in the multimedia project, you should be able to build it.
> 2. Is this library based on standard ICU (as found on icu-project.org), if yes
> , what version?
No. It is based on a standard UCA (Unicode Collation Algorithm). http://www.unicode.org/reports/tr10/#Introduction
> 3. Would it be possible to build our own libqdb_cldr using the latest official
> version of ICU?
It doesn't use ICU. But using the sourcecode on foundry 27 (even though it is based on our trunk, QDB/Sqlite has not has any big changes since Aviage 1.2) you could build libqdb_cldr yourself, or use it as a base for a different collation algorithm.
Regards,
GillesGilles Roy2010-01-18T19:29:01Zpost45404: Regarding libqdb_cldr
http://community.qnx.com/sf/go/post45404
Hello all,
We would like to enable the mme support for setting the language for sorting data retrieved by SQL select statements. According to the mme config guide a library called libqdb_cldr.so is needed. We have a few questions regarding this library:
1. Where do we find this library? The guide says that it comes along with the files for language sorting included with the mme release but we could not find it.
2. Is this library based on standard ICU (as found on icu-project.org), if yes, what version?
3. Would it be possible to build our own libqdb_cldr using the latest official version of ICU?
Thanks in advance.
Best regards
MikeMichael Irsiegler2010-01-18T17:11:06Zpost43745: RE: Re: problem about Integrating Bluetooth audio devices into the MME
http://community.qnx.com/sf/go/post43745
It looks like the MME doesn't know it is a 2wire device (a device that does its own playback, where audio and control have distinct channels).
In the avrcpexample.c file, in the function avrcp_getinfo(), make sure the media/device section of the info.xml file is "AVRCP", not "AVRCPEXAMPLE":
xmlbuf_add(xp, "device", "AVRCP");
If you take a look in services/mme/mss/mediafs2wire/mediafs2wire.c, in the function mss_mediafs2wire_probe() you will see the "Found device..." log message which is followed by comparing the device to some known 2wire devices, setting the rating appropriately.
--
Ryan J. Allen
QNX Software SystemsRyan Allen2009-12-12T12:18:08Zpost43743: Re: Re: problem about Integrating Bluetooth audio devices into the MME
http://community.qnx.com/sf/go/post43743
Hello Gilles
Thank you for your reply.
the output of "sloginfo -t" below. I think the fatal err is "Jan 01 00:11:41.682 2 27 0 MME:_attachinput(3321): Could not set input device(/fs/avrcp0) to controlcontext default. errno=5" . But I don't know how resolve it.
Do you have any source code that can work on my board(imx35)?
Thank you .
Regards
shawn
///////////////////////////////////////////////////////////////////////////////////////
# sloginfo -t
Time Sev Major Minor Args
Jan 01 00:02:38.079 3 27 0 MME:fs_volume_get(533): Could not find volume name in /media/drive
Jan 01 00:02:38.090 3 27 0 MME:fs_volume_get(533): Could not find volume name in /media/drive
Jan 01 00:02:38.091 3 27 0 MME:ms_inserted(3546): MSS devb failed getting name for media store with ID 0.
Jan 01 00:02:39.261 7 20 1 io-media-generic: open('graphs/trackplayer/mme_metadata')
Jan 01 00:02:39.261 7 20 1 io-media-generic/trackplayer: Calling graph create function
Jan 01 00:02:39.263 6 20 1 io-media-generic/trackplayer: Created graph instance 'mme_metadata'
Jan 01 00:02:39.263 6 20 1 io-media-generic: open( 'graphs/trackplayer/mme_metadata' ): success
Jan 01 00:02:39.265 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GRAPHOPTIONS
Jan 01 00:02:39.265 7 20 1 io-media-generic/trackplayer: Dcmd GRAPHOPTIONS returning 0
Jan 01 00:02:39.266 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.267 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.268 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.268 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.269 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.269 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.276 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.277 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.278 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.278 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.279 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.279 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.280 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.280 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.280 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.281 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.281 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.282 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:03:15.026 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_mount
Jan 01 00:03:15.027 2 3 800 io-fs-media(AVRCPEXAMPLE): start
Jan 01 00:03:15.535 5 21 0 run fault pid 327692 tid 2 signal 11 code 1 ip 0x780118b8 io-fs-media
Jan 01 00:03:26.276 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_mount
Jan 01 00:03:26.277 2 3 800 io-fs-media(AVRCPEXAMPLE): start
Jan 01 00:03:26.787 5 21 0 run fault pid 335884 tid 2 signal 11 code 1 ip 0x780118b8 io-fs-media
Jan 01 00:10:10.403 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_mount
Jan 01 00:10:10.404 2 3 800 io-fs-media(AVRCPEXAMPLE): start
Jan 01 00:10:10.911 5 21 0 run fault pid 344076 tid 2 signal 11 code 1 ip 0x780118b8 io-fs-media
Jan 01 00:10:15.934 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_mount
Jan 01 00:10:15.935 2 3 800 io-fs-media(AVRCPEXAMPLE): start
Jan 01 00:10:16.442 5 21 0 run fault pid 352268 tid 2 signal 11 code 1 ip 0x780118b8 io-fs-media
Jan 01 00:10:42.986 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_mount
Jan 01 00:10:42.987 2 3 800 io-fs-media(AVRCPEXAMPLE): start
Jan 01 00:10:43.489 5 3 800 io-fs-media(AVRCPEXAMPLE): *** MOUNT ***
Jan 01 00:10:43.491 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_getinfo
Jan 01 00:10:43.495 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_getattr
Jan 01 00:10:43.498 5 3 800 io-fs-media(AVRCPEXAMPLE): Started Monitor Thread
Jan 01 00:10:43.505 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.510 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.511 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_readdir
Jan 01 00:10:43.517 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.518 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.525 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.526 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.530 5 27 0 MME:mss_mediafs_probe(68): Found device 'AVRCPEXAMPLE' for path '/fs/avrcp0'.
Jan 01 00:10:43.531 5 27 0 MME:mss_mediafs_probe(82): Returning rating of 0.
Jan 01 00:10:43.532 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.534 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.538 5 27 0 MME:mss_mediafs2wire_probe(70): Found device 'AVRCPEXAMPLE' for path '/fs/avrcp0'.
Jan 01 00:10:43.538 5 27 0 MME:mss_mediafs2wire_probe(111): Returning rating of 0.
Jan 01 00:10:43.540 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.541 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.546 3 27 0 MME:fs_volume_get(533): Could not find volume name in /fs/avrcp0
Jan 01 00:10:43.549 3 27 0 MME:fs_volume_get(533): Could not find volume name in /fs/avrcp0
Jan 01 00:10:43.549 3 27 0 MME:ms_inserted(3546): MSS devb failed getting name for media store with ID 0.
Jan 01 00:11:41.668 7 20 1 io-media-generic: open('graphs/trackplayer/default')
Jan 01 00:11:41.668 7 20 1 io-media-generic/trackplayer: Calling graph create function
Jan 01 00:11:41.668 6 20 1 io-media-generic/trackplayer: Created graph instance 'default'
Jan 01 00:11:41.669 6 20 1 io-media-generic: open( 'graphs/trackplayer/default' ): success
Jan 01 00:11:41.669 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GRAPHOPTIONS
Jan 01 00:11:41.669 7 20 1 io-media-generic/trackplayer: Dcmd GRAPHOPTIONS returning 0
Jan 01 00:11:41.669 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd SETNOTIFICATION
Jan 01 00:11:41.669 7 20 1 io-media-generic/trackplayer: Dcmd SETNOTIFICATION returning 0
Jan 01 00:11:41.669 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd SETTRANSITION
Jan 01 00:11:41.670 7 20 1 io-media-generic/trackplayer: Dcmd SETTRANSITION returning 0
Jan 01 00:11:41.670 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd CAPABILITIES
Jan 01 00:11:41.670 7 20 1 io-media-generic/trackplayer: Dcmd CAPABILITIES returning 0
Jan 01 00:11:41.676 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd ATTACHOUTPUT
Jan 01 00:11:41.677 5 20 1 io-media-generic/mmf: writer hint snd:* found
Jan 01 00:11:41.677 6 20 1 io-media-generic/mmf: URL 'snd:/dev/snd/pcmC0D1p' matches pattern 'snd:*'
Jan 01 00:11:41.677 7 20 1 io-media-generic/trackplayer: Dcmd ATTACHOUTPUT returning 0
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd SETVOLUME
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Dcmd SETVOLUME returning 0
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd SETSPEED
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Dcmd SETSPEED returning 0
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GETSTATUS
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Dcmd GETSTATUS returning 0
Jan 01 00:11:41.681 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd SETNOTIFICATION
Jan 01 00:11:41.681 7 20 1 io-media-generic/trackplayer: Dcmd SETNOTIFICATION returning 0
Jan 01 00:11:41.681 6 20 1 io-media-generic/trackplayer: dcmd SETDEVICE unsupported for this graph
Jan 01 00:11:41.681 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GETERROR
Jan 01 00:11:41.681 7 20 1 io-media-generic/trackplayer: Dcmd GETERROR returning 0
Jan 01 00:11:41.682 2 27 0 MME:_attachinput(3321): Could not set input device(/fs/avrcp0) to controlcontext default. errno=5
Jan 01 00:11:41.682 5 27 0 MME:_mapiomerror(5400): Unhandled iom error 65539
Jan 01 00:11:41.682 2 27 0 MME:_play(2803): Could not attach file /fs/avrcp0///
Jan 01 00:11:41.682 5 27 0 MME:trk_getoffset(831): No more tracks to play.
Jan 01 00:11:41.682 5 27 0 MME:_playuntilok(5130): No files to play
Jan 01 00:11:41.682 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GETSTATUS
Jan 01 00:11:41.682 7 20 1 io-media-generic/trackplayer: Dcmd GETSTATUS returning 0
Jan 01 00:11:41.682 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd STOP
Jan 01 00:11:41.684 7 20 1 io-media-generic/trackplayer: Dcmd STOP returning 0
Jan 01 00:11:41.684 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GETSTATUS
Jan 01 00:11:41.684 7 20 1 io-media-generic/trackplayer: Dcmd GETSTATUS returning 0
Jan 01 00:11:41.690 2 27 0 MME:_setgenericvalue(851): Send Error for request=2, value=0. errno 61
Jan 01 00:12:10.961 3 27 0 MME:_msgresumemsid(4688): Failed to find active trksession for msid '2' (qdb error: )
Jan 01 00:12:10.962 2 27 0 MME:_setgenericvalue(851): Send Error for request=13, value=2. errno 61
////////////////////////////////////////////////////////////////////////////////////////////////////
2009-12-12
wxiao
发件人: Gilles Roy
发送时间: 2009-12-12 00:04:25
收件人: development-multimedia
抄送:
主题: Re: problem about Integrating Bluetooth audio devices into the MME
> thank you very much. I get into a dead loop in 'mediafs_mount' as you said.
Great!
> Now,I face another problem. MME can not send right cmd to
>
> io-fs-media(avrcpexample).
>
>
> And my io-fs-media(avrcpexample) has not recerve any cmd from MME.
>
>
> Is any problem here ? thank you for help.
Generally, when you have issues related to playback, you should start io-media-generic with -DD. Then before you reproduce your problem, on the command line you can do:
mmecli set_debug 4 0
sloginfo -c > /dev/null
Now, reproduce your problem and post the output of "sloginfo -t". As well, you could try:
mmecli play_resume_msid 2
Regards,
Gilles
_______________________________________________
Development
http://community.qnx.com/sf/go/post43663xiao wei2009-12-12T08:45:46Zpost43742: Re: problem about Integrating Bluetooth audio devices into the MME
http://community.qnx.com/sf/go/post43742
Hello Gilles
the output of "sloginfo -t" below. I think the fatal err is "Jan 01 00:11:41.682 2 27 0 MME:_attachinput(3321): Could not set input device(/fs/avrcp0) to controlcontext default. errno=5" . But I don't know how resolve it.
Do you have any source code that can work on my board(imx35)?
Thank you .
Regards
shawn
///////////////////////////////////////////////////////////////////////////////////////
# sloginfo -t
Time Sev Major Minor Args
Jan 01 00:02:38.079 3 27 0 MME:fs_volume_get(533): Could not find volume name in /media/drive
Jan 01 00:02:38.090 3 27 0 MME:fs_volume_get(533): Could not find volume name in /media/drive
Jan 01 00:02:38.091 3 27 0 MME:ms_inserted(3546): MSS devb failed getting name for media store with ID 0.
Jan 01 00:02:39.261 7 20 1 io-media-generic: open('graphs/trackplayer/mme_metadata')
Jan 01 00:02:39.261 7 20 1 io-media-generic/trackplayer: Calling graph create function
Jan 01 00:02:39.263 6 20 1 io-media-generic/trackplayer: Created graph instance 'mme_metadata'
Jan 01 00:02:39.263 6 20 1 io-media-generic: open( 'graphs/trackplayer/mme_metadata' ): success
Jan 01 00:02:39.265 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GRAPHOPTIONS
Jan 01 00:02:39.265 7 20 1 io-media-generic/trackplayer: Dcmd GRAPHOPTIONS returning 0
Jan 01 00:02:39.266 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.267 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.268 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.268 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.269 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.269 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.276 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.277 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.278 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.278 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.279 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.279 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.280 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.280 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.280 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.281 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:02:39.281 3 20 1 io-media-generic/trackplayer: received invalid dcmd (C0300F12)
Jan 01 00:02:39.282 2 27 0 MME:getFileMetadata(82): Failed iom_get_track_info, errno = 22
Jan 01 00:03:15.026 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_mount
Jan 01 00:03:15.027 2 3 800 io-fs-media(AVRCPEXAMPLE): start
Jan 01 00:03:15.535 5 21 0 run fault pid 327692 tid 2 signal 11 code 1 ip 0x780118b8 io-fs-media
Jan 01 00:03:26.276 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_mount
Jan 01 00:03:26.277 2 3 800 io-fs-media(AVRCPEXAMPLE): start
Jan 01 00:03:26.787 5 21 0 run fault pid 335884 tid 2 signal 11 code 1 ip 0x780118b8 io-fs-media
Jan 01 00:10:10.403 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_mount
Jan 01 00:10:10.404 2 3 800 io-fs-media(AVRCPEXAMPLE): start
Jan 01 00:10:10.911 5 21 0 run fault pid 344076 tid 2 signal 11 code 1 ip 0x780118b8 io-fs-media
Jan 01 00:10:15.934 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_mount
Jan 01 00:10:15.935 2 3 800 io-fs-media(AVRCPEXAMPLE): start
Jan 01 00:10:16.442 5 21 0 run fault pid 352268 tid 2 signal 11 code 1 ip 0x780118b8 io-fs-media
Jan 01 00:10:42.986 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_mount
Jan 01 00:10:42.987 2 3 800 io-fs-media(AVRCPEXAMPLE): start
Jan 01 00:10:43.489 5 3 800 io-fs-media(AVRCPEXAMPLE): *** MOUNT ***
Jan 01 00:10:43.491 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_getinfo
Jan 01 00:10:43.495 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_getattr
Jan 01 00:10:43.498 5 3 800 io-fs-media(AVRCPEXAMPLE): Started Monitor Thread
Jan 01 00:10:43.505 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.510 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.511 2 3 800 io-fs-media(AVRCPEXAMPLE): avrcp_readdir
Jan 01 00:10:43.517 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.518 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.525 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.526 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.530 5 27 0 MME:mss_mediafs_probe(68): Found device 'AVRCPEXAMPLE' for path '/fs/avrcp0'.
Jan 01 00:10:43.531 5 27 0 MME:mss_mediafs_probe(82): Returning rating of 0.
Jan 01 00:10:43.532 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.534 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.538 5 27 0 MME:mss_mediafs2wire_probe(70): Found device 'AVRCPEXAMPLE' for path '/fs/avrcp0'.
Jan 01 00:10:43.538 5 27 0 MME:mss_mediafs2wire_probe(111): Returning rating of 0.
Jan 01 00:10:43.540 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.541 2 3 800 io-fs-media(AVRCPEXAMPLE): _RESMGR_DEFAULT
Jan 01 00:10:43.546 3 27 0 MME:fs_volume_get(533): Could not find volume name in /fs/avrcp0
Jan 01 00:10:43.549 3 27 0 MME:fs_volume_get(533): Could not find volume name in /fs/avrcp0
Jan 01 00:10:43.549 3 27 0 MME:ms_inserted(3546): MSS devb failed getting name for media store with ID 0.
Jan 01 00:11:41.668 7 20 1 io-media-generic: open('graphs/trackplayer/default')
Jan 01 00:11:41.668 7 20 1 io-media-generic/trackplayer: Calling graph create function
Jan 01 00:11:41.668 6 20 1 io-media-generic/trackplayer: Created graph instance 'default'
Jan 01 00:11:41.669 6 20 1 io-media-generic: open( 'graphs/trackplayer/default' ): success
Jan 01 00:11:41.669 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GRAPHOPTIONS
Jan 01 00:11:41.669 7 20 1 io-media-generic/trackplayer: Dcmd GRAPHOPTIONS returning 0
Jan 01 00:11:41.669 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd SETNOTIFICATION
Jan 01 00:11:41.669 7 20 1 io-media-generic/trackplayer: Dcmd SETNOTIFICATION returning 0
Jan 01 00:11:41.669 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd SETTRANSITION
Jan 01 00:11:41.670 7 20 1 io-media-generic/trackplayer: Dcmd SETTRANSITION returning 0
Jan 01 00:11:41.670 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd CAPABILITIES
Jan 01 00:11:41.670 7 20 1 io-media-generic/trackplayer: Dcmd CAPABILITIES returning 0
Jan 01 00:11:41.676 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd ATTACHOUTPUT
Jan 01 00:11:41.677 5 20 1 io-media-generic/mmf: writer hint snd:* found
Jan 01 00:11:41.677 6 20 1 io-media-generic/mmf: URL 'snd:/dev/snd/pcmC0D1p' matches pattern 'snd:*'
Jan 01 00:11:41.677 7 20 1 io-media-generic/trackplayer: Dcmd ATTACHOUTPUT returning 0
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd SETVOLUME
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Dcmd SETVOLUME returning 0
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd SETSPEED
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Dcmd SETSPEED returning 0
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GETSTATUS
Jan 01 00:11:41.680 7 20 1 io-media-generic/trackplayer: Dcmd GETSTATUS returning 0
Jan 01 00:11:41.681 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd SETNOTIFICATION
Jan 01 00:11:41.681 7 20 1 io-media-generic/trackplayer: Dcmd SETNOTIFICATION returning 0
Jan 01 00:11:41.681 6 20 1 io-media-generic/trackplayer: dcmd SETDEVICE unsupported for this graph
Jan 01 00:11:41.681 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GETERROR
Jan 01 00:11:41.681 7 20 1 io-media-generic/trackplayer: Dcmd GETERROR returning 0
Jan 01 00:11:41.682 2 27 0 MME:_attachinput(3321): Could not set input device(/fs/avrcp0) to controlcontext default. errno=5
Jan 01 00:11:41.682 5 27 0 MME:_mapiomerror(5400): Unhandled iom error 65539
Jan 01 00:11:41.682 2 27 0 MME:_play(2803): Could not attach file /fs/avrcp0///
Jan 01 00:11:41.682 5 27 0 MME:trk_getoffset(831): No more tracks to play.
Jan 01 00:11:41.682 5 27 0 MME:_playuntilok(5130): No files to play
Jan 01 00:11:41.682 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GETSTATUS
Jan 01 00:11:41.682 7 20 1 io-media-generic/trackplayer: Dcmd GETSTATUS returning 0
Jan 01 00:11:41.682 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd STOP
Jan 01 00:11:41.684 7 20 1 io-media-generic/trackplayer: Dcmd STOP returning 0
Jan 01 00:11:41.684 7 20 1 io-media-generic/trackplayer: Calling graph handler for dcmd GETSTATUS
Jan 01 00:11:41.684 7 20 1 io-media-generic/trackplayer: Dcmd GETSTATUS returning 0
Jan 01 00:11:41.690 2 27 0 MME:_setgenericvalue(851): Send Error for request=2, value=0. errno 61
Jan 01 00:12:10.961 3 27 0 MME:_msgresumemsid(4688): Failed to find active trksession for msid '2' (qdb error: )
Jan 01 00:12:10.962 2 27 0 MME:_setgenericvalue(851): Send Error for request=13, value=2. errno 61
////////////////////////////////////////////////////////////////////////////////////////////////////xiao wei2009-12-12T08:39:26Zpost43663: Re: problem about Integrating Bluetooth audio devices into the MME
http://community.qnx.com/sf/go/post43663
> thank you very much. I get into a dead loop in 'mediafs_mount' as you said.
Great!
> Now,I face another problem. MME can not send right cmd to
>
> io-fs-media(avrcpexample).
>
>
> And my io-fs-media(avrcpexample) has not recerve any cmd from MME.
>
>
> Is any problem here ? thank you for help.
Generally, when you have issues related to playback, you should start io-media-generic with -DD. Then before you reproduce your problem, on the command line you can do:
mmecli set_debug 4 0
sloginfo -c > /dev/null
Now, reproduce your problem and post the output of "sloginfo -t". As well, you could try:
mmecli play_resume_msid 2
Regards,
GillesGilles Roy2009-12-11T16:11:37Zpost43607: Integrating Bluetooth audio devices into the MME-help
http://community.qnx.com/sf/go/post43607
hello all:
I face a problem when Integrating Bluetooth audio devices into the MME .MME can
not send right cmd to io-fs-media(avrcpexample).
//////////////////////////////////////////////////////////
when I do :
'qdbc -d mme "select msid,slotid,storage_type, mountpath from mediastores" '
result is:
Rows: 2 Cols: 4
Names: +msid+slotid+storage_type+mountpath+
00000: |1|1|2|/media/drive|
00001: |2|11|2|/fs/avrcp0|
**********************************************
when I do :
'qdbc -d mme "select fid,msid,folderid,ftype,filename, title from library where msid=2" '
result is:
Rows: 1 Cols: 6
Names: +fid+msid+folderid+ftype+filename+title+
00000: |11|2|3|5||Bluetooth|
***********************************************
when I do :
'mmecli newtrksession l "Select fid from library where msid=2" '
result is:
(rc=0,errno=0) new trksessionid=1. Execution Time=0.021
*************************************************
when I do :
'mmecli settrksession 1'
result is:
(rc=0,errno=0) Set trksessionid=1. Execution Time=0.052
**************************************************
when I do :
'mmecli play'
result is:
(rc=-1,errno=61) Playing from tracksession fid/bid = 0. Execution Time=0.067
******************************************************
And my io-fs-media(avrcpexample) has not recerve any cmd from MME.
When I run 'io-fs-media -davrcpexample,verbose=10'
I can receive some devctl messages below , but I don't think these cmd is right.
--devctl(0,0x41000212)
--devctl(0,0xc3240c36)
--devctl(0,0x318)
--devctl(0,0x318)
--devctl(0,0x318)
--devctl(0,0x318)
--devctl(0,0x318)
--devctl(0,0x318)
--devctl(0,0x40a8020d)
--devctl(0,0x41000c0b)
///////////////////////////////////////////////////////////////////////////////
Is any problem here ? thank you for help.
shawnxiao wei2009-12-11T10:12:13Zpost43605: Re: problem about Integrating Bluetooth audio devices into the MME
http://community.qnx.com/sf/go/post43605
hi
thank you very much. I get into a dead loop in 'mediafs_mount' as you said.
Now,I face another problem. MME can not send right cmd to
io-fs-media(avrcpexample).
//////////////////////////////////////////////////////////
when I do :
'qdbc -d mme "select msid,slotid,storage_type, mountpath from mediastores" '
result is:
Rows: 2 Cols: 4
Names: +msid+slotid+storage_type+mountpath+
00000: |1|1|2|/media/drive|
00001: |2|11|2|/fs/avrcp0|
**********************************************
when I do :
'qdbc -d mme "select fid,msid,folderid,ftype,filename, title from library where msid=2" '
result is:
Rows: 1 Cols: 6
Names: +fid+msid+folderid+ftype+filename+title+
00000: |11|2|3|5||Bluetooth|
***********************************************
when I do :
'mmecli newtrksession l "Select fid from library where msid=2" '
result is:
(rc=0,errno=0) new trksessionid=1. Execution Time=0.021
*************************************************
when I do :
'mmecli settrksession 1'
result is:
(rc=0,errno=0) Set trksessionid=1. Execution Time=0.052
**************************************************
when I do :
'mmecli play'
result is:
(rc=-1,errno=61) Playing from tracksession fid/bid = 0. Execution Time=0.067
******************************************************
And my io-fs-media(avrcpexample) has not recerve any cmd from MME.
When I run 'io-fs-media -davrcpexample,verbose=10'
I can receive some devctl messages below , but I don't these cmd is right.
--devctl(0,0x41000212)
--devctl(0,0xc3240c36)
--devctl(0,0x318)
--devctl(0,0x318)
--devctl(0,0x318)
--devctl(0,0x318)
--devctl(0,0x318)
--devctl(0,0x318)
--devctl(0,0x40a8020d)
--devctl(0,0x41000c0b)
///////////////////////////////////////////////////////////////////////////////
Is any problem here ? thank you for help.
shawnxiao wei2009-12-11T10:07:34Zpost43424: Re: problem about Integrating Bluetooth audio devices into the MME
http://community.qnx.com/sf/go/post43424
> avrcpexample. But when call the function "device_init(dep)" my broad will
> down.
I think that io-fs internally sends a pulse back to itself at priority 12 and then calls your drivers mount function. You could try using gdb or putting printfs() in there to see how far it goes.
Could it be spinning in a loop (i.e. trying to parse options or something?) at priority 12? That would make the other software on the board running at priority 10 look unresponsive.
You could also raise the priority of your shell so that it doesn't lock up so you can better debug the issue (i.e. see the output of pidin)
Regards,
GillesGilles Roy2009-12-09T15:40:45Zpost43410: problem about Integrating Bluetooth audio devices into the MME
http://community.qnx.com/sf/go/post43410
hello all
I want Integrating Bluetooth audio devices into the MME, so i use the
avrcpexample. But when call the function "device_init(dep)" my broad will down.
I have no idea what happend , because my broad has no reaction after that. The
only way restart the broad is cuting power. Can anybody help me? thanks very
much.
shawnxiao wei2009-12-09T10:34:06Zpost43265: snd_pcm_open_preferred and SND_PCM_OPEN_NONBLOCK
http://community.qnx.com/sf/go/post43265
Hai,
I am writing an application with libasound.so on beagleboard-qnx using the plugin type api's of snd_pcm. But when i tried to use the api snd_pcm_open_preferred with SND_PCM_OPEN_NONBLOCK or'ed with SND_PCM_OPEN_PLAYBACK i am getting some unusual behavier. Is it correctly implemented.
ie: Almost all the threads in the system and in the application is stopped and audio is executed. Priority is also enabled in my process. But i thinks something is going wrong. Any idea?
When i tried without SND_PCM_OPEN_NONBLOCK, i got it working fine, but continuous write onto the device is causing problem in my application.
Algorithm:
write the buffer;
check whether underrun/overrun happend
prepare the device again.
play the remaining buffer.
The above steps are happening in a thread. So these steps, when executed multiple times ( i don't know when the voice output to the actual device will get over,because there is no callback like windows waveout functionality), my application stops sending output. Is there any problem of writing a buffer into the device when it is still playing the buffer. I have no clue from application side.
Please help?
Thanks
Susmithsusmith mr2009-12-06T20:46:44Zpost43155: Re: RE: How to setup MME for h264 videos?
http://community.qnx.com/sf/go/post43155
The product release of the Aviage MM 1.2 codec engine only supports audio. We have video working on the beagle and this is available through QNX CAR currently.Dan Cardamore2009-12-04T01:15:51Zpost43104: RE: How to setup MME for h264 videos?
http://community.qnx.com/sf/go/post43104
video playback is only present of x86 at the moment.
Peter
-----Original Message-----
From: Sebastian Kiesel [mailto:community-noreply@qnx.com]
Sent: Thu 12/3/2009 8:37 AM
To: development-multimedia
Subject: How to setup MME for h264 videos?
Hi all,
would it be possible to setup the MME for playback of h264 video files
using the TI OMAP CodecEngine 1.2.0 and the Aviage Multimedia Suite 1.2?
Best Regards,
Sebastian
_______________________________________________
Development
http://community.qnx.com/sf/go/post43087Peter Martin2009-12-03T14:53:09Zpost43087: How to setup MME for h264 videos?
http://community.qnx.com/sf/go/post43087
Hi all,
would it be possible to setup the MME for playback of h264 video files
using the TI OMAP CodecEngine 1.2.0 and the Aviage Multimedia Suite 1.2?
Best Regards,
SebastianSebastian Kiesel2009-12-03T13:37:25Zpost40896: Re: Getting a fid into the tracksession multiple times
http://community.qnx.com/sf/go/post40896
Thanks,
we'll look into it - at first glance it should do the trick.
ThomasThomas Junge2009-10-28T14:27:43Zpost40874: Re: Getting a fid into the tracksession multiple times
http://community.qnx.com/sf/go/post40874
> -> How to have a track in a tracksession multiple times while still allowing
> the customer to exactly select one occurance without picking the wrong offset
> within the playback order? Since mme_play only takes a fid and does not allow
> to alternatively specify a track's sequential id we currently don't see a way
> how to accomplish this.
Did you look at mme_play_offset()? With this you can specify an offset between 0 and N-1 where N is the number of tracks in your tracksession.
Regards,
GillesGilles Roy2009-10-28T13:19:51Zpost40872: Getting a fid into the tracksession multiple times
http://community.qnx.com/sf/go/post40872
Hi all,
we just stumbled over another issue:
We're planning to redesign our current HMI such that in a browser view, it would allow the user to select individual entries or complete folder hierarchies for playback. This includes playlists which are traditionally represented as folders as well.
It shall be permissible for the user to select a track multiple times, say he has a playlist "80s" and another one "Peter Gabriel" which he both selects - in both you find the song "Sledgehammer".
When bringing this selection over into a flat tracksession (to be visualized as such), the intention is to have the track in there twice exactly as the user specified - otherwise it would be indeterministic for him which one the system removes.
-> How to have a track in a tracksession multiple times while still allowing the customer to exactly select one occurance without picking the wrong offset within the playback order? Since mme_play only takes a fid and does not allow to alternatively specify a track's sequential id we currently don't see a way how to accomplish this.
(as discussed before we're currently planning on sticking with library mode)
Thanks,
ThomasThomas Junge2009-10-28T13:12:54Zpost40869: Re: How to wait for mme events in code?
http://community.qnx.com/sf/go/post40869
Thanks Gilles,
your proposal of using MsgReceivePulse to wait works.
@Dan: I already had that part correct, it was just how to make it behave blocking rather than a busy-loop :-)
Cheers,
ThomasThomas Junge2009-10-28T12:36:49Zpost40834: Re: How to wait for mme events in code?
http://community.qnx.com/sf/go/post40834
Take a look at the mme_register_for_events( ) function which allows you to get notified when one or more events have been queued for you to recieve. You can also look at mmecli.c for an example.Dan Cardamore2009-10-27T19:29:52Zpost40825: Re: How to wait for mme events in code?
http://community.qnx.com/sf/go/post40825
> I'm wondering how to best wait for MME events in my code using mme_get_event.
> Is there a way to block until events are delivered or must I set up a timer as
> outlined in the MME Dev Guide in ch. 2? In the latter case, how to identify a
> suitable interval at which to trigger?
If you call mme_get_event() and there is no event waiting, you get a false event back with type MME_EVENT_NONE. You can't just block on the call.
The timer example is misleading, I don't think it is needed. If you talk about blocking, then you probably have a dedicated thread for event processing. In this case you can setup an event (say a pulse) and then register that event with the MME. Then the thread can just enter a loop where it call mme_get_event() until MME_EVENT_NONE is returned, then the thread waits in MsgReceivePulse until it gets a pulse from the MME. Note that the thread should have a dedicated mme connection since you can't shared handle mme_connect() returns among threads. Or rather, you can share it, but you can't have two threads call into the MME at once using the same mme handle.
Regards,
GillesGilles Roy2009-10-27T18:10:34Zpost40822: How to wait for mme events in code?
http://community.qnx.com/sf/go/post40822
Hi all,
I'm wondering how to best wait for MME events in my code using mme_get_event.
Is there a way to block until events are delivered or must I set up a timer as outlined in the MME Dev Guide in ch. 2? In the latter case, how to identify a suitable interval at which to trigger?
Best regards,
ThomasThomas Junge2009-10-27T17:54:20Zpost36365: Re: FF/RW halt mme
http://community.qnx.com/sf/go/post36365
What platform are you running on? Maybe you should also start io-media with -DD options and post the full sloginfo (i.e. without -m27).
Regards,
GillesGilles Roy2009-08-20T13:06:30Zpost36355: Re: FF/RW halt mme
http://community.qnx.com/sf/go/post36355
Hmmm.
Here is a bit more infor.
I think when I pressed FF or REWIND, the io-media failed to start a DspStatusInfo thread, which it looks like waiting for the status from DSP to say buffer level is low.
Since the DspStatusInfo never starts, therefore, the io-media ReaderTask just waits:
with
NB Status is EOF waiting for buffer to empty out.
Help..... I have no clue how to fix it...Jasmine Fong2009-08-20T04:17:11Zpost36350: Re: FF/RW halt mme
http://community.qnx.com/sf/go/post36350
Thanks for you reply.
A track session was created and set correctly.
In the log I took following your instruction, I have played 7 songs, and on track 8 with offset 7 is where I pressed the FF button and released it.
After the song is complete.
Time update continues, and mme didn't advance to next song. I can see io-media didn't give EOF like it used to.
Here is the partial log.
an 01 05:24:47.703 5 27 0 MME:_checkiomevents(967): io-media FINISHED received.
Jan 01 05:24:47.704 5 27 0 MME:handle_iom_ev_finished(735): Received IOM_EV_FINISHED but expected IOM_E
V_TRACKCHANGE.
Jan 01 05:24:47.807 5 27 0 MME:ntfy_log_event(601): MME_EVENT_TRACKCHANGE(actual=28,req=28,offset=5)
Jan 01 05:24:47.808 5 27 0 MME:ntfy_log_event(842): MME_EVENT_NOWPLAYING_METADATA()
Jan 01 05:24:47.808 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 4, state 1, speed 1000
Jan 01 05:24:47.852 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 4, state 0, speed 1000
Jan 01 05:24:47.855 5 27 0 MME:_checkiomevents(996): io-media METADATA received.
Jan 01 05:24:47.856 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 5, state 1, speed 1000
Jan 01 05:24:47.857 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 5, state 4, speed 1000
Jan 01 05:29:38.899 5 27 0 MME:_checkiomevents(963): io-media EOF received.
Jan 01 05:29:38.899 5 27 0 MME:_queuenexttrack(5783): _queuenexttrack offset 6
Jan 01 05:29:39.037 5 27 0 MME:_attachinput(3566): Attached input url (/fs/usb0//MyMusic/BuRenBaYaEr//0
7.è“色的蒙å¤é«˜åŽŸ.mp3)
Jan 01 05:29:39.043 5 27 0 MME:_checkiomevents(967): io-media FINISHED received.
Jan 01 05:29:39.044 5 27 0 MME:handle_iom_ev_finished(735): Received IOM_EV_FINISHED but expected IOM_E
V_TRACKCHANGE.
Jan 01 05:29:39.111 5 27 0 MME:ntfy_log_event(601): MME_EVENT_TRACKCHANGE(actual=29,req=29,offset=6)
Jan 01 05:29:39.111 5 27 0 MME:ntfy_log_event(842): MME_EVENT_NOWPLAYING_METADATA()
Jan 01 05:29:39.112 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 5, state 1, speed 1000
Jan 01 05:29:39.181 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 5, state 0, speed 1000
Jan 01 05:29:39.185 5 27 0 MME:_checkiomevents(996): io-media METADATA received.
Jan 01 05:29:39.185 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 6, state 1, speed 1000
Jan 01 05:29:39.187 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 6, state 3, speed 1000
Jan 01 05:29:39.187 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 6, state 4, speed 1000
Jan 01 05:33:29.341 5 27 0 MME:_checkiomevents(963): io-media EOF received.
Jan 01 05:33:29.341 5 27 0 MME:_queuenexttrack(5783): _queuenexttrack offset 7
Jan 01 05:33:29.478 5 27 0 MME:_attachinput(3566): Attached input url (/fs/usb0//MyMusic/BuRenBaYaEr//0
8.æ¯äº².mp3)
Jan 01 05:33:29.491 5 27 0 MME:_checkiomevents(967): io-media FINISHED received.
Jan 01 05:33:29.495 5 27 0 MME:handle_iom_ev_finished(735): Received IOM_EV_FINISHED but expected IOM_E
V_TRACKCHANGE.
Jan 01 05:33:29.547 5 27 0 MME:ntfy_log_event(601): MME_EVENT_TRACKCHANGE(actual=30,req=30,offset=7)
Jan 01 05:33:29.547 5 27 0 MME:ntfy_log_event(842): MME_EVENT_NOWPLAYING_METADATA()
Jan 01 05:33:29.547 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 6, state 1, speed 1000
Jan 01 05:33:29.617 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 6, state 0, speed 1000
Jan 01 05:33:29.622 5 27 0 MME:_checkiomevents(996): io-media METADATA received.
Jan 01 05:33:29.625 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 7, state 1, speed 1000
Jan 01 05:33:29.627 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 7, state 3, speed 1000
Jan 01 05:33:29.629 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 7, state 4, speed 1000
Jan 01 05:36:05.484 5 27 0 MME:io_handle_msg(122): RCV -> MME_IOMSG_TYPE_SETSPEED: "Speed=5000"
Jan 01 05:36:05.600 5 27 0 MME:_msgsetspeed(3811): Setting speed to 5000
Jan 01 05:36:05.634 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 7, state 3, speed 5000
Jan 01 05:36:05.650 5 27 0 MME:ntfy_log_event(610): MME_EVENT_PLAYSTATE(playstate=4,speed=5000)
Jan 01 05:36:05.652 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 7, state 4, speed 5000
Jan 01 05:36:07.683 5 27 0 MME:io_handle_msg(122): RCV -> MME_IOMSG_TYPE_SETSPEED: "Speed=1000"
Jan 01 05:36:07.787 5 27 0 MME:_msgsetspeed(3811): Setting speed to 1000
Jan 01 05:36:07.787 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 7, state 3, speed 1000
Jan 01 05:36:07.787 5 27 0 MME:ntfy_log_event(610): MME_EVENT_PLAYSTATE(playstate=2,speed=1000)
Jan 01 05:36:07.854 5 27 0 MME:_checkiomevents(952): io-media STATUS: id 7, state 4, speed 1000Jasmine Fong2009-08-20T03:00:39Zpost36341: Re: FF/RW halt mme
http://community.qnx.com/sf/go/post36341
Hi Jasmine,
Can you do the following on the command line:
mmecli set_debug 4 0
sloginfo -c > /dev/null
Now reproduce the problem. Post the result of:
sloginfo -t -m27
With the resulting logs we will be able to help you solve your issue. There isn't any configuration setting that would cause the MME to actually stop. If you let the MME play the song until the end, does the MME play the next song automatically (i.e. if you don't do a FF at all, the next song plays?).
Regards,
GillesGilles Roy2009-08-20T00:12:55Zpost36332: FF/RW halt mme
http://community.qnx.com/sf/go/post36332
Hello,
I have a simple question.
As long as our application mme_play_set_speed(5000), and mme stops playing next track, even though the FF sounded fine, and after release the FF button, our application set mme_play_set_speed(1000) correctly as well.
Is there anything obviously wrong with the way we have configure the mme?Jasmine Fong2009-08-19T21:47:53Zpost35951: snd_pcm_open() core dumps
http://community.qnx.com/sf/go/post35951
Hi all,
I am looking at a problem where my debugger doesnt seem to help. My
target
has a sound card that has to be shared by 2 applications. Hence, I am
trying to open/close my DSP pcm channel using libasound calls.
On spawning my app, I can successfully play audio tracks. Now, I stop
playing the track, flush the audio and close the channel using XXXX()
call. When I try to open the channel again I end up in a core dump. It
happens when my fn() calls the snd_pcm_open(). The arguments do not seem
to be corrupt.
When can such a situation arise?Praveen Kumar(deleted)2009-08-13T19:04:04Zpost31497: Re: URB states wrong.
http://community.qnx.com/sf/go/post31497
Hi Yin,
I'd recommend asking this question in the BSP and Drivers forum. You can find that project here:
http://community.qnx.com/sf/projects/bspDan Cardamore2009-06-11T15:39:25Zpost31460: URB states wrong.
http://community.qnx.com/sf/go/post31460
I am writing a QNX USB driver program.
USB device is inserted into the PC. Device is detected by my driver.
Now, I want to get the audio data from device by urb. firstly, I must check the status of the urb.
I used the function: usbd_urb_status(urb, &ustatus, &receive_len)
Parameter ustatus is stored the urb's status.
Then I did what I wrote under:
① check the value of ustatus, ustatus: USBD_STATUS_CMP_ERR(The operation is complete, but an error occurred)
② check the returned value of the usbd_urb_status(),returned value is EIO(I/O error)
So, my question is : what is the reason of EIO occurred
PS: I think the data transfer got some error occurred, but I don't know what wrong with the data transfer.
Thanks for your suggestion!!Yin Xingmin2009-06-11T09:11:31Zpost28778: Re: shared library on QNX
http://community.qnx.com/sf/go/post28778
Hi Arif,
This forum is for multimedia topics. I think you'll find the best answers in the Core OS forums:
http://community.qnx.com/sf/projects/core_osDan Cardamore2009-05-06T12:31:42Zpost28766: shared library on QNX
http://community.qnx.com/sf/go/post28766
Hi, I'm develop shared library for Linux, AIX and QNX. there is no problem for Linux and AIX,
but in QNX, if I execute a simple application which -lwiththislibrary,
it's always segmentation violation (core dumped) occurs.
for note:
this shared library must to linked with an static library,
static and shared library are ready to compile in every OS.
I am use QNX 6.2.1
sorry for my English :))Arif Budiono2009-05-06T08:59:47Zpost26334: Re: Memory allocation with mme_getphoto()
http://community.qnx.com/sf/go/post26334
Foundry is a site where we develop our product openly. For support of released product you should still be going through the normal QNX support channels such as standard support, or priority support. There aren't any plans currently to put old branches on foundry27.
If you plan to upgrade to 1.2 in the near future, then you can use the 20.14 release as a preview of what is to come on May 21st.Dan Cardamore2009-04-08T12:29:43Zpost26328: Re: Memory allocation with mme_getphoto()
http://community.qnx.com/sf/go/post26328
Dan Cardamore wrote:
> In 1.1 the art from MP3 files is fetched directly with MMF since the
> MME is linked against MMF for just artwork. This means you would
> need to look through the top layer of the MME (devctl.c and photo.c)
> to trace if there are leaks there. Failing that my guess is that the
> issue is in MMF, in which case you may want to try with different
> types of container formats to see if it is an MP3 or MPEG4 issue for
> example.
We've seen the problem on repositories with just aac files as well as on
mixed repositories with aac, wma, mp3 and wav files.
Part of the problem is that I have _no_ album art and the memory usage
is shooting up just because of the API call being made.
Is the release product tagged in the repository so that I could go back
and look at the code that is close to what I'm using to see if I can help
you guys narrow this down? As far as I can tell the project was created
post 1.1 release and doesn't contain the 1.1 code as it was for the release.
Otherwise, I guess this will have to go the route of priority support to get
a patch made for 1.1 since this additional memory allocation will quickly
overflow our configuration.
I'll also take this opportunity to comment that the new history/sync
mechanism
is kind of gross. Every single revision log looks like:
Original-Revision: r216491
Original-Date: 2009-03-25T13:23:45.320812Z
Original-Author: groy@qnx.com
Original-LogMsg: PR:64241
CI:dcardamore
- Rename this file
Ugh ...
> The next release that we're working towards is 1.2. mme_getphoto( )
> replaced with a much more robust image framework that offers the
> following features: * Metatadata for images. Find out how many
> images there are and other details such as their size and dimensions.
> * load images on demand. mme_getphoto( ) could only load the first
> image, 1.2 can load any image in a file that was looked up previously
> * large image support. 1.1 only supported images smaller than 64kb
> * image profiles and conversion so that you can have thumbnails
> created, or have all your images in JPEG format. Configurable and
> built on top of QNX's libimg library * image caching so that
> subsequent lookups don't have to go back to the device or parse the
> image
While the head branch is interesting, I need to work with released
product =;-(
I'm also slightly concerned that version 1.2 (a minor version change) would
actually drop a public API. Am I mis-understanding what you are saying?
From what I see in the repository, there is no cover function for the
mme_getphoto() client call, though there is still an (unused?) header in
main.h
indicating that there should be a server side call.
Thanks,
ThomasThomas Fletcher2009-04-08T11:41:30Zpost26135: Re: Memory allocation with mme_getphoto()
http://community.qnx.com/sf/go/post26135
In 1.1 the art from MP3 files is fetched directly with MMF since the MME is linked against MMF for just artwork. This means you would need to look through the top layer of the MME (devctl.c and photo.c) to trace if there are leaks there. Failing that my guess is that the issue is in MMF, in which case you may want to try with different types of container formats to see if it is an MP3 or MPEG4 issue for example.
The next release that we're working towards is 1.2. mme_getphoto( ) replaced with a much more robust image framework that offers the following features:
* Metatadata for images. Find out how many images there are and other details such as their size and dimensions.
* load images on demand. mme_getphoto( ) could only load the first image, 1.2 can load any image in a file that was looked up previously
* large image support. 1.1 only supported images smaller than 64kb
* image profiles and conversion so that you can have thumbnails created, or have all your images in JPEG format. Configurable and built on top of QNX's libimg library
* image caching so that subsequent lookups don't have to go back to the device or parse the image
You can find all this in the daily builds or source code posted on this project. Documentation is also included in the documentation section.Dan Cardamore2009-04-06T20:16:42Zpost26102: Memory allocation with mme_getphoto()
http://community.qnx.com/sf/go/post26102
I'm using version 1.1 and we're using mme_getphoto()/freephoto() and it looks to me that on an overnight run that the memory consumption for mme-generic is growing out of control (200M on a couple hundred files).
I tried to chase it down through the source code in the MM project, but it appears that the next release is destined to not have an mme_getphoto call (does that mean the next version is 2.0?) so
the backing code is likely significantly different too.
Any hints on how to curb this consumption? I've attached a simple program. Check out the mme-generic memory before/after running it.
Also, there is some dead photo code in: mme/clientlib/mme.c: struct mmphotobuf
Thanks,
Thomas
---
Crank Software
www.cranksoftware.comThomas Fletcher2009-04-06T17:35:23Zpost22623: Welcome to the development forum!
http://community.qnx.com/sf/go/post22623
The multimedia team is happy to share with you our source code for the multimedia project. We welcome any design discussion in this forum.Dan Cardamore2009-02-20T15:15:10Z