From c480e9d7a86d8d5ab0f45ff4a0e9160c3b34c1a0 Mon Sep 17 00:00:00 2001 From: Alex Loiko Date: Thu, 5 Jul 2018 11:14:28 +0200 Subject: [PATCH] Stereo in APM fuzzer. Add support for stereo in APM fuzzer. Bug: webrtc:9413 Change-Id: Ie4b19037bd4613c050b03ad0bacf0f44f9feccd3 Reviewed-on: https://webrtc-review.googlesource.com/87221 Reviewed-by: Sam Zackrisson Commit-Queue: Alex Loiko Cr-Commit-Position: refs/heads/master@{#23854} --- test/fuzzers/audio_processing_configs_fuzzer.cc | 4 +++- test/fuzzers/audio_processing_fuzzer_helper.cc | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/test/fuzzers/audio_processing_configs_fuzzer.cc b/test/fuzzers/audio_processing_configs_fuzzer.cc index 52951819f5..4900c0f865 100644 --- a/test/fuzzers/audio_processing_configs_fuzzer.cc +++ b/test/fuzzers/audio_processing_configs_fuzzer.cc @@ -90,7 +90,9 @@ std::unique_ptr CreateApm(test::FuzzDataHelper* fuzz_data, fuzz_data->ReadByteArray(kSizeOfConfigSegment - fuzz_data->BytesRead())); // Filter out incompatible settings that lead to CHECK failures. - if (use_aecm && use_aec) { + if ((use_aecm && use_aec) || // These settings cause CHECK failure. + (use_aecm && aec3 && use_ns) // These settings trigger webrtc:9489. + ) { return nullptr; } diff --git a/test/fuzzers/audio_processing_fuzzer_helper.cc b/test/fuzzers/audio_processing_fuzzer_helper.cc index 0fa1bad775..a1e25b5266 100644 --- a/test/fuzzers/audio_processing_fuzzer_helper.cc +++ b/test/fuzzers/audio_processing_fuzzer_helper.cc @@ -80,7 +80,7 @@ void FuzzAudioProcessing(test::FuzzDataHelper* fuzz_data, const auto output_rate = static_cast(fuzz_data->SelectOneOf(rate_kinds)); - const bool num_channels = fuzz_data->ReadOrDefaultValue(true) ? 2 : 1; + const int num_channels = fuzz_data->ReadOrDefaultValue(true) ? 2 : 1; const uint8_t stream_delay = fuzz_data->ReadOrDefaultValue(0); // API call needed for AEC-2 and AEC-m to run. @@ -121,6 +121,7 @@ void FuzzAudioProcessing(test::FuzzDataHelper* fuzz_data, // codeways. static_cast(apm->GetStatistics()); static_cast(apm->GetStatistics(true)); + static_cast(apm->UpdateHistogramsOnCallEnd()); RTC_DCHECK_NE(apm_return_code, AudioProcessing::kBadDataLengthError); }