]> code.delx.au - pulseaudio/commit
echo-cancel: Enable different blocksizes for sink and source
authorStefan Huber <s.huber@bct-electronic.com>
Thu, 20 Dec 2012 10:33:04 +0000 (11:33 +0100)
committerTanu Kaskinen <tanuk@iki.fi>
Thu, 20 Dec 2012 10:56:01 +0000 (12:56 +0200)
commit3a92be3c5cee24fafae99dc20e4973adba9a5e57
tree28c65636415c28fa5c4f12f406b3ccc36ff1b551
parent84e45843220af6479c3e250d0dcfc6904fad007f
echo-cancel: Enable different blocksizes for sink and source

In order to support different blocksizes for source and sink (e.g, for
4-to-1 beamforming/echo canceling which involves 4 record channels and 1
playback channel) the AEC API is altered:

The blocksize for source and sink may differ (due to different sample
specs) but the number of frames that are processed in one invokation of
the AEC implementation's run() function is the same for the playback and
the record stream. Consequently, the AEC implementation's init()
function initalizes 'nframes' instead of 'blocksize' and the source's
and sink's blocksizes are derived from 'nframes'. The old API also
caused code duplication in each AEC implementation's init function for
the compution of the blocksize, which is eliminated by the new API.

Signed-off-by: Stefan Huber <s.huber@bct-electronic.com>
Acked-by: Peter Meerwald <p.meerwald@bct-electronic.com>
src/modules/echo-cancel/adrian.c
src/modules/echo-cancel/echo-cancel.h
src/modules/echo-cancel/module-echo-cancel.c
src/modules/echo-cancel/null.c
src/modules/echo-cancel/speex.c
src/modules/echo-cancel/webrtc.cc