summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2008-12-20 12:45:03 +0000
committerWim Taymans <wim.taymans@gmail.com>2008-12-20 12:45:03 +0000
commita579eba73dc613b18d48fc5faa7107c4e64b6893 (patch)
treec952afbad4607ca16eb09b95591f147aeb211577
parent4ed1f5d6fd1496e51bd08f70c5990504020cf431 (diff)
gst-libs/gst/audio/gstbaseaudiosink.c: Pause the write thread before deactivating and releasing the ringbuffer to avo...
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.
-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);