[gst-devel] I'm stuck into a demuxer problem.

franchan francis.meyvis at gmail.com
Tue Nov 25 14:53:50 CET 2008


Hello,

I seek some suggestions to find a bug in my own mp4 demuxer.
This is actually a wrapper around a proprietary mp4 parser.
(For inspiration I looked into qtdemux, so it is based on that pull scheduling).
The demuxer only support pull scheduling
(I seem to better understand that operation model).

The pipeline works fine when it is "hard-coded" e.g.
filesrc ! mp4demux name=demux \
   demux.video_01! queue ! video_decoder ! ffmpegcolorspace! xvimagesink \
   demux.audio_01! queue ! audio_decoder ! audioconvert ! alsasink

When I use the playbin to create my pipeline,
typefinding works fine until a certain point:
source links with demux links the video and audio queues (always in that order).

But further linking the pipeline is not happening anymore.
The video & audio decoder, which are proprietery as well,
seem to be stuck in their gst_pad_push().
These are not linked with the corresponding queues.
While the demuxer's pull task is blocked on pushing some encoded video frame.

It is as if playbin thinks that all is done.
Why does it not continue creating the renderers (alsasink/xvimagesink).
It seldom goes into the PLAYING state.
(1 in 30 times it may start playing though).

I'm out of inspiration on what might be wrong ...

When the qtdemux is selected by playbin, all works as expected,
I think the qtdemux might not operate in pull scheduling though.
That's why I think the problem is in the mp4 demuxer
(not in the other proprietary decoders).

Thanks in advance,
francis




More information about the gstreamer-devel mailing list