From: <wt...@fr...> - 2005-11-16 12:17:20
|
CVS Root: /cvs/gstreamer Module: gst-plugins-base Changes by: wtay Date: Wed Nov 16 2005 04:17:18 PST Log message: * 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. Modified files: . : ChangeLog gst-libs/gst/audio: gstringbuffer.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/ChangeLog.diff?r1=1.2081&r2=1.2082 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/audio/gstringbuffer.c.diff?r1=1.23&r2=1.24 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-plugins-base/ChangeLog,v retrieving revision 1.2081 retrieving revision 1.2082 diff -u -d -r1.2081 -r1.2082 --- ChangeLog 16 Nov 2005 10:54:45 -0000 1.2081 +++ ChangeLog 16 Nov 2005 12:17:06 -0000 1.2082 @@ -1,5 +1,11 @@ 2005-11-16 Wim Taymans <wi...@fl...> + * 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 <wi...@fl...> * examples/seeking/seek.c: (send_event), (do_seek), (loop_toggle_cb), (segment_done), (main): Added looping checkbox. Index: gstringbuffer.c RCS file: /cvs/gstreamer/gst-plugins-base/gst-libs/gst/audio/gstringbuffer.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- gstringbuffer.c 31 Oct 2005 10:30:41 -0000 1.23 +++ gstringbuffer.c 16 Nov 2005 12:17:06 -0000 1.24 @@ -796,8 +796,7 @@ 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 @@ GST_UNLOCK (buf); return res; - -flushing: - { - GST_UNLOCK (buf); - return FALSE; - } } /** |