Separate build targets for aec3 and aec3_unittests
Bug: webrtc:8844
Change-Id: Id6a98eae19aaedc87c3f402a004f58f0290d5c28
Reviewed-on: https://webrtc-review.googlesource.com/56580
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22173}
diff --git a/api/audio/BUILD.gn b/api/audio/BUILD.gn
index 73973bd..ab9bae8 100644
--- a/api/audio/BUILD.gn
+++ b/api/audio/BUILD.gn
@@ -53,6 +53,7 @@
deps = [
":aec3_config",
":echo_control",
+ "../../modules/audio_processing/aec3",
]
}
diff --git a/audio/BUILD.gn b/audio/BUILD.gn
index 618ec84..72b27eb 100644
--- a/audio/BUILD.gn
+++ b/audio/BUILD.gn
@@ -51,6 +51,7 @@
"../api:libjingle_peerconnection_api",
"../api:optional",
"../api:transport_api",
+ "../api/audio:aec3_factory",
"../api/audio:audio_mixer_api",
"../api/audio_codecs:audio_codecs_api",
"../api/audio_codecs:builtin_audio_encoder_factory",
diff --git a/modules/BUILD.gn b/modules/BUILD.gn
index c4010a2..aa76b0f 100644
--- a/modules/BUILD.gn
+++ b/modules/BUILD.gn
@@ -258,6 +258,7 @@
"audio_device:audio_device_unittests",
"audio_mixer:audio_mixer_unittests",
"audio_processing:audio_processing_unittests",
+ "audio_processing/aec3:aec3_unittests",
"bitrate_controller:bitrate_controller_unittests",
"congestion_controller:congestion_controller_unittests",
"pacing:pacing_unittests",
diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn
index 0528479..6a1a3bb 100644
--- a/modules/audio_processing/BUILD.gn
+++ b/modules/audio_processing/BUILD.gn
@@ -35,84 +35,6 @@
"aec/aec_resampler.h",
"aec/echo_cancellation.cc",
"aec/echo_cancellation.h",
- "aec3/adaptive_fir_filter.cc",
- "aec3/adaptive_fir_filter.h",
- "aec3/aec3_common.cc",
- "aec3/aec3_common.h",
- "aec3/aec3_fft.cc",
- "aec3/aec3_fft.h",
- "aec3/aec_state.cc",
- "aec3/aec_state.h",
- "aec3/block_framer.cc",
- "aec3/block_framer.h",
- "aec3/block_processor.cc",
- "aec3/block_processor.h",
- "aec3/block_processor_metrics.cc",
- "aec3/block_processor_metrics.h",
- "aec3/cascaded_biquad_filter.cc",
- "aec3/cascaded_biquad_filter.h",
- "aec3/comfort_noise_generator.cc",
- "aec3/comfort_noise_generator.h",
- "aec3/decimator.cc",
- "aec3/decimator.h",
- "aec3/delay_estimate.h",
- "aec3/downsampled_render_buffer.cc",
- "aec3/downsampled_render_buffer.h",
- "aec3/echo_canceller3.cc",
- "aec3/echo_canceller3.h",
- "aec3/echo_path_delay_estimator.cc",
- "aec3/echo_path_delay_estimator.h",
- "aec3/echo_path_variability.cc",
- "aec3/echo_path_variability.h",
- "aec3/echo_remover.cc",
- "aec3/echo_remover.h",
- "aec3/echo_remover_metrics.cc",
- "aec3/echo_remover_metrics.h",
- "aec3/erl_estimator.cc",
- "aec3/erl_estimator.h",
- "aec3/erle_estimator.cc",
- "aec3/erle_estimator.h",
- "aec3/fft_buffer.cc",
- "aec3/fft_buffer.h",
- "aec3/fft_data.h",
- "aec3/frame_blocker.cc",
- "aec3/frame_blocker.h",
- "aec3/main_filter_update_gain.cc",
- "aec3/main_filter_update_gain.h",
- "aec3/matched_filter.cc",
- "aec3/matched_filter.h",
- "aec3/matched_filter_lag_aggregator.cc",
- "aec3/matched_filter_lag_aggregator.h",
- "aec3/matrix_buffer.cc",
- "aec3/matrix_buffer.h",
- "aec3/output_selector.cc",
- "aec3/output_selector.h",
- "aec3/render_buffer.cc",
- "aec3/render_buffer.h",
- "aec3/render_delay_buffer.cc",
- "aec3/render_delay_buffer.h",
- "aec3/render_delay_controller.cc",
- "aec3/render_delay_controller.h",
- "aec3/render_delay_controller_metrics.cc",
- "aec3/render_delay_controller_metrics.h",
- "aec3/render_signal_analyzer.cc",
- "aec3/render_signal_analyzer.h",
- "aec3/residual_echo_estimator.cc",
- "aec3/residual_echo_estimator.h",
- "aec3/shadow_filter_update_gain.cc",
- "aec3/shadow_filter_update_gain.h",
- "aec3/skew_estimator.cc",
- "aec3/skew_estimator.h",
- "aec3/subtractor.cc",
- "aec3/subtractor.h",
- "aec3/subtractor_output.h",
- "aec3/suppression_filter.cc",
- "aec3/suppression_filter.h",
- "aec3/suppression_gain.cc",
- "aec3/suppression_gain.h",
- "aec3/vector_buffer.cc",
- "aec3/vector_buffer.h",
- "aec3/vector_math.h",
"agc/agc.cc",
"agc/agc.h",
"agc/agc_manager_direct.cc",
@@ -221,8 +143,8 @@
":audio_processing_c",
":audio_processing_statistics",
"..:module_api",
+ "../..:typedefs",
"../..:webrtc_common",
- "../../:typedefs",
"../../api:array_view",
"../../api:optional",
"../../api/audio:aec3_config",
@@ -348,8 +270,8 @@
}
deps = [
+ "../..:typedefs",
"../..:webrtc_common",
- "../../:typedefs",
"../../common_audio",
"../../common_audio:common_audio_c",
"../../rtc_base:checks",
@@ -430,8 +352,8 @@
deps = [
":apm_logging",
":audio_processing_statistics",
+ "../..:typedefs",
"../..:webrtc_common",
- "../../:typedefs",
"../../common_audio:common_audio",
"../../common_audio:common_audio_c",
"../../rtc_base:checks",
@@ -543,10 +465,6 @@
sources = [
"aec/echo_cancellation_unittest.cc",
"aec/system_delay_unittest.cc",
- "aec3/mock/mock_block_processor.h",
- "aec3/mock/mock_echo_remover.h",
- "aec3/mock/mock_render_delay_buffer.h",
- "aec3/mock/mock_render_delay_controller.h",
"agc/agc_manager_direct_unittest.cc",
"agc/loudness_histogram_unittest.cc",
"agc/mock_agc.h",
@@ -585,8 +503,8 @@
":audioproc_test_utils",
":mocks",
"..:module_api",
+ "../..:typedefs",
"../..:webrtc_common",
- "../../:typedefs",
"../../api:array_view",
"../../api:optional",
"../../api/audio:aec3_config",
@@ -601,6 +519,7 @@
"../../system_wrappers:cpu_features_api",
"../../test:test_support",
"../audio_coding:neteq_input_audio_tools",
+ "aec3:aec3",
"aec_dump:mock_aec_dump_unittests",
"agc2:fixed_digital_unittests",
"test/conversational_speech:unittest",
@@ -638,40 +557,6 @@
"aec_dump:aec_dump_unittests",
]
sources += [
- "aec3/adaptive_fir_filter_unittest.cc",
- "aec3/aec3_fft_unittest.cc",
- "aec3/aec_state_unittest.cc",
- "aec3/block_framer_unittest.cc",
- "aec3/block_processor_metrics_unittest.cc",
- "aec3/block_processor_unittest.cc",
- "aec3/cascaded_biquad_filter_unittest.cc",
- "aec3/comfort_noise_generator_unittest.cc",
- "aec3/decimator_unittest.cc",
- "aec3/echo_canceller3_unittest.cc",
- "aec3/echo_path_delay_estimator_unittest.cc",
- "aec3/echo_path_variability_unittest.cc",
- "aec3/echo_remover_metrics_unittest.cc",
- "aec3/echo_remover_unittest.cc",
- "aec3/erl_estimator_unittest.cc",
- "aec3/erle_estimator_unittest.cc",
- "aec3/fft_data_unittest.cc",
- "aec3/frame_blocker_unittest.cc",
- "aec3/main_filter_update_gain_unittest.cc",
- "aec3/matched_filter_lag_aggregator_unittest.cc",
- "aec3/matched_filter_unittest.cc",
- "aec3/output_selector_unittest.cc",
- "aec3/render_buffer_unittest.cc",
- "aec3/render_delay_buffer_unittest.cc",
- "aec3/render_delay_controller_metrics_unittest.cc",
- "aec3/render_delay_controller_unittest.cc",
- "aec3/render_signal_analyzer_unittest.cc",
- "aec3/residual_echo_estimator_unittest.cc",
- "aec3/shadow_filter_update_gain_unittest.cc",
- "aec3/skew_estimator_unittest.cc",
- "aec3/subtractor_unittest.cc",
- "aec3/suppression_filter_unittest.cc",
- "aec3/suppression_gain_unittest.cc",
- "aec3/vector_math_unittest.cc",
"audio_processing_impl_locking_unittest.cc",
"audio_processing_impl_unittest.cc",
"audio_processing_unittest.cc",
@@ -775,6 +660,7 @@
"../../system_wrappers",
"../../system_wrappers:system_wrappers_default",
"../../test:test_support",
+ "aec3:aec3",
"aec_dump",
"aec_dump:aec_dump_impl",
"//testing/gtest",
@@ -823,8 +709,8 @@
deps = [
":audio_processing",
"..:module_api",
+ "../..:typedefs",
"../..:webrtc_common",
- "../../:typedefs",
"../../common_audio:common_audio",
"../../rtc_base:rtc_base_approved",
"../../system_wrappers",
@@ -843,8 +729,8 @@
]
deps = [
":audio_processing",
+ "../..:typedefs",
"../..:webrtc_common",
- "../../:typedefs",
"../../system_wrappers",
"../../system_wrappers:metrics_default",
]
@@ -899,8 +785,8 @@
deps = [
":audioproc_debug_proto",
+ "../..:typedefs",
"../..:webrtc_common",
- "../../:typedefs",
"../../rtc_base:protobuf_utils",
"../../rtc_base:rtc_base_approved",
]
diff --git a/modules/audio_processing/aec3/BUILD.gn b/modules/audio_processing/aec3/BUILD.gn
new file mode 100644
index 0000000..0ac47fb
--- /dev/null
+++ b/modules/audio_processing/aec3/BUILD.gn
@@ -0,0 +1,199 @@
+# Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
+#
+# Use of this source code is governed by a BSD-style license
+# that can be found in the LICENSE file in the root of the source
+# tree. An additional intellectual property rights grant can be found
+# in the file PATENTS. All contributing project authors may
+# be found in the AUTHORS file in the root of the source tree.
+
+import("//build/config/arm.gni")
+import("../../../webrtc.gni")
+
+config("apm_debug_dump") {
+ if (apm_debug_dump) {
+ defines = [ "WEBRTC_APM_DEBUG_DUMP=1" ]
+ } else {
+ defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ]
+ }
+}
+
+rtc_static_library("aec3") {
+ visibility = [ "*" ]
+ configs += [ ":apm_debug_dump" ]
+ sources = [
+ "adaptive_fir_filter.cc",
+ "adaptive_fir_filter.h",
+ "aec3_common.cc",
+ "aec3_common.h",
+ "aec3_fft.cc",
+ "aec3_fft.h",
+ "aec_state.cc",
+ "aec_state.h",
+ "block_framer.cc",
+ "block_framer.h",
+ "block_processor.cc",
+ "block_processor.h",
+ "block_processor_metrics.cc",
+ "block_processor_metrics.h",
+ "cascaded_biquad_filter.cc",
+ "cascaded_biquad_filter.h",
+ "comfort_noise_generator.cc",
+ "comfort_noise_generator.h",
+ "decimator.cc",
+ "decimator.h",
+ "delay_estimate.h",
+ "downsampled_render_buffer.cc",
+ "downsampled_render_buffer.h",
+ "echo_canceller3.cc",
+ "echo_canceller3.h",
+ "echo_path_delay_estimator.cc",
+ "echo_path_delay_estimator.h",
+ "echo_path_variability.cc",
+ "echo_path_variability.h",
+ "echo_remover.cc",
+ "echo_remover.h",
+ "echo_remover_metrics.cc",
+ "echo_remover_metrics.h",
+ "erl_estimator.cc",
+ "erl_estimator.h",
+ "erle_estimator.cc",
+ "erle_estimator.h",
+ "fft_buffer.cc",
+ "fft_buffer.h",
+ "fft_data.h",
+ "frame_blocker.cc",
+ "frame_blocker.h",
+ "main_filter_update_gain.cc",
+ "main_filter_update_gain.h",
+ "matched_filter.cc",
+ "matched_filter.h",
+ "matched_filter_lag_aggregator.cc",
+ "matched_filter_lag_aggregator.h",
+ "matrix_buffer.cc",
+ "matrix_buffer.h",
+ "output_selector.cc",
+ "output_selector.h",
+ "render_buffer.cc",
+ "render_buffer.h",
+ "render_delay_buffer.cc",
+ "render_delay_buffer.h",
+ "render_delay_controller.cc",
+ "render_delay_controller.h",
+ "render_delay_controller_metrics.cc",
+ "render_delay_controller_metrics.h",
+ "render_signal_analyzer.cc",
+ "render_signal_analyzer.h",
+ "residual_echo_estimator.cc",
+ "residual_echo_estimator.h",
+ "shadow_filter_update_gain.cc",
+ "shadow_filter_update_gain.h",
+ "skew_estimator.cc",
+ "skew_estimator.h",
+ "subtractor.cc",
+ "subtractor.h",
+ "subtractor_output.h",
+ "suppression_filter.cc",
+ "suppression_filter.h",
+ "suppression_gain.cc",
+ "suppression_gain.h",
+ "vector_buffer.cc",
+ "vector_buffer.h",
+ "vector_math.h",
+ ]
+
+ defines = []
+ deps = [
+ "..:aec_core",
+ "..:apm_logging",
+ "..:audio_processing",
+ "../../..:typedefs",
+ "../../../api:array_view",
+ "../../../api:optional",
+ "../../../api/audio:aec3_config",
+ "../../../api/audio:echo_control",
+ "../../../common_audio:common_audio_c",
+ "../../../rtc_base:checks",
+ "../../../rtc_base:rtc_base_approved",
+ "../../../system_wrappers:cpu_features_api",
+ "../../../system_wrappers:metrics_api",
+ ]
+
+ configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
+}
+
+if (rtc_include_tests) {
+ rtc_source_set("aec3_unittests") {
+ testonly = true
+
+ configs += [ ":apm_debug_dump" ]
+ sources = [
+ "mock/mock_block_processor.h",
+ "mock/mock_echo_remover.h",
+ "mock/mock_render_delay_buffer.h",
+ "mock/mock_render_delay_controller.h",
+ ]
+
+ deps = [
+ ":aec3",
+ "..:apm_logging",
+ "..:audio_processing",
+ "..:audio_processing_unittests",
+ "../../..:typedefs",
+ "../../../api:array_view",
+ "../../../api:optional",
+ "../../../api/audio:aec3_config",
+ "../../../rtc_base:checks",
+ "../../../rtc_base:rtc_base_approved",
+ "../../../system_wrappers:cpu_features_api",
+ "../../../test:test_support",
+ ]
+
+ defines = []
+
+ if (rtc_enable_protobuf) {
+ sources += [
+ "adaptive_fir_filter_unittest.cc",
+ "aec3_fft_unittest.cc",
+ "aec_state_unittest.cc",
+ "block_framer_unittest.cc",
+ "block_processor_metrics_unittest.cc",
+ "block_processor_unittest.cc",
+ "cascaded_biquad_filter_unittest.cc",
+ "comfort_noise_generator_unittest.cc",
+ "decimator_unittest.cc",
+ "echo_canceller3_unittest.cc",
+ "echo_path_delay_estimator_unittest.cc",
+ "echo_path_variability_unittest.cc",
+ "echo_remover_metrics_unittest.cc",
+ "echo_remover_unittest.cc",
+ "erl_estimator_unittest.cc",
+ "erle_estimator_unittest.cc",
+ "fft_data_unittest.cc",
+ "frame_blocker_unittest.cc",
+ "main_filter_update_gain_unittest.cc",
+ "matched_filter_lag_aggregator_unittest.cc",
+ "matched_filter_unittest.cc",
+ "output_selector_unittest.cc",
+ "render_buffer_unittest.cc",
+ "render_delay_buffer_unittest.cc",
+ "render_delay_controller_metrics_unittest.cc",
+ "render_delay_controller_unittest.cc",
+ "render_signal_analyzer_unittest.cc",
+ "residual_echo_estimator_unittest.cc",
+ "shadow_filter_update_gain_unittest.cc",
+ "skew_estimator_unittest.cc",
+ "subtractor_unittest.cc",
+ "suppression_filter_unittest.cc",
+ "suppression_gain_unittest.cc",
+ "vector_math_unittest.cc",
+ ]
+ }
+
+ if ((!build_with_chromium || is_win) && is_clang) {
+ # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
+ suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+ }
+
+ configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
+ }
+}
diff --git a/test/fuzzers/BUILD.gn b/test/fuzzers/BUILD.gn
index fad746d..2d2d77c 100644
--- a/test/fuzzers/BUILD.gn
+++ b/test/fuzzers/BUILD.gn
@@ -445,6 +445,7 @@
":audio_processing_fuzzer_helper",
":fuzz_data_helper",
"../../modules/audio_processing",
+ "../../modules/audio_processing/aec3",
"../../rtc_base:rtc_base_approved",
]
}