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 639740 - [pulsesink] doesn't uncork in some cases during reverse playback
[pulsesink] doesn't uncork in some cases during reverse playback
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
unspecified
Other Linux
: Normal blocker
: 0.10.27
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-01-17 12:03 UTC by Philippe Normand
Modified: 2011-01-17 15:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
test case (1.45 KB, text/plain)
2011-01-17 12:04 UTC, Philippe Normand
  Details
pulsesink: Uncork stream while flushing the ringbuffer (1.24 KB, patch)
2011-01-17 14:48 UTC, Arun Raghavan
committed Details | Review

Description Philippe Normand 2011-01-17 12:03:33 UTC
Commit 8ca094795add18733faeb2a1f335bb33f40f9894 of -good makes 2 WebKit tests related to reverse playback fail.

The attached python script can help to reproduce the issue. It starts playing a file, does a seek forward and starts reverse playback until EOS and start again. After some iterations the script just blocks waiting the sink to uncork forever.
Comment 1 Philippe Normand 2011-01-17 12:04:11 UTC
Created attachment 178498 [details]
test case
Comment 2 Arun Raghavan 2011-01-17 14:48:04 UTC
Created attachment 178516 [details] [review]
pulsesink: Uncork stream while flushing the ringbuffer

After starting the ringbuffer, we wait for enough data to arrive before
uncorking the stream. This will cause the pipeline to stall if we get an
EOS (or otherwise need to flush the stream) before sufficient data
becomes available. This patch makes sure that the stream is uncorked
while flushing to avoid this problem.
Comment 3 Philippe Normand 2011-01-17 14:52:26 UTC
I confirm this fix works here, thanks Arun :)
Comment 4 Tim-Philipp Müller 2011-01-17 15:41:03 UTC
Thanks, pushed:

 commit e18e25a324c6367210f0210f48afeab7ca38c529
 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
 Date:   Mon Jan 17 20:09:16 2011 +0530

    pulsesink: Uncork stream while flushing the ringbuffer
    
    After starting the ringbuffer, we wait for enough data to arrive before
    uncorking the stream. This will cause the pipeline to stall if we get an
    EOS (or otherwise need to flush the stream) before sufficient data
    becomes available. This patch makes sure that the stream is uncorked
    while flushing to avoid this problem.
    
    Fixes issue with a webkit unit test testing reverse playback of
    an MP4 H.264/AAC file.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=639740