Only provide a clock when we are not flushing, this means that we have posted a
PROVIDE_CLOCK message. We used to check if we were acquired but that doesn't
work anymore now that we do the negotiation async in the streaming thread: it's
possible that we are still negotiating when the pipeline asks us for a clock.
if (src->ringbuffer == NULL)
goto wrong_state;
- if (!gst_audio_ring_buffer_is_acquired (src->ringbuffer))
+ if (gst_audio_ring_buffer_is_flushing (src->ringbuffer))
goto wrong_state;
GST_OBJECT_LOCK (src);
+
if (!GST_OBJECT_FLAG_IS_SET (src, GST_ELEMENT_FLAG_PROVIDE_CLOCK))
goto clock_disabled;
/* ERRORS */
wrong_state:
{
- GST_DEBUG_OBJECT (src, "ringbuffer not acquired");
+ GST_DEBUG_OBJECT (src, "ringbuffer is flushing");
return NULL;
}
clock_disabled: