module-echo-cancel: Wire up the webrtc echo canceller

Mostly uses the existing infrastructure, but the webrtc canceller has a
fixed blocksize, so we:

  1. Use the canceller blocksize if configured
  2. Accumulate output data in a ringbuffer
  3. Push out the data in the required chunk size
This commit is contained in:
Arun Raghavan 2021-05-28 11:28:03 -04:00
parent 1349d5334d
commit d95870d8d3
9 changed files with 247 additions and 69 deletions

View file

@ -35,16 +35,25 @@ pipewire_module_filter_chain = shared_library('pipewire-module-filter-chain',
dependencies : [mathlib, dl_lib, pipewire_dep],
)
pipewire_module_echo_cancel_sources = [
'module-echo-cancel.c',
'module-echo-cancel/aec-null.c',
]
if webrtc_dep.found()
pipewire_module_echo_cancel_sources += [
'module-echo-cancel/aec-webrtc.cc'
]
endif
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' ],
pipewire_module_echo_cancel_sources,
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],
dependencies : [mathlib, dl_lib, pipewire_dep, webrtc_dep],
)
pipewire_module_profiler = shared_library('pipewire-module-profiler',