Commit graph

8 commits

Author SHA1 Message Date
Wim Taymans
771fb0b59b echo-cancel: rework alignment code
Rework the code to align capture and playback samples so that we can keep more
accurate timings.
2010-09-09 17:03:45 +01:00
Arun Raghavan
948a3d042c echo-cancel: Make blocksize a module-wide parameter
Since all algorithms will need to specify a block size (the amount of
data to be processed together), we make this a common parameter and have
the implementation set it at initialisation time.
2010-09-07 15:12:12 +05:30
Arun Raghavan
33a3bc34c8 echo-cancel: Allow selection of AEC method using modargs
This adds an "aec_method" module argument to allow us to select the AEC
implementation to use.
2010-09-07 15:12:12 +05:30
Arun Raghavan
526277c97c echo-cancel: Add alternative echo-cancellation implementation
This adds Andre Adrian's AEC implementation from his intercom project
(http://andreadrian.de/intercom/) as an alternative to the speex echo
cancellation routines. Since the implementation was in C++ and not in
the form of a library, I have converted the code to C and made a local
copy of the implementation.

The implementation actually works on floating point data, so we can
tweak it to work with both integer and floating point samples (currently
we just use S16LE).
2010-09-07 15:12:12 +05:30
Arun Raghavan
126e1336b2 echo-cancel: Let AEC module determine source/sink spec
Since the source and sink specification will need to be determined by
the AEC algorithm (can it handle multi-channel audio, does it work with
a fixed sample rate, etc.), we negotiate these using inout parameters at
initialisation time.

There is opportunity to make the sink-handling more elegant. Since the
sink data isn't used for playback (just processing), we could pass
through the data as-is and resample to the required spec before using in
the cancellation algorithm. This isn't too important immediately, but
would be nice to have.
2010-09-07 15:12:12 +05:30
Arun Raghavan
21001f49a4 echo-cancel: Pass arguments to the specific canceller module
This allows us to tweak module parameters for whichever AEC module is
chosen.
2010-09-07 15:12:12 +05:30
Arun Raghavan
e7177680d1 echo-cancel: Split out speex code from the core module
This splits out the echo-cancelling core from the PA-specific bits to
allow us to plug in other echo-cancellation engines.
2010-09-07 15:12:12 +05:30
Arun Raghavan
10937e4054 echo-cancel: Move the module into it's own directory
This will make splitting out the canceller parts cleaner.
2010-09-07 15:12:12 +05:30
Renamed from src/modules/module-echo-cancel.c (Browse further)