echo-cancel: fix the obviously-wrong "buffer+=buffer" logic
authorAlexander E. Patrakov <patrakov@gmail.com>
Sun, 22 Feb 2015 11:39:14 +0000 (16:39 +0500)
committerArun Raghavan <git@arunraghavan.net>
Thu, 26 Feb 2015 04:30:17 +0000 (10:00 +0530)
Same bug as in module-loopback, pointed out by Georg Chini in a private
email.

Signed-off-by: Alexander E. Patrakov <patrakov@gmail.com>
src/modules/echo-cancel/module-echo-cancel.c

index b95a965..639cd41 100644 (file)
@@ -315,7 +315,7 @@ static int64_t calc_diff(struct userdata *u, struct snapshot *snapshot) {
     if (recv_counter <= send_counter)
         buffer_latency += (int64_t) (send_counter - recv_counter);
     else
-        buffer_latency += PA_CLIP_SUB(buffer_latency, (int64_t) (recv_counter - send_counter));
+        buffer_latency = PA_CLIP_SUB(buffer_latency, (int64_t) (recv_counter - send_counter));
 
     /* capture and playback are perfectly aligned when diff_time is 0 */
     diff_time = (snapshot->sink_now + snapshot->sink_latency - buffer_latency) -