xref: /aosp_15_r20/external/webrtc/modules/audio_processing/ns/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# Copyright (c) 2019 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS.  All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9import("../../../webrtc.gni")
10
11rtc_static_library("ns") {
12  visibility = [ "*" ]
13  configs += [ "..:apm_debug_dump" ]
14  sources = [
15    "fast_math.cc",
16    "fast_math.h",
17    "histograms.cc",
18    "histograms.h",
19    "noise_estimator.cc",
20    "noise_estimator.h",
21    "noise_suppressor.cc",
22    "noise_suppressor.h",
23    "ns_common.h",
24    "ns_config.h",
25    "ns_fft.cc",
26    "ns_fft.h",
27    "prior_signal_model.cc",
28    "prior_signal_model.h",
29    "prior_signal_model_estimator.cc",
30    "prior_signal_model_estimator.h",
31    "quantile_noise_estimator.cc",
32    "quantile_noise_estimator.h",
33    "signal_model.cc",
34    "signal_model.h",
35    "signal_model_estimator.cc",
36    "signal_model_estimator.h",
37    "speech_probability_estimator.cc",
38    "speech_probability_estimator.h",
39    "suppression_params.cc",
40    "suppression_params.h",
41    "wiener_filter.cc",
42    "wiener_filter.h",
43  ]
44
45  defines = []
46  if (rtc_build_with_neon && current_cpu != "arm64") {
47    suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ]
48    cflags = [ "-mfpu=neon" ]
49  }
50
51  deps = [
52    "..:apm_logging",
53    "..:audio_buffer",
54    "..:high_pass_filter",
55    "../../../api:array_view",
56    "../../../common_audio:common_audio_c",
57    "../../../common_audio/third_party/ooura:fft_size_128",
58    "../../../common_audio/third_party/ooura:fft_size_256",
59    "../../../rtc_base:checks",
60    "../../../rtc_base:safe_minmax",
61    "../../../rtc_base/system:arch",
62    "../../../system_wrappers",
63    "../../../system_wrappers:field_trial",
64    "../../../system_wrappers:metrics",
65    "../utility:cascaded_biquad_filter",
66  ]
67  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
68}
69
70if (rtc_include_tests) {
71  rtc_source_set("ns_unittests") {
72    testonly = true
73
74    configs += [ "..:apm_debug_dump" ]
75    sources = [ "noise_suppressor_unittest.cc" ]
76
77    deps = [
78      ":ns",
79      "..:apm_logging",
80      "..:audio_buffer",
81      "..:audio_processing",
82      "..:high_pass_filter",
83      "../../../api:array_view",
84      "../../../rtc_base:checks",
85      "../../../rtc_base:safe_minmax",
86      "../../../rtc_base:stringutils",
87      "../../../rtc_base/system:arch",
88      "../../../system_wrappers",
89      "../../../test:test_support",
90      "../utility:cascaded_biquad_filter",
91    ]
92    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
93
94    defines = []
95
96    if (rtc_enable_protobuf) {
97      sources += []
98    }
99
100    if (!build_with_chromium) {
101      deps += [ "..:audio_processing_unittests" ]
102    }
103  }
104}
105