[Bug fix] Update all state in AudioProcessing::ApplyConfig APM initialization has a cyclic dependency: * the state of submodule_states_ depends on submodules_ * the state of formats_ depends on submodule_states_ * the state of submodules_ depends on submodule_states_ and formats_ This usually works out because: * submodule_states_ starts in a valid state * submodule_states_ is updated frequently, and * capture_nonlocked_.echo_controller_enabled "covers up" when submodule_states_ is out of sync. However, ApplyConfig and ProcessReverseStream don't update submodule_states_, so some API call orderings put APM in an invalid state. This CL fixes it by deleting capture_nonlocked_.echo_controller_enabled and properly updating submodule_states_ from ApplyConfig(). Tested: New unit test, old unit tests, and audioproc_f is bitexact on my test set of aecdumps. Bug: b/452621275 Change-Id: I735aa9a842edfa2a54ae271e121fd809bc59e6c0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/417782 Commit-Queue: Sam Zackrisson <saza@webrtc.org> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org> Cr-Commit-Position: refs/heads/main@{#45972}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See here for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.