summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--gst-libs/gst/audio/gstbaseaudiosink.c1
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index bdc19140..7e0ea131 100644
--- 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:
diff --git a/gst-libs/gst/audio/gstbaseaudiosink.c b/gst-libs/gst/audio/gstbaseaudiosink.c
index 7544f458..7f42d7eb 100644
--- a/gst-libs/gst/audio/gstbaseaudiosink.c
+++ b/gst-libs/gst/audio/gstbaseaudiosink.c
@@ -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);