| # Copyright (c) 2014 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") |
| |
| group("audio_mixer") { |
| deps = [ |
| ":audio_frame_manipulator", |
| ":audio_mixer_impl", |
| ] |
| } |
| |
| rtc_library("audio_mixer_impl") { |
| visibility = [ "*" ] |
| sources = [ |
| "audio_mixer_impl.cc", |
| "audio_mixer_impl.h", |
| "default_output_rate_calculator.cc", |
| "default_output_rate_calculator.h", |
| "frame_combiner.cc", |
| "frame_combiner.h", |
| "output_rate_calculator.h", |
| ] |
| |
| public = [ |
| "audio_mixer_impl.h", |
| "default_output_rate_calculator.h", # For creating a mixer with limiter |
| # disabled. |
| "frame_combiner.h", |
| ] |
| |
| configs += [ "../audio_processing:apm_debug_dump" ] |
| |
| deps = [ |
| ":audio_frame_manipulator", |
| "../../api:array_view", |
| "../../api:rtp_packet_info", |
| "../../api:scoped_refptr", |
| "../../api/audio:audio_frame_api", |
| "../../api/audio:audio_mixer_api", |
| "../../audio/utility:audio_frame_operations", |
| "../../common_audio", |
| "../../rtc_base:checks", |
| "../../rtc_base:event_tracer", |
| "../../rtc_base:logging", |
| "../../rtc_base:macromagic", |
| "../../rtc_base:race_checker", |
| "../../rtc_base:refcount", |
| "../../rtc_base:safe_conversions", |
| "../../rtc_base/synchronization:mutex", |
| "../../system_wrappers", |
| "../../system_wrappers:metrics", |
| "../audio_processing:api", |
| "../audio_processing:apm_logging", |
| "../audio_processing:audio_frame_view", |
| "../audio_processing/agc2:fixed_digital", |
| ] |
| } |
| |
| rtc_library("audio_frame_manipulator") { |
| visibility = [ |
| ":*", |
| "../../modules:*", |
| ] |
| |
| sources = [ |
| "audio_frame_manipulator.cc", |
| "audio_frame_manipulator.h", |
| ] |
| |
| deps = [ |
| "../../api/audio:audio_frame_api", |
| "../../audio/utility:audio_frame_operations", |
| "../../rtc_base:checks", |
| ] |
| } |
| |
| if (rtc_include_tests) { |
| rtc_library("audio_mixer_test_utils") { |
| testonly = true |
| |
| sources = [ |
| "gain_change_calculator.cc", |
| "gain_change_calculator.h", |
| "sine_wave_generator.cc", |
| "sine_wave_generator.h", |
| ] |
| |
| deps = [ |
| ":audio_frame_manipulator", |
| ":audio_mixer_impl", |
| "../../api:array_view", |
| "../../api/audio:audio_frame_api", |
| "../../rtc_base:checks", |
| "../../rtc_base:safe_conversions", |
| ] |
| } |
| |
| rtc_library("audio_mixer_unittests") { |
| testonly = true |
| |
| sources = [ |
| "audio_frame_manipulator_unittest.cc", |
| "audio_mixer_impl_unittest.cc", |
| "frame_combiner_unittest.cc", |
| ] |
| absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] |
| deps = [ |
| ":audio_frame_manipulator", |
| ":audio_mixer_impl", |
| ":audio_mixer_test_utils", |
| "../../api:array_view", |
| "../../api:rtp_packet_info", |
| "../../api/audio:audio_mixer_api", |
| "../../api/units:timestamp", |
| "../../audio/utility:audio_frame_operations", |
| "../../rtc_base:checks", |
| "../../rtc_base:stringutils", |
| "../../rtc_base:task_queue_for_test", |
| "../../system_wrappers:metrics", |
| "../../test:test_support", |
| ] |
| } |
| |
| if (!build_with_chromium) { |
| rtc_executable("audio_mixer_test") { |
| testonly = true |
| sources = [ "audio_mixer_test.cc" ] |
| |
| deps = [ |
| ":audio_mixer_impl", |
| "../../api/audio:audio_mixer_api", |
| "../../common_audio", |
| "../../rtc_base:stringutils", |
| "//third_party/abseil-cpp/absl/flags:flag", |
| "//third_party/abseil-cpp/absl/flags:parse", |
| ] |
| } |
| } |
| } |