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:rtc_base_approved",
61    "../../../rtc_base:safe_minmax",
62    "../../../rtc_base/system:arch",
63    "../../../system_wrappers",
64    "../../../system_wrappers:field_trial",
65    "../../../system_wrappers:metrics",
66    "../utility:cascaded_biquad_filter",
67  ]
68  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
69}
70
71if (rtc_include_tests) {
72  rtc_source_set("ns_unittests") {
73    testonly = true
74
75    configs += [ "..:apm_debug_dump" ]
76    sources = [ "noise_suppressor_unittest.cc" ]
77
78    deps = [
79      ":ns",
80      "..:apm_logging",
81      "..:audio_buffer",
82      "..:audio_processing",
83      "..:audio_processing_unittests",
84      "..:high_pass_filter",
85      "../../../api:array_view",
86      "../../../rtc_base:checks",
87      "../../../rtc_base:rtc_base_approved",
88      "../../../rtc_base:safe_minmax",
89      "../../../rtc_base/system:arch",
90      "../../../system_wrappers",
91      "../../../test:test_support",
92      "../utility:cascaded_biquad_filter",
93    ]
94    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
95
96    defines = []
97
98    if (rtc_enable_protobuf) {
99      sources += []
100    }
101  }
102}
103