Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(277)

Unified Diff: webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc

Issue 2967603002: Added the ability to adjust the AEC3 performance for large rooms (Closed)
Patch Set: Changes in response to reviewer commments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc
diff --git a/webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc b/webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc
index 78a10c006cd7ad76c9a0790ead80e5e7a5b4b8f6..376cf1edfbd54810c2742ec00411b022933dd447 100644
--- a/webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc
+++ b/webrtc/modules/audio_processing/aec3/echo_canceller3_unittest.cc
@@ -495,7 +495,8 @@ class EchoCanceller3Tester {
// This test verifies that a buffer overrun in the render swapqueue is
// properly reported.
void RunRenderPipelineSwapQueueOverrunReturnValueTest() {
- EchoCanceller3 aec3(sample_rate_hz_, false);
+ EchoCanceller3 aec3(AudioProcessing::Config::EchoCanceller3(),
+ sample_rate_hz_, false);
constexpr size_t kRenderTransferQueueSize = 30;
for (size_t k = 0; k < 2; ++k) {
@@ -524,7 +525,8 @@ class EchoCanceller3Tester {
// Set aec3_sample_rate_hz to be different from sample_rate_hz_ in such a
// way that the number of bands for the rates are different.
const int aec3_sample_rate_hz = sample_rate_hz_ == 48000 ? 32000 : 48000;
- EchoCanceller3 aec3(aec3_sample_rate_hz, false);
+ EchoCanceller3 aec3(AudioProcessing::Config::EchoCanceller3(),
+ aec3_sample_rate_hz, false);
PopulateInputFrame(frame_length_, 0, &render_buffer_.channels_f()[0][0], 0);
EXPECT_DEATH(aec3.AnalyzeRender(&render_buffer_), "");
@@ -537,7 +539,8 @@ class EchoCanceller3Tester {
// Set aec3_sample_rate_hz to be different from sample_rate_hz_ in such a
// way that the number of bands for the rates are different.
const int aec3_sample_rate_hz = sample_rate_hz_ == 48000 ? 32000 : 48000;
- EchoCanceller3 aec3(aec3_sample_rate_hz, false);
+ EchoCanceller3 aec3(AudioProcessing::Config::EchoCanceller3(),
+ aec3_sample_rate_hz, false);
PopulateInputFrame(frame_length_, num_bands_, 0,
&capture_buffer_.split_bands_f(0)[0], 100);
EXPECT_DEATH(aec3.ProcessCapture(&capture_buffer_, false), "");
@@ -550,7 +553,8 @@ class EchoCanceller3Tester {
// Set aec3_sample_rate_hz to be different from sample_rate_hz_ in such a
// way that the band frame lengths are different.
const int aec3_sample_rate_hz = sample_rate_hz_ == 8000 ? 16000 : 8000;
- EchoCanceller3 aec3(aec3_sample_rate_hz, false);
+ EchoCanceller3 aec3(AudioProcessing::Config::EchoCanceller3(),
+ aec3_sample_rate_hz, false);
OptionalBandSplit();
PopulateInputFrame(frame_length_, 0, &render_buffer_.channels_f()[0][0], 0);
@@ -565,7 +569,8 @@ class EchoCanceller3Tester {
// Set aec3_sample_rate_hz to be different from sample_rate_hz_ in such a
// way that the band frame lengths are different.
const int aec3_sample_rate_hz = sample_rate_hz_ == 8000 ? 16000 : 8000;
- EchoCanceller3 aec3(aec3_sample_rate_hz, false);
+ EchoCanceller3 aec3(AudioProcessing::Config::EchoCanceller3(),
+ aec3_sample_rate_hz, false);
OptionalBandSplit();
PopulateInputFrame(frame_length_, num_bands_, 0,
@@ -677,6 +682,21 @@ TEST(EchoCanceller3Messaging, EchoLeakage) {
}
}
+TEST(EchoCanceller3, ConfigValidation) {
+ AudioProcessing::Config::EchoCanceller3 config;
+
+ config.echo_decay = 0.f;
+ EXPECT_TRUE(EchoCanceller3::Validate(config));
+ config.echo_decay = 0.9f;
+ EXPECT_TRUE(EchoCanceller3::Validate(config));
+ config.echo_decay = -0.1f;
+ EXPECT_FALSE(EchoCanceller3::Validate(config));
+ config.echo_decay = 1.0f;
+ EXPECT_FALSE(EchoCanceller3::Validate(config));
+ config.echo_decay = 1.1f;
+ EXPECT_FALSE(EchoCanceller3::Validate(config));
+}
+
#if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
TEST(EchoCanceller3InputCheck, WrongCaptureNumBandsCheckVerification) {
@@ -706,19 +726,28 @@ TEST(EchoCanceller3InputCheck, WrongCaptureFrameLengthCheckVerification) {
// Verifiers that the verification for null input to the render analysis api
// call works.
TEST(EchoCanceller3InputCheck, NullRenderAnalysisParameter) {
- EXPECT_DEATH(EchoCanceller3(8000, false).AnalyzeRender(nullptr), "");
+ EXPECT_DEATH(
+ EchoCanceller3(AudioProcessing::Config::EchoCanceller3(), 8000, false)
+ .AnalyzeRender(nullptr),
+ "");
}
// Verifiers that the verification for null input to the capture analysis api
// call works.
TEST(EchoCanceller3InputCheck, NullCaptureAnalysisParameter) {
- EXPECT_DEATH(EchoCanceller3(8000, false).AnalyzeCapture(nullptr), "");
+ EXPECT_DEATH(
+ EchoCanceller3(AudioProcessing::Config::EchoCanceller3(), 8000, false)
+ .AnalyzeCapture(nullptr),
+ "");
}
// Verifiers that the verification for null input to the capture processing api
// call works.
TEST(EchoCanceller3InputCheck, NullCaptureProcessingParameter) {
- EXPECT_DEATH(EchoCanceller3(8000, false).ProcessCapture(nullptr, false), "");
+ EXPECT_DEATH(
+ EchoCanceller3(AudioProcessing::Config::EchoCanceller3(), 8000, false)
+ .ProcessCapture(nullptr, false),
+ "");
}
// Verifies the check for correct sample rate.
@@ -726,7 +755,9 @@ TEST(EchoCanceller3InputCheck, NullCaptureProcessingParameter) {
// tests on test bots has been fixed.
TEST(EchoCanceller3InputCheck, DISABLED_WrongSampleRate) {
ApmDataDumper data_dumper(0);
- EXPECT_DEATH(EchoCanceller3(8001, false), "");
+ EXPECT_DEATH(
+ EchoCanceller3(AudioProcessing::Config::EchoCanceller3(), 8001, false),
+ "");
}
#endif
« no previous file with comments | « webrtc/modules/audio_processing/aec3/echo_canceller3.cc ('k') | webrtc/modules/audio_processing/aec3/echo_remover.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698