blob: 0f590c65bdf61352d2695a186120cf831f47d9fb [file] [log] [blame]
kwiberg087bd342017-02-10 08:15:44 -08001# Copyright (c) 2017 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
9import("../../webrtc.gni")
10if (is_android) {
11 import("//build/config/android/config.gni")
12 import("//build/config/android/rules.gni")
13}
14
Mirko Bonadei86d053c2019-10-17 21:32:04 +020015rtc_library("audio_codecs_api") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000016 visibility = [ "*" ]
kwiberg087bd342017-02-10 08:15:44 -080017 sources = [
Karl Wiberg98900742018-03-01 12:03:49 +010018 "audio_codec_pair_id.cc",
19 "audio_codec_pair_id.h",
kwiberg087bd342017-02-10 08:15:44 -080020 "audio_decoder.cc",
21 "audio_decoder.h",
22 "audio_decoder_factory.h",
kwiberg0eacd882017-06-17 15:45:28 -070023 "audio_decoder_factory_template.h",
ossueb1fde42017-05-02 06:46:30 -070024 "audio_encoder.cc",
25 "audio_encoder.h",
26 "audio_encoder_factory.h",
kwiberg65315832017-06-16 10:42:05 -070027 "audio_encoder_factory_template.h",
kwiberg087bd342017-02-10 08:15:44 -080028 "audio_format.cc",
29 "audio_format.h",
30 ]
31 deps = [
kwiberg529662a2017-09-04 05:43:17 -070032 "..:array_view",
Sebastian Jansson540ef282018-11-21 19:18:51 +010033 "..:bitrate_allocation",
Mirko Bonadeid9708072019-01-25 20:26:48 +010034 "..:scoped_refptr",
Jonas Orelande62c2f22022-03-29 11:04:48 +020035 "../../api:field_trials_view",
Florent Castellif9c59842022-04-19 17:07:23 +020036 "../../rtc_base:buffer",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010037 "../../rtc_base:checks",
Florent Castellia30aef32022-04-19 17:47:13 +020038 "../../rtc_base:event_tracer",
Florent Castellif86f6f92022-04-05 02:54:12 +020039 "../../rtc_base:refcount",
ehmaldonadof6a861a2017-07-19 10:40:47 -070040 "../../rtc_base:rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010041 "../../rtc_base:sanitizer",
Mirko Bonadeiac194142018-10-22 17:08:37 +020042 "../../rtc_base/system:rtc_export",
Sebastian Jansson62aee932019-10-02 12:27:06 +020043 "../units:time_delta",
Mirko Bonadei2dcf3482020-06-05 14:30:41 +020044 ]
45 absl_deps = [
Karl Wiberg24744a92018-08-15 15:23:08 +020046 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov0bc58cf2018-06-21 13:32:56 +020047 "//third_party/abseil-cpp/absl/types:optional",
kwiberg087bd342017-02-10 08:15:44 -080048 ]
49}
50
Mirko Bonadei86d053c2019-10-17 21:32:04 +020051rtc_library("builtin_audio_decoder_factory") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000052 visibility = [ "*" ]
Karl Wibergbb23c832018-04-22 19:55:00 +020053 allow_poison = [ "audio_codecs" ]
kwiberg087bd342017-02-10 08:15:44 -080054 sources = [
55 "builtin_audio_decoder_factory.cc",
56 "builtin_audio_decoder_factory.h",
57 ]
58 deps = [
59 ":audio_codecs_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +010060 "..:scoped_refptr",
ehmaldonadof6a861a2017-07-19 10:40:47 -070061 "../../rtc_base:rtc_base_approved",
kwiberge5eb7242017-08-25 03:10:50 -070062 "L16:audio_decoder_L16",
63 "g711:audio_decoder_g711",
Karl Wibergeb254b42017-11-01 15:08:12 +010064 "g722:audio_decoder_g722",
65 "isac:audio_decoder_isac",
kwiberg087bd342017-02-10 08:15:44 -080066 ]
kwiberge5eb7242017-08-25 03:10:50 -070067 defines = []
68 if (rtc_include_ilbc) {
69 deps += [ "ilbc:audio_decoder_ilbc" ]
70 defines += [ "WEBRTC_USE_BUILTIN_ILBC=1" ]
71 } else {
72 defines += [ "WEBRTC_USE_BUILTIN_ILBC=0" ]
73 }
74 if (rtc_include_opus) {
Alex Loikoe5b94162019-04-08 17:19:41 +020075 deps += [
76 "opus:audio_decoder_multiopus",
77 "opus:audio_decoder_opus",
78 ]
kwiberge5eb7242017-08-25 03:10:50 -070079 defines += [ "WEBRTC_USE_BUILTIN_OPUS=1" ]
80 } else {
81 defines += [ "WEBRTC_USE_BUILTIN_OPUS=0" ]
82 }
kwiberg087bd342017-02-10 08:15:44 -080083}
ossueb1fde42017-05-02 06:46:30 -070084
Mirko Bonadei86d053c2019-10-17 21:32:04 +020085rtc_library("builtin_audio_encoder_factory") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000086 visibility = [ "*" ]
Karl Wibergbb23c832018-04-22 19:55:00 +020087 allow_poison = [ "audio_codecs" ]
ossueb1fde42017-05-02 06:46:30 -070088 sources = [
89 "builtin_audio_encoder_factory.cc",
90 "builtin_audio_encoder_factory.h",
91 ]
92 deps = [
93 ":audio_codecs_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +010094 "..:scoped_refptr",
ehmaldonadof6a861a2017-07-19 10:40:47 -070095 "../../rtc_base:rtc_base_approved",
kwiberge5eb7242017-08-25 03:10:50 -070096 "L16:audio_encoder_L16",
97 "g711:audio_encoder_g711",
Karl Wibergeb254b42017-11-01 15:08:12 +010098 "g722:audio_encoder_g722",
99 "isac:audio_encoder_isac",
ossueb1fde42017-05-02 06:46:30 -0700100 ]
kwiberge5eb7242017-08-25 03:10:50 -0700101 defines = []
102 if (rtc_include_ilbc) {
103 deps += [ "ilbc:audio_encoder_ilbc" ]
104 defines += [ "WEBRTC_USE_BUILTIN_ILBC=1" ]
105 } else {
106 defines += [ "WEBRTC_USE_BUILTIN_ILBC=0" ]
107 }
108 if (rtc_include_opus) {
Alex Loiko44c21f42019-04-25 15:09:32 +0200109 deps += [
110 "opus:audio_encoder_multiopus",
111 "opus:audio_encoder_opus",
112 ]
kwiberge5eb7242017-08-25 03:10:50 -0700113 defines += [ "WEBRTC_USE_BUILTIN_OPUS=1" ]
114 } else {
115 defines += [ "WEBRTC_USE_BUILTIN_OPUS=0" ]
116 }
ossueb1fde42017-05-02 06:46:30 -0700117}
Karl Wiberg44d7ec02019-11-26 14:00:41 +0100118
119rtc_library("opus_audio_decoder_factory") {
120 visibility = [ "*" ]
121 allow_poison = [ "audio_codecs" ]
122 sources = [
123 "opus_audio_decoder_factory.cc",
124 "opus_audio_decoder_factory.h",
125 ]
126 deps = [
127 ":audio_codecs_api",
128 "..:scoped_refptr",
129 "../../rtc_base:rtc_base_approved",
130 "opus:audio_decoder_multiopus",
131 "opus:audio_decoder_opus",
132 ]
133}
134
135rtc_library("opus_audio_encoder_factory") {
136 visibility = [ "*" ]
137 allow_poison = [ "audio_codecs" ]
138 sources = [
139 "opus_audio_encoder_factory.cc",
140 "opus_audio_encoder_factory.h",
141 ]
142 deps = [
143 ":audio_codecs_api",
144 "..:scoped_refptr",
145 "../../rtc_base:rtc_base_approved",
146 "opus:audio_encoder_multiopus",
147 "opus:audio_encoder_opus",
148 ]
149}