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
This commit is contained in:
Arun Raghavan 2011-01-17 20:09:16 +05:30 committed by Tim-Philipp Müller
parent 0124302b58
commit e18e25a324

View file

@ -2637,6 +2637,11 @@ gst_pulsesink_flush_ringbuffer (GstPulseSink * psink)
gst_pulsering_flush (pbuf); gst_pulsering_flush (pbuf);
/* Uncork if we haven't already (happens when waiting to get enough data
* to send out the first time) */
if (pbuf->corked)
gst_pulsering_set_corked (pbuf, FALSE, FALSE);
/* We're not interested if this operation failed or not */ /* We're not interested if this operation failed or not */
unlock: unlock:
pa_threaded_mainloop_unlock (mainloop); pa_threaded_mainloop_unlock (mainloop);