The following three patches are follow-ups to Peter's mail from Dec 4, 2012 with the subject "RFC: add multi-channel AEC support". PATCH 1 concerns the bypassing of the EC implementation in case that the play stream becomes empty. This causes glitches as internal buffers of the EC implementation are bypassed. PATCH 2 enables different sample specs for the record and output stream of the echo canceler. (Commit 3a92be3c5cee is similar, but enables different sample specs for record and play stream.) This patch will enable advanced echo canceling, noise reduction or beam forming techniques where multiple microphones are used in order to obtain a single cleaned channel. (In particular, we implement an echo canceler that has a 1-channel play stream, a 4-channel record stream and a 1-channel output stream, i.e. 4-to-1 echo canceling.) PATCH 3: The current echo canceling framework cannot handle different sample rates as it is assumed that a single sample (resp. frame, resp. buffer that is passed to EC->run()) captures the same time span. However, it is not checked whether the rates are all equal for the play, record and out stream. Stefan Huber (3): echo-cancel: Do not bypass EC implementation when play stream is empty echo-cancel: Enable different sample specs for rec and out stream echo-cancel: Warn on different sample rates for rec, play, out stream src/modules/echo-cancel/adrian.c | 32 ++--- src/modules/echo-cancel/echo-cancel.h | 34 ++--- src/modules/echo-cancel/module-echo-cancel.c | 171 +++++++++++++++----------- src/modules/echo-cancel/null.c | 17 ++- src/modules/echo-cancel/speex.c | 34 ++--- src/modules/echo-cancel/webrtc.cc | 27 ++-- 6 files changed, 184 insertions(+), 131 deletions(-) -- 1.7.9.5