Hi folks, I'm happy to finally announce an update to the webrtc-audio-processing library. A copy of the updates and git shortlog is at the end. *Important*: This is an API breaking release, so packagers beware. PulseAudio versions 8.0 and before should depend on webrtc-audio-processing 0.1. Upcoming PulseAudio 9.0 release candidates and later will depend on webrtc-audio-processing 0.2. I am not aware of any other public software that depends on this library. Rationale for the API break is at: http://arunraghavan.net/2015/10/psa-breaking-webrtc-audio-processing-api/ Release is at: http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/webrtc-audio-processing-0.2.tar.xz MD5: 3af3e71d50b743eacadcf38f6e9db2f8 SHA1: 5e851bd60e4633c2517a7c450afef40044bf67a9 Cheers, Arun Changes: Release 0.2 ----------- Updated AudioProcessing code to be more current. Contains API breaking changes. Upstream changes include: * Rewritten AGC and voice activity detection * Intelligibility enhancer * Extended AEC filter * Beamformer * Transient suppressor * ARM, NEON and MIPS optimisations (MIPS optimisations are not hooked up) API changes: * We no longer include a top-level audio_processing.h. The webrtc tree format is used, so use webrtc/modules/audio_processing/include/audio_processing.h * The top-level module_common_types.h has also been moved to webrtc/modules/interface/module_common_types.h * C++11 support is now required while compiling client code * AudioProcessing::Create() does not take any arguments any more * AudioProcessing::Destroy() is gone, use standard C++ "delete" instead * Stream parameters are now configured via StreamConfig and ProcessingConfig rather than set_sample_rate(), set_num_channels(), etc. * AudioFrame field names have changed * Use config API for newer audio processing options * Use ProcessReverseStream() instead of AnalyzeReverseStream(), particularly when using the intelligibility enhancer * GainControl::set_analog_level_limits() is broken. The AGC implementation hard codes 0-255 as the volume range Other notes: * The new audio processing parameters are not all tested, and a few are not enabled upstream (in Chromium) either * The rewritten AGC appears to be less sensitive, and it might make sense to initialise the capture volume to something reasonable (33% or 50%, for example) to make sure there is sufficient energy in the stream to trigger the AGC mechanism --- git shortlog v0.1..v0.2 ---- run Raghavan (32): Update common_audio Update system_wrappers Update audio_processing module build: Make build succeed without test and non-audio deps build: Some fixes for make distcheck Update .gitignore for .dirstamp files build: More build fixes and cleanups build: Drop old gpyi file debug: Update protobuf file build: Fix up include file paths build: Stop hard-coding OS/platform CFLAGS build: Add architecture checks for x86 and ARM build: Fix distcheck Drop redundant header build: Minor whitespace changes build: Use CXXFLAGS instead of CFLAGS in compile testing system_wrappers: Add missing file for ARM builds build: Define ARM arch preprocessor macros build: Define assembler flags where required build: Conditionally build C variants of assembler-optimised code doc: Update README doc: Add upstream repo URL to README build: Install module_common_types.h and dependencies build: Don't install a top level copy of audio_processing.h common_audio: Remove extraneous header doc: Split out and expand on updating notes build: Install trace.h to allow clients access to the Trace API build: Dist ancillary documentation doc: Add a pro-tip to update instructions Update code to current Chromium master doc: Add release notes about changes and API breakage build: Update library version info