APM: add field trial to disable `TransientSuppressor`

Regardless of the APM config, the transient suppressor (TS) submodule
won't be created if the `WebRTC-ApmTransientSuppressorKillSwitch`
field trial, disabled by default, is enabled.

Bug: webrtc:13663
Change-Id: Ic1ef9aa57c728296d671d4ef253630c581a86610
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/286382
Reviewed-by: Hanna Silen <silen@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38839}
diff --git a/modules/audio_processing/audio_processing_impl.h b/modules/audio_processing/audio_processing_impl.h
index 9a30c8b..66e98dc 100644
--- a/modules/audio_processing/audio_processing_impl.h
+++ b/modules/audio_processing/audio_processing_impl.h
@@ -191,14 +191,19 @@
   static std::atomic<int> instance_count_;
   const bool use_setup_specific_default_aec3_config_;
 
-  // TODO(bugs.webrtc.org/7494): Remove the the config when the field trial is
-  // removed. "WebRTC-Audio-InputVolumeControllerExperiment" field trial
-  // override for the input volume controller config.
+  // TODO(bugs.webrtc.org/7494): Remove when the linked field trial is removed.
+  // Override base on the "WebRTC-Audio-InputVolumeControllerExperiment" field
+  // trial for the AGC2 input volume controller configuration.
   const absl::optional<InputVolumeController::Config>
       input_volume_controller_config_override_;
 
   const bool use_denormal_disabler_;
 
+  // When true, the transient suppressor submodule is never created regardless
+  // of the APM configuration.
+  // TODO(bugs.webrtc.org/13663): Remove when the linked field trial is removed.
+  const bool disallow_transient_supporessor_usage_;
+
   const TransientSuppressor::VadMode transient_suppressor_vad_mode_;
 
   SwapQueue<RuntimeSetting> capture_runtime_settings_;