Set playout stereo processing to be active by default in WebRTC APM

This CL sets playout stereo processing to be active by default in
WebRTC APM, allowing also stereo audio to be properly echo cancelled
To avoid excessive CPU usage for fake stereo signals (upmixed mono)
this CL must be coupled with changes in CrAS that refrains from
sending two channels in the AEC reference when the stereo signal
consists of upmixed mono.

BUG=b:177830918
TEST=Manually tested in calls on an Atlas device.

Change-Id: Ic81798b0e65482817508fb2faa3ae3ad74805625
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/webrtc-apm/+/2891485
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Per Åhgren <peah@chromium.org>
1 file changed
tree: 3d8f9c6bccf1d7c4e0e11f85655c4df59c8caa8c
  1. absl/
  2. api/
  3. audio/
  4. common_audio/
  5. cras-config/
  6. modules/
  7. rtc_base/
  8. script/
  9. system_wrappers/
  10. third_party/
  11. common.mk
  12. common_types.h
  13. libwebrtc_apm.pc.template
  14. Makefile
  15. OWNERS
  16. pc_utils.mk
  17. README.md
  18. typedefs.h
  19. webrtc_apm.cc
  20. webrtc_apm.h
README.md

WebRTC APM

APM is the audio processing module of WebRTC project in charge of effects like echo cancellation, noise suppression, etc. The purpose of this project is to build a standalone library for Chrome OS system side audio processing.

Files content

  • scripts to copy over folders and files from upstream WebRTC project for APM and its dependencies.
  • Copied files from upstream WebRTC project. For example: common_audio, modules, rtc_base and system_wrappers.
  • webrtc_apm.cc/h C wrappers to access APM functions.
  • common-mk based makefiles to build shared library libwebrtc_apm.so

Update

To update this package to latest upstream WebRC:

  • Run ./script/sync-apm.sh path/to/webrtc-checkout/src .
  • emerge webrtc-apm to see if anything breaks.
  • If emerge success, then we're good.
  • Otherwise look into the emerge failure, and then possibly:
    • Update sync-apm.sh to copy more files if upstream directory structure changes.
    • Update makefiles if upstream build files has changed.
    • Update webrtc-apm ebuild file if dependencies changed.
  • Create a new commit