GNOME Bugzilla – Bug 738064
decodebin: The “drained” signal is emitted multiple times, first time too early (~1s)
Last modified: 2018-11-03 11:31:23 UTC
Created attachment 287928 [details] [review] patch GST_DEBUG=uridecodebin:5 gst-launch playbin uri=<VideoWithAudioFile> log (media duration 10s): 0:00:09.219442212 uridecodebin gsturidecodebin.c:1780:proxy_drained_signal:<uridecodebin0> drained signaled 0:00:10.187942943 uridecodebin gsturidecodebin.c:1780:proxy_drained_signal:<uridecodebin0> drained signaled 0:00:10.187977506 uridecodebin gsturidecodebin.c:1780:proxy_drained_signal:<uridecodebin0> drained signaled 0:00:10.187987089 uridecodebin gsturidecodebin.c:1780:proxy_drained_signal:<uridecodebin0> drained signaled
commit a391dfe17f1a325f60e1d51a6d40c1a68eb196de Author: Andrei Sarakeev <sarakusha@gmail.com> Date: Tue Oct 7 12:10:42 2014 +0400 decodebin: Only emit the drain signal for the main decode chain, not any subchains https://bugzilla.gnome.org/show_bug.cgi?id=738064
Reverted this one for now: commit 65218700773e784587240c077c0c070dd6f503dd Author: Sebastian Dröge <sebastian@centricular.com> Date: Mon Dec 15 09:45:43 2014 +0100 Revert "decodebin: Only emit the drain signal for the main decode chain, not any subchains" This reverts commit a391dfe17f1a325f60e1d51a6d40c1a68eb196de. It breaks gapless playback: https://bugzilla.gnome.org/show_bug.cgi?id=740045
I've just re-applied this patch to understand how it breaks, but it worked for me. Does it break with specific files ?
Without or without the patch, it's equally broken with a ISOMP4 here. That only delta I observe is that drained signalled happening multiple time, and being a bit early.
One thing I don't get about gapless in playbin2, is that it's totally missing any kind of segment offset, and the result totally reflects that, since the duration of the first stream is skipped in the second stream. For audio, there is a skew on the sink that makes it work apparently. I am missing something ?
Ok, just found the code that update the base on GstSegment in streamsynchronizer.
Interesting, turning off qos fixes it.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/133.