WebRTC APM: Add missing channel format check

The check was lost  in CL https://webrtc-review.googlesource.com/c/src/+/276920

Bug: webrtc:5298
Change-Id: Ic5f072ebef4ad0bdef5446cad0536728b4ad610e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/284560
Reviewed-by: Per Ã…hgren <peah@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38746}
diff --git a/modules/audio_processing/audio_processing_impl.cc b/modules/audio_processing/audio_processing_impl.cc
index 2579f6c..6dba8d7 100644
--- a/modules/audio_processing/audio_processing_impl.cc
+++ b/modules/audio_processing/audio_processing_impl.cc
@@ -201,10 +201,22 @@
   AudioFormatValidity input_validity = ValidateAudioFormat(input_config);
   AudioFormatValidity output_validity = ValidateAudioFormat(output_config);
 
+  if (input_validity == AudioFormatValidity::kValidAndSupported &&
+      output_validity == AudioFormatValidity::kValidAndSupported &&
+      (output_config.num_channels() == 1 ||
+       output_config.num_channels() == input_config.num_channels())) {
+    return {AudioProcessing::kNoError, FormatErrorOutputOption::kDoNothing};
+  }
+
   int error_code = AudioFormatValidityToErrorCode(input_validity);
   if (error_code == AudioProcessing::kNoError) {
     error_code = AudioFormatValidityToErrorCode(output_validity);
   }
+  if (error_code == AudioProcessing::kNoError) {
+    // The individual formats are valid but there is some error - must be
+    // channel mismatch.
+    error_code = AudioProcessing::kBadNumberChannelsError;
+  }
 
   FormatErrorOutputOption output_option;
   if (output_validity != AudioFormatValidity::kValidAndSupported &&