[Gstreamer-openmax] GstOpenmax demuxer issue

Felipe Contreras felipe.contreras at gmail.com
Sat Dec 6 03:10:00 PST 2008


On Sat, Dec 6, 2008 at 12:13 PM, prafull singh
<singh.prafull0206 at gmail.com> wrote:
> Hi,
> I'm porting my own openmaxil component with gstreamer. I used gst openmax
> plugin whatever used for ST Bellagio component. I'm able to play aac file
> containing audio only. But when I'm paying file containing both audio and
> video then I'm not able to parse data using decodebin element. I'm using
> following command for playing file containing audio and video both-
> gst-launch -v filesrc location=MI3_QCIF_24FPS_5MBPS_48KHZ_128KBPS.3gp  !
> decodebin name=demux {demux.audio_00 ! queue ! omx_mp3dec ! omx_audiosink}
> {demux.video_00 ! queue  ! omx_h264dec  ! omx_videosink}

If you read decodebin's description: "Autoplug and decode to raw
media", you would understand that's it's not supposed to demux. In
theory you can replace omx_mp3dec by decodebin for example.

You could use decodebin2 as a demuxer, but it's not working perfectly right now.

> followig output I'm getting-
>
> /pipeline0/demux/typefind.src: caps = application/x-3gp
> Pipeline is PREROLLING ...
> /pipeline0/demux/queue2.sink: caps = audio/mpeg, mpegversion=(int)4,
> framed=(boolean)true, codec_data=(buffer)1410, rate=(int)16000,
> channels=(int)2
> /pipeline0/demux/queue2.src: caps = audio/mpeg, mpegversion=(int)4,
> framed=(boolean)true, codec_data=(buffer)1410, rate=(int)16000,
> channels=(int)2
> /pipeline0/demux/omxaacdec0.sink: caps = audio/mpeg, mpegversion=(int)4,
> framed=(boolean)true, codec_data=(buffer)1410, rate=(int)16000,
> channels=(int)2
> /pipeline0/demux/omxaacdec0.sink: caps = audio/mpeg, mpegversion=(int)4,
> framed=(boolean)true, codec_data=(buffer)1410, rate=(int)16000,
> channels=(int)2
> /pipeline0/demux/queue3.sink: caps = video/x-h264,
> codec_data=(buffer)0142e00affe100122742e00aa918589d803506010630ad7bdf0101000428ce0988,
> width=(int)176, height=(int)144, framerate=(fraction)2997/200
> /pipeline0/demux/queue3.src: caps = video/x-h264,
> codec_data=(buffer)0142e00affe100122742e00aa918589d803506010630ad7bdf0101000428ce0988,
> width=(int)176, height=(int)144, framerate=(fraction)2997/200
> /pipeline0/demux/omxh264dec1.sink: caps = video/x-h264,
> codec_data=(buffer)0142e00affe100122742e00aa918589d803506010630ad7bdf0101000428ce0988,
> width=(int)176, height=(int)144, framerate=(fraction)2997/200
> /pipeline0/demux/omxh264dec1.sink: caps = video/x-h264,
> codec_data=(buffer)0142e00affe100122742e00aa918589d803506010630ad7bdf0101000428ce0988,
> width=(int)176, height=(int)144, framerate=(fraction)2997/200
> /pipeline0/demux/omxaacdec0.src: caps = audio/x-raw-int, width=(int)16,
> depth=(int)16, rate=(int)48000, signed=(boolean)true, endianness=(int)1234,
> channels=(int)2
>
>
> I'm suspecting that decodebin demuxer element is not able to stream audio
> and video data to corresponding audio and video decoder. Can anyone please
> suggest in gstreamer which type of demuxer I should use. Also in GSTOpenmax
> there is no demuxer element so how demuxing is happening in this case?

That's right, you need to specify the demuxer. Probably you need qtdemux.

The goal of gst-openmax is not to replace the whole pipeline with omx
elements, just the parts that you need. There's nothing wrong with
having part in GStreamer and part in OpenMAX IL.

There's people interested in developing a demuxer wrapper in
gst-openmax, but it has not been done yet.

-- 
Felipe Contreras




More information about the Gstreamer-openmax mailing list