From: Alexander E. Patrakov Date: Sat, 12 Sep 2015 14:27:56 +0000 (+0500) Subject: loopback: Fix the obviously-wrong "buffer+=buffer" logic X-Git-Tag: v7.0~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c7310f8e379915b42579adb3f5288f5bcb09ba8f;p=platform%2Fupstream%2Fpulseaudio.git loopback: Fix the obviously-wrong "buffer+=buffer" logic Originally pointed out by Georg Chini. Calculating buffer = buffer + (send_counter - recv_counter) in one branch and buffer = 2 * buffer - (recv_counter - send_counter) looks very obviously wrong. In other words, before the patch, the contribution from the previous lines was double-counted. --- diff --git a/src/modules/module-loopback.c b/src/modules/module-loopback.c index 3b0d68d..0af3937 100644 --- a/src/modules/module-loopback.c +++ b/src/modules/module-loopback.c @@ -186,7 +186,7 @@ static void adjust_rates(struct userdata *u) { if (u->latency_snapshot.recv_counter <= u->latency_snapshot.send_counter) buffer += (size_t) (u->latency_snapshot.send_counter - u->latency_snapshot.recv_counter); else - buffer += PA_CLIP_SUB(buffer, (size_t) (u->latency_snapshot.recv_counter - u->latency_snapshot.send_counter)); + buffer = PA_CLIP_SUB(buffer, (size_t) (u->latency_snapshot.recv_counter - u->latency_snapshot.send_counter)); buffer_latency = pa_bytes_to_usec(buffer, &u->sink_input->sample_spec);