Add echo-cancel module

Only implement the null echo cancel implementation for now.
And skeleton webrtc echo cancel implementation

It uses 4 streams arranged as:

 input ---+---> source
          ^
	  |
 sink  ---+---> output

The output of the source is the filtered input of the input stream
(linked a master source) based on the data going from sink to
the output (linked to a master sink).

All streams are arranged in the same group so that the echo canceler
does not have to deal with clock drift. For echo cancelers that can
handle clock drift we might want place the source and sink chains
in different groups.
This commit is contained in:
Wim Taymans 2021-04-26 10:47:02 +02:00
parent 684c1b10f7
commit 3496327e69
5 changed files with 768 additions and 0 deletions

View file

@ -24,6 +24,18 @@ pipewire_module_loopback = shared_library('pipewire-module-loopback',
dependencies : [mathlib, dl_lib, pipewire_dep],
)
pipewire_module_echo_cancel = shared_library('pipewire-module-echo-cancel',
[ 'module-echo-cancel.c',
'module-echo-cancel/aec-null.c',
'module-echo-cancel/aec-webrtc.cc' ],
c_args : pipewire_module_c_args,
include_directories : [configinc, spa_inc],
install : true,
install_dir : modules_install_dir,
install_rpath: modules_install_dir,
dependencies : [mathlib, dl_lib, pipewire_dep],
)
pipewire_module_profiler = shared_library('pipewire-module-profiler',
[ 'module-profiler.c',
'module-profiler/protocol-native.c', ],