gst-libs/gst/audio/gstbaseaudiosink.c: Pause the write thread before deactivating...
authorWim Taymans <wim.taymans@gmail.com>
Sat, 20 Dec 2008 12:45:03 +0000 (12:45 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Sat, 20 Dec 2008 12:45:03 +0000 (12:45 +0000)
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_setcaps):
Pause the write thread before deactivating and releasing the ringbuffer
to avoid a deadlock when we do gapless playback with different sample
rates in playbin2.  Fixes #564929.

ChangeLog
gst-libs/gst/audio/gstbaseaudiosink.c

index bdc1914..7e0ea13 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-12-20  Wim Taymans  <wim.taymans@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+       (gst_base_audio_sink_setcaps):
+       Pause the write thread before deactivating and releasing the ringbuffer
+       to avoid a deadlock when we do gapless playback with different sample
+       rates in playbin2.  Fixes #564929.
+
 2008-12-19  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
 
        * gst-libs/gst/audio/gstbaseaudiosrc.c:
index 7544f45..7f42d7e 100644 (file)
@@ -620,6 +620,7 @@ gst_base_audio_sink_setcaps (GstBaseSink * bsink, GstCaps * caps)
   GST_DEBUG_OBJECT (sink, "release old ringbuffer");
 
   /* release old ringbuffer */
+  gst_ring_buffer_pause (sink->ringbuffer);
   gst_ring_buffer_activate (sink->ringbuffer, FALSE);
   gst_ring_buffer_release (sink->ringbuffer);