summaryrefslogtreecommitdiffstats
path: root/src/modules/echo-cancel/adrian.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix up according to Coding StyleMaarten Bosmans2011-03-111-7/+5
| | | | Only whitespace changes in here
* echo-cancel: Use S16NE for adrian moduleArun Raghavan2010-09-271-9/+5
| | | | | | This forces us to get native-endian samples in the adrian module so that we can rely on the existing endianness conversion mechanisms instead of doing it in the module.
* echo-cancel: Ensure correct handling of endiannessArun Raghavan2010-09-231-2/+3
| | | | | | The adrian module was using home-brewed endianness conversion instead of the appropriate mactos, and speex assumed a little-endian host. This fixes both of these.
* echo-cancel: Add SSE optimisation to the adrian moduleArun Raghavan2010-09-231-3/+7
| | | | | | Optimises the core inner-product function, which takes the most CPU. The SSE-optimised bits of the adrian echo canceller only if the CPU that PA is running on actually supports SSE.
* echo-cancel: Mark immutable parameters as const in vfuncArun Raghavan2010-09-071-1/+1
| | | | | Marks the recording and playback streams as const in the pa_echo_canceller->run method for clarity.
* echo-cancel: Make blocksize a module-wide parameterArun Raghavan2010-09-071-8/+3
| | | | | | 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.
* echo-cancel: Add alternative echo-cancellation implementationArun Raghavan2010-09-071-0/+121
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).