gst-libs/gst/audio/gstbaseaudiosink.c: Also explicitly release the ringbuffer when...
authorWim Taymans <wim.taymans@gmail.com>
Tue, 16 Oct 2007 15:33:31 +0000 (15:33 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Tue, 16 Oct 2007 15:33:31 +0000 (15:33 +0000)
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_drain), (gst_base_audio_sink_change_state):
Also explicitly release the ringbuffer when going to NULL because it
is required in the setcaps function, before the state change to PAUSED
completes.

ChangeLog
gst-libs/gst/audio/gstbaseaudiosink.c

index f482ea3..286a14a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-10-16  Wim Taymans  <wim.taymans@gmail.com>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+       (gst_base_audio_sink_drain), (gst_base_audio_sink_change_state):
+       Also explicitly release the ringbuffer when going to NULL because it
+       is required in the setcaps function, before the state change to PAUSED
+       completes.
+
 2007-10-16  Tim-Philipp Müller  <tim at centricular dot net>
 
        * tests/icles/.cvsignore:
index b668ef8..413b7d2 100644 (file)
@@ -1377,6 +1377,11 @@ gst_base_audio_sink_change_state (GstElement * element,
       gst_ring_buffer_release (sink->ringbuffer);
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
+      /* we release again here because the aqcuire happens when setting the
+       * caps, which happens before we commit the state to PAUSED and thus the
+       * PAUSED->READY state change (see above, where we release the ringbuffer)
+       * might not be called when we get here. */
+      gst_ring_buffer_release (sink->ringbuffer);
       gst_ring_buffer_close_device (sink->ringbuffer);
       break;
     default: