GNOME Bugzilla – Bug 632433
[basesink] hangs/drops going to PLAYING following flushing step in PAUSED
Last modified: 2010-10-20 16:48:00 UTC
Created attachment 172588 [details] [review] basesink: recompute running time for buffer ending flushing step That is, play some (e.g. video only) clip, and then: * go to PAUSED * perform a flushing step of say 10s * go to PLAYING Then there will be a delay/hang of about 10s, and then about 10s worth of data will be dropped as it is too late. Reason is: the last buffer that completes the step has its running and stream time computed first, then the step is "rounded-up" which includes manipulating the segment so as to "drop 10s of running time" (to account for the flushed data). Going to playing, the last buffer will be synced (rendered) on the computed running time, which is then still 10s more (= the hang). When it is then rendered, 10s of subsequent data will arrive too late.
Good catch and the patch works perfectly for me. Can we get this in?
commit 21c50647836d3ed48f4bcf748fe2f543186ea718 Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> Date: Mon Oct 18 10:46:59 2010 +0200 basesink: recompute correct running time for buffer ending flushing step Prevents delaying/hanging when resuming PLAYING. Fixes #632433.