BUILD.gn (35800B)
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 9 import("//chromium/build/config/linux/pkg_config.gni") 10 import("//libwebrtc/third_party/libaom/options.gni") 11 import("../webrtc.gni") 12 13 group("media") { 14 deps = [] 15 deps += [ 16 ":rtc_media", 17 ":rtc_media_base", 18 ] 19 } 20 21 config("rtc_media_defines_config") { 22 defines = [ "HAVE_WEBRTC_VIDEO" ] 23 } 24 25 rtc_source_set("rtc_media_config") { 26 visibility = [ "*" ] 27 sources = [ "base/media_config.h" ] 28 } 29 30 rtc_library("rtc_sdp_video_format_utils") { 31 visibility = [ "*" ] 32 sources = [ 33 "base/sdp_video_format_utils.cc", 34 "base/sdp_video_format_utils.h", 35 ] 36 37 deps = [ 38 ":media_constants", 39 "../api:rtp_parameters", 40 "../api/video_codecs:video_codecs_api", 41 "../rtc_base:checks", 42 "../rtc_base:stringutils", 43 "//third_party/abseil-cpp/absl/algorithm:container", 44 ] 45 } 46 47 rtc_library("rtc_media_base") { 48 visibility = [ "*" ] 49 defines = [] 50 libs = [] 51 sources = [ 52 "base/adapted_video_track_source.h", # Used downstream 53 "base/video_adapter.h", # Used once downstream 54 "base/video_broadcaster.h", # Used downstream 55 "base/video_common.h", # Used downstream 56 ] 57 deps = [ 58 ":adapted_video_track_source", 59 ":codec", 60 ":media_channel", 61 ":media_channel_impl", 62 ":rid_description", 63 ":rtc_media_config", 64 ":rtp_utils", 65 ":stream_params", 66 ":video_adapter", 67 ":video_broadcaster", 68 ":video_common", 69 ":video_source_base", 70 "../api:array_view", 71 "../api:audio_options_api", 72 "../api:call_api", 73 "../api:field_trials_view", 74 "../api:frame_transformer_interface", 75 "../api:media_stream_interface", 76 "../api:rtc_error", 77 "../api:rtp_parameters", 78 "../api:rtp_sender_setparameters_callback", 79 "../api:scoped_refptr", 80 "../api:sequence_checker", 81 "../api:transport_api", 82 "../api:video_track_source_constraints", 83 "../api/audio:audio_frame_processor", 84 "../api/audio_codecs:audio_codecs_api", 85 "../api/crypto:frame_decryptor_interface", 86 "../api/crypto:frame_encryptor_interface", 87 "../api/crypto:options", 88 "../api/task_queue", 89 "../api/task_queue:pending_task_safety_flag", 90 "../api/transport:datagram_transport_interface", 91 "../api/transport:stun_types", 92 "../api/transport/rtp:rtp_source", 93 "../api/units:time_delta", 94 "../api/video:recordable_encoded_frame", 95 "../api/video:resolution", 96 "../api/video:video_bitrate_allocation", 97 "../api/video:video_bitrate_allocator_factory", 98 "../api/video:video_frame", 99 "../api/video:video_rtp_headers", 100 "../api/video_codecs:scalability_mode", 101 "../api/video_codecs:video_codecs_api", 102 "../call:call_interfaces", 103 "../common_video", 104 "../modules/async_audio_processing", 105 "../modules/audio_device", 106 "../modules/rtp_rtcp:rtp_rtcp_format", 107 "../rtc_base:async_packet_socket", 108 "../rtc_base:buffer", 109 "../rtc_base:byte_order", 110 "../rtc_base:checks", 111 "../rtc_base:copy_on_write_buffer", 112 "../rtc_base:dscp", 113 "../rtc_base:logging", 114 "../rtc_base:macromagic", 115 "../rtc_base:network_route", 116 "../rtc_base:sanitizer", 117 "../rtc_base:socket", 118 "../rtc_base:stringutils", 119 "../rtc_base:timeutils", 120 "../rtc_base:unique_id_generator", 121 "../rtc_base/network:sent_packet", 122 "../rtc_base/synchronization:mutex", 123 "../rtc_base/system:file_wrapper", 124 "../rtc_base/system:no_unique_address", 125 "../rtc_base/system:rtc_export", 126 "../rtc_base/third_party/sigslot", 127 "../video/config:encoder_config", 128 "//third_party/abseil-cpp/absl/base:core_headers", 129 ] 130 } 131 132 rtc_library("adapted_video_track_source") { 133 sources = [ 134 "base/adapted_video_track_source.cc", 135 "base/adapted_video_track_source.h", 136 ] 137 deps = [ 138 ":video_adapter", 139 ":video_broadcaster", 140 "../api:media_stream_interface", 141 "../api:scoped_refptr", 142 "../api:video_track_source_constraints", 143 "../api/video:recordable_encoded_frame", 144 "../api/video:video_frame", 145 "../api/video:video_rtp_headers", 146 "../rtc_base:checks", 147 "../rtc_base:macromagic", 148 "../rtc_base:timeutils", 149 "../rtc_base/synchronization:mutex", 150 "../rtc_base/system:rtc_export", 151 ] 152 } 153 154 rtc_source_set("audio_source") { 155 sources = [ "base/audio_source.h" ] 156 if (build_with_mozilla) { 157 sources -= [ "base/audio_source.h" ] 158 } 159 } 160 161 rtc_library("video_adapter") { 162 sources = [ 163 "base/video_adapter.cc", 164 "base/video_adapter.h", 165 ] 166 deps = [ 167 ":video_common", 168 "../api/video:resolution", 169 "../api/video:video_frame", 170 "../common_video", 171 "../rtc_base:checks", 172 "../rtc_base:logging", 173 "../rtc_base:macromagic", 174 "../rtc_base:stringutils", 175 "../rtc_base:timeutils", 176 "../rtc_base/synchronization:mutex", 177 "../rtc_base/system:rtc_export", 178 ] 179 } 180 181 rtc_library("video_source_base") { 182 sources = [ 183 "base/video_source_base.cc", 184 "base/video_source_base.h", 185 ] 186 deps = [ 187 "../api:sequence_checker", 188 "../api/video:video_frame", 189 "../rtc_base:checks", 190 "../rtc_base:macromagic", 191 "../rtc_base/system:no_unique_address", 192 "//third_party/abseil-cpp/absl/algorithm:container", 193 ] 194 } 195 196 rtc_library("video_broadcaster") { 197 sources = [ 198 "base/video_broadcaster.cc", 199 "base/video_broadcaster.h", # Used downstream 200 ] 201 deps = [ 202 ":video_common", 203 ":video_source_base", 204 "../api:media_stream_interface", 205 "../api:scoped_refptr", 206 "../api:sequence_checker", 207 "../api:video_track_source_constraints", 208 "../api/video:video_frame", 209 "../api/video:video_rtp_headers", 210 "../rtc_base:checks", 211 "../rtc_base:logging", 212 "../rtc_base:macromagic", 213 "../rtc_base/synchronization:mutex", 214 ] 215 } 216 217 rtc_library("video_common") { 218 sources = [ 219 "base/video_common.cc", 220 "base/video_common.h", 221 ] 222 deps = [ 223 "../api:array_view", 224 "../rtc_base:checks", 225 "../rtc_base:stringutils", 226 "../rtc_base:timeutils", 227 "../rtc_base/system:rtc_export", 228 "//third_party/abseil-cpp/absl/base:core_headers", 229 ] 230 } 231 232 rtc_library("media_engine") { 233 sources = [ 234 "base/media_engine.cc", 235 "base/media_engine.h", 236 ] 237 deps = [ 238 ":codec", 239 ":media_channel", 240 ":media_channel_impl", 241 ":rid_description", 242 ":rtc_media_config", 243 ":stream_params", 244 ":video_common", 245 "../api:array_view", 246 "../api:audio_options_api", 247 "../api:field_trials_view", 248 "../api:rtc_error", 249 "../api:rtp_headers", 250 "../api:rtp_parameters", 251 "../api:rtp_transceiver_direction", 252 "../api:scoped_refptr", 253 "../api/audio:audio_device", 254 "../api/audio_codecs:audio_codecs_api", 255 "../api/crypto:options", 256 "../api/environment", 257 "../api/video:video_bitrate_allocation", 258 "../api/video:video_bitrate_allocator_factory", 259 "../api/video:video_codec_constants", 260 "../api/video_codecs:scalability_mode", 261 "../call:call_interfaces", 262 "../rtc_base:checks", 263 "../rtc_base:stringutils", 264 "../rtc_base/system:file_wrapper", 265 "//third_party/abseil-cpp/absl/algorithm:container", 266 ] 267 if (build_with_mozilla) { 268 sources -= [ 269 "base/media_engine.cc", 270 "base/media_engine.h", 271 ] 272 deps -= [ 273 ":media_channel_impl", 274 ] 275 } 276 } 277 278 rtc_library("media_channel_impl") { 279 if (!build_with_mozilla) { 280 sources = [ 281 "base/media_channel_impl.cc", 282 "base/media_channel_impl.h", 283 ] 284 deps = [ 285 ":codec", 286 ":media_channel", 287 ":rtp_utils", 288 ":stream_params", 289 "../api:array_view", 290 "../api:audio_options_api", 291 "../api:call_api", 292 "../api:frame_transformer_interface", 293 "../api:media_stream_interface", 294 "../api:rtc_error", 295 "../api:rtp_headers", 296 "../api:rtp_parameters", 297 "../api:rtp_sender_interface", 298 "../api:scoped_refptr", 299 "../api:sequence_checker", 300 "../api:transport_api", 301 "../api/crypto:frame_decryptor_interface", 302 "../api/crypto:frame_encryptor_interface", 303 "../api/task_queue", 304 "../api/task_queue:pending_task_safety_flag", 305 "../api/transport/rtp:rtp_source", 306 "../api/units:time_delta", 307 "../api/video:recordable_encoded_frame", 308 "../api/video:video_frame", 309 "../api/video:video_rtp_headers", 310 "../api/video_codecs:scalability_mode", 311 "../api/video_codecs:video_codecs_api", 312 "../common_video", 313 "../modules/rtp_rtcp:rtp_rtcp_format", 314 "../rtc_base:async_packet_socket", 315 "../rtc_base:checks", 316 "../rtc_base:copy_on_write_buffer", 317 "../rtc_base:dscp", 318 "../rtc_base:logging", 319 "../rtc_base:macromagic", 320 "../rtc_base:network_route", 321 "../rtc_base:socket", 322 "../rtc_base/network:sent_packet", 323 "//third_party/abseil-cpp/absl/functional:any_invocable", 324 "//third_party/abseil-cpp/absl/strings:string_view", 325 ] 326 } 327 } 328 329 rtc_source_set("media_channel") { 330 sources = [ "base/media_channel.h" ] 331 deps = [ 332 ":audio_source", 333 ":codec", 334 ":media_constants", 335 ":rtp_utils", 336 ":stream_params", 337 "../api:audio_options_api", 338 "../api:call_api", 339 "../api:frame_transformer_interface", 340 "../api:media_stream_interface", 341 "../api:rtc_error", 342 "../api:rtp_headers", 343 "../api:rtp_parameters", 344 "../api:rtp_sender_interface", 345 "../api:scoped_refptr", 346 "../api/audio:audio_processing_statistics", 347 "../api/audio_codecs:audio_codecs_api", 348 "../api/crypto:frame_decryptor_interface", 349 "../api/crypto:frame_encryptor_interface", 350 "../api/task_queue:pending_task_safety_flag", 351 "../api/transport:datagram_transport_interface", 352 "../api/transport/rtp:rtp_source", 353 "../api/units:data_rate", 354 "../api/units:time_delta", 355 "../api/units:timestamp", 356 "../api/video:encoded_image", 357 "../api/video:recordable_encoded_frame", 358 "../api/video:video_frame", 359 "../api/video:video_rtp_headers", 360 "../api/video_codecs:scalability_mode", 361 "../api/video_codecs:video_codecs_api", 362 "../common_video", 363 "../modules/rtp_rtcp:rtp_rtcp_format", 364 "../rtc_base:async_packet_socket", 365 "../rtc_base:buffer", 366 "../rtc_base:checks", 367 "../rtc_base:copy_on_write_buffer", 368 "../rtc_base:dscp", 369 "../rtc_base:logging", 370 "../rtc_base:network_route", 371 "../rtc_base:socket", 372 "../rtc_base:stringutils", 373 "../rtc_base/network:sent_packet", 374 "../video/config:encoder_config", 375 "//third_party/abseil-cpp/absl/functional:any_invocable", 376 "//third_party/abseil-cpp/absl/strings", 377 "//third_party/abseil-cpp/absl/strings:string_view", 378 ] 379 } 380 381 rtc_library("codec") { 382 sources = [ 383 "base/codec.cc", 384 "base/codec.h", 385 386 # Because Codec::Matches uses a function from codec_comparators, 387 # there's a mutual dependency between these two files. 388 "base/codec_comparators.cc", 389 "base/codec_comparators.h", 390 ] 391 deps = [ 392 ":media_constants", 393 "../api:rtp_parameters", 394 "../api/audio_codecs:audio_codecs_api", 395 "../api/video_codecs:scalability_mode", 396 "../api/video_codecs:video_codecs_api", 397 "../rtc_base:checks", 398 "../rtc_base:logging", 399 "../rtc_base:stringutils", 400 "../rtc_base/system:rtc_export", 401 "//third_party/abseil-cpp/absl/algorithm:container", 402 "//third_party/abseil-cpp/absl/base:core_headers", 403 "//third_party/abseil-cpp/absl/container:inlined_vector", 404 "//third_party/abseil-cpp/absl/functional:any_invocable", 405 "//third_party/abseil-cpp/absl/strings", 406 "//third_party/abseil-cpp/absl/strings:str_format", 407 "//third_party/abseil-cpp/absl/strings:string_view", 408 ] 409 } 410 411 rtc_library("codec_list") { 412 sources = [ 413 "base/codec_list.cc", 414 "base/codec_list.h", 415 ] 416 deps = [ 417 ":codec", 418 ":media_constants", 419 "../api:rtc_error", 420 "../rtc_base:checks", 421 "../rtc_base:logging", 422 "../rtc_base:stringutils", 423 ] 424 } 425 426 # MOZILLA Bug 1931241 - how much of this do we need? 427 rtc_library("rtp_utils") { 428 if (!build_with_mozilla) { 429 sources = [ 430 "base/rtp_utils.cc", 431 "base/rtp_utils.h", 432 ] 433 deps = [ 434 ":turn_utils", 435 "../api:array_view", 436 "../modules/rtp_rtcp:rtp_rtcp_format", 437 "../rtc_base:async_packet_socket", 438 "../rtc_base:byte_order", 439 "../rtc_base:checks", 440 "../rtc_base:digest", 441 "../rtc_base/system:rtc_export", 442 "//third_party/abseil-cpp/absl/strings:string_view", 443 ] 444 } 445 } 446 447 rtc_library("stream_params") { 448 if (!build_with_mozilla) { 449 sources = [ 450 "base/stream_params.cc", 451 "base/stream_params.h", 452 ] 453 deps = [ 454 ":rid_description", 455 "../api:array_view", 456 "../rtc_base:checks", 457 "../rtc_base:stringutils", 458 "../rtc_base:unique_id_generator", 459 "//third_party/abseil-cpp/absl/algorithm:container", 460 ] 461 } 462 } 463 464 rtc_library("media_constants") { 465 sources = [ 466 "base/media_constants.cc", 467 "base/media_constants.h", 468 ] 469 deps = [ "../rtc_base/system:rtc_export" ] 470 } 471 472 rtc_library("turn_utils") { 473 sources = [ 474 "base/turn_utils.cc", 475 "base/turn_utils.h", 476 ] 477 deps = [ 478 "../api/transport:stun_types", 479 "../rtc_base:byte_order", 480 "../rtc_base/system:rtc_export", 481 ] 482 } 483 484 rtc_library("rid_description") { 485 sources = [ 486 "base/rid_description.cc", 487 "base/rid_description.h", 488 ] 489 deps = [ ":codec" ] 490 } 491 492 rtc_library("rtc_simulcast_encoder_adapter") { 493 visibility = [ "*" ] 494 defines = [] 495 libs = [] 496 sources = [ 497 "engine/simulcast_encoder_adapter.cc", 498 "engine/simulcast_encoder_adapter.h", 499 ] 500 deps = [ 501 ":rtc_sdp_video_format_utils", 502 ":video_common", 503 "../api:array_view", 504 "../api:fec_controller_api", 505 "../api:field_trials_view", 506 "../api:scoped_refptr", 507 "../api:sequence_checker", 508 "../api/environment", 509 "../api/units:data_rate", 510 "../api/units:timestamp", 511 "../api/video:encoded_image", 512 "../api/video:video_bitrate_allocation", 513 "../api/video:video_bitrate_allocator", 514 "../api/video:video_codec_constants", 515 "../api/video:video_frame", 516 "../api/video:video_frame_type", 517 "../api/video:video_rtp_headers", 518 "../api/video_codecs:rtc_software_fallback_wrappers", 519 "../api/video_codecs:scalability_mode", 520 "../api/video_codecs:video_codecs_api", 521 "../common_video", 522 "../media:media_constants", 523 "../modules/video_coding:video_codec_interface", 524 "../modules/video_coding:video_coding_utility", 525 "../rtc_base:checks", 526 "../rtc_base:logging", 527 "../rtc_base:stringutils", 528 "../rtc_base/experiments:encoder_info_settings", 529 "../rtc_base/experiments:rate_control_settings", 530 "../rtc_base/system:no_unique_address", 531 "../rtc_base/system:rtc_export", 532 "../system_wrappers", 533 "//third_party/abseil-cpp/absl/algorithm:container", 534 "//third_party/abseil-cpp/absl/base:nullability", 535 ] 536 } 537 538 rtc_library("rtc_internal_video_codecs") { 539 visibility = [ "*" ] 540 allow_poison = [ "software_video_codecs" ] 541 defines = [] 542 libs = [] 543 deps = [ 544 ":codec", 545 ":media_constants", 546 ":rtc_simulcast_encoder_adapter", 547 "../api/environment", 548 "../api/video:encoded_image", 549 "../api/video:video_bitrate_allocation", 550 "../api/video:video_frame", 551 "../api/video:video_rtp_headers", 552 "../api/video_codecs:rtc_software_fallback_wrappers", 553 "../api/video_codecs:scalability_mode", 554 "../api/video_codecs:video_codecs_api", 555 "../api/video_codecs:video_encoder_factory_template", 556 "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter", 557 "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter", 558 "../api/video_codecs:video_encoder_factory_template_open_h264_adapter", 559 "../call:call_interfaces", 560 "../modules/video_coding:video_codec_interface", 561 "../modules/video_coding:webrtc_h264", 562 "../modules/video_coding:webrtc_vp8", 563 "../modules/video_coding:webrtc_vp9", 564 "../rtc_base:checks", 565 "../rtc_base:logging", 566 "../rtc_base/system:rtc_export", 567 "../test:fake_video_codecs", 568 "//third_party/abseil-cpp/absl/container:inlined_vector", 569 "//third_party/abseil-cpp/absl/strings", 570 ] 571 if (build_with_mozilla) { 572 deps -= [ 573 "../test:fake_video_codecs", 574 ] 575 } 576 577 if (enable_libaom) { 578 defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ] 579 deps += [ 580 "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter", 581 ] 582 } 583 584 if (rtc_include_dav1d_in_internal_decoder_factory) { 585 deps += [ "../modules/video_coding/codecs/av1:dav1d_decoder" ] 586 } 587 sources = [ 588 "engine/fake_video_codec_factory.cc", 589 "engine/fake_video_codec_factory.h", 590 "engine/internal_decoder_factory.cc", 591 "engine/internal_decoder_factory.h", 592 "engine/internal_encoder_factory.cc", 593 "engine/internal_encoder_factory.h", 594 ] 595 if (build_with_mozilla) { 596 sources -= [ 597 "engine/fake_video_codec_factory.cc", 598 "engine/fake_video_codec_factory.h", 599 "engine/internal_encoder_factory.cc", # See Bug 1820869. 600 ] 601 } 602 } 603 604 rtc_library("rtc_audio_video") { 605 visibility = [ "*" ] 606 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove. 607 defines = [] 608 libs = [] 609 deps = [ 610 ":audio_source", 611 ":codec", 612 ":media_channel", 613 ":media_channel_impl", 614 ":media_constants", 615 ":media_engine", 616 ":rid_description", 617 ":rtc_media_config", 618 ":rtp_utils", 619 ":stream_params", 620 "../api:array_view", 621 "../api:audio_options_api", 622 "../api:call_api", 623 "../api:field_trials_view", 624 "../api:frame_transformer_interface", 625 "../api:make_ref_counted", 626 "../api:media_stream_interface", 627 "../api:priority", 628 "../api:rtc_error", 629 "../api:rtp_headers", 630 "../api:rtp_parameters", 631 "../api:rtp_sender_interface", 632 "../api:rtp_transceiver_direction", 633 "../api:scoped_refptr", 634 "../api:sequence_checker", 635 "../api/audio:audio_device", 636 "../api/audio:audio_frame_api", 637 "../api/audio:audio_frame_processor", 638 "../api/audio:audio_mixer_api", 639 "../api/audio:audio_processing", 640 "../api/audio:audio_processing_statistics", 641 "../api/audio_codecs:audio_codecs_api", 642 "../api/crypto:frame_decryptor_interface", 643 "../api/crypto:frame_encryptor_interface", 644 "../api/crypto:options", 645 "../api/environment", 646 "../api/task_queue", 647 "../api/task_queue:pending_task_safety_flag", 648 "../api/transport:bitrate_settings", 649 "../api/transport/rtp:rtp_source", 650 "../api/units:data_rate", 651 "../api/units:time_delta", 652 "../api/units:timestamp", 653 "../api/video:recordable_encoded_frame", 654 "../api/video:video_bitrate_allocator_factory", 655 "../api/video:video_frame", 656 "../api/video:video_stream_encoder", 657 "../api/video_codecs:scalability_mode", 658 "../api/video_codecs:video_codecs_api", 659 "../call", 660 "../call:call_interfaces", 661 "../call:payload_type", 662 "../call:payload_type_picker", 663 "../call:receive_stream_interface", 664 "../call:rtp_interfaces", 665 "../call:video_receive_stream_api", 666 "../call:video_send_stream_api", 667 "../common_video:frame_counts", 668 "../modules/async_audio_processing", 669 "../modules/audio_mixer:audio_mixer_impl", 670 "../modules/rtp_rtcp", 671 "../modules/rtp_rtcp:rtp_rtcp_format", 672 "../modules/video_coding/svc:scalability_mode_util", 673 "../rtc_base:checks", 674 "../rtc_base:dscp", 675 "../rtc_base:event_tracer", 676 "../rtc_base:logging", 677 "../rtc_base:macromagic", 678 "../rtc_base:network_route", 679 "../rtc_base:race_checker", 680 "../rtc_base:socket", 681 "../rtc_base:stringutils", 682 "../rtc_base:timeutils", 683 "../rtc_base/experiments:field_trial_parser", 684 "../rtc_base/network:sent_packet", 685 "../rtc_base/synchronization:mutex", 686 "../rtc_base/system:file_wrapper", 687 "../rtc_base/system:no_unique_address", 688 "../system_wrappers", 689 "../system_wrappers:metrics", 690 "../video/config:encoder_config", 691 "//third_party/abseil-cpp/absl/algorithm", 692 "//third_party/abseil-cpp/absl/algorithm:container", 693 "//third_party/abseil-cpp/absl/functional:any_invocable", 694 "//third_party/abseil-cpp/absl/functional:bind_front", 695 "//third_party/abseil-cpp/absl/strings", 696 "//third_party/abseil-cpp/absl/strings:string_view", 697 ] 698 699 sources = [ 700 "engine/adm_helpers.cc", 701 "engine/adm_helpers.h", 702 "engine/webrtc_media_engine.cc", 703 "engine/webrtc_media_engine.h", 704 "engine/webrtc_video_engine.cc", 705 "engine/webrtc_video_engine.h", 706 "engine/webrtc_voice_engine.cc", 707 "engine/webrtc_voice_engine.h", 708 ] 709 if (build_with_mozilla) { 710 sources -= [ 711 "engine/webrtc_video_engine.cc", 712 "engine/webrtc_voice_engine.cc", 713 ] 714 } 715 716 public_configs = [] 717 if (!build_with_chromium) { 718 public_configs += [ ":rtc_media_defines_config" ] 719 deps += [ "../modules/video_capture:video_capture_internal_impl" ] 720 } 721 722 if (rtc_include_internal_audio_device) { 723 deps += [ "../api/audio:create_audio_device_module" ] 724 } 725 726 if (rtc_enable_protobuf) { 727 deps += [ 728 "../modules/audio_coding:ana_config_proto", 729 "../modules/audio_processing/aec_dump:aec_dump_impl", 730 ] 731 } else { 732 deps += [ "../modules/audio_processing/aec_dump:null_aec_dump_factory" ] 733 } 734 } 735 736 rtc_source_set("rtc_data_sctp_transport_internal") { 737 sources = [ "sctp/sctp_transport_internal.h" ] 738 deps = [ 739 ":media_channel", 740 "../api:libjingle_peerconnection_api", 741 "../api:priority", 742 "../api:rtc_error", 743 "../api/transport:datagram_transport_interface", 744 "../p2p:dtls_transport_internal", 745 "../p2p:packet_transport_internal", 746 "../rtc_base:copy_on_write_buffer", 747 "../rtc_base:threading", 748 ] 749 } 750 751 if (rtc_build_dcsctp) { 752 rtc_library("rtc_data_dcsctp_transport") { 753 sources = [ 754 "sctp/dcsctp_transport.cc", 755 "sctp/dcsctp_transport.h", 756 ] 757 deps = [ 758 ":media_channel", 759 ":rtc_data_sctp_transport_internal", 760 "../api:array_view", 761 "../api:dtls_transport_interface", 762 "../api:field_trials_view", 763 "../api:libjingle_peerconnection_api", 764 "../api:priority", 765 "../api:rtc_error", 766 "../api:sequence_checker", 767 "../api/environment", 768 "../api/task_queue", 769 "../api/task_queue:pending_task_safety_flag", 770 "../api/transport:datagram_transport_interface", 771 "../net/dcsctp/public:factory", 772 "../net/dcsctp/public:socket", 773 "../net/dcsctp/public:types", 774 "../net/dcsctp/public:utils", 775 "../net/dcsctp/timer:task_queue_timeout", 776 "../p2p:dtls_transport_internal", 777 "../p2p:packet_transport_internal", 778 "../rtc_base:async_packet_socket", 779 "../rtc_base:checks", 780 "../rtc_base:copy_on_write_buffer", 781 "../rtc_base:event_tracer", 782 "../rtc_base:logging", 783 "../rtc_base:macromagic", 784 "../rtc_base:random", 785 "../rtc_base:socket", 786 "../rtc_base:stringutils", 787 "../rtc_base:threading", 788 "../rtc_base/containers:flat_map", 789 "../rtc_base/network:received_packet", 790 "../rtc_base/third_party/sigslot", 791 "../system_wrappers", 792 "//third_party/abseil-cpp/absl/strings", 793 ] 794 } 795 } 796 797 rtc_library("rtc_data_sctp_transport_factory") { 798 defines = [] 799 sources = [ 800 "sctp/sctp_transport_factory.cc", 801 "sctp/sctp_transport_factory.h", 802 ] 803 deps = [ 804 ":rtc_data_sctp_transport_internal", 805 "../api/environment", 806 "../api/transport:sctp_transport_factory_interface", 807 "../p2p:dtls_transport_internal", 808 "../rtc_base:threading", 809 "../rtc_base/system:unused", 810 ] 811 812 if (rtc_enable_sctp) { 813 assert(rtc_build_dcsctp, "An SCTP backend is required to enable SCTP") 814 } 815 816 if (rtc_build_dcsctp) { 817 defines += [ "WEBRTC_HAVE_DCSCTP" ] 818 deps += [ 819 ":rtc_data_dcsctp_transport", 820 "../system_wrappers", 821 ] 822 } 823 } 824 825 rtc_source_set("rtc_media") { 826 visibility = [ "*" ] 827 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove. 828 deps = [ ":rtc_audio_video" ] 829 } 830 831 if (rtc_include_tests) { 832 rtc_library("rtc_media_tests_utils") { 833 testonly = true 834 835 defines = [] 836 deps = [ 837 ":audio_source", 838 ":codec", 839 ":media_channel", 840 ":media_channel_impl", 841 ":media_constants", 842 ":media_engine", 843 ":rtc_audio_video", 844 ":rtc_internal_video_codecs", 845 ":rtc_media", 846 ":rtc_media_config", 847 ":rtc_simulcast_encoder_adapter", 848 ":rtp_utils", 849 ":stream_params", 850 ":video_common", 851 "../api:array_view", 852 "../api:audio_options_api", 853 "../api:call_api", 854 "../api:fec_controller_api", 855 "../api:field_trials_view", 856 "../api:frame_transformer_interface", 857 "../api:make_ref_counted", 858 "../api:rtc_error", 859 "../api:rtp_headers", 860 "../api:rtp_parameters", 861 "../api:rtp_sender_interface", 862 "../api:scoped_refptr", 863 "../api/adaptation:resource_adaptation_api", 864 "../api/audio:audio_device", 865 "../api/audio:audio_frame_api", 866 "../api/audio:audio_mixer_api", 867 "../api/audio:audio_processing", 868 "../api/audio_codecs:audio_codecs_api", 869 "../api/crypto:frame_decryptor_interface", 870 "../api/crypto:frame_encryptor_interface", 871 "../api/crypto:options", 872 "../api/environment", 873 "../api/task_queue", 874 "../api/task_queue:pending_task_safety_flag", 875 "../api/transport:bitrate_settings", 876 "../api/transport/rtp:rtp_source", 877 "../api/units:time_delta", 878 "../api/units:timestamp", 879 "../api/video:encoded_image", 880 "../api/video:recordable_encoded_frame", 881 "../api/video:video_bitrate_allocation", 882 "../api/video:video_bitrate_allocator_factory", 883 "../api/video:video_frame", 884 "../api/video:video_frame_type", 885 "../api/video:video_rtp_headers", 886 "../api/video_codecs:scalability_mode", 887 "../api/video_codecs:video_codecs_api", 888 "../call:call_interfaces", 889 "../call:fake_payload_type_suggester", 890 "../call:mock_rtp_interfaces", 891 "../call:payload_type", 892 "../call:payload_type_picker", 893 "../call:rtp_interfaces", 894 "../call:video_receive_stream_api", 895 "../call:video_send_stream_api", 896 "../common_video", 897 "../modules/audio_processing", 898 "../modules/rtp_rtcp", 899 "../modules/rtp_rtcp:rtp_rtcp_format", 900 "../modules/video_coding:video_codec_interface", 901 "../modules/video_coding:video_coding_utility", 902 "../modules/video_coding/svc:scalability_mode_util", 903 "../rtc_base:async_packet_socket", 904 "../rtc_base:buffer", 905 "../rtc_base:byte_order", 906 "../rtc_base:checks", 907 "../rtc_base:copy_on_write_buffer", 908 "../rtc_base:dscp", 909 "../rtc_base:gunit_helpers", 910 "../rtc_base:logging", 911 "../rtc_base:macromagic", 912 "../rtc_base:network_route", 913 "../rtc_base:rtc_event", 914 "../rtc_base:socket", 915 "../rtc_base:stringutils", 916 "../rtc_base:threading", 917 "../rtc_base:timeutils", 918 "../rtc_base/network:sent_packet", 919 "../rtc_base/synchronization:mutex", 920 "../rtc_base/system:file_wrapper", 921 "../rtc_base/third_party/sigslot", 922 "../test:create_test_field_trials", 923 "../test:test_support", 924 "../video/config:encoder_config", 925 "../video/config:streams_config", 926 "//testing/gtest", 927 "//third_party/abseil-cpp/absl/algorithm:container", 928 "//third_party/abseil-cpp/absl/base:nullability", 929 "//third_party/abseil-cpp/absl/functional:any_invocable", 930 "//third_party/abseil-cpp/absl/strings", 931 "//third_party/abseil-cpp/absl/strings:string_view", 932 ] 933 sources = [ 934 "base/fake_frame_source.cc", 935 "base/fake_frame_source.h", 936 "base/fake_media_engine.cc", 937 "base/fake_media_engine.h", 938 "base/fake_network_interface.h", 939 "base/fake_rtp.cc", 940 "base/fake_rtp.h", 941 "base/fake_video_renderer.cc", 942 "base/fake_video_renderer.h", 943 "base/test_utils.cc", 944 "base/test_utils.h", 945 "engine/fake_webrtc_call.cc", 946 "engine/fake_webrtc_call.h", 947 "engine/fake_webrtc_video_engine.cc", 948 "engine/fake_webrtc_video_engine.h", 949 ] 950 } 951 952 if (!build_with_chromium) { 953 rtc_media_unittests_resources = [ 954 "../resources/media/captured-320x240-2s-48.frames", 955 "../resources/media/faces.1280x720_P420.yuv", 956 "../resources/media/faces_I400.jpg", 957 "../resources/media/faces_I411.jpg", 958 "../resources/media/faces_I420.jpg", 959 "../resources/media/faces_I422.jpg", 960 "../resources/media/faces_I444.jpg", 961 ] 962 963 if (is_ios) { 964 bundle_data("rtc_media_unittests_bundle_data") { 965 testonly = true 966 sources = rtc_media_unittests_resources 967 outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] 968 } 969 } 970 971 rtc_test("rtc_media_unittests") { 972 testonly = true 973 974 defines = [] 975 deps = [ 976 ":audio_source", 977 ":codec", 978 ":codec_list", 979 ":media_channel", 980 ":media_constants", 981 ":media_engine", 982 ":rid_description", 983 ":rtc_audio_video", 984 ":rtc_internal_video_codecs", 985 ":rtc_media_base", 986 ":rtc_media_config", 987 ":rtc_media_tests_utils", 988 ":rtc_sdp_video_format_utils", 989 ":rtc_simulcast_encoder_adapter", 990 ":rtp_utils", 991 ":stream_params", 992 ":turn_utils", 993 ":video_common", 994 "../api:array_view", 995 "../api:audio_options_api", 996 "../api:call_api", 997 "../api:create_simulcast_test_fixture_api", 998 "../api:fec_controller_api", 999 "../api:field_trials", 1000 "../api:field_trials_view", 1001 "../api:make_ref_counted", 1002 "../api:mock_encoder_selector", 1003 "../api:mock_video_bitrate_allocator", 1004 "../api:mock_video_bitrate_allocator_factory", 1005 "../api:mock_video_codec_factory", 1006 "../api:mock_video_decoder", 1007 "../api:priority", 1008 "../api:ref_count", 1009 "../api:rtc_error", 1010 "../api:rtp_headers", 1011 "../api:rtp_parameters", 1012 "../api:rtp_transceiver_direction", 1013 "../api:scoped_refptr", 1014 "../api:simulcast_test_fixture_api", 1015 "../api:transport_api", 1016 "../api:video_track_source_constraints", 1017 "../api/audio:audio_device", 1018 "../api/audio:audio_processing", 1019 "../api/audio:builtin_audio_processing_builder", 1020 "../api/audio_codecs:audio_codecs_api", 1021 "../api/audio_codecs:builtin_audio_decoder_factory", 1022 "../api/audio_codecs:builtin_audio_encoder_factory", 1023 "../api/crypto:options", 1024 "../api/environment", 1025 "../api/environment:environment_factory", 1026 "../api/test/video:function_video_factory", 1027 "../api/transport:bitrate_settings", 1028 "../api/transport:datagram_transport_interface", 1029 "../api/transport/rtp:rtp_source", 1030 "../api/units:data_rate", 1031 "../api/units:time_delta", 1032 "../api/units:timestamp", 1033 "../api/video:builtin_video_bitrate_allocator_factory", 1034 "../api/video:encoded_image", 1035 "../api/video:recordable_encoded_frame", 1036 "../api/video:resolution", 1037 "../api/video:video_bitrate_allocation", 1038 "../api/video:video_bitrate_allocator", 1039 "../api/video:video_bitrate_allocator_factory", 1040 "../api/video:video_codec_constants", 1041 "../api/video:video_frame", 1042 "../api/video:video_frame_type", 1043 "../api/video:video_rtp_headers", 1044 "../api/video_codecs:scalability_mode", 1045 "../api/video_codecs:video_codecs_api", 1046 "../api/video_codecs:video_decoder_factory_template", 1047 "../api/video_codecs:video_decoder_factory_template_dav1d_adapter", 1048 "../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter", 1049 "../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter", 1050 "../api/video_codecs:video_decoder_factory_template_open_h264_adapter", 1051 "../api/video_codecs:video_encoder_factory_template", 1052 "../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter", 1053 "../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter", 1054 "../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter", 1055 "../api/video_codecs:video_encoder_factory_template_open_h264_adapter", 1056 "../call:call_interfaces", 1057 "../call:payload_type_picker", 1058 "../call:video_receive_stream_api", 1059 "../call:video_send_stream_api", 1060 "../common_video", 1061 "../modules/audio_device:mock_audio_device", 1062 "../modules/audio_mixer:audio_mixer_impl", 1063 "../modules/audio_processing:mocks", 1064 "../modules/rtp_rtcp:rtp_rtcp_format", 1065 "../modules/video_coding:simulcast_test_fixture_impl", 1066 "../modules/video_coding:video_codec_interface", 1067 "../modules/video_coding:video_coding_utility", 1068 "../modules/video_coding:webrtc_h264", 1069 "../modules/video_coding:webrtc_vp8", 1070 "../modules/video_coding/svc:scalability_mode_util", 1071 "../net/dcsctp/public:types", 1072 "../p2p:p2p_test_utils", 1073 "../rtc_base:async_packet_socket", 1074 "../rtc_base:byte_order", 1075 "../rtc_base:checks", 1076 "../rtc_base:copy_on_write_buffer", 1077 "../rtc_base:dscp", 1078 "../rtc_base:safe_conversions", 1079 "../rtc_base:socket", 1080 "../rtc_base:threading", 1081 "../rtc_base:timeutils", 1082 "../rtc_base:unique_id_generator", 1083 "../rtc_base/experiments:min_video_bitrate_experiment", 1084 "../rtc_base/system:file_wrapper", 1085 "../system_wrappers", 1086 "../test:audio_codec_mocks", 1087 "../test:create_test_environment", 1088 "../test:create_test_field_trials", 1089 "../test:fake_video_codecs", 1090 "../test:rtp_test_utils", 1091 "../test:test_main", 1092 "../test:test_support", 1093 "../test:video_test_common", 1094 "../test/time_controller", 1095 "../video/config:encoder_config", 1096 "../video/config:streams_config", 1097 "//third_party/abseil-cpp/absl/algorithm:container", 1098 "//third_party/abseil-cpp/absl/container:inlined_vector", 1099 "//third_party/abseil-cpp/absl/strings", 1100 "//third_party/abseil-cpp/absl/strings:string_view", 1101 ] 1102 1103 if (enable_libaom) { 1104 defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ] 1105 } 1106 1107 sources = [ 1108 "base/codec_comparators_unittest.cc", 1109 "base/codec_list_unittest.cc", 1110 "base/codec_unittest.cc", 1111 "base/media_engine_unittest.cc", 1112 "base/rtp_utils_unittest.cc", 1113 "base/sdp_video_format_utils_unittest.cc", 1114 "base/stream_params_unittest.cc", 1115 "base/turn_utils_unittest.cc", 1116 "base/video_adapter_unittest.cc", 1117 "base/video_broadcaster_unittest.cc", 1118 "base/video_common_unittest.cc", 1119 "engine/internal_decoder_factory_unittest.cc", 1120 "engine/internal_encoder_factory_unittest.cc", 1121 "engine/simulcast_encoder_adapter_unittest.cc", 1122 "engine/webrtc_media_engine_unittest.cc", 1123 "engine/webrtc_video_engine_unittest.cc", 1124 ] 1125 1126 # TODO(kthelgason): Reenable this test on iOS. 1127 # See bugs.webrtc.org/5569 1128 if (!is_ios) { 1129 sources += [ "engine/webrtc_voice_engine_unittest.cc" ] 1130 } 1131 1132 if (rtc_opus_support_120ms_ptime) { 1133 defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=1" ] 1134 } else { 1135 defines += [ "WEBRTC_OPUS_SUPPORT_120MS_PTIME=0" ] 1136 } 1137 1138 data = rtc_media_unittests_resources 1139 1140 if (is_android) { 1141 shard_timeout = 900 1142 } 1143 1144 if (is_ios) { 1145 deps += [ ":rtc_media_unittests_bundle_data" ] 1146 } 1147 1148 if (rtc_build_dcsctp) { 1149 sources += [ "sctp/dcsctp_transport_unittest.cc" ] 1150 deps += [ 1151 ":rtc_data_dcsctp_transport", 1152 "../net/dcsctp/public:factory", 1153 "../net/dcsctp/public:mocks", 1154 "../net/dcsctp/public:socket", 1155 ] 1156 } 1157 } 1158 } 1159 }