1# 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") 10import("//third_party/libaom/options.gni") 11import("../webrtc.gni") 12 13group("media") { 14 deps = [] 15 if (!build_with_mozilla) { 16 deps += [ 17 ":rtc_media", 18 ":rtc_media_base", 19 ] 20 } 21} 22 23config("rtc_media_defines_config") { 24 defines = [ "HAVE_WEBRTC_VIDEO" ] 25} 26 27rtc_source_set("rtc_media_config") { 28 visibility = [ "*" ] 29 sources = [ "base/media_config.h" ] 30} 31 32rtc_library("rtc_sdp_video_format_utils") { 33 visibility = [ "*" ] 34 sources = [ 35 "base/sdp_video_format_utils.cc", 36 "base/sdp_video_format_utils.h", 37 ] 38 39 deps = [ 40 "../api/video_codecs:video_codecs_api", 41 "../rtc_base:checks", 42 "../rtc_base:stringutils", 43 ] 44 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 45} 46 47rtc_library("rtc_media_base") { 48 visibility = [ "*" ] 49 defines = [] 50 libs = [] 51 deps = [ 52 ":rtc_media_config", 53 "../api:array_view", 54 "../api:audio_options_api", 55 "../api:field_trials_view", 56 "../api:frame_transformer_interface", 57 "../api:media_stream_interface", 58 "../api:rtc_error", 59 "../api:rtp_parameters", 60 "../api:rtp_sender_interface", 61 "../api:scoped_refptr", 62 "../api:sequence_checker", 63 "../api/audio:audio_frame_processor", 64 "../api/audio_codecs:audio_codecs_api", 65 "../api/crypto:frame_decryptor_interface", 66 "../api/crypto:frame_encryptor_interface", 67 "../api/crypto:options", 68 "../api/task_queue:pending_task_safety_flag", 69 "../api/transport:datagram_transport_interface", 70 "../api/transport:stun_types", 71 "../api/transport/rtp:rtp_source", 72 "../api/units:time_delta", 73 "../api/video:video_bitrate_allocation", 74 "../api/video:video_bitrate_allocator_factory", 75 "../api/video:video_frame", 76 "../api/video:video_rtp_headers", 77 "../api/video_codecs:video_codecs_api", 78 "../call:call_interfaces", 79 "../call:video_stream_api", 80 "../common_video", 81 "../modules/async_audio_processing", 82 "../modules/audio_processing:audio_processing_statistics", 83 "../modules/rtp_rtcp:rtp_rtcp_format", 84 "../rtc_base", 85 "../rtc_base:buffer", 86 "../rtc_base:byte_order", 87 "../rtc_base:checks", 88 "../rtc_base:copy_on_write_buffer", 89 "../rtc_base:logging", 90 "../rtc_base:macromagic", 91 "../rtc_base:rtc_task_queue", 92 "../rtc_base:sanitizer", 93 "../rtc_base:socket", 94 "../rtc_base:stringutils", 95 "../rtc_base:timeutils", 96 "../rtc_base/synchronization:mutex", 97 "../rtc_base/system:file_wrapper", 98 "../rtc_base/system:no_unique_address", 99 "../rtc_base/system:rtc_export", 100 "../rtc_base/third_party/sigslot", 101 "../system_wrappers:field_trial", 102 "../video/config:encoder_config", 103 ] 104 absl_deps = [ 105 "//third_party/abseil-cpp/absl/algorithm:container", 106 "//third_party/abseil-cpp/absl/container:inlined_vector", 107 "//third_party/abseil-cpp/absl/strings", 108 "//third_party/abseil-cpp/absl/types:optional", 109 ] 110 sources = [ 111 "base/adapted_video_track_source.cc", 112 "base/adapted_video_track_source.h", 113 "base/audio_source.h", 114 "base/codec.cc", 115 "base/codec.h", 116 "base/delayable.h", 117 "base/media_channel.cc", 118 "base/media_channel.h", 119 "base/media_constants.cc", 120 "base/media_constants.h", 121 "base/media_engine.cc", 122 "base/media_engine.h", 123 "base/rid_description.cc", 124 "base/rid_description.h", 125 "base/rtp_utils.cc", 126 "base/rtp_utils.h", 127 "base/stream_params.cc", 128 "base/stream_params.h", 129 "base/turn_utils.cc", 130 "base/turn_utils.h", 131 "base/video_adapter.cc", 132 "base/video_adapter.h", 133 "base/video_broadcaster.cc", 134 "base/video_broadcaster.h", 135 "base/video_common.cc", 136 "base/video_common.h", 137 "base/video_source_base.cc", 138 "base/video_source_base.h", 139 ] 140} 141 142rtc_library("rtc_simulcast_encoder_adapter") { 143 visibility = [ "*" ] 144 defines = [] 145 libs = [] 146 sources = [ 147 "engine/simulcast_encoder_adapter.cc", 148 "engine/simulcast_encoder_adapter.h", 149 ] 150 deps = [ 151 ":rtc_media_base", 152 "../api:fec_controller_api", 153 "../api:scoped_refptr", 154 "../api:sequence_checker", 155 "../api/video:video_codec_constants", 156 "../api/video:video_frame", 157 "../api/video:video_rtp_headers", 158 "../api/video_codecs:rtc_software_fallback_wrappers", 159 "../api/video_codecs:video_codecs_api", 160 "../call:video_stream_api", 161 "../common_video", 162 "../modules/video_coding:video_codec_interface", 163 "../modules/video_coding:video_coding_utility", 164 "../rtc_base:checks", 165 "../rtc_base:logging", 166 "../rtc_base/experiments:encoder_info_settings", 167 "../rtc_base/experiments:rate_control_settings", 168 "../rtc_base/system:no_unique_address", 169 "../rtc_base/system:rtc_export", 170 "../system_wrappers", 171 "../system_wrappers:field_trial", 172 ] 173 absl_deps = [ 174 "//third_party/abseil-cpp/absl/algorithm:container", 175 "//third_party/abseil-cpp/absl/types:optional", 176 ] 177} 178 179rtc_library("rtc_encoder_simulcast_proxy") { 180 visibility = [ "*" ] 181 defines = [] 182 libs = [] 183 sources = [ 184 "engine/encoder_simulcast_proxy.cc", 185 "engine/encoder_simulcast_proxy.h", 186 ] 187 deps = [ 188 ":rtc_simulcast_encoder_adapter", 189 "../api/video:video_bitrate_allocation", 190 "../api/video:video_frame", 191 "../api/video:video_rtp_headers", 192 "../api/video_codecs:video_codecs_api", 193 "../modules/video_coding:video_codec_interface", 194 "../rtc_base/system:rtc_export", 195 ] 196} 197 198rtc_library("rtc_internal_video_codecs") { 199 visibility = [ "*" ] 200 allow_poison = [ "software_video_codecs" ] 201 defines = [] 202 libs = [] 203 deps = [ 204 ":rtc_encoder_simulcast_proxy", 205 ":rtc_media_base", 206 ":rtc_simulcast_encoder_adapter", 207 "../api/video:encoded_image", 208 "../api/video:video_bitrate_allocation", 209 "../api/video:video_frame", 210 "../api/video:video_rtp_headers", 211 "../api/video_codecs:rtc_software_fallback_wrappers", 212 "../api/video_codecs:video_codecs_api", 213 "../api/video_codecs:video_encoder_factory_template", 214 "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter", 215 "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter", 216 "../api/video_codecs:video_encoder_factory_template_open_h264_adapter", 217 "../call:call_interfaces", 218 "../call:video_stream_api", 219 "../modules/video_coding:video_codec_interface", 220 "../modules/video_coding:webrtc_h264", 221 "../modules/video_coding:webrtc_multiplex", 222 "../modules/video_coding:webrtc_vp8", 223 "../modules/video_coding:webrtc_vp9", 224 "../rtc_base:checks", 225 "../rtc_base:logging", 226 "../rtc_base/system:rtc_export", 227 "../system_wrappers:field_trial", 228 "../test:fake_video_codecs", 229 ] 230 231 if (enable_libaom) { 232 defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ] 233 deps += [ 234 "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter", 235 ] 236 } 237 238 if (rtc_include_dav1d_in_internal_decoder_factory) { 239 deps += [ "../modules/video_coding/codecs/av1:dav1d_decoder" ] 240 } 241 absl_deps = [ 242 "//third_party/abseil-cpp/absl/strings", 243 "//third_party/abseil-cpp/absl/types:optional", 244 ] 245 sources = [ 246 "engine/fake_video_codec_factory.cc", 247 "engine/fake_video_codec_factory.h", 248 "engine/internal_decoder_factory.cc", 249 "engine/internal_decoder_factory.h", 250 "engine/internal_encoder_factory.cc", 251 "engine/internal_encoder_factory.h", 252 "engine/multiplex_codec_factory.cc", 253 "engine/multiplex_codec_factory.h", 254 255 # TODO(bugs.webrtc.org/7925): stop exporting this header once downstream 256 # targets depend on :rtc_encoder_simulcast_proxy directly. 257 "engine/encoder_simulcast_proxy.h", 258 ] 259} 260 261rtc_library("rtc_audio_video") { 262 visibility = [ "*" ] 263 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove. 264 defines = [] 265 libs = [] 266 deps = [ 267 ":rtc_media_base", 268 "../api:array_view", 269 "../api:call_api", 270 "../api:field_trials_view", 271 "../api:libjingle_peerconnection_api", 272 "../api:media_stream_interface", 273 "../api:rtp_parameters", 274 "../api:scoped_refptr", 275 "../api:sequence_checker", 276 "../api:transport_api", 277 "../api/audio:audio_frame_processor", 278 "../api/audio:audio_mixer_api", 279 "../api/audio_codecs:audio_codecs_api", 280 "../api/task_queue", 281 "../api/task_queue:pending_task_safety_flag", 282 "../api/transport:bitrate_settings", 283 "../api/transport:field_trial_based_config", 284 "../api/transport/rtp:rtp_source", 285 "../api/units:data_rate", 286 "../api/video:video_bitrate_allocation", 287 "../api/video:video_bitrate_allocator_factory", 288 "../api/video:video_codec_constants", 289 "../api/video:video_frame", 290 "../api/video:video_rtp_headers", 291 "../api/video_codecs:rtc_software_fallback_wrappers", 292 "../api/video_codecs:video_codecs_api", 293 "../call", 294 "../call:call_interfaces", 295 "../call:video_stream_api", 296 "../common_video", 297 "../modules/async_audio_processing:async_audio_processing", 298 "../modules/audio_device", 299 "../modules/audio_device:audio_device_impl", 300 "../modules/audio_mixer:audio_mixer_impl", 301 "../modules/audio_processing:api", 302 "../modules/audio_processing/aec_dump", 303 "../modules/audio_processing/agc:gain_control_interface", 304 "../modules/rtp_rtcp:rtp_rtcp_format", 305 "../modules/video_coding", 306 "../modules/video_coding:video_codec_interface", 307 "../modules/video_coding:video_coding_utility", 308 "../modules/video_coding:webrtc_vp9_helpers", 309 "../modules/video_coding/svc:scalability_mode_util", 310 "../rtc_base", 311 "../rtc_base:audio_format_to_string", 312 "../rtc_base:buffer", 313 "../rtc_base:byte_order", 314 "../rtc_base:checks", 315 "../rtc_base:copy_on_write_buffer", 316 "../rtc_base:event_tracer", 317 "../rtc_base:ignore_wundef", 318 "../rtc_base:logging", 319 "../rtc_base:macromagic", 320 "../rtc_base:race_checker", 321 "../rtc_base:rtc_task_queue", 322 "../rtc_base:safe_conversions", 323 "../rtc_base:stringutils", 324 "../rtc_base:threading", 325 "../rtc_base:timeutils", 326 "../rtc_base/experiments:field_trial_parser", 327 "../rtc_base/experiments:min_video_bitrate_experiment", 328 "../rtc_base/experiments:normalize_simulcast_size_experiment", 329 "../rtc_base/experiments:rate_control_settings", 330 "../rtc_base/synchronization:mutex", 331 "../rtc_base/system:no_unique_address", 332 "../rtc_base/system:rtc_export", 333 "../rtc_base/third_party/base64", 334 "../system_wrappers", 335 "../system_wrappers:metrics", 336 ] 337 absl_deps = [ 338 "//third_party/abseil-cpp/absl/algorithm:container", 339 "//third_party/abseil-cpp/absl/strings", 340 "//third_party/abseil-cpp/absl/types:optional", 341 ] 342 343 sources = [ 344 "engine/adm_helpers.cc", 345 "engine/adm_helpers.h", 346 "engine/null_webrtc_video_engine.h", 347 "engine/payload_type_mapper.cc", 348 "engine/payload_type_mapper.h", 349 "engine/unhandled_packets_buffer.cc", 350 "engine/unhandled_packets_buffer.h", 351 "engine/webrtc_media_engine.cc", 352 "engine/webrtc_media_engine.h", 353 "engine/webrtc_video_engine.cc", 354 "engine/webrtc_video_engine.h", 355 "engine/webrtc_voice_engine.cc", 356 "engine/webrtc_voice_engine.h", 357 ] 358 359 public_configs = [] 360 if (!build_with_chromium) { 361 public_configs += [ ":rtc_media_defines_config" ] 362 deps += [ "../modules/video_capture:video_capture_internal_impl" ] 363 } 364 if (rtc_enable_protobuf) { 365 deps += [ 366 "../modules/audio_coding:ana_config_proto", 367 "../modules/audio_processing/aec_dump:aec_dump_impl", 368 ] 369 } else { 370 deps += [ "../modules/audio_processing/aec_dump:null_aec_dump_factory" ] 371 } 372} 373 374# Heavy but optional helper for unittests and webrtc users who prefer to use 375# defaults factories or do not worry about extra dependencies and binary size. 376rtc_library("rtc_media_engine_defaults") { 377 visibility = [ "*" ] 378 allow_poison = [ 379 "audio_codecs", 380 "default_task_queue", 381 "software_video_codecs", 382 ] 383 sources = [ 384 "engine/webrtc_media_engine_defaults.cc", 385 "engine/webrtc_media_engine_defaults.h", 386 ] 387 deps = [ 388 ":rtc_audio_video", 389 "../api/audio_codecs:builtin_audio_decoder_factory", 390 "../api/audio_codecs:builtin_audio_encoder_factory", 391 "../api/task_queue:default_task_queue_factory", 392 "../api/video:builtin_video_bitrate_allocator_factory", 393 "../api/video_codecs:builtin_video_decoder_factory", 394 "../api/video_codecs:builtin_video_encoder_factory", 395 "../modules/audio_processing:api", 396 "../rtc_base:checks", 397 "../rtc_base/system:rtc_export", 398 ] 399} 400 401rtc_source_set("rtc_data_sctp_transport_internal") { 402 sources = [ "sctp/sctp_transport_internal.h" ] 403 deps = [ 404 "../api/transport:datagram_transport_interface", 405 "../media:rtc_media_base", 406 "../p2p:rtc_p2p", 407 "../rtc_base:copy_on_write_buffer", 408 "../rtc_base:threading", 409 ] 410} 411 412if (rtc_build_dcsctp) { 413 rtc_library("rtc_data_dcsctp_transport") { 414 sources = [ 415 "sctp/dcsctp_transport.cc", 416 "sctp/dcsctp_transport.h", 417 ] 418 deps = [ 419 ":rtc_data_sctp_transport_internal", 420 "../api:array_view", 421 "../api/task_queue:pending_task_safety_flag", 422 "../api/task_queue:task_queue", 423 "../media:rtc_media_base", 424 "../net/dcsctp/public:factory", 425 "../net/dcsctp/public:socket", 426 "../net/dcsctp/public:types", 427 "../net/dcsctp/public:utils", 428 "../net/dcsctp/timer:task_queue_timeout", 429 "../p2p:rtc_p2p", 430 "../rtc_base:checks", 431 "../rtc_base:copy_on_write_buffer", 432 "../rtc_base:event_tracer", 433 "../rtc_base:logging", 434 "../rtc_base:macromagic", 435 "../rtc_base:random", 436 "../rtc_base:socket", 437 "../rtc_base:stringutils", 438 "../rtc_base:threading", 439 "../rtc_base/containers:flat_map", 440 "../rtc_base/third_party/sigslot:sigslot", 441 "../system_wrappers", 442 ] 443 absl_deps += [ 444 "//third_party/abseil-cpp/absl/strings:strings", 445 "//third_party/abseil-cpp/absl/types:optional", 446 ] 447 } 448} 449 450rtc_library("rtc_data_sctp_transport_factory") { 451 defines = [] 452 sources = [ 453 "sctp/sctp_transport_factory.cc", 454 "sctp/sctp_transport_factory.h", 455 ] 456 deps = [ 457 ":rtc_data_sctp_transport_internal", 458 "../api/transport:sctp_transport_factory_interface", 459 "../rtc_base:threading", 460 "../rtc_base/system:unused", 461 ] 462 463 if (rtc_enable_sctp) { 464 assert(rtc_build_dcsctp, "An SCTP backend is required to enable SCTP") 465 } 466 467 if (rtc_build_dcsctp) { 468 defines += [ "WEBRTC_HAVE_DCSCTP" ] 469 deps += [ 470 ":rtc_data_dcsctp_transport", 471 "../system_wrappers", 472 "../system_wrappers:field_trial", 473 ] 474 } 475} 476 477rtc_source_set("rtc_media") { 478 visibility = [ "*" ] 479 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove. 480 deps = [ ":rtc_audio_video" ] 481} 482 483if (rtc_include_tests) { 484 rtc_library("rtc_media_tests_utils") { 485 testonly = true 486 487 defines = [] 488 deps = [ 489 ":rtc_audio_video", 490 ":rtc_internal_video_codecs", 491 ":rtc_media", 492 ":rtc_media_base", 493 ":rtc_simulcast_encoder_adapter", 494 "../api:call_api", 495 "../api:fec_controller_api", 496 "../api:scoped_refptr", 497 "../api/task_queue", 498 "../api/task_queue:pending_task_safety_flag", 499 "../api/transport:field_trial_based_config", 500 "../api/video:encoded_image", 501 "../api/video:video_bitrate_allocation", 502 "../api/video:video_frame", 503 "../api/video:video_rtp_headers", 504 "../api/video_codecs:video_codecs_api", 505 "../call:call_interfaces", 506 "../call:mock_rtp_interfaces", 507 "../call:video_stream_api", 508 "../common_video", 509 "../modules/audio_processing", 510 "../modules/audio_processing:api", 511 "../modules/rtp_rtcp:rtp_rtcp_format", 512 "../modules/video_coding:video_codec_interface", 513 "../modules/video_coding:video_coding_utility", 514 "../p2p:rtc_p2p", 515 "../rtc_base", 516 "../rtc_base:buffer", 517 "../rtc_base:byte_order", 518 "../rtc_base:checks", 519 "../rtc_base:copy_on_write_buffer", 520 "../rtc_base:gunit_helpers", 521 "../rtc_base:macromagic", 522 "../rtc_base:rtc_event", 523 "../rtc_base:rtc_task_queue", 524 "../rtc_base:stringutils", 525 "../rtc_base:threading", 526 "../rtc_base:timeutils", 527 "../rtc_base/synchronization:mutex", 528 "../rtc_base/third_party/sigslot", 529 "../test:scoped_key_value_config", 530 "../test:test_support", 531 "../video/config:streams_config", 532 "//testing/gtest", 533 ] 534 absl_deps = [ 535 "//third_party/abseil-cpp/absl/algorithm:container", 536 "//third_party/abseil-cpp/absl/strings", 537 ] 538 sources = [ 539 "base/fake_frame_source.cc", 540 "base/fake_frame_source.h", 541 "base/fake_media_engine.cc", 542 "base/fake_media_engine.h", 543 "base/fake_network_interface.h", 544 "base/fake_rtp.cc", 545 "base/fake_rtp.h", 546 "base/fake_video_renderer.cc", 547 "base/fake_video_renderer.h", 548 "base/test_utils.cc", 549 "base/test_utils.h", 550 "engine/fake_webrtc_call.cc", 551 "engine/fake_webrtc_call.h", 552 "engine/fake_webrtc_video_engine.cc", 553 "engine/fake_webrtc_video_engine.h", 554 ] 555 } 556 557 if (!build_with_chromium) { 558 rtc_media_unittests_resources = [ 559 "../resources/media/captured-320x240-2s-48.frames", 560 "../resources/media/faces.1280x720_P420.yuv", 561 "../resources/media/faces_I400.jpg", 562 "../resources/media/faces_I411.jpg", 563 "../resources/media/faces_I420.jpg", 564 "../resources/media/faces_I422.jpg", 565 "../resources/media/faces_I444.jpg", 566 ] 567 568 if (is_ios) { 569 bundle_data("rtc_media_unittests_bundle_data") { 570 testonly = true 571 sources = rtc_media_unittests_resources 572 outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] 573 } 574 } 575 576 rtc_test("rtc_media_unittests") { 577 testonly = true 578 579 defines = [] 580 deps = [ 581 ":rtc_audio_video", 582 ":rtc_encoder_simulcast_proxy", 583 ":rtc_internal_video_codecs", 584 ":rtc_media", 585 ":rtc_media_base", 586 ":rtc_media_engine_defaults", 587 ":rtc_media_tests_utils", 588 ":rtc_sdp_video_format_utils", 589 ":rtc_simulcast_encoder_adapter", 590 "../api:create_simulcast_test_fixture_api", 591 "../api:libjingle_peerconnection_api", 592 "../api:mock_encoder_selector", 593 "../api:mock_video_bitrate_allocator", 594 "../api:mock_video_bitrate_allocator_factory", 595 "../api:mock_video_codec_factory", 596 "../api:mock_video_encoder", 597 "../api:rtp_parameters", 598 "../api:scoped_refptr", 599 "../api:simulcast_test_fixture_api", 600 "../api/audio_codecs:builtin_audio_decoder_factory", 601 "../api/audio_codecs:builtin_audio_encoder_factory", 602 "../api/rtc_event_log", 603 "../api/task_queue", 604 "../api/task_queue:default_task_queue_factory", 605 "../api/test/video:function_video_factory", 606 "../api/transport:field_trial_based_config", 607 "../api/units:time_delta", 608 "../api/units:timestamp", 609 "../api/video:builtin_video_bitrate_allocator_factory", 610 "../api/video:resolution", 611 "../api/video:video_bitrate_allocation", 612 "../api/video:video_codec_constants", 613 "../api/video:video_frame", 614 "../api/video:video_rtp_headers", 615 "../api/video_codecs:builtin_video_decoder_factory", 616 "../api/video_codecs:builtin_video_encoder_factory", 617 "../api/video_codecs:video_codecs_api", 618 "../audio", 619 "../call:call_interfaces", 620 "../common_video", 621 "../modules/audio_device:mock_audio_device", 622 "../modules/audio_mixer:audio_mixer_impl", 623 "../modules/audio_processing", 624 "../modules/audio_processing:api", 625 "../modules/audio_processing:mocks", 626 "../modules/rtp_rtcp", 627 "../modules/rtp_rtcp:rtp_rtcp_format", 628 "../modules/video_coding:simulcast_test_fixture_impl", 629 "../modules/video_coding:video_codec_interface", 630 "../modules/video_coding:webrtc_h264", 631 "../modules/video_coding:webrtc_vp8", 632 "../p2p:p2p_test_utils", 633 "../rtc_base", 634 "../rtc_base:byte_order", 635 "../rtc_base:checks", 636 "../rtc_base:gunit_helpers", 637 "../rtc_base:logging", 638 "../rtc_base:macromagic", 639 "../rtc_base:rtc_base_tests_utils", 640 "../rtc_base:rtc_event", 641 "../rtc_base:rtc_task_queue", 642 "../rtc_base:safe_conversions", 643 "../rtc_base:stringutils", 644 "../rtc_base:threading", 645 "../rtc_base:timeutils", 646 "../rtc_base/experiments:min_video_bitrate_experiment", 647 "../rtc_base/synchronization:mutex", 648 "../rtc_base/third_party/sigslot", 649 "../system_wrappers:field_trial", 650 "../test:audio_codec_mocks", 651 "../test:fake_video_codecs", 652 "../test:field_trial", 653 "../test:rtp_test_utils", 654 "../test:scoped_key_value_config", 655 "../test:test_main", 656 "../test:test_support", 657 "../test:video_test_common", 658 "../test/time_controller", 659 "../video/config:streams_config", 660 ] 661 662 if (enable_libaom) { 663 defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ] 664 } 665 666 absl_deps = [ 667 "//third_party/abseil-cpp/absl/algorithm:container", 668 "//third_party/abseil-cpp/absl/memory", 669 "//third_party/abseil-cpp/absl/strings", 670 "//third_party/abseil-cpp/absl/types:optional", 671 ] 672 sources = [ 673 "base/codec_unittest.cc", 674 "base/media_engine_unittest.cc", 675 "base/rtp_utils_unittest.cc", 676 "base/sdp_video_format_utils_unittest.cc", 677 "base/stream_params_unittest.cc", 678 "base/turn_utils_unittest.cc", 679 "base/video_adapter_unittest.cc", 680 "base/video_broadcaster_unittest.cc", 681 "base/video_common_unittest.cc", 682 "engine/encoder_simulcast_proxy_unittest.cc", 683 "engine/internal_decoder_factory_unittest.cc", 684 "engine/internal_encoder_factory_unittest.cc", 685 "engine/multiplex_codec_factory_unittest.cc", 686 "engine/null_webrtc_video_engine_unittest.cc", 687 "engine/payload_type_mapper_unittest.cc", 688 "engine/simulcast_encoder_adapter_unittest.cc", 689 "engine/unhandled_packets_buffer_unittest.cc", 690 "engine/webrtc_media_engine_unittest.cc", 691 "engine/webrtc_video_engine_unittest.cc", 692 ] 693 694 # TODO(kthelgason): Reenable this test on iOS. 695 # See bugs.webrtc.org/5569 696 if (!is_ios) { 697 sources += [ "engine/webrtc_voice_engine_unittest.cc" ] 698 } 699 700 if (rtc_opus_support_120ms_ptime) { 701 defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=1" ] 702 } else { 703 defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=0" ] 704 } 705 706 data = rtc_media_unittests_resources 707 708 if (is_android) { 709 deps += [ "//testing/android/native_test:native_test_support" ] 710 shard_timeout = 900 711 } 712 713 if (is_ios) { 714 deps += [ ":rtc_media_unittests_bundle_data" ] 715 } 716 717 if (rtc_build_dcsctp) { 718 sources += [ "sctp/dcsctp_transport_unittest.cc" ] 719 deps += [ 720 ":rtc_data_dcsctp_transport", 721 "../net/dcsctp/public:factory", 722 "../net/dcsctp/public:mocks", 723 "../net/dcsctp/public:socket", 724 ] 725 } 726 } 727 } 728} 729