diff --git a/data/audio_processing/output_data_fixed.pb b/data/audio_processing/output_data_fixed.pb index 6e36d5594..efc95631e 100644 Binary files a/data/audio_processing/output_data_fixed.pb and b/data/audio_processing/output_data_fixed.pb differ diff --git a/data/audio_processing/output_data_float.pb b/data/audio_processing/output_data_float.pb index 0fd2fe8cd..13805c050 100644 Binary files a/data/audio_processing/output_data_float.pb and b/data/audio_processing/output_data_float.pb differ diff --git a/data/audio_processing/output_data_mac.pb b/data/audio_processing/output_data_mac.pb new file mode 100644 index 000000000..a74778f22 Binary files /dev/null and b/data/audio_processing/output_data_mac.pb differ diff --git a/webrtc/modules/audio_processing/test/audio_processing_unittest.cc b/webrtc/modules/audio_processing/test/audio_processing_unittest.cc index 931169e84..7e36d6792 100644 --- a/webrtc/modules/audio_processing/test/audio_processing_unittest.cc +++ b/webrtc/modules/audio_processing/test/audio_processing_unittest.cc @@ -381,7 +381,13 @@ ApmTest::ApmTest() #if defined(WEBRTC_AUDIOPROC_FIXED_PROFILE) ref_filename_(ref_path_ + "output_data_fixed.pb"), #elif defined(WEBRTC_AUDIOPROC_FLOAT_PROFILE) +#if defined(WEBRTC_MAC) + // A different file for Mac is needed because on this platform the AEC + // constant |kFixedDelayMs| value is 20 and not 50 as it is on the rest. + ref_filename_(ref_path_ + "output_data_mac.pb"), +#else ref_filename_(ref_path_ + "output_data_float.pb"), +#endif #endif frame_(NULL), revframe_(NULL), @@ -1915,13 +1921,21 @@ TEST_F(ApmTest, Process) { test->set_num_input_channels(kChannels[j]); test->set_num_output_channels(kChannels[j]); test->set_sample_rate(kProcessSampleRates[l]); + test->set_use_aec_extended_filter(false); } } } +#if defined(WEBRTC_AUDIOPROC_FLOAT_PROFILE) + // To test the extended filter mode. + audioproc::Test* test = ref_data.add_test(); + test->set_num_reverse_channels(2); + test->set_num_input_channels(2); + test->set_num_output_channels(2); + test->set_sample_rate(AudioProcessing::kSampleRate32kHz); + test->set_use_aec_extended_filter(true); +#endif } - EnableAllComponents(); - for (int i = 0; i < ref_data.test_size(); i++) { printf("Running test %d of %d...\n", i + 1, ref_data.test_size()); @@ -1931,6 +1945,14 @@ TEST_F(ApmTest, Process) { if (test->num_input_channels() != test->num_output_channels()) continue; + Config config; + config.Set(new ExperimentalAgc(false)); + config.Set( + new DelayCorrection(test->use_aec_extended_filter())); + apm_.reset(AudioProcessing::Create(config)); + + EnableAllComponents(); + Init(test->sample_rate(), test->sample_rate(), test->sample_rate(), diff --git a/webrtc/modules/audio_processing/test/unittest.proto b/webrtc/modules/audio_processing/test/unittest.proto index 09ec94224..47b962b99 100644 --- a/webrtc/modules/audio_processing/test/unittest.proto +++ b/webrtc/modules/audio_processing/test/unittest.proto @@ -47,6 +47,7 @@ message Test { optional float ns_speech_probability_average = 14; + optional bool use_aec_extended_filter = 15; } message OutputData {