Move config from CRAS to webrtc-apm

Before this change, APM and AEC3 settings are passed to
webrtc-apm library by additional struct. The logic of
parsing config file and finally sets to APM/AEC3 config
structures are separated in different projects, and that
makes maintainance difficult.
This change fixes the problem by passing ini dictionary
to webrtc-apm library, and owns the parsing logic.

New files under cras-conifg/ are copied from CRAS/adhd
and applied necessary adjustment.

BUG=chromium:906512
TEST=Build and test on nocturne
CQ-DEPEND=CL:1337229

Change-Id: Ib2835f0053800fb091fce5a5a29f2b177e809575
Reviewed-on: https://chromium-review.googlesource.com/1337170
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Per Ã…hgren <peah@chromium.org>
8 files changed
tree: 6cb63473af6c577af29265d99949fcb0363fe566
  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. pc_utils.mk
  16. README.md
  17. typedefs.h
  18. webrtc_apm.cc
  19. 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