Skip to content

echo-cancel: preliminary support for WebRTC AEC3

Eero Nurkkala requested to merge eenurkka/pulseaudio:aec3-preliminary into master

This provides preliminary support for the latest WebRTC AEC3 echo cancellation. A new file, webrtc-aec3.cc is introduced, instead of complicating the webrtc.cc -file. The current webrtc is a stand-alone module, which is not installed on the system. This elaborates the integration a bit. However, the following steps may be used to compile the libwebrtc.a static library:

Clone the Google depot_tools.git, and export PATH to point also there so that the following commands will succeed:

mkdir webrtc-checkout cd webrtc-checkout fetch --nohooks webrtc gclient sync

gn gen out/Default --args='target_os="linux" use_custom_libcxx=false rtc_build_tools=false is_clang=false treat_warnings_as_errors=false rtc_enable_symbol_export=false rtc_use_h264=false clang_use_chrome_plugins=false rtc_include_tests=false rtc_enable_protobuf=false rtc_use_x11=false rtc_build_examples=false rtc_use_pipewire=false'

ninja -C out/Default

The above-mentioned process creates the libwebrtc.a static library which may be integrated into the echo cancellation module.

It's possible to cross-compile the library, but it might need minor modifications in the webrtc build system, especially regarding the buildroot; and use_custom_libcxx=false in order to avoid undefined runtime references.

Edited by Eero Nurkkala

Merge request reports