webrtc/modules/audio_processing
Alessio Bazzica 40b5bd72d0 APM: fix TS initialization bugs with WebRTC-Audio-GainController2
When the `WebRTC-Audio-GainController2` field trial is used, the
initial APM configuration is adjusted depending on its original
values and the field trial parameters.

This CL fixes two cases when the code crashes:
1. when, in the initial APM config, AGC1 is enabled, AGC2 is
   disabled and TS is enabled
2. when the initial APM sample rate is different from the
   capture one and the VAD APM sub-module is not re-initialized

This CL also improves the unit tests coverage and it has been
tested offline to check that the VAD sub-module is created only
when expected and that AGC2 uses its internal VAD when expected.
The tests ran on a few Wav files with different sample rates and
one AEC dump and on 16 different APM and field trial
configurations.

Bug: chromium:1407341, b/265112132
Change-Id: I7cc267ea81cb02be92c1f37f273b7ae93b6e4634
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290988
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Olga Sharonova <olka@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39118}
2023-01-16 20:30:12 +00:00
..
aec3 pre echo delay: adding different options for detecting pre echoes. 2022-10-31 15:55:29 +00:00
aec_dump APM: add AudioProcessingImpl::capture_::applied_input_volume(_changed) 2022-09-09 17:36:05 +00:00
aecm Remove dependency on rtc_base_approved from most targets 2022-04-25 12:15:30 +00:00
agc Add generic input volume controller test for both AGC1 and AGC2 2022-12-20 14:41:31 +00:00
agc2 Add generic input volume controller test for both AGC1 and AGC2 2022-12-20 14:41:31 +00:00
capture_levels_adjuster Add refined handling of the internal scaling of the audio in APM 2021-03-15 19:12:02 +00:00
echo_detector Format almost everything. 2019-07-08 13:45:15 +00:00
g3doc Update links to point at main branch 2021-07-22 16:41:26 +00:00
include AGC2 adaptive digital controller config clean-up 2022-12-09 13:07:34 +00:00
logging Adopt absl::string_view in modules/audio_processing/ 2022-08-16 13:49:14 +00:00
ns Remove dependency on rtc_base_approved from most targets 2022-04-25 12:15:30 +00:00
test APM: remove kClippedLevelMin from audio_processing.h 2022-10-13 15:01:37 +00:00
transient Adopt absl::string_view in modules/audio_processing/ 2022-08-16 13:49:14 +00:00
utility Fix math involving enums in C++20 2022-09-27 06:55:31 +00:00
vad Make header files self contained. 2022-10-08 08:38:36 +00:00
audio_buffer.cc AudioBuffer: Remove deprecated constructor 2022-04-11 10:06:07 +00:00
audio_buffer.h APM: Signal error on unsupported sample rates 2022-11-17 12:12:04 +00:00
audio_buffer_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
audio_frame_view_unittest.cc Remove more traces of keyboard mic support from APM 2022-02-04 14:27:51 +00:00
audio_processing_builder_impl.cc Move rtc::make_ref_counted to api/ 2022-06-15 09:47:38 +00:00
audio_processing_impl.cc APM: fix TS initialization bugs with WebRTC-Audio-GainController2 2023-01-16 20:30:12 +00:00
audio_processing_impl.h APM: fix TS initialization bugs with WebRTC-Audio-GainController2 2023-01-16 20:30:12 +00:00
audio_processing_impl_locking_unittest.cc Update rtc::Event::Wait call sites to use TimeDelta. 2022-08-19 10:07:28 +00:00
audio_processing_impl_unittest.cc APM: fix TS initialization bugs with WebRTC-Audio-GainController2 2023-01-16 20:30:12 +00:00
audio_processing_performance_unittest.cc Migrate CallSimulator to the new perf metrics logging API 2022-09-26 19:37:51 +00:00
audio_processing_unittest.cc AGC2 adaptive digital controller config clean-up 2022-12-09 13:07:34 +00:00
BUILD.gn Remove all usage of //rtc_base target 2023-01-16 14:36:06 +00:00
debug.proto AEC dump Stream::level renamed 2022-09-09 14:39:35 +00:00
DEPS
echo_control_mobile_bit_exact_unittest.cc Remove more traces of keyboard mic support from APM 2022-02-04 14:27:51 +00:00
echo_control_mobile_impl.cc Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
echo_control_mobile_impl.h Use backticks not vertical bars to denote variables in comments for /modules/audio_processing 2021-08-09 21:49:02 +00:00
echo_control_mobile_unittest.cc Remove unused critical section includes. 2020-07-16 13:52:28 +00:00
gain_control_impl.cc AGC1: remove unused field trial WebRTC-UseLegacyDigitalGainApplier 2022-11-18 21:58:04 +00:00
gain_control_impl.h AGC1: remove unused field trial WebRTC-UseLegacyDigitalGainApplier 2022-11-18 21:58:04 +00:00
gain_control_unittest.cc Remove more traces of keyboard mic support from APM 2022-02-04 14:27:51 +00:00
gain_controller2.cc APM: fix TS initialization bugs with WebRTC-Audio-GainController2 2023-01-16 20:30:12 +00:00
gain_controller2.h AGC2: Return the recommended volume from RecommendInputVolume() 2022-12-14 13:05:37 +00:00
gain_controller2_unittest.cc APM: fix TS initialization bugs with WebRTC-Audio-GainController2 2023-01-16 20:30:12 +00:00
high_pass_filter.cc Prepare to rename RTC_NOTREACHED to RTC_DCHECK_NOTREACHED 2021-11-15 21:44:59 +00:00
high_pass_filter.h Reduce for reallocations the pre-amplifier and high-pass filter 2020-01-03 14:10:21 +00:00
high_pass_filter_unittest.cc Remove more traces of keyboard mic support from APM 2022-02-04 14:27:51 +00:00
optionally_built_submodule_creators.cc APM Transient Suppressor (TS): initialization params in ctor 2022-04-08 09:41:44 +00:00
optionally_built_submodule_creators.h APM Transient Suppressor (TS): initialization params in ctor 2022-04-08 09:41:44 +00:00
OWNERS Update some audio modules with new OWNERS 2022-12-01 14:55:38 +00:00
render_queue_item_verifier.h
residual_echo_detector.cc Delete rtc_base/atomic_ops.h 2022-06-28 08:32:13 +00:00
residual_echo_detector.h Delete rtc_base/atomic_ops.h 2022-06-28 08:32:13 +00:00
residual_echo_detector_unittest.cc Move rtc::make_ref_counted to api/ 2022-06-15 09:47:38 +00:00
rms_level.cc Ensure that an RTP audio level of 127 represents digital silence. 2022-05-06 07:56:39 +00:00
rms_level.h Ensure that an RTP audio level of 127 represents digital silence. 2022-05-06 07:56:39 +00:00
rms_level_unittest.cc Ensure that an RTP audio level of 127 represents digital silence. 2022-05-06 07:56:39 +00:00
splitting_filter.cc Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
splitting_filter.h Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
splitting_filter_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
three_band_filter_bank.cc Optimize the three band filter bank. 2021-12-16 13:37:30 +00:00
three_band_filter_bank.h Use backticks not vertical bars to denote variables in comments for /modules/audio_processing 2021-08-09 21:49:02 +00:00