[pulseaudio-discuss] Updating the WebRTC AudioProcessing library

Tomaž Šolc tomaz.solc at klevio.com
Mon Mar 26 13:25:20 UTC 2018


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ž


More information about the pulseaudio-discuss mailing list