Dear Arun, all I've managed to update the audio processing library and module-echo-cancel with the code from upstream. My working version is currently synced to webrtc commit 3133857 (Mar 13), as used by Chromium 67.0.3370.0. It's based on Arun's previous updates and the very helpful UPDATING.md. It's already a bit out of date again, as I see that some more AEC-related work has been committed upstream since then. The code is on GitHub. See branches "webrtc_update_3133857" in the following repos. The commit history is currently a bit hairy, since there was a lot of trial-and-error. I can make a set of clean patches. https://github.com/avian2/webrtc-audio-processing https://github.com/avian2/pulseaudio From my initial tests (with default settings) it seems that the updated module works significantly better than the old one - at least for my specific use case in an embedded device. I've tested it on x86_64 and armhf. However, I cannot reliably test if all module options work. I haven't tested beamforming. Some things that might still need work: I see that existing Makefiles do some selection on what headers to install and what not, but it was not clear to me how this selection was made. I think upstream makes no distinction between "public" and "private" headers. So far I've only made changes that were needed to compile module-echo-cancel. Package versioning. I've updated the libtool interface numbers, but left autotools package version and Debian package numbers (the repos above also have a "debian" branch that I used for testing). I've noticed that the "pulseaudio" Debian package does not depend on any specific "libwebrtc-audio-processing1" version. I'm not sure what is correct approach here. Best regards Tomaž