Expose aec3 config

This change exposes the upstream EchoCanceller3Config
and make webrtc_apm_create takes a copy of this struct.
This allows caller to change the parameters for tuning.


Change-Id: I8337c151d4b7c08bf5dedd4c8833815214b8c058
Reviewed-on: https://chromium-review.googlesource.com/1046726
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
2 files changed
tree: 12c53f1442421e26ccee89131fcdd9d5cdbc99cf
  1. api/
  2. audio/
  3. common_audio/
  4. modules/
  5. rtc_base/
  6. script/
  7. system_wrappers/
  8. common.mk
  9. common_types.h
  10. libwebrtc_apm.pc.template
  11. Makefile
  12. pc_utils.mk
  13. README.md
  14. typedefs.h
  15. webrtc_apm.cc
  16. webrtc_apm.h


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


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