From ae42176f346594d35ded188415b50be8e4bc270a Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Thu, 8 Jan 2015 21:20:14 +0100 Subject: audioringbuffer: start ringbuffer if needed upon commit ... to provide for a running clock. --- gst-libs/gst/audio/gstaudioringbuffer.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gst-libs/gst/audio/gstaudioringbuffer.c b/gst-libs/gst/audio/gstaudioringbuffer.c index 7f4b17b01..1fa711ef8 100644 --- a/gst-libs/gst/audio/gstaudioringbuffer.c +++ b/gst-libs/gst/audio/gstaudioringbuffer.c @@ -1462,6 +1462,18 @@ default_commit (GstAudioRingBuffer * buf, guint64 * sample, g_return_val_if_fail (buf->memory != NULL, -1); g_return_val_if_fail (data != NULL, -1); + /* writing stuff now, ensure running clock */ + if (G_UNLIKELY (g_atomic_int_get (&buf->state) != + GST_AUDIO_RING_BUFFER_STATE_STARTED)) { + /* see if we are allowed to start it */ + if (G_UNLIKELY (g_atomic_int_get (&buf->may_start) == FALSE)) { + GST_DEBUG_OBJECT (buf, "not allowed to start"); + } else { + GST_DEBUG_OBJECT (buf, "start!"); + gst_audio_ring_buffer_start (buf); + } + } + need_reorder = buf->need_reorder; channels = buf->spec.info.channels; -- cgit v1.2.3