blob: 22eb02ab4fc9b6bb86b40be47a66ba904b9df2ad [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",
254 "../api:field_trials_view",
255 "../api:rtp_parameters",
Florent Castelliee97e6a2023-06-20 17:12:57256 "../api/audio_codecs:audio_codecs_api",
Harald Alvestrand794d5992022-12-16 09:54:57257 "../api/video_codecs:video_codecs_api",
258 "../rtc_base:checks",
259 "../rtc_base:logging",
260 "../rtc_base:stringutils",
261 "../rtc_base/system:rtc_export",
262 ]
263 absl_deps = [
264 "//third_party/abseil-cpp/absl/algorithm:container",
265 "//third_party/abseil-cpp/absl/container:inlined_vector",
266 "//third_party/abseil-cpp/absl/strings",
267 "//third_party/abseil-cpp/absl/types:optional",
268 ]
269}
270
271rtc_library("rtp_utils") {
272 sources = [
273 "base/rtp_utils.cc",
274 "base/rtp_utils.h",
275 ]
276 deps = [
277 ":turn_utils",
278 "../api:array_view",
279 "../modules/rtp_rtcp:rtp_rtcp_format",
Florent Castellia138c6c2023-01-04 11:01:09280 "../rtc_base:async_packet_socket",
Harald Alvestrand794d5992022-12-16 09:54:57281 "../rtc_base:byte_order",
282 "../rtc_base:checks",
Florent Castellia138c6c2023-01-04 11:01:09283 "../rtc_base:ssl",
Harald Alvestrand794d5992022-12-16 09:54:57284 "../rtc_base/system:rtc_export",
285 ]
286 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
287}
288
289rtc_library("stream_params") {
290 sources = [
291 "base/stream_params.cc",
292 "base/stream_params.h",
293 ]
294 deps = [
295 ":rid_description",
296 "../api:array_view",
Harald Alvestrand794d5992022-12-16 09:54:57297 "../rtc_base:stringutils",
Florent Castellia138c6c2023-01-04 11:01:09298 "../rtc_base:unique_id_generator",
Harald Alvestrand794d5992022-12-16 09:54:57299 ]
300 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
301}
302
303rtc_library("media_constants") {
304 sources = [
305 "base/media_constants.cc",
306 "base/media_constants.h",
307 ]
308 deps = [ "../rtc_base/system:rtc_export" ]
309}
310
311rtc_library("turn_utils") {
312 sources = [
313 "base/turn_utils.cc",
314 "base/turn_utils.h",
315 ]
316 deps = [
317 "../api/transport:stun_types",
318 "../rtc_base:byte_order",
319 "../rtc_base/system:rtc_export",
320 ]
321}
322
323rtc_library("rid_description") {
324 sources = [
325 "base/rid_description.cc",
326 "base/rid_description.h",
327 ]
328 deps = []
329}
330
Mirko Bonadei86d053c2019-10-17 19:32:04331rtc_library("rtc_simulcast_encoder_adapter") {
Jonathan Yu9a5da492018-10-19 07:51:18332 visibility = [ "*" ]
333 defines = []
334 libs = []
335 sources = [
336 "engine/simulcast_encoder_adapter.cc",
337 "engine/simulcast_encoder_adapter.h",
338 ]
339 deps = [
Rasmus Brandt5cad55b2019-12-19 08:47:11340 ":rtc_media_base",
Elad Alon8f01c4e2019-06-28 13:19:43341 "../api:fec_controller_api",
Mirko Bonadeid9708072019-01-25 19:26:48342 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24343 "../api:sequence_checker",
Erik Språngf93eda12019-01-16 16:10:57344 "../api/video:video_codec_constants",
Yves Gerey3e707812018-11-28 15:47:49345 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38346 "../api/video:video_rtp_headers",
Erik Språngf4e0c292019-10-01 16:50:03347 "../api/video_codecs:rtc_software_fallback_wrappers",
Jonathan Yu9a5da492018-10-19 07:51:18348 "../api/video_codecs:video_codecs_api",
Markus Handell32565f62019-12-04 09:58:17349 "../call:video_stream_api",
Åsa Persson59947d22021-08-26 10:04:27350 "../common_video",
Jonathan Yu9a5da492018-10-19 07:51:18351 "../modules/video_coding:video_codec_interface",
352 "../modules/video_coding:video_coding_utility",
353 "../rtc_base:checks",
Florent Castelli0af55ba2022-04-04 13:06:30354 "../rtc_base:logging",
Åsa Perssona7e34d32021-01-20 14:36:13355 "../rtc_base/experiments:encoder_info_settings",
Erik Språng7f24fb92019-02-13 09:49:37356 "../rtc_base/experiments:rate_control_settings",
Mirko Bonadei20e4c802020-11-23 10:07:42357 "../rtc_base/system:no_unique_address",
Mirko Bonadei66e76792019-04-02 09:33:59358 "../rtc_base/system:rtc_export",
Jonathan Yu9a5da492018-10-19 07:51:18359 "../system_wrappers",
360 "../system_wrappers:field_trial",
Jonathan Yu9a5da492018-10-19 07:51:18361 ]
Erik Språng5ab6a8c2021-01-14 15:37:26362 absl_deps = [
363 "//third_party/abseil-cpp/absl/algorithm:container",
364 "//third_party/abseil-cpp/absl/types:optional",
365 ]
Jonathan Yu9a5da492018-10-19 07:51:18366}
367
Mirko Bonadei86d053c2019-10-17 19:32:04368rtc_library("rtc_internal_video_codecs") {
Per Kjellandera0f5f602018-01-10 15:57:32369 visibility = [ "*" ]
Karl Wiberg7ba22b82018-04-27 02:31:53370 allow_poison = [ "software_video_codecs" ]
Anders Carlssona114c882018-01-04 14:10:22371 defines = []
372 libs = []
Patrik Höglund99175c62018-01-08 10:05:10373 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57374 ":codec",
375 ":media_constants",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24376 ":rtc_media_base",
Jonathan Yu9a5da492018-10-19 07:51:18377 ":rtc_simulcast_encoder_adapter",
Yves Gerey3e707812018-11-28 15:47:49378 "../api/video:encoded_image",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24379 "../api/video:video_bitrate_allocation",
Yves Gerey3e707812018-11-28 15:47:49380 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38381 "../api/video:video_rtp_headers",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24382 "../api/video_codecs:rtc_software_fallback_wrappers",
383 "../api/video_codecs:video_codecs_api",
philipel2a2f3ec2022-05-24 08:32:32384 "../api/video_codecs:video_encoder_factory_template",
385 "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
386 "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
387 "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24388 "../call:call_interfaces",
389 "../call:video_stream_api",
Patrik Höglund99175c62018-01-08 10:05:10390 "../modules/video_coding:video_codec_interface",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24391 "../modules/video_coding:webrtc_h264",
392 "../modules/video_coding:webrtc_multiplex",
393 "../modules/video_coding:webrtc_vp8",
394 "../modules/video_coding:webrtc_vp9",
395 "../rtc_base:checks",
Florent Castelli0af55ba2022-04-04 13:06:30396 "../rtc_base:logging",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24397 "../rtc_base/system:rtc_export",
philipelb09d8722021-11-23 10:00:24398 "../system_wrappers:field_trial",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24399 "../test:fake_video_codecs",
Patrik Höglund99175c62018-01-08 10:05:10400 ]
philipel2a2f3ec2022-05-24 08:32:32401
402 if (enable_libaom) {
403 defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ]
404 deps += [
405 "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
406 ]
407 }
408
philipelb09d8722021-11-23 10:00:24409 if (rtc_include_dav1d_in_internal_decoder_factory) {
410 deps += [ "../modules/video_coding/codecs/av1:dav1d_decoder" ]
411 }
Johannes Kronb26863e2021-09-15 10:56:04412 absl_deps = [
413 "//third_party/abseil-cpp/absl/strings",
414 "//third_party/abseil-cpp/absl/types:optional",
415 ]
Anders Carlssona114c882018-01-04 14:10:22416 sources = [
Emircan Uysaler7c03bdc2019-01-16 20:07:56417 "engine/fake_video_codec_factory.cc",
418 "engine/fake_video_codec_factory.h",
Steve Anton10542f22019-01-11 17:11:00419 "engine/internal_decoder_factory.cc",
420 "engine/internal_decoder_factory.h",
421 "engine/internal_encoder_factory.cc",
422 "engine/internal_encoder_factory.h",
423 "engine/multiplex_codec_factory.cc",
424 "engine/multiplex_codec_factory.h",
Anders Carlssona114c882018-01-04 14:10:22425 ]
Anders Carlssona114c882018-01-04 14:10:22426}
427
Mirko Bonadei86d053c2019-10-17 19:32:04428rtc_library("rtc_audio_video") {
Per Kjellandera7f2d842018-01-10 15:54:53429 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:23430 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
Anders Carlssona114c882018-01-04 14:10:22431 defines = []
432 libs = []
433 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57434 ":codec",
435 ":media_channel",
Harald Alvestrandd3ac3b62022-12-16 14:46:31436 ":media_channel_impl",
Harald Alvestrand794d5992022-12-16 09:54:57437 ":media_constants",
Harald Alvestrand13897e62023-05-22 12:49:05438 ":rid_description",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24439 ":rtc_media_base",
Harald Alvestrand13897e62023-05-22 12:49:05440 ":rtc_media_config",
Harald Alvestrand794d5992022-12-16 09:54:57441 ":rtp_utils",
442 ":stream_params",
Harald Alvestrandb4c96d62022-10-26 13:51:35443 "../api:array_view",
Harald Alvestrand13897e62023-05-22 12:49:05444 "../api:audio_options_api",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24445 "../api:call_api",
Jonas Orelande62c2f22022-03-29 09:04:48446 "../api:field_trials_view",
Harald Alvestrand13897e62023-05-22 12:49:05447 "../api:frame_transformer_interface",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24448 "../api:libjingle_peerconnection_api",
Harald Alvestrand13897e62023-05-22 12:49:05449 "../api:make_ref_counted",
Florent Castellib05ca4b2020-03-05 12:39:55450 "../api:media_stream_interface",
Harald Alvestrand13897e62023-05-22 12:49:05451 "../api:priority",
452 "../api:rtc_error",
453 "../api:rtp_headers",
Niels Möller6dcd4dc2019-08-26 08:45:28454 "../api:rtp_parameters",
Harald Alvestrand13897e62023-05-22 12:49:05455 "../api:rtp_transceiver_direction",
Mirko Bonadeid9708072019-01-25 19:26:48456 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24457 "../api:sequence_checker",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24458 "../api:transport_api",
Harald Alvestrand13897e62023-05-22 12:49:05459 "../api/audio:audio_frame_api",
Olga Sharonova09ceed22020-09-30 16:27:39460 "../api/audio:audio_frame_processor",
Danil Chapovalov85b8ce22019-05-31 13:51:04461 "../api/audio:audio_mixer_api",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24462 "../api/audio_codecs:audio_codecs_api",
Harald Alvestrand13897e62023-05-22 12:49:05463 "../api/crypto:frame_decryptor_interface",
464 "../api/crypto:frame_encryptor_interface",
465 "../api/crypto:options",
Danil Chapovalov4c7112a2019-03-27 17:51:45466 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:45467 "../api/task_queue:pending_task_safety_flag",
Mirko Bonadei738bfa72019-09-17 12:47:38468 "../api/transport:bitrate_settings",
Erik Språngceb44952020-09-22 09:36:35469 "../api/transport:field_trial_based_config",
Niels Möllera8370302019-09-02 13:16:49470 "../api/transport/rtp:rtp_source",
Elad Alon80f53b72019-10-11 14:19:43471 "../api/units:data_rate",
Harald Alvestrand13897e62023-05-22 12:49:05472 "../api/units:time_delta",
473 "../api/units:timestamp",
474 "../api/video:recordable_encoded_frame",
475 "../api/video:resolution",
Yves Gerey3e707812018-11-28 15:47:49476 "../api/video:video_bitrate_allocation",
Jiawei Ouc2ebe212018-11-08 18:02:56477 "../api/video:video_bitrate_allocator_factory",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24478 "../api/video:video_codec_constants",
479 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38480 "../api/video:video_rtp_headers",
Harald Alvestrand13897e62023-05-22 12:49:05481 "../api/video:video_stream_encoder",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24482 "../api/video_codecs:rtc_software_fallback_wrappers",
Harald Alvestrand13897e62023-05-22 12:49:05483 "../api/video_codecs:scalability_mode",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24484 "../api/video_codecs:video_codecs_api",
485 "../call",
486 "../call:call_interfaces",
Harald Alvestrand13897e62023-05-22 12:49:05487 "../call:receive_stream_interface",
488 "../call:rtp_interfaces",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24489 "../call:video_stream_api",
490 "../common_video",
Harald Alvestrand13897e62023-05-22 12:49:05491 "../common_video:frame_counts",
Olga Sharonova09ceed22020-09-30 16:27:39492 "../modules/async_audio_processing:async_audio_processing",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24493 "../modules/audio_device",
494 "../modules/audio_device:audio_device_impl",
495 "../modules/audio_mixer:audio_mixer_impl",
Alessio Bazzicab768e882018-11-07 14:29:54496 "../modules/audio_processing:api",
Harald Alvestrand13897e62023-05-22 12:49:05497 "../modules/audio_processing:audio_processing_statistics",
Artem Titov94b57c02019-03-21 12:35:10498 "../modules/audio_processing/aec_dump",
Sam Zackrisson41478c72019-10-15 08:10:26499 "../modules/audio_processing/agc:gain_control_interface",
Philipp Hancke17e8a5c2023-06-21 11:53:41500 "../modules/rtp_rtcp",
Danil Chapovalov99a71f42021-07-19 13:20:46501 "../modules/rtp_rtcp:rtp_rtcp_format",
Artem Titov94b57c02019-03-21 12:35:10502 "../modules/video_coding",
Patrik Höglunda97af1f2018-01-16 09:11:40503 "../modules/video_coding:video_codec_interface",
Sergio Garcia Murillo43800f92018-06-21 14:16:38504 "../modules/video_coding:video_coding_utility",
Erik Språngb6ff84b2022-07-05 11:02:28505 "../modules/video_coding:webrtc_vp9_helpers",
Niels Möller79d566b2022-04-29 09:03:13506 "../modules/video_coding/svc:scalability_mode_util",
Jonas Olssonabbe8412018-04-03 11:40:05507 "../rtc_base:audio_format_to_string",
Florent Castellif9c59842022-04-19 15:07:23508 "../rtc_base:buffer",
Florent Castellia876a922022-04-19 15:18:36509 "../rtc_base:byte_order",
Anders Carlssona114c882018-01-04 14:10:22510 "../rtc_base:checks",
Florent Castellied4aadc2022-04-19 15:40:46511 "../rtc_base:copy_on_write_buffer",
Harald Alvestrand13897e62023-05-22 12:49:05512 "../rtc_base:dscp",
Florent Castellia30aef32022-04-19 15:47:13513 "../rtc_base:event_tracer",
Jakob Ivarsson39adce12020-06-25 12:09:58514 "../rtc_base:ignore_wundef",
Florent Castelli0af55ba2022-04-04 13:06:30515 "../rtc_base:logging",
Florent Castelli4467ad72022-04-04 13:18:46516 "../rtc_base:macromagic",
Florent Castellia138c6c2023-01-04 11:01:09517 "../rtc_base:network_route",
Florent Castellif4db3512022-04-14 11:38:05518 "../rtc_base:race_checker",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24519 "../rtc_base:rtc_task_queue",
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
Danil Chapovalov4844c5f2019-04-10 12:10:10579# Heavy but optional helper for unittests and webrtc users who prefer to use
580# defaults factories or do not worry about extra dependencies and binary size.
Mirko Bonadei86d053c2019-10-17 19:32:04581rtc_library("rtc_media_engine_defaults") {
Danil Chapovalov4844c5f2019-04-10 12:10:10582 visibility = [ "*" ]
583 allow_poison = [
584 "audio_codecs",
Danil Chapovalov41300af2019-07-10 10:44:43585 "default_task_queue",
Danil Chapovalov4844c5f2019-04-10 12:10:10586 "software_video_codecs",
587 ]
588 sources = [
589 "engine/webrtc_media_engine_defaults.cc",
590 "engine/webrtc_media_engine_defaults.h",
591 ]
592 deps = [
593 ":rtc_audio_video",
594 "../api/audio_codecs:builtin_audio_decoder_factory",
595 "../api/audio_codecs:builtin_audio_encoder_factory",
596 "../api/task_queue:default_task_queue_factory",
597 "../api/video:builtin_video_bitrate_allocator_factory",
Danil Chapovalov22f14fe2023-04-12 09:16:19598 "../api/video_codecs:builtin_video_decoder_factory",
599 "../api/video_codecs:builtin_video_encoder_factory",
Danil Chapovalov4844c5f2019-04-10 12:10:10600 "../modules/audio_processing:api",
601 "../rtc_base:checks",
Ken MacKay831ce5f2019-12-02 18:26:34602 "../rtc_base/system:rtc_export",
Danil Chapovalov4844c5f2019-04-10 12:10:10603 ]
604}
605
Florent Castellia80c3e52021-04-15 13:02:56606rtc_source_set("rtc_data_sctp_transport_internal") {
607 sources = [ "sctp/sctp_transport_internal.h" ]
Danil Chapovalov6fe6b5a2019-04-10 10:50:24608 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57609 ":media_channel",
Tommi1fabbac2023-03-21 13:48:51610 "../api:rtc_error",
Florent Castellid95b1492021-05-10 09:29:56611 "../api/transport:datagram_transport_interface",
Florent Castellia80c3e52021-04-15 13:02:56612 "../media:rtc_media_base",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24613 "../p2p:rtc_p2p",
Florent Castellied4aadc2022-04-19 15:40:46614 "../rtc_base:copy_on_write_buffer",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01615 "../rtc_base:threading",
Mirko Bonadei2dcf3482020-06-05 12:30:41616 ]
Florent Castellia80c3e52021-04-15 13:02:56617}
zhihuang38ede132017-06-15 19:52:32618
Florent Castellia6983c62021-05-06 08:50:07619if (rtc_build_dcsctp) {
620 rtc_library("rtc_data_dcsctp_transport") {
621 sources = [
622 "sctp/dcsctp_transport.cc",
623 "sctp/dcsctp_transport.h",
624 ]
625 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57626 ":media_channel",
Florent Castellia6983c62021-05-06 08:50:07627 ":rtc_data_sctp_transport_internal",
628 "../api:array_view",
Artem Titovc374d112022-06-16 19:27:45629 "../api/task_queue:pending_task_safety_flag",
Henrik Boströmb951dc62022-01-26 17:38:13630 "../api/task_queue:task_queue",
Florent Castellia6983c62021-05-06 08:50:07631 "../media:rtc_media_base",
Florent Castelli6a11c842021-06-01 16:39:49632 "../net/dcsctp/public:factory",
Florent Castellia6983c62021-05-06 08:50:07633 "../net/dcsctp/public:socket",
634 "../net/dcsctp/public:types",
Victor Boivie5e726da2021-06-19 05:59:01635 "../net/dcsctp/public:utils",
Florent Castellia6983c62021-05-06 08:50:07636 "../net/dcsctp/timer:task_queue_timeout",
637 "../p2p:rtc_p2p",
638 "../rtc_base:checks",
Florent Castellied4aadc2022-04-19 15:40:46639 "../rtc_base:copy_on_write_buffer",
Florent Castellia30aef32022-04-19 15:47:13640 "../rtc_base:event_tracer",
Florent Castelli0af55ba2022-04-04 13:06:30641 "../rtc_base:logging",
Fredrik Solenberg5cb3a902022-08-22 09:34:29642 "../rtc_base:macromagic",
Florent Castelli71337f32022-04-14 10:41:26643 "../rtc_base:random",
Victor Boivie8df32eb2021-08-12 13:21:25644 "../rtc_base:socket",
Florent Castelli57aa81b2022-04-04 15:14:02645 "../rtc_base:stringutils",
Florent Castellia6983c62021-05-06 08:50:07646 "../rtc_base:threading",
Florent Castelli8f04c7c2022-05-05 21:43:44647 "../rtc_base/containers:flat_map",
Florent Castellia6983c62021-05-06 08:50:07648 "../rtc_base/third_party/sigslot:sigslot",
649 "../system_wrappers",
650 ]
651 absl_deps += [
652 "//third_party/abseil-cpp/absl/strings:strings",
653 "//third_party/abseil-cpp/absl/types:optional",
654 ]
655 }
656}
657
Florent Castellia80c3e52021-04-15 13:02:56658rtc_library("rtc_data_sctp_transport_factory") {
659 defines = []
660 sources = [
661 "sctp/sctp_transport_factory.cc",
662 "sctp/sctp_transport_factory.h",
663 ]
664 deps = [
665 ":rtc_data_sctp_transport_internal",
666 "../api/transport:sctp_transport_factory_interface",
667 "../rtc_base:threading",
668 "../rtc_base/system:unused",
669 ]
670
671 if (rtc_enable_sctp) {
Florent Castellif2599a72022-03-31 17:15:10672 assert(rtc_build_dcsctp, "An SCTP backend is required to enable SCTP")
Florent Castellia6983c62021-05-06 08:50:07673 }
674
675 if (rtc_build_dcsctp) {
676 defines += [ "WEBRTC_HAVE_DCSCTP" ]
677 deps += [
678 ":rtc_data_dcsctp_transport",
679 "../system_wrappers",
680 "../system_wrappers:field_trial",
681 ]
Florent Castellia80c3e52021-04-15 13:02:56682 }
zhihuang38ede132017-06-15 19:52:32683}
684
685rtc_source_set("rtc_media") {
Per Kjellandera7f2d842018-01-10 15:54:53686 visibility = [ "*" ]
Anders Carlsson45340ca2019-01-14 13:23:23687 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove.
Florent Castellia80c3e52021-04-15 13:02:56688 deps = [ ":rtc_audio_video" ]
zhihuang38ede132017-06-15 19:52:32689}
690
kjellander82a94492016-06-13 05:12:01691if (rtc_include_tests) {
Mirko Bonadei86d053c2019-10-17 19:32:04692 rtc_library("rtc_media_tests_utils") {
kjellander82a94492016-06-13 05:12:01693 testonly = true
694
Anders Carlsson5f2bb622018-05-14 07:48:06695 defines = []
kjellandera2ef4f92017-03-06 14:04:55696 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57697 ":codec",
698 ":media_channel",
Florent Castelli1f31c202023-06-26 00:26:07699 ":media_channel_impl",
Harald Alvestrand794d5992022-12-16 09:54:57700 ":media_constants",
Mirko Bonadei75baa492018-01-11 16:07:30701 ":rtc_audio_video",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24702 ":rtc_internal_video_codecs",
703 ":rtc_media",
704 ":rtc_media_base",
Jonathan Yu9a5da492018-10-19 07:51:18705 ":rtc_simulcast_encoder_adapter",
Harald Alvestrand794d5992022-12-16 09:54:57706 ":rtp_utils",
707 ":stream_params",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24708 "../api:call_api",
Elad Alon8f01c4e2019-06-28 13:19:43709 "../api:fec_controller_api",
Florent Castelli1f31c202023-06-26 00:26:07710 "../api:rtp_parameters",
Mirko Bonadeid9708072019-01-25 19:26:48711 "../api:scoped_refptr",
Danil Chapovalovad4a2072022-08-17 08:24:02712 "../api/task_queue",
713 "../api/task_queue:pending_task_safety_flag",
Erik Språngceb44952020-09-22 09:36:35714 "../api/transport:field_trial_based_config",
Per K075c20f2023-01-05 14:20:33715 "../api/units:timestamp",
Yves Gerey3e707812018-11-28 15:47:49716 "../api/video:encoded_image",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24717 "../api/video:video_bitrate_allocation",
718 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38719 "../api/video:video_rtp_headers",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24720 "../api/video_codecs:video_codecs_api",
721 "../call:call_interfaces",
722 "../call:mock_rtp_interfaces",
aleloi440b6d92017-08-22 12:43:23723 "../call:video_stream_api",
Artem Titov94b57c02019-03-21 12:35:10724 "../common_video",
725 "../modules/audio_processing",
Alessio Bazzicab768e882018-11-07 14:29:54726 "../modules/audio_processing:api",
Mirko Bonadeib5728d92017-12-06 06:51:33727 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglund99175c62018-01-08 10:05:10728 "../modules/video_coding:video_codec_interface",
charujaincb728ea2017-09-18 10:08:08729 "../modules/video_coding:video_coding_utility",
Åsa Perssone6b4cbe2023-01-11 14:50:58730 "../modules/video_coding/svc:scalability_mode_util",
kjellandera2ef4f92017-03-06 14:04:55731 "../p2p:rtc_p2p",
Florent Castellif9c59842022-04-19 15:07:23732 "../rtc_base:buffer",
Florent Castellia876a922022-04-19 15:18:36733 "../rtc_base:byte_order",
Patrik Höglunda8005cf2017-12-13 15:05:42734 "../rtc_base:checks",
Florent Castellied4aadc2022-04-19 15:40:46735 "../rtc_base:copy_on_write_buffer",
Florent Castellia138c6c2023-01-04 11:01:09736 "../rtc_base:dscp",
Mirko Bonadeie3abb812018-11-23 12:15:08737 "../rtc_base:gunit_helpers",
Florent Castelli4467ad72022-04-04 13:18:46738 "../rtc_base:macromagic",
Florent Castellia138c6c2023-01-04 11:01:09739 "../rtc_base:network_route",
Florent Castelli33d31fb2022-04-04 14:57:52740 "../rtc_base:rtc_event",
Tommi8d2c5a82018-03-19 10:12:48741 "../rtc_base:rtc_task_queue",
Patrik Höglund3e113432017-12-15 13:40:10742 "../rtc_base:stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01743 "../rtc_base:threading",
Florent Castellidd837e22022-04-04 15:16:15744 "../rtc_base:timeutils",
Markus Handell1e257ca2020-07-07 13:43:11745 "../rtc_base/synchronization:mutex",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24746 "../rtc_base/third_party/sigslot",
Jonas Oreland8ca06132022-03-14 11:52:48747 "../test:scoped_key_value_config",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24748 "../test:test_support",
Jonas Oreland72523482022-09-28 14:28:42749 "../video/config:streams_config",
Danil Chapovalov6fe6b5a2019-04-10 10:50:24750 "//testing/gtest",
Mirko Bonadei2dcf3482020-06-05 12:30:41751 ]
752 absl_deps = [
Steve Anton2c9ebef2019-01-29 01:27:58753 "//third_party/abseil-cpp/absl/algorithm:container",
Florent Castelli1f31c202023-06-26 00:26:07754 "//third_party/abseil-cpp/absl/functional:any_invocable",
Yves Gerey69807e82018-10-30 21:23:02755 "//third_party/abseil-cpp/absl/strings",
Fredrik Hernqvistefbe7532023-01-13 15:42:36756 "//third_party/abseil-cpp/absl/types:optional",
kjellandera2ef4f92017-03-06 14:04:55757 ]
kjellander82a94492016-06-13 05:12:01758 sources = [
Steve Anton10542f22019-01-11 17:11:00759 "base/fake_frame_source.cc",
760 "base/fake_frame_source.h",
761 "base/fake_media_engine.cc",
762 "base/fake_media_engine.h",
763 "base/fake_network_interface.h",
764 "base/fake_rtp.cc",
765 "base/fake_rtp.h",
Steve Anton10542f22019-01-11 17:11:00766 "base/fake_video_renderer.cc",
767 "base/fake_video_renderer.h",
768 "base/test_utils.cc",
769 "base/test_utils.h",
770 "engine/fake_webrtc_call.cc",
771 "engine/fake_webrtc_call.h",
772 "engine/fake_webrtc_video_engine.cc",
773 "engine/fake_webrtc_video_engine.h",
kjellander82a94492016-06-13 05:12:01774 ]
kjellander82a94492016-06-13 05:12:01775 }
776
Andrey Logvine7c79fd2021-02-01 09:56:37777 if (!build_with_chromium) {
778 rtc_media_unittests_resources = [
779 "../resources/media/captured-320x240-2s-48.frames",
780 "../resources/media/faces.1280x720_P420.yuv",
781 "../resources/media/faces_I400.jpg",
782 "../resources/media/faces_I411.jpg",
783 "../resources/media/faces_I420.jpg",
784 "../resources/media/faces_I422.jpg",
785 "../resources/media/faces_I444.jpg",
Andrey Logvin78646002021-01-29 10:50:19786 ]
kjellander32c4a202016-08-30 09:53:49787
788 if (is_ios) {
Andrey Logvine7c79fd2021-02-01 09:56:37789 bundle_data("rtc_media_unittests_bundle_data") {
790 testonly = true
791 sources = rtc_media_unittests_resources
792 outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
793 }
kjellander82a94492016-06-13 05:12:01794 }
Taylor Brandstetterc2128732020-07-03 23:37:57795
Andrey Logvine7c79fd2021-02-01 09:56:37796 rtc_test("rtc_media_unittests") {
797 testonly = true
798
799 defines = []
800 deps = [
Harald Alvestrand794d5992022-12-16 09:54:57801 ":codec",
Florent Castellid20bbc42023-06-21 12:36:06802 ":media_channel",
Harald Alvestrand794d5992022-12-16 09:54:57803 ":media_constants",
Andrey Logvine7c79fd2021-02-01 09:56:37804 ":rtc_audio_video",
Andrey Logvine7c79fd2021-02-01 09:56:37805 ":rtc_internal_video_codecs",
806 ":rtc_media",
807 ":rtc_media_base",
808 ":rtc_media_engine_defaults",
809 ":rtc_media_tests_utils",
Johannes Kronc3fcee72021-04-19 07:09:26810 ":rtc_sdp_video_format_utils",
Andrey Logvine7c79fd2021-02-01 09:56:37811 ":rtc_simulcast_encoder_adapter",
Harald Alvestrand794d5992022-12-16 09:54:57812 ":rtp_utils",
813 ":stream_params",
814 ":turn_utils",
Andrey Logvine7c79fd2021-02-01 09:56:37815 "../api:create_simulcast_test_fixture_api",
816 "../api:libjingle_peerconnection_api",
Jonas Oreland65455162022-06-08 09:25:46817 "../api:mock_encoder_selector",
Andrey Logvine7c79fd2021-02-01 09:56:37818 "../api:mock_video_bitrate_allocator",
819 "../api:mock_video_bitrate_allocator_factory",
820 "../api:mock_video_codec_factory",
821 "../api:mock_video_encoder",
822 "../api:rtp_parameters",
823 "../api:scoped_refptr",
824 "../api:simulcast_test_fixture_api",
825 "../api/audio_codecs:builtin_audio_decoder_factory",
826 "../api/audio_codecs:builtin_audio_encoder_factory",
827 "../api/rtc_event_log",
828 "../api/task_queue",
829 "../api/task_queue:default_task_queue_factory",
830 "../api/test/video:function_video_factory",
831 "../api/transport:field_trial_based_config",
832 "../api/units:time_delta",
Markus Handellee034312021-11-05 14:02:03833 "../api/units:timestamp",
Andrey Logvine7c79fd2021-02-01 09:56:37834 "../api/video:builtin_video_bitrate_allocator_factory",
Jonas Oreland43f0f292022-10-07 13:37:17835 "../api/video:resolution",
Andrey Logvine7c79fd2021-02-01 09:56:37836 "../api/video:video_bitrate_allocation",
Sergey Silkin0e3cb9f2021-02-02 17:23:40837 "../api/video:video_codec_constants",
Andrey Logvine7c79fd2021-02-01 09:56:37838 "../api/video:video_frame",
839 "../api/video:video_rtp_headers",
Andrey Logvine7c79fd2021-02-01 09:56:37840 "../api/video_codecs:video_codecs_api",
philipel44437d32023-03-31 14:36:12841 "../api/video_codecs:video_decoder_factory_template",
842 "../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
843 "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
844 "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
845 "../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
846 "../api/video_codecs:video_encoder_factory_template",
847 "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
848 "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
849 "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
850 "../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
Andrey Logvine7c79fd2021-02-01 09:56:37851 "../audio",
852 "../call:call_interfaces",
853 "../common_video",
Andrey Logvine7c79fd2021-02-01 09:56:37854 "../modules/audio_device:mock_audio_device",
Jakob Ivarsson514dff82022-11-23 15:48:49855 "../modules/audio_mixer:audio_mixer_impl",
Andrey Logvine7c79fd2021-02-01 09:56:37856 "../modules/audio_processing",
857 "../modules/audio_processing:api",
858 "../modules/audio_processing:mocks",
859 "../modules/rtp_rtcp",
Danil Chapovalov47f5f8c2021-06-03 10:27:12860 "../modules/rtp_rtcp:rtp_rtcp_format",
Andrey Logvine7c79fd2021-02-01 09:56:37861 "../modules/video_coding:simulcast_test_fixture_impl",
862 "../modules/video_coding:video_codec_interface",
863 "../modules/video_coding:webrtc_h264",
864 "../modules/video_coding:webrtc_vp8",
Åsa Perssone6b4cbe2023-01-11 14:50:58865 "../modules/video_coding/svc:scalability_mode_util",
Andrey Logvine7c79fd2021-02-01 09:56:37866 "../p2p:p2p_test_utils",
Florent Castellia138c6c2023-01-04 11:01:09867 "../rtc_base:async_packet_socket",
Florent Castellia876a922022-04-19 15:18:36868 "../rtc_base:byte_order",
Andrey Logvine7c79fd2021-02-01 09:56:37869 "../rtc_base:checks",
870 "../rtc_base:gunit_helpers",
Florent Castelli0af55ba2022-04-04 13:06:30871 "../rtc_base:logging",
Florent Castelli4467ad72022-04-04 13:18:46872 "../rtc_base:macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:37873 "../rtc_base:rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:52874 "../rtc_base:rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:37875 "../rtc_base:rtc_task_queue",
Florent Castellie10a9f62022-04-04 15:04:37876 "../rtc_base:safe_conversions",
Andrey Logvine7c79fd2021-02-01 09:56:37877 "../rtc_base:stringutils",
878 "../rtc_base:threading",
Florent Castellidd837e22022-04-04 15:16:15879 "../rtc_base:timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:37880 "../rtc_base/experiments:min_video_bitrate_experiment",
881 "../rtc_base/synchronization:mutex",
882 "../rtc_base/third_party/sigslot",
Tommia334dc62021-06-04 10:50:01883 "../system_wrappers:field_trial",
Andrey Logvine7c79fd2021-02-01 09:56:37884 "../test:audio_codec_mocks",
885 "../test:fake_video_codecs",
886 "../test:field_trial",
887 "../test:rtp_test_utils",
Jonas Oreland4476b822022-03-10 14:21:28888 "../test:scoped_key_value_config",
Andrey Logvine7c79fd2021-02-01 09:56:37889 "../test:test_main",
890 "../test:test_support",
891 "../test:video_test_common",
Markus Handellee034312021-11-05 14:02:03892 "../test/time_controller",
Jonas Oreland1262eb52022-09-27 14:53:04893 "../video/config:streams_config",
Andrey Logvine7c79fd2021-02-01 09:56:37894 ]
philipel2a2f3ec2022-05-24 08:32:32895
896 if (enable_libaom) {
897 defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ]
898 }
899
Andrey Logvine7c79fd2021-02-01 09:56:37900 absl_deps = [
901 "//third_party/abseil-cpp/absl/algorithm:container",
902 "//third_party/abseil-cpp/absl/memory",
903 "//third_party/abseil-cpp/absl/strings",
904 "//third_party/abseil-cpp/absl/types:optional",
905 ]
906 sources = [
907 "base/codec_unittest.cc",
908 "base/media_engine_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:37909 "base/rtp_utils_unittest.cc",
Johannes Kronc3fcee72021-04-19 07:09:26910 "base/sdp_video_format_utils_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:37911 "base/stream_params_unittest.cc",
912 "base/turn_utils_unittest.cc",
913 "base/video_adapter_unittest.cc",
914 "base/video_broadcaster_unittest.cc",
915 "base/video_common_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:37916 "engine/internal_decoder_factory_unittest.cc",
Johannes Kronb26863e2021-09-15 10:56:04917 "engine/internal_encoder_factory_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:37918 "engine/multiplex_codec_factory_unittest.cc",
919 "engine/null_webrtc_video_engine_unittest.cc",
920 "engine/payload_type_mapper_unittest.cc",
921 "engine/simulcast_encoder_adapter_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:37922 "engine/webrtc_media_engine_unittest.cc",
923 "engine/webrtc_video_engine_unittest.cc",
924 ]
925
926 # TODO(kthelgason): Reenable this test on iOS.
927 # See bugs.webrtc.org/5569
928 if (!is_ios) {
929 sources += [ "engine/webrtc_voice_engine_unittest.cc" ]
930 }
931
Andrey Logvine7c79fd2021-02-01 09:56:37932 if (rtc_opus_support_120ms_ptime) {
933 defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=1" ]
934 } else {
935 defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=0" ]
936 }
937
938 data = rtc_media_unittests_resources
939
940 if (is_android) {
941 deps += [ "//testing/android/native_test:native_test_support" ]
942 shard_timeout = 900
943 }
944
945 if (is_ios) {
946 deps += [ ":rtc_media_unittests_bundle_data" ]
947 }
Florent Castellie3b74f82022-05-02 22:24:15948
949 if (rtc_build_dcsctp) {
950 sources += [ "sctp/dcsctp_transport_unittest.cc" ]
951 deps += [
952 ":rtc_data_dcsctp_transport",
953 "../net/dcsctp/public:factory",
954 "../net/dcsctp/public:mocks",
955 "../net/dcsctp/public:socket",
956 ]
957 }
Taylor Brandstetterc2128732020-07-03 23:37:57958 }
kjellander82a94492016-06-13 05:12:01959 }
960}