# 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_library("aec3") {
  visibility = [ "*" ]
  configs += [ "..:apm_debug_dump" ]
  sources = [
    "adaptive_fir_filter.cc",
    "adaptive_fir_filter_erl.cc",
    "aec3_common.cc",
    "aec3_fft.cc",
    "aec_state.cc",
    "aec_state.h",
    "alignment_mixer.cc",
    "alignment_mixer.h",
    "api_call_jitter_metrics.cc",
    "api_call_jitter_metrics.h",
    "block_buffer.cc",
    "block_delay_buffer.cc",
    "block_delay_buffer.h",
    "block_framer.cc",
    "block_framer.h",
    "block_processor.cc",
    "block_processor.h",
    "block_processor_metrics.cc",
    "block_processor_metrics.h",
    "clockdrift_detector.cc",
    "clockdrift_detector.h",
    "coarse_filter_update_gain.cc",
    "coarse_filter_update_gain.h",
    "comfort_noise_generator.cc",
    "comfort_noise_generator.h",
    "decimator.cc",
    "decimator.h",
    "delay_estimate.h",
    "dominant_nearend_detector.cc",
    "dominant_nearend_detector.h",
    "downsampled_render_buffer.cc",
    "downsampled_render_buffer.h",
    "echo_audibility.cc",
    "echo_audibility.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",
    "filter_analyzer.cc",
    "filter_analyzer.h",
    "frame_blocker.cc",
    "frame_blocker.h",
    "fullband_erle_estimator.cc",
    "fullband_erle_estimator.h",
    "matched_filter.cc",
    "matched_filter_lag_aggregator.cc",
    "matched_filter_lag_aggregator.h",
    "moving_average.cc",
    "moving_average.h",
    "nearend_detector.h",
    "refined_filter_update_gain.cc",
    "refined_filter_update_gain.h",
    "render_buffer.cc",
    "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",
    "reverb_decay_estimator.cc",
    "reverb_decay_estimator.h",
    "reverb_frequency_response.cc",
    "reverb_frequency_response.h",
    "reverb_model.cc",
    "reverb_model.h",
    "reverb_model_estimator.cc",
    "reverb_model_estimator.h",
    "signal_dependent_erle_estimator.cc",
    "signal_dependent_erle_estimator.h",
    "spectrum_buffer.cc",
    "stationarity_estimator.cc",
    "stationarity_estimator.h",
    "subband_erle_estimator.cc",
    "subband_erle_estimator.h",
    "subband_nearend_detector.cc",
    "subband_nearend_detector.h",
    "subtractor.cc",
    "subtractor.h",
    "subtractor_output.cc",
    "subtractor_output.h",
    "subtractor_output_analyzer.cc",
    "subtractor_output_analyzer.h",
    "suppression_filter.cc",
    "suppression_filter.h",
    "suppression_gain.cc",
    "suppression_gain.h",
  ]

  defines = []
  if (rtc_build_with_neon && current_cpu != "arm64") {
    suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ]
    cflags = [ "-mfpu=neon" ]
  }

  deps = [
    ":adaptive_fir_filter",
    ":adaptive_fir_filter_erl",
    ":aec3_common",
    ":aec3_fft",
    ":fft_data",
    ":matched_filter",
    ":render_buffer",
    ":vector_math",
    "..:apm_logging",
    "..:audio_buffer",
    "..:high_pass_filter",
    "../../../api:array_view",
    "../../../api/audio:aec3_config",
    "../../../api/audio:echo_control",
    "../../../common_audio:common_audio_c",
    "../../../rtc_base:checks",
    "../../../rtc_base:rtc_base_approved",
    "../../../rtc_base:safe_minmax",
    "../../../rtc_base/experiments:field_trial_parser",
    "../../../rtc_base/system:arch",
    "../../../system_wrappers",
    "../../../system_wrappers:field_trial",
    "../../../system_wrappers:metrics",
    "../utility:cascaded_biquad_filter",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]

  if (current_cpu == "x86" || current_cpu == "x64") {
    deps += [ ":aec3_avx2" ]
  }
}

rtc_source_set("aec3_common") {
  sources = [ "aec3_common.h" ]
}

rtc_source_set("aec3_fft") {
  sources = [ "aec3_fft.h" ]
  deps = [
    ":aec3_common",
    ":fft_data",
    "../../../api:array_view",
    "../../../common_audio/third_party/ooura:fft_size_128",
    "../../../rtc_base:checks",
    "../../../rtc_base:rtc_base_approved",
    "../../../rtc_base/system:arch",
  ]
}

rtc_source_set("render_buffer") {
  sources = [
    "block_buffer.h",
    "fft_buffer.h",
    "render_buffer.h",
    "spectrum_buffer.h",
  ]
  deps = [
    ":aec3_common",
    ":fft_data",
    "../../../api:array_view",
    "../../../rtc_base:checks",
    "../../../rtc_base:rtc_base_approved",
    "../../../rtc_base/system:arch",
  ]
}

rtc_source_set("adaptive_fir_filter") {
  sources = [ "adaptive_fir_filter.h" ]
  deps = [
    ":aec3_common",
    ":aec3_fft",
    ":fft_data",
    ":render_buffer",
    "..:apm_logging",
    "../../../api:array_view",
    "../../../rtc_base/system:arch",
  ]
}

rtc_source_set("adaptive_fir_filter_erl") {
  sources = [ "adaptive_fir_filter_erl.h" ]
  deps = [
    ":aec3_common",
    "../../../api:array_view",
    "../../../rtc_base/system:arch",
  ]
}

rtc_source_set("matched_filter") {
  sources = [ "matched_filter.h" ]
  deps = [
    ":aec3_common",
    "../../../api:array_view",
    "../../../rtc_base:rtc_base_approved",
    "../../../rtc_base/system:arch",
  ]
}

rtc_source_set("vector_math") {
  sources = [ "vector_math.h" ]
  deps = [
    ":aec3_common",
    "../../../api:array_view",
    "../../../rtc_base:checks",
    "../../../rtc_base/system:arch",
  ]
}

rtc_source_set("fft_data") {
  sources = [ "fft_data.h" ]
  deps = [
    ":aec3_common",
    "../../../api:array_view",
    "../../../rtc_base/system:arch",
  ]
}

if (current_cpu == "x86" || current_cpu == "x64") {
  rtc_library("aec3_avx2") {
    configs += [ "..:apm_debug_dump" ]
    sources = [
      "adaptive_fir_filter_avx2.cc",
      "adaptive_fir_filter_erl_avx2.cc",
      "fft_data_avx2.cc",
      "matched_filter_avx2.cc",
      "vector_math_avx2.cc",
    ]

    if (is_win) {
      cflags = [ "/arch:AVX2" ]
    } else {
      cflags = [
        "-mavx2",
        "-mfma",
      ]
    }

    deps = [
      ":adaptive_fir_filter",
      ":adaptive_fir_filter_erl",
      ":fft_data",
      ":matched_filter",
      ":vector_math",
      "../../../api:array_view",
      "../../../rtc_base:checks",
    ]
  }
}

if (rtc_include_tests) {
  rtc_library("aec3_unittests") {
    testonly = true

    configs += [ "..:apm_debug_dump" ]
    sources = [
      "mock/mock_block_processor.cc",
      "mock/mock_block_processor.h",
      "mock/mock_echo_remover.cc",
      "mock/mock_echo_remover.h",
      "mock/mock_render_delay_buffer.cc",
      "mock/mock_render_delay_buffer.h",
      "mock/mock_render_delay_controller.cc",
      "mock/mock_render_delay_controller.h",
    ]

    deps = [
      ":adaptive_fir_filter",
      ":adaptive_fir_filter_erl",
      ":aec3",
      ":aec3_common",
      ":aec3_fft",
      ":fft_data",
      ":matched_filter",
      ":render_buffer",
      ":vector_math",
      "..:apm_logging",
      "..:audio_buffer",
      "..:audio_processing",
      "..:audio_processing_unittests",
      "..:high_pass_filter",
      "../../../api:array_view",
      "../../../api/audio:aec3_config",
      "../../../rtc_base:checks",
      "../../../rtc_base:rtc_base_approved",
      "../../../rtc_base:safe_minmax",
      "../../../rtc_base/system:arch",
      "../../../system_wrappers",
      "../../../test:field_trial",
      "../../../test:test_support",
      "../utility:cascaded_biquad_filter",
    ]
    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]

    defines = []

    if (rtc_enable_protobuf) {
      sources += [
        "adaptive_fir_filter_erl_unittest.cc",
        "adaptive_fir_filter_unittest.cc",
        "aec3_fft_unittest.cc",
        "aec_state_unittest.cc",
        "alignment_mixer_unittest.cc",
        "api_call_jitter_metrics_unittest.cc",
        "block_delay_buffer_unittest.cc",
        "block_framer_unittest.cc",
        "block_processor_metrics_unittest.cc",
        "block_processor_unittest.cc",
        "clockdrift_detector_unittest.cc",
        "coarse_filter_update_gain_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",
        "filter_analyzer_unittest.cc",
        "frame_blocker_unittest.cc",
        "matched_filter_lag_aggregator_unittest.cc",
        "matched_filter_unittest.cc",
        "moving_average_unittest.cc",
        "refined_filter_update_gain_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",
        "reverb_model_estimator_unittest.cc",
        "signal_dependent_erle_estimator_unittest.cc",
        "subtractor_unittest.cc",
        "suppression_filter_unittest.cc",
        "suppression_gain_unittest.cc",
        "vector_math_unittest.cc",
      ]
    }
  }
}
