From: Sebastian Dröge Date: Thu, 21 Jul 2022 13:10:18 +0000 (+0300) Subject: audiobuffersplit: Use input running time for comparison instead of the currently... X-Git-Tag: 1.22.0~1244 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fad0a72eca51a340dd37f9de986c072f5707afae;p=platform%2Fupstream%2Fgstreamer.git audiobuffersplit: Use input running time for comparison instead of the currently tracked running time Otherwise gapless mode would do completely wrong calculations on discontinuities and cause input/output to drift slowly. Part-of: --- diff --git a/subprojects/gst-plugins-bad/gst/audiobuffersplit/gstaudiobuffersplit.c b/subprojects/gst-plugins-bad/gst/audiobuffersplit/gstaudiobuffersplit.c index 1d0b03e..32c8a27 100644 --- a/subprojects/gst-plugins-bad/gst/audiobuffersplit/gstaudiobuffersplit.c +++ b/subprojects/gst-plugins-bad/gst/audiobuffersplit/gstaudiobuffersplit.c @@ -549,14 +549,14 @@ gst_audio_buffer_split_handle_discont (GstAudioBufferSplit * self, GST_TIME_ARGS (current_rt_end), GST_TIME_ARGS (input_rt)); new_offset = - gst_util_uint64_scale (current_rt - self->resync_rt, + gst_util_uint64_scale (input_rt - self->resync_rt, rate * ABS (self->in_segment.rate), GST_SECOND); - if (current_rt < self->resync_rt) { + if (input_rt < self->resync_rt) { guint64 drop_samples; new_offset = gst_util_uint64_scale (self->resync_rt - - current_rt, rate * ABS (self->in_segment.rate), GST_SECOND); + input_rt, rate * ABS (self->in_segment.rate), GST_SECOND); drop_samples = self->current_offset + avail_samples + new_offset; GST_DEBUG_OBJECT (self,