AGC2 config: allow tuning of headroom, max gain and initial gain

This CL does *not* change the behavior of the AGC2 adaptive digital
controller - bitexactness verified with audioproc_f on a collection of
AEC dumps and Wav files (42 recordings in total).

Tested: compiled Chrome with this patch and made an appr.tc test call

Bug: webrtc:7494
Change-Id: Ia8a9f6fbc3a3459b888a2eed87e108f0d39cfe99
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/233520
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35140}
This commit is contained in:
Alessio Bazzica
2021-10-04 13:35:55 +02:00
committed by WebRTC LUCI CQ
parent 41b4397e1a
commit a850e6c8b6
14 changed files with 350 additions and 261 deletions

View File

@ -3107,6 +3107,18 @@ TEST(AudioProcessing, GainController2ConfigEqual) {
b_adaptive.dry_run = a_adaptive.dry_run;
EXPECT_EQ(a, b);
a_adaptive.headroom_db += 1.0f;
b_adaptive.headroom_db = a_adaptive.headroom_db;
EXPECT_EQ(a, b);
a_adaptive.max_gain_db += 1.0f;
b_adaptive.max_gain_db = a_adaptive.max_gain_db;
EXPECT_EQ(a, b);
a_adaptive.initial_gain_db += 1.0f;
b_adaptive.initial_gain_db = a_adaptive.initial_gain_db;
EXPECT_EQ(a, b);
a_adaptive.vad_reset_period_ms++;
b_adaptive.vad_reset_period_ms = a_adaptive.vad_reset_period_ms;
EXPECT_EQ(a, b);
@ -3164,6 +3176,18 @@ TEST(AudioProcessing, GainController2ConfigNotEqual) {
EXPECT_NE(a, b);
a_adaptive = b_adaptive;
a_adaptive.headroom_db += 1.0f;
EXPECT_NE(a, b);
a_adaptive = b_adaptive;
a_adaptive.max_gain_db += 1.0f;
EXPECT_NE(a, b);
a_adaptive = b_adaptive;
a_adaptive.initial_gain_db += 1.0f;
EXPECT_NE(a, b);
a_adaptive = b_adaptive;
a_adaptive.vad_reset_period_ms++;
EXPECT_NE(a, b);
a_adaptive = b_adaptive;