blob: 2530e5ab4de50369c4428ec20e4742bd6b83fb10 [file] [log] [blame]
kjellanderc76dc952016-06-03 10:09:321# Copyright (c) 2016 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("//build/config/linux/pkg_config.gni")
philipel2a2f3ec2022-05-24 08:32:3210import("//third_party/libaom/options.gni")
mbonadei9aa3f0a2017-01-24 14:58:2211import("../webrtc.gni")
kjellanderc76dc952016-06-03 10:09:3212
13group("media") {
Dan Minor9c686132018-01-15 15:20:0014 deps = []
15 if (!build_with_mozilla) {
16 deps += [
17 ":rtc_media",
18 ":rtc_media_base",
19 ]
20 }
kjellanderc76dc952016-06-03 10:09:3221}
22
23config("rtc_media_defines_config") {
Fredrik Solenberge1dcce22019-02-05 11:43:0324 defines = [ "HAVE_WEBRTC_VIDEO" ]
kjellanderc76dc952016-06-03 10:09:3225}
26
Niels Möller6daa2782018-01-23 09:37:4227rtc_source_set("rtc_media_config") {
28 visibility = [ "*" ]
Mirko Bonadeiccbe95f2020-01-21 11:10:1029 sources = [ "base/media_config.h" ]
Niels Möller6daa2782018-01-23 09:37:4230}
31
Johannes Kronc3fcee72021-04-19 07:09:2632rtc_library("rtc_sdp_video_format_utils") {
Johannes Kronc8f31342019-12-19 14:05:2033 visibility = [ "*" ]
34 sources = [
Johannes Kronc3fcee72021-04-19 07:09:2635 "base/sdp_video_format_utils.cc",
36 "base/sdp_video_format_utils.h",
Johannes Kronc8f31342019-12-19 14:05:2037 ]
38
39 deps = [
40 "../api/video_codecs:video_codecs_api",
Johannes Kronc3fcee72021-04-19 07:09:2641 "../rtc_base:checks",
Johannes Kronc8f31342019-12-19 14:05:2042 "../rtc_base:stringutils",
Johannes Kronc8f31342019-12-19 14:05:2043 ]
Mirko Bonadei2dcf3482020-06-05 12:30:4144 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Johannes Kronc8f31342019-12-19 14:05:2045}
46
Mirko Bonadei86d053c2019-10-17 19:32:0447rtc_library("rtc_media_base") {
Per Kjellandera7f2d842018-01-10 15:54:5348 visibility = [ "*" ]
kjellanderc76dc952016-06-03 10:09:3249 defines = []
50 libs = []
Patrik Höglunda8005cf2017-12-13 15:05:4251 deps = [
Harald Alvestrand794d5992022-12-16 09:54:5752 ":codec",
53 ":media_channel",
54 ":media_channel_impl",
55 ":rid_description",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2456 ":rtc_media_config",
Harald Alvestrand794d5992022-12-16 09:54:5757 ":rtp_utils",
58 ":stream_params",
Yves Gerey3e707812018-11-28 15:47:4959 "../api:array_view",
Niels Möllera6fe2612018-01-19 10:28:5460 "../api:audio_options_api",
Harald Alvestrand50454ef2022-12-15 16:49:1361 "../api:call_api",
Jonas Orelande62c2f22022-03-29 09:04:4862 "../api:field_trials_view",
Marina Cioceae77912b2020-02-27 15:16:5563 "../api:frame_transformer_interface",
Niels Möllere942b142019-09-17 12:30:4164 "../api:media_stream_interface",
Mirko Bonadeifcfeefe2019-09-10 08:51:2365 "../api:rtc_error",
Niels Möller6dcd4dc2019-08-26 08:45:2866 "../api:rtp_parameters",
Florent Castelliacabb362022-10-18 15:05:1667 "../api:rtp_sender_interface",
Mirko Bonadeid9708072019-01-25 19:26:4868 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:2469 "../api:sequence_checker",
Harald Alvestrandc0d44d92022-12-13 12:57:2470 "../api:transport_api",
Olga Sharonova09ceed22020-09-30 16:27:3971 "../api/audio:audio_frame_processor",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2472 "../api/audio_codecs:audio_codecs_api",
Mirko Bonadeieaaaf412019-09-13 12:42:1573 "../api/crypto:frame_decryptor_interface",
74 "../api/crypto:frame_encryptor_interface",
75 "../api/crypto:options",
Harald Alvestrandc0d44d92022-12-13 12:57:2476 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:4577 "../api/task_queue:pending_task_safety_flag",
Florent Castellid95b1492021-05-10 09:29:5678 "../api/transport:datagram_transport_interface",
Patrik Höglund56d94522019-11-18 14:53:3279 "../api/transport:stun_types",
Niels Möllera8370302019-09-02 13:16:4980 "../api/transport/rtp:rtp_source",
Ivo Creusen2562cf02021-09-03 14:51:2281 "../api/units:time_delta",
Harald Alvestrand50454ef2022-12-15 16:49:1382 "../api/video:recordable_encoded_frame",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2483 "../api/video:video_bitrate_allocation",
Jonas Orelanda3aa9bd2019-04-17 05:38:4084 "../api/video:video_bitrate_allocator_factory",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2485 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:3886 "../api/video:video_rtp_headers",
Evan Shrubsole9b235cd2022-12-06 10:09:1087 "../api/video_codecs:scalability_mode",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2488 "../api/video_codecs:video_codecs_api",
89 "../call:call_interfaces",
Markus Handell32565f62019-12-04 09:58:1790 "../call:video_stream_api",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2491 "../common_video",
Olga Sharonova09ceed22020-09-30 16:27:3992 "../modules/async_audio_processing",
Fredrik Hernqvistefbe7532023-01-13 15:42:3693 "../modules/audio_device",
Danil Chapovalov6fe6b5a2019-04-10 10:50:2494 "../modules/audio_processing:audio_processing_statistics",
Henrik Boström87e3f9d2019-05-27 08:44:2495 "../modules/rtp_rtcp:rtp_rtcp_format",
Florent Castellia138c6c2023-01-04 11:01:0996 "../rtc_base:async_packet_socket",
Florent Castellif9c59842022-04-19 15:07:2397 "../rtc_base:buffer",
Florent Castellia876a922022-04-19 15:18:3698 "../rtc_base:byte_order",
Patrik Höglunda8005cf2017-12-13 15:05:4299 "../rtc_base:checks",
Florent Castellied4aadc2022-04-19 15:40:46100 "../rtc_base:copy_on_write_buffer",
Florent Castellia138c6c2023-01-04 11:01:09101 "../rtc_base:dscp",
Florent Castelli0af55ba2022-04-04 13:06:30102 "../rtc_base:logging",
Florent Castelli4467ad72022-04-04 13:18:46103 "../rtc_base:macromagic",
Florent Castellia138c6c2023-01-04 11:01:09104 "../rtc_base:network_route",
Tommi8d2c5a82018-03-19 10:12:48105 "../rtc_base:rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 15:05:42106 "../rtc_base:sanitizer",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01107 "../rtc_base:socket",
Patrik Höglund3e113432017-12-15 13:40:10108 "../rtc_base:stringutils",
Florent Castellidd837e22022-04-04 15:16:15109 "../rtc_base:timeutils",
Florent Castellia138c6c2023-01-04 11:01:09110 "../rtc_base:unique_id_generator",
Harald Alvestrandc0d44d92022-12-13 12:57:24111 "../rtc_base/network:sent_packet",
Markus Handell1e257ca2020-07-07 13:43:11112 "../rtc_base/synchronization:mutex",
Niels Möllere8e4dc42019-06-11 12:04:16113 "../rtc_base/system:file_wrapper",
Tommi816134a2021-05-24 14:54:41114 "../rtc_base/system:no_unique_address",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24115 "../rtc_base/system:rtc_export",
116 "../rtc_base/third_party/sigslot",
Åsa Persson3f7e0ed2019-10-18 13:03:13117 "../system_wrappers:field_trial",
Jonas Oreland6c2dae22022-09-29 08:28:24118 "../video/config:encoder_config",
Mirko Bonadei2dcf3482020-06-05 12:30:41119 ]
120 absl_deps = [
Danil Chapovalov6fe6b5a2019-04-10 10:50:24121 "//third_party/abseil-cpp/absl/algorithm:container",
Byoungchan Leea1a7c632022-07-05 12:06:28122 "//third_party/abseil-cpp/absl/container:inlined_vector",
Harald Alvestrandc0d44d92022-12-13 12:57:24123 "//third_party/abseil-cpp/absl/functional:any_invocable",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24124 "//third_party/abseil-cpp/absl/strings",
125 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglunda8005cf2017-12-13 15:05:42126 ]
kjellanderc76dc952016-06-03 10:09:32127 sources = [
Steve Anton10542f22019-01-11 17:11:00128 "base/adapted_video_track_source.cc",
129 "base/adapted_video_track_source.h",
130 "base/audio_source.h",
Steve Anton10542f22019-01-11 17:11:00131 "base/media_engine.cc",
132 "base/media_engine.h",
Steve Anton10542f22019-01-11 17:11:00133 "base/video_adapter.cc",
134 "base/video_adapter.h",
135 "base/video_broadcaster.cc",
136 "base/video_broadcaster.h",
Steve Anton10542f22019-01-11 17:11:00137 "base/video_common.cc",
138 "base/video_common.h",
139 "base/video_source_base.cc",
140 "base/video_source_base.h",
magjed0928a3c2016-11-25 08:40:18141 ]
magjed0928a3c2016-11-25 08:40:18142}
143
Harald Alvestrand794d5992022-12-16 09:54:57144rtc_library("media_channel_impl") {
145 sources = [
146 "base/media_channel_impl.cc",
147 "base/media_channel_impl.h",
148 ]
149 deps = [
150 ":codec",
151 ":media_channel",
152 ":rtp_utils",
153 ":stream_params",
154 "../api:audio_options_api",
155 "../api:call_api",
156 "../api:frame_transformer_interface",
157 "../api:media_stream_interface",
158 "../api:rtc_error",
Harald Alvestrand13897e62023-05-22 12:49:05159 "../api:rtp_headers",
Harald Alvestrand794d5992022-12-16 09:54:57160 "../api:rtp_parameters",
161 "../api:rtp_sender_interface",
162 "../api:scoped_refptr",
163 "../api:sequence_checker",
164 "../api:transport_api",
165 "../api/crypto:frame_decryptor_interface",
166 "../api/crypto:frame_encryptor_interface",
167 "../api/task_queue",
168 "../api/task_queue:pending_task_safety_flag",
169 "../api/transport/rtp:rtp_source",
170 "../api/units:time_delta",
171 "../api/video:recordable_encoded_frame",
172 "../api/video:video_frame",
173 "../api/video:video_rtp_headers",
174 "../api/video_codecs:scalability_mode",
175 "../api/video_codecs:video_codecs_api",
176 "../common_video",
177 "../modules/rtp_rtcp:rtp_rtcp_format",
Florent Castellia138c6c2023-01-04 11:01:09178 "../rtc_base:async_packet_socket",
Harald Alvestrand794d5992022-12-16 09:54:57179 "../rtc_base:checks",
180 "../rtc_base:copy_on_write_buffer",
Florent Castellia138c6c2023-01-04 11:01:09181 "../rtc_base:dscp",
Harald Alvestrand794d5992022-12-16 09:54:57182 "../rtc_base:logging",
183 "../rtc_base:macromagic",
Florent Castellia138c6c2023-01-04 11:01:09184 "../rtc_base:network_route",
Harald Alvestrand794d5992022-12-16 09:54:57185 "../rtc_base:socket",
186 "../rtc_base/network:sent_packet",
187 ]
188 absl_deps = [
189 "//third_party/abseil-cpp/absl/functional:any_invocable",
190 "//third_party/abseil-cpp/absl/strings",
191 "//third_party/abseil-cpp/absl/types:optional",
192 ]
193}
194
195rtc_source_set("media_channel") {
196 sources = [ "base/media_channel.h" ]
197 deps = [
198 ":codec",
Harald Alvestrand794d5992022-12-16 09:54:57199 ":media_constants",
200 ":rtp_utils",
201 ":stream_params",
202 "../api:audio_options_api",
203 "../api:call_api",
204 "../api:frame_transformer_interface",
205 "../api:media_stream_interface",
206 "../api:rtc_error",
Harald Alvestrand97c96232023-05-30 04:04:07207 "../api:rtp_headers",
Harald Alvestrand794d5992022-12-16 09:54:57208 "../api:rtp_parameters",
209 "../api:rtp_sender_interface",
Harald Alvestrand97c96232023-05-30 04:04:07210 "../api:scoped_refptr",
Harald Alvestrand794d5992022-12-16 09:54:57211 "../api/audio_codecs:audio_codecs_api",
212 "../api/crypto:frame_decryptor_interface",
213 "../api/crypto:frame_encryptor_interface",
214 "../api/task_queue:pending_task_safety_flag",
215 "../api/transport:datagram_transport_interface",
216 "../api/transport/rtp:rtp_source",
217 "../api/units:time_delta",
Danil Chapovalov54e95bc2023-06-02 12:54:45218 "../api/units:timestamp",
Harald Alvestrand97c96232023-05-30 04:04:07219 "../api/video:recordable_encoded_frame",
Harald Alvestrand794d5992022-12-16 09:54:57220 "../api/video:video_frame",
221 "../api/video:video_rtp_headers",
222 "../api/video_codecs:scalability_mode",
223 "../api/video_codecs:video_codecs_api",
224 "../call:video_stream_api",
225 "../common_video",
226 "../modules/audio_processing:audio_processing_statistics",
227 "../modules/rtp_rtcp:rtp_rtcp_format",
Florent Castellia138c6c2023-01-04 11:01:09228 "../rtc_base:async_packet_socket",
Harald Alvestrand794d5992022-12-16 09:54:57229 "../rtc_base:buffer",
Harald Alvestrand97c96232023-05-30 04:04:07230 "../rtc_base:checks",
Harald Alvestrand794d5992022-12-16 09:54:57231 "../rtc_base:copy_on_write_buffer",
Florent Castellia138c6c2023-01-04 11:01:09232 "../rtc_base:dscp",
Harald Alvestrand794d5992022-12-16 09:54:57233 "../rtc_base:logging",
Florent Castellia138c6c2023-01-04 11:01:09234 "../rtc_base:network_route",
Harald Alvestrand794d5992022-12-16 09:54:57235 "../rtc_base:socket",
236 "../rtc_base:stringutils",
Harald Alvestrand97c96232023-05-30 04:04:07237 "../rtc_base/network:sent_packet",
Harald Alvestrand794d5992022-12-16 09:54:57238 "../video/config:encoder_config",
239 ]
Harald Alvestrand97c96232023-05-30 04:04:07240 absl_deps = [
241 "//third_party/abseil-cpp/absl/functional:any_invocable",
242 "//third_party/abseil-cpp/absl/strings",
243 "//third_party/abseil-cpp/absl/types:optional",
244 ]
Harald Alvestrand794d5992022-12-16 09:54:57245}
246
Harald Alvestrand794d5992022-12-16 09:54:57247rtc_library("codec") {
248 sources = [
249 "base/codec.cc",
250 "base/codec.h",
251 ]
252 deps = [
253 ":media_constants",
Harald Alvestrand794d5992022-12-16 09:54:57254 "../api:rtp_parameters",
Florent Castelliee97e6a2023-06-20 17:12:57255 "../api/audio_codecs:audio_codecs_api",
Harald Alvestrand794d5992022-12-16 09:54:57256 "../api/video_codecs:video_codecs_api",
257 "../rtc_base:checks",
258 "../rtc_base:logging",
259 "../rtc_base:stringutils",
260 "../rtc_base/system:rtc_export",
261 ]
262 absl_deps = [
263 "//third_party/abseil-cpp/absl/algorithm:container",
264 "//third_party/abseil-cpp/absl/container:inlined_vector",
265 "//third_party/abseil-cpp/absl/strings",
266 "//third_party/abseil-cpp/absl/types:optional",
267 ]
268}
269
270rtc_library("rtp_utils") {
271 sources = [
272 "base/rtp_utils.cc",
273 "base/rtp_utils.h",
274 ]
275 deps = [
276 ":turn_utils",
277 "../api:array_view",
278 "../modules/rtp_rtcp:rtp_rtcp_format",
Florent Castellia138c6c2023-01-04 11:01:09279 "../rtc_base:async_packet_socket",
Harald Alvestrand794d5992022-12-16 09:54:57280 "../rtc_base:byte_order",
281 "../rtc_base:checks",
Florent Castellia138c6c2023-01-04 11:01:09282 "../rtc_base:ssl",
Harald Alvestrand794d5992022-12-16 09:54:57283 "../rtc_base/system:rtc_export",
284 ]
285 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
286}
287
288rtc_library("stream_params") {
289 sources = [
290 "base/stream_params.cc",
291 "base/stream_params.h",
292 ]
293 deps = [
294 ":rid_description",
295 "../api:array_view",
Harald Alvestrand794d5992022-12-16 09:54:57296 "../rtc_base:stringutils",
Florent Castellia138c6c2023-01-04 11:01:09297 "../rtc_base:unique_id_generator",
Harald Alvestrand794d5992022-12-16 09:54:57298 ]
299 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
300}
301
302rtc_library("media_constants") {
303 sources = [
304 "base/media_constants.cc",
305 "base/media_constants.h",
306 ]
307 deps = [ "../rtc_base/system:rtc_export" ]
308}
309
310rtc_library("turn_utils") {
311 sources = [
312 "base/turn_utils.cc",
313 "base/turn_utils.h",
314 ]
315 deps = [
316 "../api/transport:stun_types",
317 "../rtc_base:byte_order",
318 "../rtc_base/system:rtc_export",
319 ]
320}
321
322rtc_library("rid_description") {
323 sources = [
324 "base/rid_description.cc",
325 "base/rid_description.h",
326 ]
327 deps = []
328}
329
Mirko Bonadei86d053c2019-10-17 19:32:04330rtc_library("rtc_simulcast_encoder_adapter") {
Jonathan Yu9a5da492018-10-19 07:51:18331 visibility = [ "*" ]
332 defines = []
333 libs = []
334 sources = [
335 "engine/simulcast_encoder_adapter.cc",
336 "engine/simulcast_encoder_adapter.h",
337 ]
338 deps = [
Rasmus Brandt5cad55b2019-12-19 08:47:11339 ":rtc_media_base",
Elad Alon8f01c4e2019-06-28 13:19:43340 "../api:fec_controller_api",
Jeremy Leconte1a8d5292023-10-10 13:21:29341 "../api:field_trials_view",
Mirko Bonadeid9708072019-01-25 19:26:48342 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24343 "../api:sequence_checker",
Jeremy Leconte1a8d5292023-10-10 13:21:29344 "../api/transport:field_trial_based_config",
Erik Språngf93eda12019-01-16 16:10:57345 "../api/video:video_codec_constants",
Yves Gerey3e707812018-11-28 15:47:49346 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38347 "../api/video:video_rtp_headers",
Erik Språngf4e0c292019-10-01 16:50:03348 "../api/video_codecs:rtc_software_fallback_wrappers",
Jonathan Yu9a5da492018-10-19 07:51:18349 "../api/video_codecs:video_codecs_api",
Markus Handell32565f62019-12-04 09:58:17350 "../call:video_stream_api",
Åsa Persson59947d22021-08-26 10:04:27351 "../common_video",
Sergey Silkinb6ef1a72023-10-23 15:11:21352 "../media:media_constants",
Jonathan Yu9a5da492018-10-19 07:51:18353 "../modules/video_coding:video_codec_interface",
354 "../modules/video_coding:video_coding_utility",
355 "../rtc_base:checks",
Florent Castelli0af55ba2022-04-04 13:06:30356 "../rtc_base:logging",
Åsa Perssona7e34d32021-01-20 14:36:13357 "../rtc_base/experiments:encoder_info_settings",
Erik Språng7f24fb92019-02-13 09:49:37358 "../rtc_base/experiments:rate_control_settings",
Mirko Bonadei20e4c802020-11-23 10:07:42359 "../rtc_base/system:no_unique_address",
Mirko Bonadei66e76792019-04-02 09:33:59360 "../rtc_base/system:rtc_export",
Jonathan Yu9a5da492018-10-19 07:51:18361 "../system_wrappers",
Jonathan Yu9a5da492018-10-19 07:51:18362 ]
Erik Språng5ab6a8c2021-01-14 15:37:26363 absl_deps = [
364 "//third_party/abseil-cpp/absl/algorithm:container",
365 "//third_party/abseil-cpp/absl/types:optional",
366 ]
Jonathan Yu9a5da492018-10-19 07:51:18367}
368
Mirko Bonadei86d053c2019-10-17 19:32:04369rtc_library("rtc_internal_video_codecs") {
Per Kjellandera0f5f602018-01-10 15:57:32370 visibility = [ "*" ]
Karl Wiberg7ba22b82018-04-27 02:31:53371 allow_poison = [ "software_video_codecs" ]
Anders Carlssona114c882018-01-04 14:10:22372 defines = []
373 libs = []
Patrik Höglund99175c62018-01-08 10:05:10374 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57375 ":codec",
376 ":media_constants",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24377 ":rtc_media_base",
Jonathan Yu9a5da492018-10-19 07:51:18378 ":rtc_simulcast_encoder_adapter",
Danil Chapovalov46364192024-02-09 11:43:15379 "../api/environment",
Yves Gerey3e707812018-11-28 15:47:49380 "../api/video:encoded_image",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24381 "../api/video:video_bitrate_allocation",
Yves Gerey3e707812018-11-28 15:47:49382 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38383 "../api/video:video_rtp_headers",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24384 "../api/video_codecs:rtc_software_fallback_wrappers",
385 "../api/video_codecs:video_codecs_api",
philipel2a2f3ec2022-05-24 08:32:32386 "../api/video_codecs:video_encoder_factory_template",
387 "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
388 "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
389 "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24390 "../call:call_interfaces",
391 "../call:video_stream_api",
Patrik Höglund99175c62018-01-08 10:05:10392 "../modules/video_coding:video_codec_interface",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24393 "../modules/video_coding:webrtc_h264",
394 "../modules/video_coding:webrtc_multiplex",
395 "../modules/video_coding:webrtc_vp8",
396 "../modules/video_coding:webrtc_vp9",
397 "../rtc_base:checks",
Florent Castelli0af55ba2022-04-04 13:06:30398 "../rtc_base:logging",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24399 "../rtc_base/system:rtc_export",
philipelb09d8722021-11-23 10:00:24400 "../system_wrappers:field_trial",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24401 "../test:fake_video_codecs",
Patrik Höglund99175c62018-01-08 10:05:10402 ]
philipel2a2f3ec2022-05-24 08:32:32403
404 if (enable_libaom) {
405 defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ]
406 deps += [
407 "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
408 ]
409 }
410
philipelb09d8722021-11-23 10:00:24411 if (rtc_include_dav1d_in_internal_decoder_factory) {
412 deps += [ "../modules/video_coding/codecs/av1:dav1d_decoder" ]
413 }
Johannes Kronb26863e2021-09-15 10:56:04414 absl_deps = [
415 "//third_party/abseil-cpp/absl/strings",
416 "//third_party/abseil-cpp/absl/types:optional",
417 ]
Anders Carlssona114c882018-01-04 14:10:22418 sources = [
Emircan Uysaler7c03bdc2019-01-16 20:07:56419 "engine/fake_video_codec_factory.cc",
420 "engine/fake_video_codec_factory.h",
Steve Anton10542f22019-01-11 17:11:00421 "engine/internal_decoder_factory.cc",
422 "engine/internal_decoder_factory.h",
423 "engine/internal_encoder_factory.cc",
424 "engine/internal_encoder_factory.h",
425 "engine/multiplex_codec_factory.cc",
426 "engine/multiplex_codec_factory.h",
Anders Carlssona114c882018-01-04 14:10:22427 ]
Anders Carlssona114c882018-01-04 14:10:22428}
429
Mirko Bonadei86d053c2019-10-17 19:32:04430rtc_library("rtc_audio_video") {
Per Kjellandera7f2d842018-01-10 15:54:53431 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:23432 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
Anders Carlssona114c882018-01-04 14:10:22433 defines = []
434 libs = []
435 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57436 ":codec",
437 ":media_channel",
Harald Alvestrandd3ac3b62022-12-16 14:46:31438 ":media_channel_impl",
Harald Alvestrand794d5992022-12-16 09:54:57439 ":media_constants",
Harald Alvestrand13897e62023-05-22 12:49:05440 ":rid_description",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24441 ":rtc_media_base",
Harald Alvestrand13897e62023-05-22 12:49:05442 ":rtc_media_config",
Harald Alvestrand794d5992022-12-16 09:54:57443 ":rtp_utils",
444 ":stream_params",
Harald Alvestrandb4c96d62022-10-26 13:51:35445 "../api:array_view",
Harald Alvestrand13897e62023-05-22 12:49:05446 "../api:audio_options_api",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24447 "../api:call_api",
Jonas Orelande62c2f22022-03-29 09:04:48448 "../api:field_trials_view",
Harald Alvestrand13897e62023-05-22 12:49:05449 "../api:frame_transformer_interface",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24450 "../api:libjingle_peerconnection_api",
Harald Alvestrand13897e62023-05-22 12:49:05451 "../api:make_ref_counted",
Florent Castellib05ca4b2020-03-05 12:39:55452 "../api:media_stream_interface",
Harald Alvestrand13897e62023-05-22 12:49:05453 "../api:priority",
454 "../api:rtc_error",
455 "../api:rtp_headers",
Niels Möller6dcd4dc2019-08-26 08:45:28456 "../api:rtp_parameters",
Harald Alvestrand13897e62023-05-22 12:49:05457 "../api:rtp_transceiver_direction",
Mirko Bonadeid9708072019-01-25 19:26:48458 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24459 "../api:sequence_checker",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24460 "../api:transport_api",
Harald Alvestrand13897e62023-05-22 12:49:05461 "../api/audio:audio_frame_api",
Olga Sharonova09ceed22020-09-30 16:27:39462 "../api/audio:audio_frame_processor",
Danil Chapovalov85b8ce22019-05-31 13:51:04463 "../api/audio:audio_mixer_api",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24464 "../api/audio_codecs:audio_codecs_api",
Harald Alvestrand13897e62023-05-22 12:49:05465 "../api/crypto:frame_decryptor_interface",
466 "../api/crypto:frame_encryptor_interface",
467 "../api/crypto:options",
Danil Chapovalov4c7112a2019-03-27 17:51:45468 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:45469 "../api/task_queue:pending_task_safety_flag",
Mirko Bonadei738bfa72019-09-17 12:47:38470 "../api/transport:bitrate_settings",
Erik Språngceb44952020-09-22 09:36:35471 "../api/transport:field_trial_based_config",
Niels Möllera8370302019-09-02 13:16:49472 "../api/transport/rtp:rtp_source",
Elad Alon80f53b72019-10-11 14:19:43473 "../api/units:data_rate",
Harald Alvestrand13897e62023-05-22 12:49:05474 "../api/units:time_delta",
475 "../api/units:timestamp",
476 "../api/video:recordable_encoded_frame",
477 "../api/video:resolution",
Yves Gerey3e707812018-11-28 15:47:49478 "../api/video:video_bitrate_allocation",
Jiawei Ouc2ebe212018-11-08 18:02:56479 "../api/video:video_bitrate_allocator_factory",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24480 "../api/video:video_codec_constants",
481 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38482 "../api/video:video_rtp_headers",
Harald Alvestrand13897e62023-05-22 12:49:05483 "../api/video:video_stream_encoder",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24484 "../api/video_codecs:rtc_software_fallback_wrappers",
Harald Alvestrand13897e62023-05-22 12:49:05485 "../api/video_codecs:scalability_mode",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24486 "../api/video_codecs:video_codecs_api",
487 "../call",
488 "../call:call_interfaces",
Harald Alvestrand13897e62023-05-22 12:49:05489 "../call:receive_stream_interface",
490 "../call:rtp_interfaces",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24491 "../call:video_stream_api",
492 "../common_video",
Harald Alvestrand13897e62023-05-22 12:49:05493 "../common_video:frame_counts",
Olga Sharonova09ceed22020-09-30 16:27:39494 "../modules/async_audio_processing:async_audio_processing",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24495 "../modules/audio_device",
496 "../modules/audio_device:audio_device_impl",
497 "../modules/audio_mixer:audio_mixer_impl",
Alessio Bazzicab768e882018-11-07 14:29:54498 "../modules/audio_processing:api",
Harald Alvestrand13897e62023-05-22 12:49:05499 "../modules/audio_processing:audio_processing_statistics",
Artem Titov94b57c02019-03-21 12:35:10500 "../modules/audio_processing/aec_dump",
Sam Zackrisson41478c72019-10-15 08:10:26501 "../modules/audio_processing/agc:gain_control_interface",
Philipp Hancke17e8a5c2023-06-21 11:53:41502 "../modules/rtp_rtcp",
Danil Chapovalov99a71f42021-07-19 13:20:46503 "../modules/rtp_rtcp:rtp_rtcp_format",
Artem Titov94b57c02019-03-21 12:35:10504 "../modules/video_coding",
Patrik Höglunda97af1f2018-01-16 09:11:40505 "../modules/video_coding:video_codec_interface",
Sergio Garcia Murillo43800f92018-06-21 14:16:38506 "../modules/video_coding:video_coding_utility",
Erik Språngb6ff84b2022-07-05 11:02:28507 "../modules/video_coding:webrtc_vp9_helpers",
Niels Möller79d566b2022-04-29 09:03:13508 "../modules/video_coding/svc:scalability_mode_util",
Jonas Olssonabbe8412018-04-03 11:40:05509 "../rtc_base:audio_format_to_string",
Florent Castellif9c59842022-04-19 15:07:23510 "../rtc_base:buffer",
Florent Castellia876a922022-04-19 15:18:36511 "../rtc_base:byte_order",
Anders Carlssona114c882018-01-04 14:10:22512 "../rtc_base:checks",
Florent Castellied4aadc2022-04-19 15:40:46513 "../rtc_base:copy_on_write_buffer",
Harald Alvestrand13897e62023-05-22 12:49:05514 "../rtc_base:dscp",
Florent Castellia30aef32022-04-19 15:47:13515 "../rtc_base:event_tracer",
Florent Castelli0af55ba2022-04-04 13:06:30516 "../rtc_base:logging",
Florent Castelli4467ad72022-04-04 13:18:46517 "../rtc_base:macromagic",
Florent Castellia138c6c2023-01-04 11:01:09518 "../rtc_base:network_route",
Florent Castellif4db3512022-04-14 11:38:05519 "../rtc_base:race_checker",
Florent Castellie10a9f62022-04-04 15:04:37520 "../rtc_base:safe_conversions",
Harald Alvestrand13897e62023-05-22 12:49:05521 "../rtc_base:socket",
Florent Castellia138c6c2023-01-04 11:01:09522 "../rtc_base:ssl",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24523 "../rtc_base:stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01524 "../rtc_base:threading",
Florent Castellidd837e22022-04-04 15:16:15525 "../rtc_base:timeutils",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24526 "../rtc_base/experiments:field_trial_parser",
Elad Alon80f53b72019-10-11 14:19:43527 "../rtc_base/experiments:min_video_bitrate_experiment",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24528 "../rtc_base/experiments:normalize_simulcast_size_experiment",
Rasmus Brandt2b9317a2019-10-30 12:01:46529 "../rtc_base/experiments:rate_control_settings",
Harald Alvestrand13897e62023-05-22 12:49:05530 "../rtc_base/network:sent_packet",
Markus Handell1e257ca2020-07-07 13:43:11531 "../rtc_base/synchronization:mutex",
Harald Alvestrand13897e62023-05-22 12:49:05532 "../rtc_base/system:file_wrapper",
Tommi13b9f812022-08-16 08:23:47533 "../rtc_base/system:no_unique_address",
Mirko Bonadei276827c2018-10-16 12:13:50534 "../rtc_base/system:rtc_export",
Artem Titova76af0c2018-07-23 15:38:12535 "../rtc_base/third_party/base64",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24536 "../system_wrappers",
Mirko Bonadei17f48782018-09-28 06:51:10537 "../system_wrappers:metrics",
Harald Alvestrand13897e62023-05-22 12:49:05538 "../video/config:encoder_config",
Mirko Bonadei2dcf3482020-06-05 12:30:41539 ]
540 absl_deps = [
Harald Alvestrand13897e62023-05-22 12:49:05541 "//third_party/abseil-cpp/absl/algorithm",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24542 "//third_party/abseil-cpp/absl/algorithm:container",
Harald Alvestrand13897e62023-05-22 12:49:05543 "//third_party/abseil-cpp/absl/container:inlined_vector",
544 "//third_party/abseil-cpp/absl/functional:any_invocable",
Per K89ca2992023-01-10 13:28:25545 "//third_party/abseil-cpp/absl/functional:bind_front",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24546 "//third_party/abseil-cpp/absl/strings",
547 "//third_party/abseil-cpp/absl/types:optional",
Anders Carlssona114c882018-01-04 14:10:22548 ]
549
550 sources = [
551 "engine/adm_helpers.cc",
552 "engine/adm_helpers.h",
Steve Anton10542f22019-01-11 17:11:00553 "engine/null_webrtc_video_engine.h",
Anders Carlssona114c882018-01-04 14:10:22554 "engine/payload_type_mapper.cc",
555 "engine/payload_type_mapper.h",
Steve Anton10542f22019-01-11 17:11:00556 "engine/webrtc_media_engine.cc",
557 "engine/webrtc_media_engine.h",
Steve Anton10542f22019-01-11 17:11:00558 "engine/webrtc_video_engine.cc",
559 "engine/webrtc_video_engine.h",
560 "engine/webrtc_voice_engine.cc",
561 "engine/webrtc_voice_engine.h",
kjellanderc76dc952016-06-03 10:09:32562 ]
563
ehmaldonadoe9cc6862016-09-05 13:10:18564 public_configs = []
Niels Möller85818772019-04-09 06:24:58565 if (!build_with_chromium) {
kjellanderc76dc952016-06-03 10:09:32566 public_configs += [ ":rtc_media_defines_config" ]
567 deps += [ "../modules/video_capture:video_capture_internal_impl" ]
568 }
aleloi048cbdd2017-05-29 09:56:27569 if (rtc_enable_protobuf) {
Jakob Ivarsson39adce12020-06-25 12:09:58570 deps += [
571 "../modules/audio_coding:ana_config_proto",
572 "../modules/audio_processing/aec_dump:aec_dump_impl",
573 ]
aleloi048cbdd2017-05-29 09:56:27574 } else {
575 deps += [ "../modules/audio_processing/aec_dump:null_aec_dump_factory" ]
576 }
kjellanderc76dc952016-06-03 10:09:32577}
kjellander82a94492016-06-13 05:12:01578
Florent Castellia80c3e52021-04-15 13:02:56579rtc_source_set("rtc_data_sctp_transport_internal") {
580 sources = [ "sctp/sctp_transport_internal.h" ]
Danil Chapovalov6fe6b5a2019-04-10 10:50:24581 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57582 ":media_channel",
Tommi1fabbac2023-03-21 13:48:51583 "../api:rtc_error",
Florent Castellid95b1492021-05-10 09:29:56584 "../api/transport:datagram_transport_interface",
Florent Castellia80c3e52021-04-15 13:02:56585 "../media:rtc_media_base",
Harald Alvestranda310d782024-01-25 12:27:18586 "../p2p:packet_transport_internal",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24587 "../p2p:rtc_p2p",
Florent Castellied4aadc2022-04-19 15:40:46588 "../rtc_base:copy_on_write_buffer",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01589 "../rtc_base:threading",
Mirko Bonadei2dcf3482020-06-05 12:30:41590 ]
Florent Castellia80c3e52021-04-15 13:02:56591}
zhihuang38ede132017-06-15 19:52:32592
Florent Castellia6983c62021-05-06 08:50:07593if (rtc_build_dcsctp) {
594 rtc_library("rtc_data_dcsctp_transport") {
595 sources = [
596 "sctp/dcsctp_transport.cc",
597 "sctp/dcsctp_transport.h",
598 ]
599 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57600 ":media_channel",
Florent Castellia6983c62021-05-06 08:50:07601 ":rtc_data_sctp_transport_internal",
602 "../api:array_view",
Artem Titovc374d112022-06-16 19:27:45603 "../api/task_queue:pending_task_safety_flag",
Henrik Boströmb951dc62022-01-26 17:38:13604 "../api/task_queue:task_queue",
Florent Castellia6983c62021-05-06 08:50:07605 "../media:rtc_media_base",
Florent Castelli6a11c842021-06-01 16:39:49606 "../net/dcsctp/public:factory",
Florent Castellia6983c62021-05-06 08:50:07607 "../net/dcsctp/public:socket",
608 "../net/dcsctp/public:types",
Victor Boivie5e726da2021-06-19 05:59:01609 "../net/dcsctp/public:utils",
Florent Castellia6983c62021-05-06 08:50:07610 "../net/dcsctp/timer:task_queue_timeout",
Harald Alvestranda310d782024-01-25 12:27:18611 "../p2p:packet_transport_internal",
Florent Castellia6983c62021-05-06 08:50:07612 "../p2p:rtc_p2p",
613 "../rtc_base:checks",
Florent Castellied4aadc2022-04-19 15:40:46614 "../rtc_base:copy_on_write_buffer",
Florent Castellia30aef32022-04-19 15:47:13615 "../rtc_base:event_tracer",
Florent Castelli0af55ba2022-04-04 13:06:30616 "../rtc_base:logging",
Fredrik Solenberg5cb3a902022-08-22 09:34:29617 "../rtc_base:macromagic",
Florent Castelli71337f32022-04-14 10:41:26618 "../rtc_base:random",
Victor Boivie8df32eb2021-08-12 13:21:25619 "../rtc_base:socket",
Florent Castelli57aa81b2022-04-04 15:14:02620 "../rtc_base:stringutils",
Florent Castellia6983c62021-05-06 08:50:07621 "../rtc_base:threading",
Florent Castelli8f04c7c2022-05-05 21:43:44622 "../rtc_base/containers:flat_map",
Florent Castellia6983c62021-05-06 08:50:07623 "../rtc_base/third_party/sigslot:sigslot",
624 "../system_wrappers",
625 ]
626 absl_deps += [
627 "//third_party/abseil-cpp/absl/strings:strings",
628 "//third_party/abseil-cpp/absl/types:optional",
629 ]
630 }
631}
632
Florent Castellia80c3e52021-04-15 13:02:56633rtc_library("rtc_data_sctp_transport_factory") {
634 defines = []
635 sources = [
636 "sctp/sctp_transport_factory.cc",
637 "sctp/sctp_transport_factory.h",
638 ]
639 deps = [
640 ":rtc_data_sctp_transport_internal",
641 "../api/transport:sctp_transport_factory_interface",
642 "../rtc_base:threading",
643 "../rtc_base/system:unused",
644 ]
645
646 if (rtc_enable_sctp) {
Florent Castellif2599a72022-03-31 17:15:10647 assert(rtc_build_dcsctp, "An SCTP backend is required to enable SCTP")
Florent Castellia6983c62021-05-06 08:50:07648 }
649
650 if (rtc_build_dcsctp) {
651 defines += [ "WEBRTC_HAVE_DCSCTP" ]
652 deps += [
653 ":rtc_data_dcsctp_transport",
654 "../system_wrappers",
655 "../system_wrappers:field_trial",
656 ]
Florent Castellia80c3e52021-04-15 13:02:56657 }
zhihuang38ede132017-06-15 19:52:32658}
659
660rtc_source_set("rtc_media") {
Per Kjellandera7f2d842018-01-10 15:54:53661 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:23662 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
Florent Castellia80c3e52021-04-15 13:02:56663 deps = [ ":rtc_audio_video" ]
zhihuang38ede132017-06-15 19:52:32664}
665
kjellander82a94492016-06-13 05:12:01666if (rtc_include_tests) {
Mirko Bonadei86d053c2019-10-17 19:32:04667 rtc_library("rtc_media_tests_utils") {
kjellander82a94492016-06-13 05:12:01668 testonly = true
669
Anders Carlsson5f2bb622018-05-14 07:48:06670 defines = []
kjellandera2ef4f92017-03-06 14:04:55671 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57672 ":codec",
673 ":media_channel",
Florent Castelli1f31c202023-06-26 00:26:07674 ":media_channel_impl",
Harald Alvestrand794d5992022-12-16 09:54:57675 ":media_constants",
Mirko Bonadei75baa492018-01-11 16:07:30676 ":rtc_audio_video",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24677 ":rtc_internal_video_codecs",
678 ":rtc_media",
679 ":rtc_media_base",
Jonathan Yu9a5da492018-10-19 07:51:18680 ":rtc_simulcast_encoder_adapter",
Harald Alvestrand794d5992022-12-16 09:54:57681 ":rtp_utils",
682 ":stream_params",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24683 "../api:call_api",
Elad Alon8f01c4e2019-06-28 13:19:43684 "../api:fec_controller_api",
Florent Castelli1f31c202023-06-26 00:26:07685 "../api:rtp_parameters",
Mirko Bonadeid9708072019-01-25 19:26:48686 "../api:scoped_refptr",
Danil Chapovalovad4a2072022-08-17 08:24:02687 "../api/task_queue",
688 "../api/task_queue:pending_task_safety_flag",
Erik Språngceb44952020-09-22 09:36:35689 "../api/transport:field_trial_based_config",
Per K075c20f2023-01-05 14:20:33690 "../api/units:timestamp",
Yves Gerey3e707812018-11-28 15:47:49691 "../api/video:encoded_image",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24692 "../api/video:video_bitrate_allocation",
693 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38694 "../api/video:video_rtp_headers",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24695 "../api/video_codecs:video_codecs_api",
696 "../call:call_interfaces",
697 "../call:mock_rtp_interfaces",
aleloi440b6d92017-08-22 12:43:23698 "../call:video_stream_api",
Artem Titov94b57c02019-03-21 12:35:10699 "../common_video",
700 "../modules/audio_processing",
Alessio Bazzicab768e882018-11-07 14:29:54701 "../modules/audio_processing:api",
Mirko Bonadeib5728d92017-12-06 06:51:33702 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglund99175c62018-01-08 10:05:10703 "../modules/video_coding:video_codec_interface",
charujaincb728ea2017-09-18 10:08:08704 "../modules/video_coding:video_coding_utility",
Åsa Perssone6b4cbe2023-01-11 14:50:58705 "../modules/video_coding/svc:scalability_mode_util",
kjellandera2ef4f92017-03-06 14:04:55706 "../p2p:rtc_p2p",
Florent Castellif9c59842022-04-19 15:07:23707 "../rtc_base:buffer",
Florent Castellia876a922022-04-19 15:18:36708 "../rtc_base:byte_order",
Patrik Höglunda8005cf2017-12-13 15:05:42709 "../rtc_base:checks",
Florent Castellied4aadc2022-04-19 15:40:46710 "../rtc_base:copy_on_write_buffer",
Florent Castellia138c6c2023-01-04 11:01:09711 "../rtc_base:dscp",
Mirko Bonadeie3abb812018-11-23 12:15:08712 "../rtc_base:gunit_helpers",
Florent Castelli4467ad72022-04-04 13:18:46713 "../rtc_base:macromagic",
Florent Castellia138c6c2023-01-04 11:01:09714 "../rtc_base:network_route",
Florent Castelli33d31fb2022-04-04 14:57:52715 "../rtc_base:rtc_event",
Tommi8d2c5a82018-03-19 10:12:48716 "../rtc_base:rtc_task_queue",
Patrik Höglund3e113432017-12-15 13:40:10717 "../rtc_base:stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01718 "../rtc_base:threading",
Florent Castellidd837e22022-04-04 15:16:15719 "../rtc_base:timeutils",
Markus Handell1e257ca2020-07-07 13:43:11720 "../rtc_base/synchronization:mutex",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24721 "../rtc_base/third_party/sigslot",
Jonas Oreland8ca06132022-03-14 11:52:48722 "../test:scoped_key_value_config",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24723 "../test:test_support",
Jonas Oreland72523482022-09-28 14:28:42724 "../video/config:streams_config",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24725 "//testing/gtest",
Mirko Bonadei2dcf3482020-06-05 12:30:41726 ]
727 absl_deps = [
Steve Anton2c9ebef2019-01-29 01:27:58728 "//third_party/abseil-cpp/absl/algorithm:container",
Florent Castelli1f31c202023-06-26 00:26:07729 "//third_party/abseil-cpp/absl/functional:any_invocable",
Yves Gerey69807e82018-10-30 21:23:02730 "//third_party/abseil-cpp/absl/strings",
Fredrik Hernqvistefbe7532023-01-13 15:42:36731 "//third_party/abseil-cpp/absl/types:optional",
kjellandera2ef4f92017-03-06 14:04:55732 ]
kjellander82a94492016-06-13 05:12:01733 sources = [
Steve Anton10542f22019-01-11 17:11:00734 "base/fake_frame_source.cc",
735 "base/fake_frame_source.h",
736 "base/fake_media_engine.cc",
737 "base/fake_media_engine.h",
738 "base/fake_network_interface.h",
739 "base/fake_rtp.cc",
740 "base/fake_rtp.h",
Steve Anton10542f22019-01-11 17:11:00741 "base/fake_video_renderer.cc",
742 "base/fake_video_renderer.h",
743 "base/test_utils.cc",
744 "base/test_utils.h",
745 "engine/fake_webrtc_call.cc",
746 "engine/fake_webrtc_call.h",
747 "engine/fake_webrtc_video_engine.cc",
748 "engine/fake_webrtc_video_engine.h",
kjellander82a94492016-06-13 05:12:01749 ]
kjellander82a94492016-06-13 05:12:01750 }
751
Andrey Logvine7c79fd2021-02-01 09:56:37752 if (!build_with_chromium) {
753 rtc_media_unittests_resources = [
754 "../resources/media/captured-320x240-2s-48.frames",
755 "../resources/media/faces.1280x720_P420.yuv",
756 "../resources/media/faces_I400.jpg",
757 "../resources/media/faces_I411.jpg",
758 "../resources/media/faces_I420.jpg",
759 "../resources/media/faces_I422.jpg",
760 "../resources/media/faces_I444.jpg",
Andrey Logvin78646002021-01-29 10:50:19761 ]
kjellander32c4a202016-08-30 09:53:49762
763 if (is_ios) {
Andrey Logvine7c79fd2021-02-01 09:56:37764 bundle_data("rtc_media_unittests_bundle_data") {
765 testonly = true
766 sources = rtc_media_unittests_resources
767 outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
768 }
kjellander82a94492016-06-13 05:12:01769 }
Taylor Brandstetterc2128732020-07-03 23:37:57770
Andrey Logvine7c79fd2021-02-01 09:56:37771 rtc_test("rtc_media_unittests") {
772 testonly = true
773
774 defines = []
775 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57776 ":codec",
Florent Castellid20bbc42023-06-21 12:36:06777 ":media_channel",
Harald Alvestrand794d5992022-12-16 09:54:57778 ":media_constants",
Andrey Logvine7c79fd2021-02-01 09:56:37779 ":rtc_audio_video",
Andrey Logvine7c79fd2021-02-01 09:56:37780 ":rtc_internal_video_codecs",
781 ":rtc_media",
782 ":rtc_media_base",
Andrey Logvine7c79fd2021-02-01 09:56:37783 ":rtc_media_tests_utils",
Johannes Kronc3fcee72021-04-19 07:09:26784 ":rtc_sdp_video_format_utils",
Andrey Logvine7c79fd2021-02-01 09:56:37785 ":rtc_simulcast_encoder_adapter",
Harald Alvestrand794d5992022-12-16 09:54:57786 ":rtp_utils",
787 ":stream_params",
788 ":turn_utils",
Andrey Logvine7c79fd2021-02-01 09:56:37789 "../api:create_simulcast_test_fixture_api",
Jeremy Leconte1a8d5292023-10-10 13:21:29790 "../api:field_trials_view",
Andrey Logvine7c79fd2021-02-01 09:56:37791 "../api:libjingle_peerconnection_api",
Jonas Oreland65455162022-06-08 09:25:46792 "../api:mock_encoder_selector",
Andrey Logvine7c79fd2021-02-01 09:56:37793 "../api:mock_video_bitrate_allocator",
794 "../api:mock_video_bitrate_allocator_factory",
795 "../api:mock_video_codec_factory",
796 "../api:mock_video_encoder",
797 "../api:rtp_parameters",
798 "../api:scoped_refptr",
799 "../api:simulcast_test_fixture_api",
800 "../api/audio_codecs:builtin_audio_decoder_factory",
801 "../api/audio_codecs:builtin_audio_encoder_factory",
Danil Chapovalov75aa7e92023-11-28 16:30:07802 "../api/environment",
803 "../api/environment:environment_factory",
Andrey Logvine7c79fd2021-02-01 09:56:37804 "../api/rtc_event_log",
805 "../api/task_queue",
806 "../api/task_queue:default_task_queue_factory",
807 "../api/test/video:function_video_factory",
808 "../api/transport:field_trial_based_config",
809 "../api/units:time_delta",
Markus Handellee034312021-11-05 14:02:03810 "../api/units:timestamp",
Andrey Logvine7c79fd2021-02-01 09:56:37811 "../api/video:builtin_video_bitrate_allocator_factory",
Jonas Oreland43f0f292022-10-07 13:37:17812 "../api/video:resolution",
Andrey Logvine7c79fd2021-02-01 09:56:37813 "../api/video:video_bitrate_allocation",
Sergey Silkin0e3cb9f2021-02-02 17:23:40814 "../api/video:video_codec_constants",
Andrey Logvine7c79fd2021-02-01 09:56:37815 "../api/video:video_frame",
816 "../api/video:video_rtp_headers",
Andrey Logvine7c79fd2021-02-01 09:56:37817 "../api/video_codecs:video_codecs_api",
philipel44437d32023-03-31 14:36:12818 "../api/video_codecs:video_decoder_factory_template",
819 "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
820 "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
821 "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
822 "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
823 "../api/video_codecs:video_encoder_factory_template",
824 "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
825 "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
826 "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
827 "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
Andrey Logvine7c79fd2021-02-01 09:56:37828 "../audio",
829 "../call:call_interfaces",
830 "../common_video",
Andrey Logvine7c79fd2021-02-01 09:56:37831 "../modules/audio_device:mock_audio_device",
Jakob Ivarsson514dff82022-11-23 15:48:49832 "../modules/audio_mixer:audio_mixer_impl",
Andrey Logvine7c79fd2021-02-01 09:56:37833 "../modules/audio_processing",
834 "../modules/audio_processing:api",
835 "../modules/audio_processing:mocks",
836 "../modules/rtp_rtcp",
Danil Chapovalov47f5f8c2021-06-03 10:27:12837 "../modules/rtp_rtcp:rtp_rtcp_format",
Andrey Logvine7c79fd2021-02-01 09:56:37838 "../modules/video_coding:simulcast_test_fixture_impl",
839 "../modules/video_coding:video_codec_interface",
840 "../modules/video_coding:webrtc_h264",
841 "../modules/video_coding:webrtc_vp8",
Åsa Perssone6b4cbe2023-01-11 14:50:58842 "../modules/video_coding/svc:scalability_mode_util",
Andrey Logvine7c79fd2021-02-01 09:56:37843 "../p2p:p2p_test_utils",
Florent Castellia138c6c2023-01-04 11:01:09844 "../rtc_base:async_packet_socket",
Florent Castellia876a922022-04-19 15:18:36845 "../rtc_base:byte_order",
Andrey Logvine7c79fd2021-02-01 09:56:37846 "../rtc_base:checks",
847 "../rtc_base:gunit_helpers",
Florent Castelli0af55ba2022-04-04 13:06:30848 "../rtc_base:logging",
Florent Castelli4467ad72022-04-04 13:18:46849 "../rtc_base:macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:37850 "../rtc_base:rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:52851 "../rtc_base:rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:37852 "../rtc_base:rtc_task_queue",
Florent Castellie10a9f62022-04-04 15:04:37853 "../rtc_base:safe_conversions",
Andrey Logvine7c79fd2021-02-01 09:56:37854 "../rtc_base:stringutils",
855 "../rtc_base:threading",
Florent Castellidd837e22022-04-04 15:16:15856 "../rtc_base:timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:37857 "../rtc_base/experiments:min_video_bitrate_experiment",
858 "../rtc_base/synchronization:mutex",
859 "../rtc_base/third_party/sigslot",
Tommia334dc62021-06-04 10:50:01860 "../system_wrappers:field_trial",
Andrey Logvine7c79fd2021-02-01 09:56:37861 "../test:audio_codec_mocks",
862 "../test:fake_video_codecs",
863 "../test:field_trial",
864 "../test:rtp_test_utils",
Jonas Oreland4476b822022-03-10 14:21:28865 "../test:scoped_key_value_config",
Andrey Logvine7c79fd2021-02-01 09:56:37866 "../test:test_main",
867 "../test:test_support",
868 "../test:video_test_common",
Markus Handellee034312021-11-05 14:02:03869 "../test/time_controller",
Jonas Oreland1262eb52022-09-27 14:53:04870 "../video/config:streams_config",
Andrey Logvine7c79fd2021-02-01 09:56:37871 ]
philipel2a2f3ec2022-05-24 08:32:32872
873 if (enable_libaom) {
874 defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ]
875 }
876
Andrey Logvine7c79fd2021-02-01 09:56:37877 absl_deps = [
878 "//third_party/abseil-cpp/absl/algorithm:container",
879 "//third_party/abseil-cpp/absl/memory",
880 "//third_party/abseil-cpp/absl/strings",
881 "//third_party/abseil-cpp/absl/types:optional",
882 ]
883 sources = [
884 "base/codec_unittest.cc",
885 "base/media_engine_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:37886 "base/rtp_utils_unittest.cc",
Johannes Kronc3fcee72021-04-19 07:09:26887 "base/sdp_video_format_utils_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:37888 "base/stream_params_unittest.cc",
889 "base/turn_utils_unittest.cc",
890 "base/video_adapter_unittest.cc",
891 "base/video_broadcaster_unittest.cc",
892 "base/video_common_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:37893 "engine/internal_decoder_factory_unittest.cc",
Johannes Kronb26863e2021-09-15 10:56:04894 "engine/internal_encoder_factory_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:37895 "engine/multiplex_codec_factory_unittest.cc",
896 "engine/null_webrtc_video_engine_unittest.cc",
897 "engine/payload_type_mapper_unittest.cc",
898 "engine/simulcast_encoder_adapter_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:37899 "engine/webrtc_media_engine_unittest.cc",
900 "engine/webrtc_video_engine_unittest.cc",
901 ]
902
903 # TODO(kthelgason): Reenable this test on iOS.
904 # See bugs.webrtc.org/5569
905 if (!is_ios) {
906 sources += [ "engine/webrtc_voice_engine_unittest.cc" ]
907 }
908
Andrey Logvine7c79fd2021-02-01 09:56:37909 if (rtc_opus_support_120ms_ptime) {
910 defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=1" ]
911 } else {
912 defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=0" ]
913 }
914
915 data = rtc_media_unittests_resources
916
917 if (is_android) {
918 deps += [ "//testing/android/native_test:native_test_support" ]
919 shard_timeout = 900
920 }
921
922 if (is_ios) {
923 deps += [ ":rtc_media_unittests_bundle_data" ]
924 }
Florent Castellie3b74f82022-05-02 22:24:15925
926 if (rtc_build_dcsctp) {
927 sources += [ "sctp/dcsctp_transport_unittest.cc" ]
928 deps += [
929 ":rtc_data_dcsctp_transport",
930 "../net/dcsctp/public:factory",
931 "../net/dcsctp/public:mocks",
932 "../net/dcsctp/public:socket",
933 ]
934 }
Taylor Brandstetterc2128732020-07-03 23:37:57935 }
kjellander82a94492016-06-13 05:12:01936 }
937}