After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 632433 - [basesink] hangs/drops going to PLAYING following flushing step in PAUSED
[basesink] hangs/drops going to PLAYING following flushing step in PAUSED
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
unspecified
Other Linux
: Normal blocker
: 0.10.31
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-10-18 08:57 UTC by Mark Nauwelaerts
Modified: 2010-10-20 16:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
basesink: recompute running time for buffer ending flushing step (1.17 KB, patch)
2010-10-18 08:57 UTC, Mark Nauwelaerts
committed Details | Review

Description Mark Nauwelaerts 2010-10-18 08:57:46 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.
Comment 1 Wim Taymans 2010-10-20 16:13:49 UTC
Good catch and the patch works perfectly for me. Can we get this in?
Comment 2 Mark Nauwelaerts 2010-10-20 16:47:43 UTC
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.