[gst-devel] playbin -- ogg -- shout2send

Leon Bogaert leon at tim-online.nl
Sun Jan 24 19:54:01 CET 2010


Hi all,

I'm trying to setup something like this:

              |--queue--vorbisenc--oggmux--|
playbin--tee--|                            |--inputselector--shout2send
              |--queue--vorbisenc--oggmux--|

I've also posted it on pastebin: http://pastebin.ca/1764209

Why with the tee and the inputselecor? Because if I just connect the playbin with vorbisenc, oggmux and shout2send after the first song I get al these "Buffer is older than previous timestamp" errors. 
On IRC they explained this has something to do with the ogg timestamps. If I switch vorbisenc/oggmux with lame it works.

So my plan was to play the first song with the above queue/vorbisenc/oggmux and the second with the second tee src. When playing the second song I could clean up the above elements so they can be used for the third song et cetera.
I've tried the approach explained in the "dynamically switching an element" chapter here: http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-block.txt
The switching get started when the playbin emits the 'about-to-finish' signal.

But I can't get it to work. I'm using pygst by the way. 
Am I on the wrong way here and should I approach this problem completely different? 
I've tried a lot of things. Often the script just hangs so obviously I'm doing something wrong here.

I've posted my testscript here: http://github.com/LeonB/py-icecream/blob/master/snippets/playbin_with_tee3.py
I tried to keep it as clean as possible. When running, it now hangs after the 'about-to-finish' signal and the blocking of the src0 tee pad. The last message I get:
GST_EVENT gstpad.c:5003:gst_pad_send_event:<pipeline0:sink> Received event on flushing pad. Discarding

Thanks in advance!

Leon



More information about the gstreamer-devel mailing list