echo-cancel: preliminary support for WebRTC AEC3
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.