THe portage webrtc-audio-processing package is too old. Changing plan to use Tot webrtc instead.
https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/eclass/gn-chromium.eclass is useful to fetch and build webrtc in CrOS chroot. Some hacks are used for my draft ebuild file to work though. Mostly due to mix using gclient and other depot_tools in CrOS chroot.
I will address them as part of the APM integration work. These build tool issues and hacks will be detailed in separate child bugs when I finish the draft work.
Besides the build tool problem, it is not a trivial work to identify the necessary libraries for audio_processing module to work. Currently I am resolving the dependencies manually while understanding the WebRTC code structure.
update:
I use webrtc TOT code with the standard gn/ninja buildtool to create libaudio_processing and all dependencies linked to work in CRAS.
This enables us to build prototype images to play with.
However the build flow works badly in CrOS environment. vapier@ gave some feedback to point out this is not going to work. Mainly because code size too big and need to resolve a bunch of depot_tools issue.
The new approach is to checkout just the APM and its dependencies directories from WebRTC project and write our own makefiles to build it.
Plan to make a cros-workon project locate at src/third_party/webrtc-apm and make it a cros_workon project
CRAS side code are all merged so we can actually test on M69.
I'm going to close this bug, since it's mainly used to track software side work.
There're a few other related issues:
(1) Launch bug: 857378 with M69-Stable-Exp label.
Once it's approved we can enable this on M69 for specific Chrome OS board to experiment with.
(2) Add seccomp policy file, per security review: 870321
(3) More software work for tuning on CrOS product: 874787
(4) ARC++ side work, expose as AudioEffect: b/112461712
Comment 1 by hychao@chromium.org
, Feb 7 2018