blob: 0bb3ae137aeedddfd99c740f113f09b0a451c9f2 [file] [log] [blame]
aleloi77ad3942016-07-04 06:33:02 -07001# Copyright (c) 2014 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
mbonadei9aa3f0a2017-01-24 06:58:22 -08009import("../../webrtc.gni")
ehmaldonado38a21322016-09-02 04:10:34 -070010
kjellander6ceab082016-10-28 05:44:03 -070011group("audio_mixer") {
Mirko Bonadei03d6f2f2017-12-05 15:33:16 +010012 deps = [
kjellander6ceab082016-10-28 05:44:03 -070013 ":audio_frame_manipulator",
14 ":audio_mixer_impl",
15 ]
16}
17
aleloi201dfe92016-10-20 05:06:39 -070018rtc_static_library("audio_mixer_impl") {
Mirko Bonadei97c65b72018-10-05 11:19:58 +020019 visibility = [ "*" ]
aleloi77ad3942016-07-04 06:33:02 -070020 sources = [
aleloi5d167d62016-08-24 02:20:54 -070021 "audio_mixer_impl.cc",
22 "audio_mixer_impl.h",
aleloi623427c2016-12-08 02:37:58 -080023 "default_output_rate_calculator.cc",
24 "default_output_rate_calculator.h",
aleloi24899e52017-02-21 05:06:29 -080025 "frame_combiner.cc",
26 "frame_combiner.h",
aleloi623427c2016-12-08 02:37:58 -080027 "output_rate_calculator.h",
aleloi77ad3942016-07-04 06:33:02 -070028 ]
29
aleloi44968092016-08-08 10:18:58 -070030 public = [
aleloi201dfe92016-10-20 05:06:39 -070031 "audio_mixer_impl.h",
aleloi24899e52017-02-21 05:06:29 -080032 "default_output_rate_calculator.h", # For creating a mixer with limiter disabled.
33 "frame_combiner.h",
aleloi44968092016-08-08 10:18:58 -070034 ]
35
Alex Loiko507e8d12018-02-27 13:51:47 +010036 configs += [ "../audio_processing:apm_debug_dump" ]
37
aleloi77ad3942016-07-04 06:33:02 -070038 deps = [
aleloi201dfe92016-10-20 05:06:39 -070039 ":audio_frame_manipulator",
aleloi70f866c2016-08-16 02:15:49 -070040 "../..:webrtc_common",
kwiberg529662a2017-09-04 05:43:17 -070041 "../../api:array_view",
Alex Loiko8396e342018-06-21 12:04:05 +020042 "../../api/audio:audio_frame_api",
Gustaf Ullberg2ae140a2018-02-16 13:43:49 +010043 "../../api/audio:audio_mixer_api",
aleloi6321b492016-12-05 01:46:09 -080044 "../../audio/utility:audio_frame_operations",
Alex Loiko507e8d12018-02-27 13:51:47 +010045 "../../common_audio",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010046 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -070047 "../../rtc_base:rtc_base_approved",
aleloi77ad3942016-07-04 06:33:02 -070048 "../../system_wrappers",
Mirko Bonadei17f48782018-09-28 08:51:10 +020049 "../../system_wrappers:metrics",
aleloi6321b492016-12-05 01:46:09 -080050 "../audio_processing",
Alex Loiko507e8d12018-02-27 13:51:47 +010051 "../audio_processing:apm_logging",
52 "../audio_processing:audio_frame_view",
Alex Loiko2bac8962018-03-27 13:38:36 +020053 "../audio_processing/agc2:fixed_digital",
aleloi201dfe92016-10-20 05:06:39 -070054 ]
55}
56
57rtc_static_library("audio_frame_manipulator") {
58 visibility = [
59 ":*",
60 "../../modules:*",
61 ]
62
63 sources = [
64 "audio_frame_manipulator.cc",
65 "audio_frame_manipulator.h",
66 ]
67
68 deps = [
Fredrik Solenbergbbf21a32018-04-12 22:44:09 +020069 "../../api/audio:audio_frame_api",
Mirko Bonadei5e849cf2017-12-05 08:02:53 +010070 "../../audio/utility:audio_frame_operations",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010071 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -070072 "../../rtc_base:rtc_base_approved",
aleloi77ad3942016-07-04 06:33:02 -070073 ]
74}
ehmaldonado36268652017-01-19 08:27:11 -080075
76if (rtc_include_tests) {
77 rtc_source_set("audio_mixer_unittests") {
ehmaldonado36268652017-01-19 08:27:11 -080078 testonly = true
kjellandere0629c02017-04-25 04:04:50 -070079
ehmaldonado36268652017-01-19 08:27:11 -080080 sources = [
81 "audio_frame_manipulator_unittest.cc",
82 "audio_mixer_impl_unittest.cc",
aleloi24899e52017-02-21 05:06:29 -080083 "frame_combiner_unittest.cc",
aleloi2c9306e2017-03-29 04:25:16 -070084 "gain_change_calculator.cc",
85 "gain_change_calculator.h",
86 "sine_wave_generator.cc",
87 "sine_wave_generator.h",
ehmaldonado36268652017-01-19 08:27:11 -080088 ]
Alex Loiko507e8d12018-02-27 13:51:47 +010089
ehmaldonado36268652017-01-19 08:27:11 -080090 deps = [
91 ":audio_frame_manipulator",
92 ":audio_mixer_impl",
kwiberg529662a2017-09-04 05:43:17 -070093 "../../api:array_view",
Fredrik Solenbergbbf21a32018-04-12 22:44:09 +020094 "../../api/audio:audio_frame_api",
Gustaf Ullberg2ae140a2018-02-16 13:43:49 +010095 "../../api/audio:audio_mixer_api",
aleloi2c9306e2017-03-29 04:25:16 -070096 "../../audio/utility:audio_frame_operations",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010097 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -070098 "../../rtc_base:rtc_base_approved",
Tommi68561562018-02-13 19:47:50 +010099 "../../rtc_base:rtc_task_queue_for_test",
ehmaldonado36268652017-01-19 08:27:11 -0800100 "../../test:test_support",
ehmaldonado36268652017-01-19 08:27:11 -0800101 ]
ehmaldonado36268652017-01-19 08:27:11 -0800102 }
Alex Loiko99a2c5d2018-02-27 14:09:47 +0100103
104 rtc_executable("audio_mixer_test") {
105 testonly = true
106 sources = [
107 "audio_mixer_test.cc",
108 ]
109
110 deps = [
111 ":audio_mixer_impl",
112 "../../api/audio:audio_mixer_api",
113 "../../common_audio",
114 "../../rtc_base:rtc_base_approved",
Alex Loiko99a2c5d2018-02-27 14:09:47 +0100115 ]
116 }
ehmaldonado36268652017-01-19 08:27:11 -0800117}