diff --git a/test/fuzzers/audio_processing_fuzzer.cc b/test/fuzzers/audio_processing_fuzzer.cc index 9faea41fa2..9879106f54 100644 --- a/test/fuzzers/audio_processing_fuzzer.cc +++ b/test/fuzzers/audio_processing_fuzzer.cc @@ -24,8 +24,7 @@ size_t ByteToNativeRate(uint8_t data) { using Rate = AudioProcessing::NativeRate; switch (data % 4) { case 0: - // Breaks AEC3. - // return static_cast(Rate::kSampleRate8kHz); + return static_cast(Rate::kSampleRate8kHz); case 1: return static_cast(Rate::kSampleRate16kHz); case 2: diff --git a/test/fuzzers/audio_processing_fuzzer_configs.cc b/test/fuzzers/audio_processing_fuzzer_configs.cc index ed34c35703..15e0beeba9 100644 --- a/test/fuzzers/audio_processing_fuzzer_configs.cc +++ b/test/fuzzers/audio_processing_fuzzer_configs.cc @@ -45,6 +45,11 @@ std::unique_ptr CreateAPM(const uint8_t** data, return nullptr; } + // Filter out incompatible settings that lead to CHECK failures. + if (*use_aecm && *use_aec) { + return nullptr; + } + // Components can be enabled through webrtc::Config and // webrtc::AudioProcessingConfig. Config config; @@ -87,6 +92,8 @@ std::unique_ptr CreateAPM(const uint8_t** data, void FuzzOneInput(const uint8_t* data, size_t size) { auto apm = CreateAPM(&data, &size); - FuzzAudioProcessing(data, size, std::move(apm)); + if (apm) { + FuzzAudioProcessing(data, size, std::move(apm)); + } } } // namespace webrtc