diff --git a/gst-libs/gst/audio/gstaudiobasesink.c b/gst-libs/gst/audio/gstaudiobasesink.c index b331ca923c..d40c24101e 100644 --- a/gst-libs/gst/audio/gstaudiobasesink.c +++ b/gst-libs/gst/audio/gstaudiobasesink.c @@ -1024,6 +1024,10 @@ gst_audio_base_sink_wait_event (GstBaseSink * bsink, GstEvent * event) spec = &sink->ringbuffer->spec; gst_event_parse_gap (event, ×tamp, &duration); + /* If the GAP event has a duration, handle it like a + * silence buffer of that duration. Otherwise at least + * start the ringbuffer to make sure the clock is running. + */ if (duration != GST_CLOCK_TIME_NONE) { n_samples = gst_util_uint64_scale_ceil (duration, spec->info.rate, GST_SECOND);