On Sun, Dec 7, 2008 at 5:20 PM, Jesslyn Abdul Salam
<jesslyn.a...@gmail.com> wrote:
> Hi everyone !!!
>
> I have been following [1] and [2] to check whether I can play an avi file
> using gstreamer + Openmax with DSP acceleration.
> I have been using my own cooked up makefiles for building each of the
> gstreamer dep packages. For each packages I looked up the options from OE
> meta data. And by trial and error, i resolved each of the unwanted
> dependencies.
>
> I tried the instruction given in the [2]
>
> gst-launch-0.10 filesrc location="foobar.avi" ! avidemux ! omx_mpeg4dec !
> omapfbsink
>
> Setting pipeline to PAUSED ...
> OMX-Component not found with current ST static component loader.
> ERROR: Pipeline doesn't want to pause.
> Setting pipeline to NULL ...
> FREEING pipeline ...
>
> Any one else came across this problem ?
>
> I would like to know one more thing. [2] specifies to use libomxil-ti but
> does not mention anything about libomxil-bellagio. Do we really need that ?
> I build it anyway to the rootfs.
By default gst-openmax is using libomxil-bellagio, you can check that
by running:
gst-inspec-0.10 omx_mpeg4dec
You can specify which omx library to use at run-tine:
omx_mpeg4dec library-name="libOMX_Core.so" component-name="OMX.TI.Video.Decoder"
Or you can use the "omap" branch in gst-openmax's github, which has
the right default values for TI's omx.
I forgot to mention that on the howto =/
--
Felipe Contreras
By default gst-openmax is using libomxil-bellagio, you can check that
by running:
gst-inspec-0.10 omx_mpeg4dec
You can specify which omx library to use at run-tine:
omx_mpeg4dec library-name="libOMX_Core.so" component-name="OMX.TI.Video.Decoder"
Or you can use the "omap" branch in gst-openmax's github, which has
the right default values for TI's omx.
I forgot to mention that on the howto =/
--
Felipe Contreras
Right, it's still not the official repo, so you need to download the
common submodule:
http://cgit.freedesktop.org/~bilboed/common/
>> I forgot to mention that on the howto =/
>
> If I can get it working, I can contribute complete Howto on building the
> entire stack(gstreamer + openmax + dsp) using a single makefile to your
> wiki page.
Great! But the instructions to do it manually should be there too.
--
Felipe Contreras
>> You can specify which omx library to use at run-tine:
>> omx_mpeg4dec library-name="libOMX_Core.so"
>> component-name="OMX.TI.Video.Decoder"
>
> I will try this.
>>
>>
It might related to some issue with the DSP socket nodes. I reported a
similar issue some time ago:
https://omapzoom.org/gf/project/openmax/mailman/?_forum_action=ForumMessageBrowse&thread_id=229&action=ListThreads&mailman_id=19
I heard they were supposed to update the binaries, but I'm still
waiting for tiopenmax-0.4.
I'm cc-ing the TI openmax ml. Any input on this?
--
Felipe Contreras
Pfff, I bcc'ed the list, now I'm cc'ing.
--
Felipe Contreras
It might related to some issue with the DSP socket nodes.
I've updated the howto for that common issue:
http://elinux.org/BeagleBoard/DSP_Howto#ping_test
Basically you probably need to do:
./dynreg.out -r pingdyn_3430.dll64P
--
Felipe Contreras
--
Felipe Contreras
Compilation without scratchbox is a little more complicated and no,
you can't use the binaries I provided for development, you would need
at least the headers.
Here I'm explaining how to cross-compile GStreamer with scratchbox.
http://gstreamer.freedesktop.org/wiki/HowToCompileForEmbedded
And here are some easy steps to setup a scratchbox environment for
armv7 development:
http://gist.github.com/13986
--
Felipe Contreras
Then you stumbled upon the same problem as I did.
Chris Kelly from TI said they are aware and planing to fix that:
https://omapzoom.org/gf/project/omapandroid/mailman/?_forum_action=ForumMessageBrowse&thread_id=387&action=ListThreads&mailman_id=22
--
Felipe Contreras
I think I hit the same problem - Did you remember to load the kernel modules
using modprobe as discussed in the thread "[beagleboard] Re: New beagleboard
demo image, now with 100% more DSP"?
And secondly: Did you remember to set the right parameter of mem=88M in the
u-boot environment? This is discussed in the same thread...
Good luck
Søren
On the Beagle, I have successfully used these as my bootargs:
'console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait rootdelay=1
omapdss.def_disp=dvi omapfb.mode=dvi:1024x768MR-24@60
omapfb.vram=0:4M,1:2M'.
That's using this kernel:
http://github.com/felipec/linux-omap/tree/v2.6.28-felipec1
These pipelines work perfectly:
* gst-launch filesrc
location=/patterns/hancock-tsr2_MPEG4_AAC_3_5Mbps.mp4 ! qtdemux name=d
d.video_00 ! goodec_mpeg4 ! fakesink -v
* gst-launch filesrc
location=/patterns/hancock-tsr2_MPEG4_AAC_3_5Mbps.mp4 ! qtdemux name=d
d.video_00 ! omx_mpeg4dec ! fakesink -v
* gst-launch filesrc
location=/patterns/hancock-tsr2_MPEG4_AAC_3_5Mbps.mp4 ! qtdemux name=d
d.video_00 ! omx_mpeg4dec ! omapfbsink -v
That was using Poky here:
http://elinux.org/BeagleBoard/Poky
For the SDP we use a different branch of that Poky overlay and use
"... ! goodec_mpeg4 ! goosink_pp".
Greetings!
Daniel Díaz
dd...@ti.com
You can enable debugging at the gst-openmax level by doing:
export GST_DEBUG='omx*:5'
It seems I forgot one step in the gst-openmax guide[1], you need to
use the omap branch. If you use the omap branch then you don't need to
specify the component name or library name:
git clone git://github.com/felipec/gst-openmax.git
cd gst-openmax
git checkout -b omap origin/omap
./autogen.sh --noconfigure
./configure --prefix=/usr
make DESTDIR=rootfs install
I've updated the wiki as well.
[1] http://elinux.org/BeagleBoard/gst-openmax
--
Felipe Contreras
That thread was for dsp-link, this is dsp-bridge.
> And secondly: Did you remember to set the right parameter of mem=88M in the
> u-boot environment? This is discussed in the same thread...
mem=88M is only needed for dsp-link and perhaps old versions of
dsp-bridge. The latest linux-omap branches don't need that.
--
Felipe Contreras
On Wed, May 6, 2009 at 1:13 PM, vishal bhoj <visha...@gmail.com> wrote:
> I want to confirm one thing . Does the same bn\inaries work on 3430 LDP .
[...]
My guess is they should. We have tested the same socket nodes both in
the LDP and SDP in the past, and they work just the same.
> Daniel,
> For the SDP we use a different branch of that Poky overlay and use
> "... ! goodec_mpeg4 ! goosink_pp".
>
> Is this the only way to use hardware codcs . doesn't gst-openmax work the
> way it is in beagleboard ?
Both gst-goo and gst-openmax work just fine with those codecs. At
least just yesterday I was using the video decoders without any
issues. If you use an OE-based distro, you can use the recipes already
written for gst-goo, gst-openmax, gst-omapfb, tiopenmax,
tidspbridge-lib, and whatnot.
If you use gst-omapfb (and you want to) (it's here:
http://github.com/felipec/gst-omapfb/tree/master), then you'd have to
use gst-openmax for now to properly see anything in the video output;
Goo requires a gst_pad_alloc_buffer() or the gst-omapfb could use a
memcpy for non-optimized elements.
Greetings!
Daniel Díaz
dd...@ti.com
Hmm - Thanks for correcting me - Seems like I need to do my homework better next time in order to get real up to speed with this dsp-link, dsp-bridge, g-streamer stuff - Does anybody have some great pointer(s) to some kind of overview of the big picture describing this?
I won't cause more confusion on this topic I promise...
Søren :-)
Yeah, I think most people are confused with all the DSP stuff.
I just wrote a little summary in order to try to clarify the situation:
http://elinux.org/BeagleBoard/DSP_Clarification
--
Felipe Contreras
On Thu, May 7, 2009 at 10:01 AM, kozak <c.a.sub...@gmail.com> wrote:
> On May 7, 7:35 pm, kozak <c.a.subraman...@gmail.com> wrote:
>> Hi,
>> This might sound dumb, but can someone tell me where I can find the
>> baseimage.dof?
>> Basically, the bridge binaries to be loaded on the DSP side!
> Is it part of the DSP link available at TI website?
You can find TI-OMX-Sample-Firmware-0.3.5-Linux-x86-Install within
tiopenmax-0.3.5.tar.gz here:
https://omapzoom.org/gf/project/openmax/frs/
It has the socket nodes and the baseimage.dof.
Greetings!
Daniel Díaz
dd...@ti.com
> Regards
> Kozak
On Thu, May 7, 2009 at 10:33 AM, Favor Tang <tan...@gmail.com> wrote:
> hi. Daniel
>
>> Both gst-goo and gst-openmax work just fine with those codecs. At
>> least just yesterday I was using the video decoders without any
>> issues. If you use an OE-based distro, you can use the recipes already
>> written for gst-goo, gst-openmax, gst-omapfb, tiopenmax,
>> tidspbridge-lib, and whatnot.
>
> I want to know if all of these (gst-goo, gst-openmax, gst-omapfb,
> tiopenmax) is needed, and what's the main function respectively?
> as I understood at present, the gst-openmax is a plugin of gstreamer,
> which can invoke tiopenmax IL layer, and the tiopenmax IL knows how to
> use dsp.
> and the gst-omapfb is for frame buffer which can display the video
> output on the screen.
> is it right about what I understand? and what about the gst-goo?
You are right! Both gst-openmax and gst-goo are sets of GStreamer
plug-ins that talk to OpenMAX IL.
gst-omapfb provides a plug-in that talks to the frame buffer, as you guessed.
tiopenmax 0.3.5 is an implementation of TI's OpenMAX IL, with some
sample codecs (socket nodes + baseimage) included, namely MPEG-4 Video
and Audio (AAC) Decoders.
The DSP Bridge has two parts: the kernel module and the ARM library
that talks to the module. The latter is tidspbridge-lib.
Greetings!
Daniel Díaz
dd...@ti.com
Whoa, a lot of people contributed, thanks :)
However, some notes:
tidspbridge is *not* stable, nor production ready as demonstrated by
critical fixes that have been flowing in as recent as two weeks ago:
http://marc.info/?l=linux-omap&m=123811667326198&w=2
http://marc.info/?l=linux-omap&m=124028261217376&w=2
That is heavy development, not just cleanups.
The fact that a phone was *announced* at CES (reference?) with it,
doesn't mean it's production ready, just that one company is betting
on it being stable by release time. And also, products are released
with code that is not really production ready.
It is true that TI is working on the linux-omap-pm branch, but they
disagree on the pm architecture, that's why they have a fork at
omapzoom.org. The dsp-bridge at omapzoom is maintained by TI, while
the one in linux-omap is maintained by Ameya (previously Hiroshi):
http://marc.info/?l=linux-omap&m=123626584228670&w=2
Fortunately mediawiki has a place to discuss articles :)
http://elinux.org/Talk:BeagleBoard/DSP_Clarification
Cheers.
--
Felipe Contreras
Sorry? There are different kinds of cleanup patches. If the cleanup is
good it should not alter functionality, but mistakes happen, that's
why testing is needed. Some cleanup patches have a higher risk of
introducing bugs.
Thanks for the cleanup patches, but let's say things as they are;
critical bugfixes are coming in all the time, this one for example is
definitely not a cleanup, or I least I noticed an impressive
improvement in stability with it:
http://marc.info/?l=linux-omap&m=124028261217376&w=2
>> The fact that a phone was *announced* at CES (reference?) with it,
>> doesn't mean it's production ready, just that one company is betting
>> on it being stable by release time. And also, products are released
>> with code that is not really production ready.
>
> and betting to be some phone killer too ;) but nowadays all want the
> same thing
If course, but until it's not released you cannot say much about the
stability of it's software.
>> It is true that TI is working on the linux-omap-pm branch, but they
>> disagree on the pm architecture, that's why they have a fork at
>> omapzoom.org. The dsp-bridge at omapzoom is maintained by TI, while
>> the one in linux-omap is maintained by Ameya (previously Hiroshi):
>>
>> http://marc.info/?l=linux-omap&m=123626584228670&w=2
>
> you'd be surprised to clone omapzoom and doing cd drivers/dsp/bridge
Sorry, I don't have any zoom device, nor am interested in anything but
upstream, but I'm curious, what would I find?
> btw last time I checked gitorious branch wasn't on linux-omap
> http://marc.info/?l=linux-omap&m=123817274028462&w=2
You mean it wasn't on Tony's tree? I believe Tony has expressed no
interest on maintaining the tidspbridge branch, so it's maintained on
Ameya's repo at gitorious.
> perhaps i should try to clone it now :D
>
>> Fortunately mediawiki has a place to discuss articles :)http://elinux.org/Talk:BeagleBoard/DSP_Clarification
>
> I felt encouraged by "If you don't want your writing to be edited
> mercilessly and redistributed at will, then don't submit it here"
Huh?
--
Felipe Contreras
yes that's a nice bug fix, but anyway... it is good to get feedback from it.
Regards,
- omar ramirez
Do you have the right socket nodes in /lib/dsp ?
--
Felipe Contreras
Firstly,thank you for you reply;Certainly!After booted into linux;I runned this:[1]modprobe bridgedriver base_img=/lib/dsp/baseimage.dof[2]./dynreg.out -r pingdyn_3430.dll64P[3]./ping.out (ping action success)But after i run "run "gst-launch-0.10 filesrc location="foobar.avi" ! avidemux ! omx_mpeg4dec ! omapfbsink"
i get the error
> NODE:DSPNode_Allocate: Failed to get Node UUID properties
>
> ****************LCML ERROR : DSP ************************
>
> Error: Allocate Component : Err Num = 80008021
>
> ****************LCML ERROR : DSP ************************
I don't know why;By the way,what is LCML? what is its fullName and its function?In your options ,which part maybe have problem? libbridge,libomxil-ti,bridgedriver or others?
omx_mpeg4dec is using a different socket node, please list all the
files in your /lib/dsp directory.
>> NODE:DSPNode_Allocate: Failed to get Node UUID properties
>
>>
>> ****************LCML ERROR : DSP ************************
>>
>> Error: Allocate Component : Err Num = 80008021
>>
>> ****************LCML ERROR : DSP ************************
>
>
>
>
>
> I don't know why;
>
>
>
> By the way,what is LCML? what is its fullName and its function?
AFAIK it's Linux Common Media Language. And it's yet another layer to
use the DSP from OpenMAX IL.
> In your options ,which part maybe have problem?
> libbridge,libomxil-ti,bridgedriver or others?
I think the problem is in libomxil-ti trying to use a socket node that
is not available.
--
Felipe Contreras