diff --git a/ChangeLog b/ChangeLog index 038ce098d4..8ecb3aefdb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-11-16 Wim Taymans + + * gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_stop): + Set ringbuffer to flushing when stopping so that we don't + block on wait_segment anymore and livelock. + 2005-11-16 Wim Taymans * examples/seeking/seek.c: (send_event), (do_seek), diff --git a/gst-libs/gst/audio/gstringbuffer.c b/gst-libs/gst/audio/gstringbuffer.c index cae51f1696..8e38e8a971 100644 --- a/gst-libs/gst/audio/gstringbuffer.c +++ b/gst-libs/gst/audio/gstringbuffer.c @@ -796,8 +796,7 @@ gst_ring_buffer_stop (GstRingBuffer * buf) GST_DEBUG_OBJECT (buf, "stopping"); GST_LOCK (buf); - if (buf->flushing) - goto flushing; + buf->flushing = TRUE; /* if started, set to stopped */ res = g_atomic_int_compare_and_exchange (&buf->state, @@ -827,12 +826,6 @@ done: GST_UNLOCK (buf); return res; - -flushing: - { - GST_UNLOCK (buf); - return FALSE; - } } /**