From a579eba73dc613b18d48fc5faa7107c4e64b6893 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Sat, 20 Dec 2008 12:45:03 +0000 Subject: [PATCH] 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. --- ChangeLog | 8 ++++++++ gst-libs/gst/audio/gstbaseaudiosink.c | 1 + 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index bdc1914..7e0ea13 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-12-20 Wim Taymans + + * 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 * gst-libs/gst/audio/gstbaseaudiosrc.c: diff --git a/gst-libs/gst/audio/gstbaseaudiosink.c b/gst-libs/gst/audio/gstbaseaudiosink.c index 7544f45..7f42d7e 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); -- 2.7.4