Forum Topic - Deploying and running MME suite on QNX neutrino target: Page 2 of 2 (50 Items)
   
Re: Deploying and running MME suite on QNX neutrino target  
Hi Peter,

So without audio-driver, mmexplore doesn't detect the files also?

what is the issue with audio driver?
I have started audio driver as given in the BSP build file. What could be the issue?

# ls -l /dev/snd/
total 0
#
Re: Deploying and running MME suite on QNX neutrino target  
On Mon, 20 Apr 2009, Venkatarao Patnaik Balivada wrote:

>Hi Peter,
>
>So without audio-driver, mmexplore doesn't detect the files also?

mmexplore (from what you've shown) seems to see the folder of the device,
so you'll need to enter that directory and see what files are listed there.
Think of it more as a non-recursive sync on demand type action to locate
media.

From a similar target I have access to:

imx31ads-2# mmexplore

-> will show the list of available cammands to you

MME Media Store eXplorer Example
h               Show this information.
m <n>           Select media store ID <n>.
e <n>           Explore item indexed as <n>.
f "none|pass|block [<regex>]" Filter; pass or block matching regular
expression.
n <path>        Explore item named <path>.
b               Go up to parent item.
o <file>        Output display file; 'none', 'stdout' or custom (default
stdout).
p [<n>]         Play folder or file index <n>.
r               Redisplay current view.
s <sort>        Sort items 'none' (default), 'filename', 'name' (requires
metadata).
d <type>        Set metaData type 'all', 'none' or 'name' (default).
g 0|1|2         Get flags; 1 means resolve playlists directly, 2 means
don't resolve or character convert.
q               Quit.
w <n>           Set window size.


Media Stores:
Rows: 1  Cols: 3
Names:  +msid+name+mountpath+
00000:  |1|USB|/fs/usb0|

-> select a mediastore, there is one here available.

m 1
Exploring media store ID 1.
Item '' has 9 child items.
  1 D  <unknown>                                /xxx_delete_xxx
  2 D  <unknown>                                /M4A
  3 D  <unknown>                                /Artwork
  4 D  <unknown>                                /wav
  5 P  <unknown>                                /root_srm_playlist.m3u
  6 D  <unknown>                                /wma
  7 D  <unknown>                                /srm_playlist
  8 D  <unknown>                                /mp3
  9 D  <unknown>                                /Benchmark
Collected 9 items in   0.020 seconds.

-> displays the first level entries on this mediastore. I want to find a
wav file to play, so I enter the directory with index 4.

e 4
Entering item "/wav" (offset 4).
Item '/wav' has 29 child items.
Display range (x,y) or all (a) or none (n)?
0,10

-> don't need to display all entries since I just wanted at least one

Displaying all items from start to item 10.
  1 F  <unknown>
/wav/CBR_NBIT_128_MONO_22050.wav
  2 F  <unknown>                                /wav/test.wav
  3 F  <unknown>
/wav/THX_16bit_mono_signed.wav
  4 F  <unknown>
/wav/THX_16bit_stereo_signed.wav
  5 F  <unknown>
/wav/THX_8bit_mono_unsigned.wav
  6 F  <unknown>
/wav/THX_8bit_stereo_unsigned.wav
  7 F  <unknown>                                /wav/THX_a-law_mono.wav
  8 F  <unknown>                                /wav/THX_a-law_stereo.wav
  9 F  <unknown>
/wav/THX_GSM_6.10_11.025khz_mono.wav
 10 F  <unknown>
/wav/THX_GSM_6.10_44.1khz_mono.wav
Collected 10 items in   0.103 seconds.

Play item index 1.

p 1
Playing folder "/wav" item 1.

You'll need to solve the io-audio configuration issue before you can get to
this point, but this should show that you are able to find the audio files
that you've put on your system.

>
>what is the issue with audio driver? I have started audio driver as given
>in the BSP build file. What could be the issue?

I haven't worked with that particular target so I'm not certain there.

It was the imx35 that you were working with based on the output from pidin?


>
># ls -l /dev/snd/
>total 0
>#

What did pidin -p io-audio mem show? Had it tried to load the...
View Full Message
Re: Deploying and running MME suite on QNX neutrino target  
Hi Peter,

audio driver worked! DMA needs to be enabled, I missed it.
I am trying MME now ...
Re: Deploying and running MME suite on QNX neutrino target  
Hi Peter,

mmexplore works! I was not using options correctly. Now it shows media files properly.

wave /tmp/Fools.wav,  runs properly, but sound is coming out  over headphone jack

I will update more tomorrow
Re: Deploying and running MME suite on QNX neutrino target  
On Mon, 20 Apr 2009, Venkatarao Patnaik Balivada wrote:

>Hi Peter,
>
>mmexplore works! I was not using options correctly. Now it shows media
>files properly.
>
>wave /tmp/Fools.wav, runs properly, but sound is coming out over headphone
>jack
>
>I will update more tomorrow

Glad to see/hear that you were able to get it working. Next would be to
figure out why you're not getting any items entered into the library table
so it would be mme configuration trouble shooting.

Thanks,

Peter

>
>_______________________________________________
>General
>http://community.qnx.com/sf/go/post27484
>
>
Re: Deploying and running MME suite on QNX neutrino target  
Hi Peter,

Now it works actually

qdbc -dmme "select fid,msid,filename from library"
Rows: 3  Cols: 3
Names:  +fid+msid+filename+
00000:  |1|1||
00001:  |2|1|sine_1000.mp3|
00002:  |3|1|Fools.wav|


Regards,
Venkat
Re: Deploying and running MME suite on QNX neutrino target  
Hi Peter,

Now the only problem I have is that, sound is coming out of headphone jack. 

I checked volume and mute, it is fine.
Re: Deploying and running MME suite on QNX neutrino target  
On Mon, 20 Apr 2009, Venkatarao Patnaik Balivada wrote:

>Hi Peter,
>
>Now the only problem I have is that, sound is coming out of headphone jack.

Did the same thing happen with the wave utility playing direct to io-audio?

Let us know if you have other mme questions.

Thanks,

Peter

>
>I checked volume and mute, it is fine.
>
>_______________________________________________
>General
>http://community.qnx.com/sf/go/post27493
>
>
Re: Deploying and running MME suite on QNX neutrino target  
Hi Peter,

Yes. When I run wave utility, it plays but sound doesn't come out

# wave /tmp/Fools.wav
SampleRate = 44100, Channels = 2, SampleBits = 16
Format Signed 16-bit Little Endian
Frag Size 3760
Rate 44100
Mixer Pcm Group [PCM Subchannel]
Volume Now at 100:100
Volume Now at 100:100
Volume Now at 100:100
#


Re: Deploying and running MME suite on QNX neutrino target  
Hi Peter,

Looks like mmecli  is not playing the file, it returns errno that is != 0.


# mmecli play
(rc=-1,errno=61) Playing from tracksession fid/bid = 0.  Execution Time=0.024
# mmecli trksession_get_info
(rc=0,errno=0) Track Session ID: 13, Current Track: 1, Total Tracks: 3.  Execution Time=0.019
#
Re: Deploying and running MME suite on QNX neutrino target  
Whenever you get an MM error it is best to get the slog output.  Type 'sloginfo' on the command line to get that.  This 
should give the MME errors.   Also, it may be best to repeat this with more debug info:

mmecli set_debug 5 0
# repeat the procedure that caused the error
sloginfo
Re: Deploying and running MME suite on QNX neutrino target  
Hi,

I was actually looking for this, set_debug arguments are verbose, debug.
What does these both options do? How to set these options? Where do I find documentation for this? I don't find full 
details in mme_utils_ref.pdf.



Whenever you get an MM error it is best to get the slog output.  Type 'sloginfo' on the command line to get that.  This 

should give the MME errors.   Also, it may be best to repeat this with more debug info:

mmecli set_debug 5 0
# repeat the procedure that caused the error
sloginfo
Re: Deploying and running MME suite on QNX neutrino target  
All mmecli commands are the MME C API¹s.  It is a 1:1 mapping pretty much.
Just add ³mme_² to the front of the command and look it up in the API
reference.

Dan


On 21/04/09 7:54 AM, "Venkatarao Patnaik Balivada"
<community-noreply@qnx.com> wrote:

> Hi,
> 
> I was actually looking for this, set_debug arguments are verbose, debug.
> What does these both options do? How to set these options? Where do I find
> documentation for this? I don't find full details in mme_utils_ref.pdf.
> 
> 
> 
> Whenever you get an MM error it is best to get the slog output.  Type
> 'sloginfo' on the command line to get that.  This
> should give the MME errors.   Also, it may be best to repeat this with more
> debug info:
> 
> mmecli set_debug 5 0
> # repeat the procedure that caused the error
> sloginfo
> 
> _______________________________________________
> General
> http://community.qnx.com/sf/go/post27580
> 
> 

-- 
Dan Cardamore     dcardamore@qnx.com
QNX Multimedia    http://community.qnx.com/sf/projects/multimedia



Re: Deploying and running MME suite on QNX neutrino target  
Hi Dan,

On mmecli  set_debug  verbose debug. I didn't understand completely

verbose=5, what is it? is it debug level?
debug=0, what is this option?
Re: Deploying and running MME suite on QNX neutrino target  
On Tue, 21 Apr 2009, Venkatarao Patnaik Balivada wrote:

>Hi Dan,
>
>On mmecli  set_debug  verbose debug. I didn't understand completely
>
>verbose=5, what is it? is it debug level?
>debug=0, what is this option?

From the docs on the matching mme API:

"The function mme_set_debug() sets the MME verbosity and debug levels. It
can be called at any time. Debug and verbosity levels range from 0 (zero)
to 10, with 0 meaning turned off and 10 providing the most detailed
information. These levels are equivalent to the mme start up options -v and
-D. See also mme in the MME Utilities Reference.

When debugging problems, use a higher verbosity level to write more
detailed information to the log. The debug setting is usually used only by
QNX developers."

This is used to adjust the levels currently set for the mme, so you can run
without any verbosity but increase it when things are causing problems for
you to collect more information.

Peter

>
>_______________________________________________
>General
>http://community.qnx.com/sf/go/post27598
>
>
Re: Deploying and running MME suite on QNX neutrino target  
Hi,

See the log below.
Looks like it is not able to create  graph. What could be the problem?

# mmecli play_file 1 Fools.wav
(rc=-1,errno=9) Playing file 'Fools.wav' from msid 1.  Execution Time=0.022
#
Re: Deploying and running MME suite on QNX neutrino target  
I don't see the log. 

Dan


----- Original Message -----
From: Venkatarao Patnaik Balivada <community-noreply@qnx.com>
To: general-multimedia <post27581@community.qnx.com>
Sent: Tue Apr 21 08:14:53 2009
Subject: Re: Deploying and running MME suite on QNX neutrino target

Hi,

See the log below.
Looks like it is not able to create  graph. What could be the problem?

# mmecli play_file 1 Fools.wav
(rc=-1,errno=9) Playing file 'Fools.wav' from msid 1.  Execution Time=0.022
#


_______________________________________________
General
http://community.qnx.com/sf/go/post27581

Re: Deploying and running MME suite on QNX neutrino target  
Sorry, missed

Jan 01 01:36:57    5    27     0 MME:mmpl_connect(236): Thread 11 connecting to database.
Jan 01 01:36:57    5    27     0 MME:mmpl_connect(247): Thread 11 connected to database.
Jan 01 01:36:57    5    27     0 MME:ocb_calloc(70): Connection to MME opened (ocb 474580).
Jan 01 01:36:57    5    27     0 MME:io_handle_msg(613): RCV -> MME_IOMSG_TYPE_PLAY_FILE: "msid=1, filename=Fools.wav"
Jan 01 01:36:57    2    27     0 MME:db_cleanup_suspend(492): Unable to suspend clean-up thread: Bad file descriptor (9)
.
Jan 01 01:36:57    5    27     0 MME:mme_ms_lock(541): Lock call for media store 1 of type playback.
Jan 01 01:36:57    2    27     0 MME:_getgraph(3405): Could not create graph. device=/dev/io-media/graphs/trackplayer, 
name=default
Jan 01 01:36:57    5    27     0 MME:mme_ms_unlock(702): Unlock call for media store 1 of type playback.
Jan 01 01:36:57    2    27     0 MME:db_cleanup_resume(516): Unable to resume clean-up thread: Bad file descriptor (9).
Jan 01 01:36:57    2    27     0 MME:_play(3073): Could not create a graph
Jan 01 01:36:57    2    27     0 MME:cc_playfile(131): Send Error for request=3, errno 9
Jan 01 01:36:57    5    27     0 MME:mmpl_disconnect(440): Thread 11 disconnecting from database.
Jan 01 01:36:57    5    27     0 MME:ocb_free(128): Connection to MME closed (ocb 474580).
Re: Deploying and running MME suite on QNX neutrino target  
It looks like you're not running io-media-generic.  Before you start the mme, you will need to start io-media-generic:

io-media-generic

using -DD will help with debugging in the slog.

io-media-generic -DD
Re: Deploying and running MME suite on QNX neutrino target  
On Tue, 21 Apr 2009, Adrian Boak wrote:

>It looks like you're not running io-media-generic.  Before you start the
>mme, you will need to start io-media-generic:
>
>io-media-generic
>
>using -DD will help with debugging in the slog.
>
>io-media-generic -DD

Similar to using the wav file to check that io-audio was setup correctly
you should have testapp-cmdline (io-media test tool) that will allow you to
attach and play a specific file prior to the mme getting involved.

ie:

bsamanda-2# testapp-cmdline -Dfile="/media/drive/wav/test.wav"
000.017 Created graph 'trackplayer/cmdlinetest'
000.032 Attached audio output 'snd:/dev/snd/pcmPreferredp', ID=0
> AttachInput %file 1
003.574 Calling iom_attach_input( "/media/drive/wav/test.wav", 1 )
004.136 Event 4 (STATUS), 32 bytes: trk=1, state=1, speed=1000
> SetTimeNotification 1000
008.297 Calling iom_set_time_notification( 1000 )
> play
009.302 Calling iom_play()
009.327 Event 4 (STATUS), 32 bytes: trk=1, state=3, speed=1000
009.649 Event 4 (STATUS), 32 bytes: trk=1, state=4, speed=1000
009.682 Event 14 (METADATA), 40 bytes: trk=0, cur=0
Track id 1, audio info: codec='RAWA', bitrate=705600, 2ch 22050Hz, 0 images
  Have metadata, 0 strings
010.634 Event 2 (TIME), 40 bytes: trk=1, pos=1002/13453,
prefetch=5927/12000
011.600 Event 2 (TIME), 40 bytes: trk=1, pos=2006/13453,
prefetch=5528/12000
012.590 Event 2 (TIME), 40 bytes: trk=1, pos=3007/13453,
prefetch=5128/12000
013.597 Event 2 (TIME), 40 bytes: trk=1, pos=4010/13453,
prefetch=4328/12000

if you type help at the prompt you will see the list of available commands
(its similar to mmecli in that it will allow you to exercise your io-media
setup without involving the mme to isolate configuration issues)

> help
Control commands:
      quit          exit from the program
     shell [cmd]    execute a shell or a shell command
      echo [text]   print out a line of text
      list          list all available API functions
      help          explain all commands
     sleep n        delay for n milliseconds
    expect n ev...  wait for an event for up to n ms
      file file     read commands from a file
       log file     open a log file
     nolog          close a log file
  setdelay delay    set delay between commands from a file
      trap on|off   abort processing the file if a command fails
     clock on|off   switch the logging of current time on or off
    repeat n        repeat a block script n times
      loop          end of a repeat block
        if ok|error start a conditional block
     ifdef name     start a conditional block
    ifndef name     start a conditional block
      else          start the 'else' part of a conditional block
        fi          end of a conditional block
     local name val define a local variable
    global name val define a global variable
Commands to call io-media API:
AttachInput(su)          AttachOutputToGraph(s)   AttachOutput(su)
DetachInput()            DetachOutputFromGraph(u) DetachOutput(u)
GetAngleInfo()           GetAudioInfo(u)          GetChapterInfo(uu)
GetChapterTime()         GetDeviceInfo()          GetErrorInfo()
GetImageUrl(u)           GetResource(s)           GetStatus()
GetSubtitleInfo(u)       GetTime()                GetTitleInfo(u)
GetTrackInfo(*)          GetTransition()          GetVolume(u)
GetVideoInfo()           GraphCapabilities(uu)    JumpFrames(i)
LoadImage(uu)            Play()                   SaveImage(usu)
SeekChapter(uuu)         SeekTime(uu)             SeekTitle(uu)
SendCommand(s)           SetAngle(uu)             SetAudio(uu)
SetDevice(s)             SetInputDevice(s)        SetMetadata(ssssss)
SetOutputFile(ss)        SetPlaySpeed(i)          SetResource(ss*)
SetSubtitle(uu)          SetTimeNotification(u)   SetTransition(uiu)
SetVolume(uuuu)          Stop()                   GetTimeShiftingExtents()
GetBufferingStatus()    ...
View Full Message
Re: Deploying and running MME suite on QNX neutrino target  
Hi,

Now it seems to have worked! Thanks. I started io-media-generic earlier also, probably there was some error.
 Earlier I tried first "mmecli  play"   and then "mmecli play_file 1 Fools.wav"
May be that was the issue. 
Re: Deploying and running MME suite on QNX neutrino target  
Hi Peter,

Actually my aim is to get my H264 decoder plugin  integrated with MME and run on QNX neutrino.

1) I want to run the raw xxxx.264 file without MP4 wrapper. From the config guide, I find that I can specify the filter/
plugin name in the io-media-xxxx.cfg file. My question is how to skip the MP4 parser and enable the filter directly? Do 
I need to specify decoder filter as a parser in the io-media-xxx.cfg file?

2) I want to create a session file based, and select files to play, to skip the synchronization?
    mmecli   newtrksession f  <what should be the statement?>
    mmecli   settrksession  <id of above session>
    mmecli   play  <how to find set fid>?
             OR should I run
    mmecli   play_file 1   Fools.wav?

  Doesn't seem to work?
# mmecli play_file 1 Fools.wav
(rc=-1,errno=9) Playing file 'Fools.wav' from msid 1.  Execution Time=0.018
#

3) If 2) works properly, I can try 1).
Re: Deploying and running MME suite on QNX neutrino target  
> Hi Peter,
> 
> Actually my aim is to get my H264 decoder plugin  integrated with MME and run 
> on QNX neutrino.
> 
> 1) I want to run the raw xxxx.264 file without MP4 wrapper. From the config 
> guide, I find that I can specify the filter/plugin name in the io-media-xxxx.
> cfg file. My question is how to skip the MP4 parser and enable the filter 
> directly? Do I need to specify decoder filter as a parser in the io-media-xxx.
> cfg file?
> 
> 2) I want to create a session file based, and select files to play, to skip 
> the synchronization?
>     mmecli   newtrksession f  <what should be the statement?>
>     mmecli   settrksession  <id of above session>
>     mmecli   play  <how to find set fid>?
>              OR should I run
>     mmecli   play_file 1   Fools.wav?
> 
>   Doesn't seem to work?
> # mmecli play_file 1 Fools.wav
> (rc=-1,errno=9) Playing file 'Fools.wav' from msid 1.  Execution Time=0.018
> #
> 
> 3) If 2) works properly, I can try 1).


Option 1 above will require more work on your side.  Parsers perform a number of functions in our graphs.  At the very 
least you would need to create a "simple" parser that does nothing but claim the fail as one it can parse and then pass 
the data on.  This would only be a first step however, as parsers also control trickplay and other functionality.
Re: Deploying and running MME suite on QNX neutrino target  
Hi,

How does the graph works for MP3 files? I suppose the MP3 decoder filter works directly on raw MP3 bitstream. In this 
case what does your "mpega_parser" do? Does it strip off the MP3 frame headers and pass only raw frame-data to the 
decoder filter? 
Re: Deploying and running MME suite on QNX neutrino target  
My guess is that your speakers aren't hooked up right, or that you have the volume down low, or muted.

Play with the mix_ctl application that can change your software mixer settings.  Also try out the 'mmecli setvolume 100'
 command.  Then make sure that your speakers are working and that you have it plugged into the right jack.