From 9c49624610ab596200c0a449bd1177188cd823b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Fri, 6 Mar 2015 20:25:03 -0500 Subject: [PATCH] audiomixer: Only advance by the buffer size when a buffer is late https://bugzilla.gnome.org/show_bug.cgi?id=745768 --- gst/audiomixer/gstaudiomixer.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gst/audiomixer/gstaudiomixer.c b/gst/audiomixer/gstaudiomixer.c index fe1e3e04ec..f8959234b8 100644 --- a/gst/audiomixer/gstaudiomixer.c +++ b/gst/audiomixer/gstaudiomixer.c @@ -1465,11 +1465,9 @@ gst_audiomixer_aggregate (GstAggregator * agg, gboolean timeout) gint64 diff = audiomixer->offset - pad->output_offset; gint bpf = GST_AUDIO_INFO_BPF (&audiomixer->info); + if (pad->position + (diff * bpf) > pad->size) + diff = (pad->size - pad->position) / bpf; pad->position += diff * bpf; - if (pad->position > pad->size) { - diff = (pad->position - pad->size) / bpf; - pad->position = pad->size; - } pad->output_offset += diff; if (pad->position == pad->size) {