Issues using playbin2 with gapless and custom output bin

Pris Matic prismatic.project at gmail.com
Sun Oct 30 22:52:08 PDT 2011


Hiya,

I'm having a lot of trouble using playbin2 for gapless playback. I used the
'about-to-finish' signal to set the next URI. This works fine, and playback
works fine too. When I press pause though, and query the pipeline for the
current position, I get the running time, not the position. When I hit play
again, I get the position as expected and playback resumes from where it
stopped.

For example if I have an audio clip that's 10 seconds long, and everytime I
get the 'about to finish' signal, I queue it again, if I hit pause half way
through the 5th play through, a position query on the pipeline will give me
0:45s.

The pipeline looks like this:
playbin2 ! equalizer ! tee T ! queue ! volume ! autoaudiosink . T ! queue !
audioconvert ! spectrum ! fakesink

I linked everything using C++ though, so I have everything outside playbin2
in another bin with a ghost pad set as playbin2's audio-sink property. I
also set the fakesink 'async' property to false to allow the pipeline to
pause.

I don't have any issues without the tee and queue elements. This pipeline
works fine:
playbin2 ! equalizer ! volume ! autoaudiosink.

My code is here for ref ( line0-370 is pipeline setup and line 676 for
position query):
http://pastebin.com/07JTQJaw   ...but I don't think it'll be that helpful.

I'd appreciate any advice!

-Pris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20111031/e0ede334/attachment.htm>


More information about the gstreamer-devel mailing list