blob: 9d15c4cf46df82d2d8e6ec7be33e506ca385a3a3 [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") {
aleloi77ad3942016-07-04 06:33:02 -070019 sources = [
aleloi5d167d62016-08-24 02:20:54 -070020 "audio_mixer_impl.cc",
21 "audio_mixer_impl.h",
aleloi623427c2016-12-08 02:37:58 -080022 "default_output_rate_calculator.cc",
23 "default_output_rate_calculator.h",
aleloi24899e52017-02-21 05:06:29 -080024 "frame_combiner.cc",
25 "frame_combiner.h",
aleloi623427c2016-12-08 02:37:58 -080026 "output_rate_calculator.h",
aleloi77ad3942016-07-04 06:33:02 -070027 ]
28
aleloi44968092016-08-08 10:18:58 -070029 public = [
aleloi201dfe92016-10-20 05:06:39 -070030 "audio_mixer_impl.h",
aleloi24899e52017-02-21 05:06:29 -080031 "default_output_rate_calculator.h", # For creating a mixer with limiter disabled.
32 "frame_combiner.h",
aleloi44968092016-08-08 10:18:58 -070033 ]
34
Alex Loiko507e8d12018-02-27 13:51:47 +010035 configs += [ "../audio_processing:apm_debug_dump" ]
36
aleloi77ad3942016-07-04 06:33:02 -070037 deps = [
aleloi201dfe92016-10-20 05:06:39 -070038 ":audio_frame_manipulator",
aleloi70f866c2016-08-16 02:15:49 -070039 "../..:webrtc_common",
kwiberg529662a2017-09-04 05:43:17 -070040 "../../api:array_view",
Alex Loiko8396e342018-06-21 12:04:05 +020041 "../../api/audio:audio_frame_api",
Gustaf Ullberg2ae140a2018-02-16 13:43:49 +010042 "../../api/audio:audio_mixer_api",
aleloi6321b492016-12-05 01:46:09 -080043 "../../audio/utility:audio_frame_operations",
Alex Loiko507e8d12018-02-27 13:51:47 +010044 "../../common_audio",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010045 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -070046 "../../rtc_base:rtc_base_approved",
aleloi77ad3942016-07-04 06:33:02 -070047 "../../system_wrappers",
Mirko Bonadei17f48782018-09-28 08:51:10 +020048 "../../system_wrappers:metrics",
aleloi6321b492016-12-05 01:46:09 -080049 "../audio_processing",
Alex Loiko507e8d12018-02-27 13:51:47 +010050 "../audio_processing:apm_logging",
51 "../audio_processing:audio_frame_view",
Alex Loiko2bac8962018-03-27 13:38:36 +020052 "../audio_processing/agc2:fixed_digital",
aleloi201dfe92016-10-20 05:06:39 -070053 ]
54}
55
56rtc_static_library("audio_frame_manipulator") {
57 visibility = [
58 ":*",
59 "../../modules:*",
60 ]
61
62 sources = [
63 "audio_frame_manipulator.cc",
64 "audio_frame_manipulator.h",
65 ]
66
67 deps = [
Fredrik Solenbergbbf21a32018-04-12 22:44:09 +020068 "../../api/audio:audio_frame_api",
Mirko Bonadei5e849cf2017-12-05 08:02:53 +010069 "../../audio/utility:audio_frame_operations",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010070 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -070071 "../../rtc_base:rtc_base_approved",
aleloi77ad3942016-07-04 06:33:02 -070072 ]
73}
ehmaldonado36268652017-01-19 08:27:11 -080074
75if (rtc_include_tests) {
76 rtc_source_set("audio_mixer_unittests") {
ehmaldonado36268652017-01-19 08:27:11 -080077 testonly = true
kjellandere0629c02017-04-25 04:04:50 -070078
ehmaldonado36268652017-01-19 08:27:11 -080079 sources = [
80 "audio_frame_manipulator_unittest.cc",
81 "audio_mixer_impl_unittest.cc",
aleloi24899e52017-02-21 05:06:29 -080082 "frame_combiner_unittest.cc",
aleloi2c9306e2017-03-29 04:25:16 -070083 "gain_change_calculator.cc",
84 "gain_change_calculator.h",
85 "sine_wave_generator.cc",
86 "sine_wave_generator.h",
ehmaldonado36268652017-01-19 08:27:11 -080087 ]
Alex Loiko507e8d12018-02-27 13:51:47 +010088
ehmaldonado36268652017-01-19 08:27:11 -080089 deps = [
90 ":audio_frame_manipulator",
91 ":audio_mixer_impl",
kwiberg529662a2017-09-04 05:43:17 -070092 "../../api:array_view",
Fredrik Solenbergbbf21a32018-04-12 22:44:09 +020093 "../../api/audio:audio_frame_api",
Gustaf Ullberg2ae140a2018-02-16 13:43:49 +010094 "../../api/audio:audio_mixer_api",
aleloi2c9306e2017-03-29 04:25:16 -070095 "../../audio/utility:audio_frame_operations",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010096 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -070097 "../../rtc_base:rtc_base_approved",
Tommi68561562018-02-13 19:47:50 +010098 "../../rtc_base:rtc_task_queue_for_test",
ehmaldonado36268652017-01-19 08:27:11 -080099 "../../test:test_support",
ehmaldonado36268652017-01-19 08:27:11 -0800100 ]
ehmaldonado36268652017-01-19 08:27:11 -0800101 }
Alex Loiko99a2c5d2018-02-27 14:09:47 +0100102
103 rtc_executable("audio_mixer_test") {
104 testonly = true
105 sources = [
106 "audio_mixer_test.cc",
107 ]
108
109 deps = [
110 ":audio_mixer_impl",
111 "../../api/audio:audio_mixer_api",
112 "../../common_audio",
113 "../../rtc_base:rtc_base_approved",
Alex Loiko99a2c5d2018-02-27 14:09:47 +0100114 ]
115 }
ehmaldonado36268652017-01-19 08:27:11 -0800116}