GNOME Bugzilla – Bug 695474
playbin: about-to-finish does not work correctly with chained ogg files
Last modified: 2014-11-26 21:49:27 UTC
about-to-finish gets triggered after the first logical stream, and setting a new uri moves playbin to the next file. Probably related: https://bugzilla.gnome.org/show_bug.cgi?id=689971 Furthermore I get an error during this song change (0.10 at least continued normally to the next file): GStreamer-WARNING **: adding flushing pad 'src_359f3f4d' to running element 'oggdemux0', you need to use gst_pad_set_active(pad,TRUE) before adding it. Probably related: https://bugzilla.gnome.org/show_bug.cgi?id=684566 Playback is fine with gst-launch, which doesn't use about-to-finish.
Is this still a problem with latest git master? Can you provide a test case?
Yes (master, ~1.1.3.1). AFAIR it's just "cat a.ogg b.gg > chained.ogg" with the restriction that the serial numbers of a/b must be different.
wget http://gstreamer.freedesktop.org/data/media/small/multi.ogg Compare: gst-play-1.0 --gapless multi.ogg doesnotexist vs. gst-play-1.0 multi.ogg (seems chained ogg support is broken at the moment, but that's independent, I'll file a separate bug for that)
Still a problem with git master. wget http://gstreamer.freedesktop.org/data/media/incoming/virginradio-three-consecutive-chains.ogg is a better and less annoying test file. When using gst-play-1.0 --gapless virginradio-three-consecutive-chains.ogg nextfile it stops about a second too early (vs. without --gapless).
It looks like this is actually a more generic problem and not related to chained oggs at all. Basically, in gapless mode playbin pre-rolls the next URI, and if an error occurs there the error message is posted straight to the app and we won't finish playback of the current URI, so it gets stopped before reaching the end. *** This bug has been marked as a duplicate of bug 677991 ***