# 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("../../../webrtc.gni") rtc_source_set("agc") { sources = [ "agc_manager_direct.cc", "agc_manager_direct.h", ] configs += [ "..:apm_debug_dump" ] deps = [ ":gain_map", ":level_estimation", "..:apm_logging", "..:gain_control_interface", "../../..:webrtc_common", "../../../rtc_base:checks", "../../../rtc_base:gtest_prod", "../../../rtc_base:logging", "../../../rtc_base:macromagic", "../../../rtc_base:safe_minmax", "../../../system_wrappers:metrics_api", "../agc2:level_estimation_agc", "../vad", ] } rtc_source_set("level_estimation") { sources = [ "agc.cc", "agc.h", "loudness_histogram.cc", "loudness_histogram.h", "utility.cc", "utility.h", ] deps = [ "../../..:webrtc_common", "../../../rtc_base:checks", "../../../rtc_base:macromagic", "../vad", ] } rtc_source_set("agc_legacy_c") { visibility = [ ":*", "..:*", ] # Only targets in this file and in # audio_processing can depend on # this. sources = [ "legacy/analog_agc.c", "legacy/analog_agc.h", "legacy/digital_agc.c", "legacy/digital_agc.h", "legacy/gain_control.h", ] deps = [ "../../..:webrtc_common", "../../../common_audio", "../../../common_audio:common_audio_c", "../../../common_audio/third_party/fft4g", "../../../rtc_base:checks", "../../../rtc_base:rtc_base_approved", "../../../system_wrappers:cpu_features_api", ] if (rtc_build_with_neon) { if (current_cpu != "arm64") { # Enable compilation for the NEON instruction set. suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] cflags = [ "-mfpu=neon" ] } # Disable LTO on NEON targets due to compiler bug. # TODO(fdegans): Enable this. See crbug.com/408997. if (rtc_use_lto) { cflags -= [ "-flto", "-ffat-lto-objects", ] } } } rtc_source_set("gain_map") { sources = [ "gain_map_internal.h", ] } if (rtc_include_tests) { rtc_source_set("agc_unittests") { testonly = true sources = [ "agc_manager_direct_unittest.cc", "loudness_histogram_unittest.cc", "mock_agc.h", ] configs += [ "..:apm_debug_dump" ] 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" ] } deps = [ ":agc", ":level_estimation", "..:mocks", "../../..:webrtc_common", "../../../test:fileutils", "../../../test:test_support", "//testing/gtest", ] } }