1 /*
2 * Copyright (c) 2020 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #include "modules/audio_processing/optionally_built_submodule_creators.h"
12
13 #include <memory>
14
15 #include "modules/audio_processing/transient/transient_suppressor_impl.h"
16
17 namespace webrtc {
18
CreateTransientSuppressor(const ApmSubmoduleCreationOverrides & overrides,TransientSuppressor::VadMode vad_mode,int sample_rate_hz,int detection_rate_hz,int num_channels)19 std::unique_ptr<TransientSuppressor> CreateTransientSuppressor(
20 const ApmSubmoduleCreationOverrides& overrides,
21 TransientSuppressor::VadMode vad_mode,
22 int sample_rate_hz,
23 int detection_rate_hz,
24 int num_channels) {
25 #ifdef WEBRTC_EXCLUDE_TRANSIENT_SUPPRESSOR
26 return nullptr;
27 #else
28 if (overrides.transient_suppression) {
29 return nullptr;
30 }
31 return std::make_unique<TransientSuppressorImpl>(
32 vad_mode, sample_rate_hz, detection_rate_hz, num_channels);
33 #endif
34 }
35
36 } // namespace webrtc
37