[pulseaudio-discuss] [PATCH 0/3] echo-cancel: avoid glitches & allow 4-to-1 EC

Stefan Huber s.huber at bct-electronic.com
Thu Feb 7 05:40:04 PST 2013


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



More information about the pulseaudio-discuss mailing list