[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