blob: f59bb5bed5cb290a79e9c87d8f8768028a0cffd0 [file] [log] [blame]
Gustaf Ullbergf35c6662018-02-23 13:18:29 +01001# Copyright (c) 2018 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
Gustaf Ullbergf35c6662018-02-23 13:18:29 +01009import("../../../webrtc.gni")
10
Gustaf Ullbergf35c6662018-02-23 13:18:29 +010011rtc_static_library("aec3") {
12 visibility = [ "*" ]
Gustaf Ullberg0efa9412018-02-27 13:58:45 +010013 configs += [ "..:apm_debug_dump" ]
Gustaf Ullbergf35c6662018-02-23 13:18:29 +010014 sources = [
15 "adaptive_fir_filter.cc",
16 "adaptive_fir_filter.h",
17 "aec3_common.cc",
18 "aec3_common.h",
19 "aec3_fft.cc",
20 "aec3_fft.h",
21 "aec_state.cc",
22 "aec_state.h",
23 "block_framer.cc",
24 "block_framer.h",
25 "block_processor.cc",
26 "block_processor.h",
27 "block_processor_metrics.cc",
28 "block_processor_metrics.h",
29 "cascaded_biquad_filter.cc",
30 "cascaded_biquad_filter.h",
Per Åhgren47d7fbd2018-04-24 12:44:29 +020031 "coherence_gain.cc",
32 "coherence_gain.h",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +010033 "comfort_noise_generator.cc",
34 "comfort_noise_generator.h",
35 "decimator.cc",
36 "decimator.h",
37 "delay_estimate.h",
38 "downsampled_render_buffer.cc",
39 "downsampled_render_buffer.h",
Jesús de Vicente Peñad5cb4772018-04-25 13:58:45 +020040 "echo_audibility.cc",
41 "echo_audibility.h",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +010042 "echo_canceller3.cc",
43 "echo_canceller3.h",
44 "echo_path_delay_estimator.cc",
45 "echo_path_delay_estimator.h",
46 "echo_path_variability.cc",
47 "echo_path_variability.h",
48 "echo_remover.cc",
49 "echo_remover.h",
50 "echo_remover_metrics.cc",
51 "echo_remover_metrics.h",
52 "erl_estimator.cc",
53 "erl_estimator.h",
54 "erle_estimator.cc",
55 "erle_estimator.h",
56 "fft_buffer.cc",
57 "fft_buffer.h",
58 "fft_data.h",
Per Åhgren5c532d32018-03-22 00:29:25 +010059 "filter_analyzer.cc",
60 "filter_analyzer.h",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +010061 "frame_blocker.cc",
62 "frame_blocker.h",
63 "main_filter_update_gain.cc",
64 "main_filter_update_gain.h",
65 "matched_filter.cc",
66 "matched_filter.h",
67 "matched_filter_lag_aggregator.cc",
68 "matched_filter_lag_aggregator.h",
69 "matrix_buffer.cc",
70 "matrix_buffer.h",
Gustaf Ullberg8406c432018-06-19 12:31:33 +020071 "moving_average.cc",
72 "moving_average.h",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +010073 "render_buffer.cc",
74 "render_buffer.h",
75 "render_delay_buffer.cc",
76 "render_delay_buffer.h",
77 "render_delay_controller.cc",
78 "render_delay_controller.h",
79 "render_delay_controller_metrics.cc",
80 "render_delay_controller_metrics.h",
81 "render_signal_analyzer.cc",
82 "render_signal_analyzer.h",
83 "residual_echo_estimator.cc",
84 "residual_echo_estimator.h",
Per Åhgrenef5d5af2018-07-31 00:03:46 +020085 "reverb_decay_estimator.cc",
86 "reverb_decay_estimator.h",
87 "reverb_frequency_response.cc",
88 "reverb_frequency_response.h",
Jesús de Vicente Peña075cb2b2018-06-13 15:13:55 +020089 "reverb_model.cc",
90 "reverb_model.h",
Jesús de Vicente Peña496cedf2018-07-04 11:02:09 +020091 "reverb_model_estimator.cc",
92 "reverb_model_estimator.h",
Jesús de Vicente Peña075cb2b2018-06-13 15:13:55 +020093 "reverb_model_fallback.cc",
94 "reverb_model_fallback.h",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +010095 "shadow_filter_update_gain.cc",
96 "shadow_filter_update_gain.h",
97 "skew_estimator.cc",
98 "skew_estimator.h",
Jesús de Vicente Peñad5cb4772018-04-25 13:58:45 +020099 "stationarity_estimator.cc",
100 "stationarity_estimator.h",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100101 "subtractor.cc",
102 "subtractor.h",
Per Åhgrene4db6a12018-07-26 15:32:24 +0200103 "subtractor_output.cc",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100104 "subtractor_output.h",
Per Åhgrenb20b9372018-07-13 00:22:54 +0200105 "subtractor_output_analyzer.cc",
106 "subtractor_output_analyzer.h",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100107 "suppression_filter.cc",
108 "suppression_filter.h",
109 "suppression_gain.cc",
110 "suppression_gain.h",
Per Åhgren12eb8582018-03-06 10:40:51 +0100111 "suppression_gain_limiter.cc",
112 "suppression_gain_limiter.h",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100113 "vector_buffer.cc",
114 "vector_buffer.h",
115 "vector_math.h",
116 ]
117
118 defines = []
119 deps = [
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100120 "..:apm_logging",
121 "..:audio_processing",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100122 "../../../api:array_view",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100123 "../../../api/audio:aec3_config",
124 "../../../api/audio:echo_control",
125 "../../../common_audio:common_audio_c",
126 "../../../rtc_base:checks",
127 "../../../rtc_base:rtc_base_approved",
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100128 "../../../rtc_base:safe_minmax",
Niels Möllera12c42a2018-07-25 16:05:48 +0200129 "../../../rtc_base/system:arch",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100130 "../../../system_wrappers:cpu_features_api",
Gustaf Ullberg0e6375e2018-05-04 11:29:02 +0200131 "../../../system_wrappers:field_trial_api",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100132 "../../../system_wrappers:metrics_api",
Sam Zackrissonb2e17652018-07-05 16:41:55 +0200133 "../utility:ooura_fft",
Danil Chapovalovdb9f7ab2018-06-19 10:50:11 +0200134 "//third_party/abseil-cpp/absl/types:optional",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100135 ]
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100136}
137
138if (rtc_include_tests) {
139 rtc_source_set("aec3_unittests") {
140 testonly = true
141
Gustaf Ullberg0efa9412018-02-27 13:58:45 +0100142 configs += [ "..:apm_debug_dump" ]
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100143 sources = [
Mirko Bonadeia6c544d2018-07-17 09:56:46 +0200144 "mock/mock_block_processor.cc",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100145 "mock/mock_block_processor.h",
Mirko Bonadeia6c544d2018-07-17 09:56:46 +0200146 "mock/mock_echo_remover.cc",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100147 "mock/mock_echo_remover.h",
Mirko Bonadeia6c544d2018-07-17 09:56:46 +0200148 "mock/mock_render_delay_buffer.cc",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100149 "mock/mock_render_delay_buffer.h",
Mirko Bonadeia6c544d2018-07-17 09:56:46 +0200150 "mock/mock_render_delay_controller.cc",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100151 "mock/mock_render_delay_controller.h",
152 ]
153
154 deps = [
155 ":aec3",
156 "..:apm_logging",
157 "..:audio_processing",
158 "..:audio_processing_unittests",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100159 "../../../api:array_view",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100160 "../../../api/audio:aec3_config",
161 "../../../rtc_base:checks",
162 "../../../rtc_base:rtc_base_approved",
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100163 "../../../rtc_base:safe_minmax",
Niels Möllera12c42a2018-07-25 16:05:48 +0200164 "../../../rtc_base/system:arch",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100165 "../../../system_wrappers:cpu_features_api",
166 "../../../test:test_support",
Danil Chapovalovdb9f7ab2018-06-19 10:50:11 +0200167 "//third_party/abseil-cpp/absl/types:optional",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100168 ]
169
170 defines = []
171
172 if (rtc_enable_protobuf) {
173 sources += [
174 "adaptive_fir_filter_unittest.cc",
175 "aec3_fft_unittest.cc",
176 "aec_state_unittest.cc",
177 "block_framer_unittest.cc",
178 "block_processor_metrics_unittest.cc",
179 "block_processor_unittest.cc",
180 "cascaded_biquad_filter_unittest.cc",
181 "comfort_noise_generator_unittest.cc",
182 "decimator_unittest.cc",
183 "echo_canceller3_unittest.cc",
184 "echo_path_delay_estimator_unittest.cc",
185 "echo_path_variability_unittest.cc",
186 "echo_remover_metrics_unittest.cc",
187 "echo_remover_unittest.cc",
188 "erl_estimator_unittest.cc",
189 "erle_estimator_unittest.cc",
190 "fft_data_unittest.cc",
191 "frame_blocker_unittest.cc",
192 "main_filter_update_gain_unittest.cc",
193 "matched_filter_lag_aggregator_unittest.cc",
194 "matched_filter_unittest.cc",
Gustaf Ullbergbbfcc702018-06-19 12:33:36 +0200195 "moving_average_unittest.cc",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100196 "render_buffer_unittest.cc",
197 "render_delay_buffer_unittest.cc",
198 "render_delay_controller_metrics_unittest.cc",
199 "render_delay_controller_unittest.cc",
200 "render_signal_analyzer_unittest.cc",
201 "residual_echo_estimator_unittest.cc",
Jesús de Vicente Peña496cedf2018-07-04 11:02:09 +0200202 "reverb_model_estimator_unittest.cc",
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100203 "shadow_filter_update_gain_unittest.cc",
204 "skew_estimator_unittest.cc",
205 "subtractor_unittest.cc",
206 "suppression_filter_unittest.cc",
207 "suppression_gain_unittest.cc",
208 "vector_math_unittest.cc",
209 ]
210 }
Gustaf Ullbergf35c6662018-02-23 13:18:29 +0100211 }
212}