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("../webrtc.gni") 10if (is_android) { 11 import("//build/config/android/config.gni") 12 import("//build/config/android/rules.gni") 13} 14 15group("pc") { 16 deps = [ ":rtc_pc" ] 17} 18 19config("rtc_pc_config") { 20 defines = [] 21 if (rtc_enable_sctp) { 22 defines += [ "WEBRTC_HAVE_SCTP" ] 23 } 24} 25 26rtc_library("rtc_pc_base") { 27 visibility = [ "*" ] 28 defines = [] 29 sources = [ 30 "channel.cc", 31 "channel.h", 32 "channel_interface.h", 33 "channel_manager.cc", 34 "channel_manager.h", 35 "dtls_srtp_transport.cc", 36 "dtls_srtp_transport.h", 37 "dtls_transport.cc", 38 "dtls_transport.h", 39 "external_hmac.cc", 40 "external_hmac.h", 41 "ice_transport.cc", 42 "ice_transport.h", 43 "jsep_transport.cc", 44 "jsep_transport.h", 45 "jsep_transport_controller.cc", 46 "jsep_transport_controller.h", 47 "media_session.cc", 48 "media_session.h", 49 "rtcp_mux_filter.cc", 50 "rtcp_mux_filter.h", 51 "rtp_media_utils.cc", 52 "rtp_media_utils.h", 53 "rtp_transport.cc", 54 "rtp_transport.h", 55 "rtp_transport_internal.h", 56 "sctp_data_channel_transport.cc", 57 "sctp_data_channel_transport.h", 58 "sctp_transport.cc", 59 "sctp_transport.h", 60 "sctp_utils.cc", 61 "sctp_utils.h", 62 "session_description.cc", 63 "session_description.h", 64 "simulcast_description.cc", 65 "simulcast_description.h", 66 "srtp_filter.cc", 67 "srtp_filter.h", 68 "srtp_session.cc", 69 "srtp_session.h", 70 "srtp_transport.cc", 71 "srtp_transport.h", 72 "transport_stats.cc", 73 "transport_stats.h", 74 "used_ids.h", 75 ] 76 77 deps = [ 78 ":media_protocol_names", 79 "../api:array_view", 80 "../api:audio_options_api", 81 "../api:call_api", 82 "../api:function_view", 83 "../api:ice_transport_factory", 84 "../api:libjingle_peerconnection_api", 85 "../api:packet_socket_factory", 86 "../api:priority", 87 "../api:rtc_error", 88 "../api:rtp_headers", 89 "../api:rtp_parameters", 90 "../api:rtp_parameters", 91 "../api:rtp_transceiver_direction", 92 "../api:scoped_refptr", 93 "../api:sequence_checker", 94 "../api/crypto:options", 95 "../api/rtc_event_log", 96 "../api/task_queue", 97 "../api/transport:datagram_transport_interface", 98 "../api/transport:enums", 99 "../api/transport:sctp_transport_factory_interface", 100 "../api/video:builtin_video_bitrate_allocator_factory", 101 "../api/video:video_bitrate_allocator_factory", 102 "../api/video:video_frame", 103 "../api/video:video_rtp_headers", 104 "../call:call_interfaces", 105 "../call:rtp_interfaces", 106 "../call:rtp_receiver", 107 "../common_video", 108 "../common_video:common_video", 109 "../logging:ice_log", 110 "../media:rtc_data", 111 "../media:rtc_h264_profile_id", 112 "../media:rtc_media_base", 113 "../media:rtc_media_config", 114 "../modules/rtp_rtcp:rtp_rtcp", 115 "../modules/rtp_rtcp:rtp_rtcp_format", 116 "../p2p:rtc_p2p", 117 "../rtc_base", 118 "../rtc_base:callback_list", 119 "../rtc_base:checks", 120 "../rtc_base:rtc_task_queue", 121 "../rtc_base:socket", 122 "../rtc_base:socket_address", 123 "../rtc_base:stringutils", 124 "../rtc_base:threading", 125 "../rtc_base/network:sent_packet", 126 "../rtc_base/synchronization:mutex", 127 "../rtc_base/system:file_wrapper", 128 "../rtc_base/system:rtc_export", 129 "../rtc_base/task_utils:pending_task_safety_flag", 130 "../rtc_base/task_utils:to_queued_task", 131 "../rtc_base/third_party/base64", 132 "../rtc_base/third_party/sigslot", 133 "../system_wrappers:field_trial", 134 "../system_wrappers:metrics", 135 ] 136 absl_deps = [ 137 "//third_party/abseil-cpp/absl/algorithm:container", 138 "//third_party/abseil-cpp/absl/base:core_headers", 139 "//third_party/abseil-cpp/absl/memory", 140 "//third_party/abseil-cpp/absl/strings", 141 "//third_party/abseil-cpp/absl/types:optional", 142 ] 143 144 if (rtc_build_libsrtp) { 145 deps += [ "//third_party/libsrtp" ] 146 } 147 148 public_configs = [ ":rtc_pc_config" ] 149} 150 151rtc_source_set("rtc_pc") { 152 visibility = [ "*" ] 153 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove. 154 deps = [ 155 ":rtc_pc_base", 156 "../media:rtc_audio_video", 157 ] 158} 159 160rtc_library("media_protocol_names") { 161 sources = [ 162 "media_protocol_names.cc", 163 "media_protocol_names.h", 164 ] 165} 166 167rtc_library("peerconnection") { 168 visibility = [ "*" ] 169 cflags = [] 170 sources = [ 171 "data_channel_controller.cc", 172 "data_channel_controller.h", 173 "data_channel_utils.cc", 174 "data_channel_utils.h", 175 "ice_server_parsing.cc", 176 "ice_server_parsing.h", 177 "jsep_ice_candidate.cc", 178 "jsep_session_description.cc", 179 "local_audio_source.cc", 180 "local_audio_source.h", 181 "media_stream_observer.cc", 182 "media_stream_observer.h", 183 "peer_connection.cc", 184 "peer_connection.h", 185 "peer_connection_factory.cc", 186 "peer_connection_factory.h", 187 "peer_connection_internal.h", 188 "rtc_stats_collector.cc", 189 "rtc_stats_collector.h", 190 "rtc_stats_traversal.cc", 191 "rtc_stats_traversal.h", 192 "rtp_data_channel.cc", 193 "rtp_data_channel.h", 194 "sctp_data_channel.cc", 195 "sctp_data_channel.h", 196 "sdp_offer_answer.cc", # TODO: Make separate target when not circular 197 "sdp_offer_answer.h", # dependent on peerconnection.h 198 "sdp_serializer.cc", 199 "sdp_serializer.h", 200 "sdp_utils.cc", 201 "sdp_utils.h", 202 "stats_collector.cc", 203 "stats_collector.h", 204 "stream_collection.h", 205 "track_media_info_map.cc", 206 "track_media_info_map.h", 207 "webrtc_sdp.cc", 208 "webrtc_sdp.h", 209 "webrtc_session_description_factory.cc", 210 "webrtc_session_description_factory.h", 211 ] 212 213 deps = [ 214 ":audio_rtp_receiver", 215 ":audio_track", 216 ":connection_context", 217 ":dtmf_sender", 218 ":jitter_buffer_delay", 219 ":jitter_buffer_delay_interface", 220 ":jitter_buffer_delay_proxy", 221 ":media_protocol_names", 222 ":media_stream", 223 ":peer_connection_message_handler", 224 ":remote_audio_source", 225 ":rtc_pc_base", 226 ":rtp_parameters_conversion", 227 ":rtp_receiver", 228 ":rtp_sender", 229 ":rtp_transceiver", 230 ":rtp_transmission_manager", 231 ":sdp_state_provider", 232 ":stats_collector_interface", 233 ":transceiver_list", 234 ":usage_pattern", 235 ":video_rtp_receiver", 236 ":video_track", 237 ":video_track_source", 238 "../api:array_view", 239 "../api:audio_options_api", 240 "../api:call_api", 241 "../api:callfactory_api", 242 "../api:fec_controller_api", 243 "../api:frame_transformer_interface", 244 "../api:ice_transport_factory", 245 "../api:libjingle_logging_api", 246 "../api:libjingle_peerconnection_api", 247 "../api:media_stream_interface", 248 "../api:network_state_predictor_api", 249 "../api:packet_socket_factory", 250 "../api:priority", 251 "../api:rtc_error", 252 "../api:rtc_event_log_output_file", 253 "../api:rtc_stats_api", 254 "../api:rtp_parameters", 255 "../api:rtp_transceiver_direction", 256 "../api:scoped_refptr", 257 "../api:sequence_checker", 258 "../api/adaptation:resource_adaptation_api", 259 "../api/audio_codecs:audio_codecs_api", 260 "../api/crypto:frame_decryptor_interface", 261 "../api/crypto:options", 262 "../api/neteq:neteq_api", 263 "../api/rtc_event_log", 264 "../api/task_queue", 265 "../api/transport:bitrate_settings", 266 "../api/transport:datagram_transport_interface", 267 "../api/transport:enums", 268 "../api/transport:field_trial_based_config", 269 "../api/transport:network_control", 270 "../api/transport:sctp_transport_factory_interface", 271 "../api/transport:webrtc_key_value_config", 272 "../api/units:data_rate", 273 "../api/video:builtin_video_bitrate_allocator_factory", 274 "../api/video:video_bitrate_allocator_factory", 275 "../api/video:video_codec_constants", 276 "../api/video:video_frame", 277 "../api/video:video_rtp_headers", 278 "../api/video_codecs:video_codecs_api", 279 "../call:call_interfaces", 280 "../common_video", 281 "../logging:ice_log", 282 "../media:rtc_data", 283 "../media:rtc_media_base", 284 "../media:rtc_media_config", 285 "../modules/audio_processing:audio_processing_statistics", 286 "../modules/rtp_rtcp:rtp_rtcp_format", 287 "../p2p:rtc_p2p", 288 "../rtc_base", 289 "../rtc_base:callback_list", 290 "../rtc_base:checks", 291 "../rtc_base:ip_address", 292 "../rtc_base:network_constants", 293 "../rtc_base:rtc_base_approved", 294 "../rtc_base:rtc_operations_chain", 295 "../rtc_base:safe_minmax", 296 "../rtc_base:socket_address", 297 "../rtc_base:threading", 298 "../rtc_base:weak_ptr", 299 "../rtc_base/experiments:field_trial_parser", 300 "../rtc_base/network:sent_packet", 301 "../rtc_base/synchronization:mutex", 302 "../rtc_base/system:file_wrapper", 303 "../rtc_base/system:no_unique_address", 304 "../rtc_base/system:rtc_export", 305 "../rtc_base/task_utils:pending_task_safety_flag", 306 "../rtc_base/task_utils:to_queued_task", 307 "../rtc_base/third_party/base64", 308 "../rtc_base/third_party/sigslot", 309 "../stats", 310 "../system_wrappers", 311 "../system_wrappers:field_trial", 312 "../system_wrappers:metrics", 313 ] 314 absl_deps = [ 315 "//third_party/abseil-cpp/absl/algorithm:container", 316 "//third_party/abseil-cpp/absl/strings", 317 "//third_party/abseil-cpp/absl/types:optional", 318 ] 319} 320 321rtc_library("connection_context") { 322 sources = [ 323 "connection_context.cc", 324 "connection_context.h", 325 ] 326 deps = [ 327 ":rtc_pc_base", 328 "../api:callfactory_api", 329 "../api:libjingle_peerconnection_api", 330 "../api:media_stream_interface", 331 "../api:scoped_refptr", 332 "../api:sequence_checker", 333 "../api/neteq:neteq_api", 334 "../api/transport:field_trial_based_config", 335 "../api/transport:sctp_transport_factory_interface", 336 "../api/transport:webrtc_key_value_config", 337 "../media:rtc_data", 338 "../media:rtc_media_base", 339 "../p2p:rtc_p2p", 340 "../rtc_base", 341 "../rtc_base:checks", 342 "../rtc_base:threading", 343 "../rtc_base/task_utils:to_queued_task", 344 ] 345} 346 347rtc_library("peer_connection_message_handler") { 348 sources = [ 349 "peer_connection_message_handler.cc", 350 "peer_connection_message_handler.h", 351 ] 352 deps = [ 353 ":stats_collector_interface", 354 "../api:libjingle_peerconnection_api", 355 "../api:media_stream_interface", 356 "../api:rtc_error", 357 "../api:scoped_refptr", 358 "../api:sequence_checker", 359 "../rtc_base", 360 "../rtc_base:checks", 361 "../rtc_base:threading", 362 ] 363} 364 365rtc_library("usage_pattern") { 366 sources = [ 367 "usage_pattern.cc", 368 "usage_pattern.h", 369 ] 370 deps = [ 371 "../api:libjingle_peerconnection_api", 372 "../rtc_base:logging", 373 "../system_wrappers:metrics", 374 ] 375} 376 377rtc_library("rtp_transceiver") { 378 sources = [ 379 "rtp_transceiver.cc", 380 "rtp_transceiver.h", 381 ] 382 deps = [ 383 ":rtc_pc_base", 384 ":rtp_parameters_conversion", 385 ":rtp_receiver", 386 ":rtp_sender", 387 "../api:array_view", 388 "../api:libjingle_peerconnection_api", 389 "../api:rtc_error", 390 "../api:rtp_parameters", 391 "../api:rtp_transceiver_direction", 392 "../api:scoped_refptr", 393 "../api:sequence_checker", 394 "../api/task_queue", 395 "../media:rtc_media_base", 396 "../rtc_base:checks", 397 "../rtc_base:logging", 398 "../rtc_base:macromagic", 399 "../rtc_base:refcount", 400 "../rtc_base:threading", 401 "../rtc_base/third_party/sigslot", 402 ] 403 absl_deps = [ 404 "//third_party/abseil-cpp/absl/algorithm:container", 405 "//third_party/abseil-cpp/absl/strings", 406 "//third_party/abseil-cpp/absl/types:optional", 407 ] 408} 409 410rtc_library("rtp_transmission_manager") { 411 sources = [ 412 "rtp_transmission_manager.cc", 413 "rtp_transmission_manager.h", 414 ] 415 deps = [ 416 ":audio_rtp_receiver", 417 ":rtc_pc_base", 418 ":rtp_receiver", 419 ":rtp_sender", 420 ":rtp_transceiver", 421 ":stats_collector_interface", 422 ":transceiver_list", 423 ":usage_pattern", 424 ":video_rtp_receiver", 425 "../api:libjingle_peerconnection_api", 426 "../api:media_stream_interface", 427 "../api:rtc_error", 428 "../api:rtp_parameters", 429 "../api:rtp_transceiver_direction", 430 "../api:scoped_refptr", 431 "../api:sequence_checker", 432 "../media:rtc_media_base", 433 "../rtc_base", 434 "../rtc_base:checks", 435 "../rtc_base:threading", 436 "../rtc_base:weak_ptr", 437 "../rtc_base/third_party/sigslot", 438 ] 439 absl_deps = [ 440 "//third_party/abseil-cpp/absl/algorithm:container", 441 "//third_party/abseil-cpp/absl/strings", 442 "//third_party/abseil-cpp/absl/types:optional", 443 ] 444} 445 446rtc_library("transceiver_list") { 447 sources = [ 448 "transceiver_list.cc", 449 "transceiver_list.h", 450 ] 451 deps = [ 452 ":rtp_transceiver", 453 "../api:libjingle_peerconnection_api", 454 "../api:rtc_error", 455 "../api:rtp_parameters", 456 "../api:scoped_refptr", 457 "../rtc_base:checks", 458 ] 459 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 460} 461 462rtc_library("rtp_receiver") { 463 sources = [ 464 "rtp_receiver.cc", 465 "rtp_receiver.h", 466 ] 467 deps = [ 468 ":media_stream", 469 ":video_track_source", 470 "../api:libjingle_peerconnection_api", 471 "../api:media_stream_interface", 472 "../api:rtp_parameters", 473 "../api:scoped_refptr", 474 "../api/crypto:frame_decryptor_interface", 475 "../api/video:video_frame", 476 "../media:rtc_media_base", 477 "../rtc_base:checks", 478 "../rtc_base:logging", 479 "../rtc_base:rtc_base", 480 "../rtc_base:rtc_base_approved", 481 "../rtc_base:threading", 482 ] 483 absl_deps = [ 484 "//third_party/abseil-cpp/absl/algorithm:container", 485 "//third_party/abseil-cpp/absl/strings", 486 "//third_party/abseil-cpp/absl/types:optional", 487 ] 488} 489 490rtc_library("audio_rtp_receiver") { 491 sources = [ 492 "audio_rtp_receiver.cc", 493 "audio_rtp_receiver.h", 494 ] 495 deps = [ 496 ":audio_track", 497 ":jitter_buffer_delay", 498 ":jitter_buffer_delay_interface", 499 ":jitter_buffer_delay_proxy", 500 ":media_stream", 501 ":remote_audio_source", 502 ":rtp_receiver", 503 "../api:frame_transformer_interface", 504 "../api:libjingle_peerconnection_api", 505 "../api:media_stream_interface", 506 "../api:rtp_parameters", 507 "../api:scoped_refptr", 508 "../api:sequence_checker", 509 "../api/crypto:frame_decryptor_interface", 510 "../api/transport/rtp:rtp_source", 511 "../media:rtc_media_base", 512 "../rtc_base", 513 "../rtc_base:checks", 514 "../rtc_base:refcount", 515 "../rtc_base:threading", 516 ] 517 absl_deps = [ 518 "//third_party/abseil-cpp/absl/algorithm:container", 519 "//third_party/abseil-cpp/absl/strings", 520 "//third_party/abseil-cpp/absl/types:optional", 521 ] 522} 523 524rtc_library("video_rtp_receiver") { 525 sources = [ 526 "video_rtp_receiver.cc", 527 "video_rtp_receiver.h", 528 ] 529 deps = [ 530 ":jitter_buffer_delay", 531 ":jitter_buffer_delay_interface", 532 ":jitter_buffer_delay_proxy", 533 ":media_stream", 534 ":rtp_receiver", 535 ":video_rtp_track_source", 536 ":video_track", 537 "../api:frame_transformer_interface", 538 "../api:libjingle_peerconnection_api", 539 "../api:media_stream_interface", 540 "../api:rtp_parameters", 541 "../api:scoped_refptr", 542 "../api:sequence_checker", 543 "../api/crypto:frame_decryptor_interface", 544 "../api/transport/rtp:rtp_source", 545 "../api/video:recordable_encoded_frame", 546 "../api/video:video_frame", 547 "../media:rtc_media_base", 548 "../rtc_base", 549 "../rtc_base:checks", 550 "../rtc_base:rtc_base_approved", 551 "../rtc_base:threading", 552 ] 553 absl_deps = [ 554 "//third_party/abseil-cpp/absl/algorithm:container", 555 "//third_party/abseil-cpp/absl/strings", 556 "//third_party/abseil-cpp/absl/types:optional", 557 ] 558} 559 560rtc_library("video_rtp_track_source") { 561 sources = [ 562 "video_rtp_track_source.cc", 563 "video_rtp_track_source.h", 564 ] 565 deps = [ 566 ":video_track_source", 567 "../api:sequence_checker", 568 "../api/video:recordable_encoded_frame", 569 "../api/video:video_frame", 570 "../media:rtc_media_base", 571 "../rtc_base", 572 "../rtc_base:checks", 573 "../rtc_base/synchronization:mutex", 574 "../rtc_base/system:no_unique_address", 575 ] 576} 577 578rtc_library("audio_track") { 579 sources = [ 580 "audio_track.cc", 581 "audio_track.h", 582 ] 583 deps = [ 584 "../api:media_stream_interface", 585 "../api:scoped_refptr", 586 "../api:sequence_checker", 587 "../rtc_base:checks", 588 "../rtc_base:refcount", 589 ] 590} 591 592rtc_library("video_track") { 593 sources = [ 594 "video_track.cc", 595 "video_track.h", 596 ] 597 deps = [ 598 "../api:media_stream_interface", 599 "../api:scoped_refptr", 600 "../api:sequence_checker", 601 "../api/video:video_frame", 602 "../media:rtc_media_base", 603 "../rtc_base", 604 "../rtc_base:checks", 605 "../rtc_base:refcount", 606 "../rtc_base:rtc_base_approved", 607 "../rtc_base:threading", 608 ] 609} 610 611rtc_source_set("jitter_buffer_delay_interface") { 612 sources = [ "jitter_buffer_delay_interface.h" ] 613 deps = [ 614 "../media:rtc_media_base", 615 "../rtc_base:refcount", 616 ] 617 absl_deps = [ 618 "//third_party/abseil-cpp/absl/algorithm:container", 619 "//third_party/abseil-cpp/absl/strings", 620 "//third_party/abseil-cpp/absl/types:optional", 621 ] 622} 623 624rtc_source_set("sdp_state_provider") { 625 sources = [ "sdp_state_provider.h" ] 626 deps = [ 627 ":rtc_pc_base", 628 "../api:libjingle_peerconnection_api", 629 ] 630} 631 632rtc_source_set("jitter_buffer_delay_proxy") { 633 sources = [ "jitter_buffer_delay_proxy.h" ] 634 deps = [ 635 ":jitter_buffer_delay_interface", 636 "../api:libjingle_peerconnection_api", 637 "../media:rtc_media_base", 638 ] 639} 640 641rtc_library("jitter_buffer_delay") { 642 sources = [ 643 "jitter_buffer_delay.cc", 644 "jitter_buffer_delay.h", 645 ] 646 deps = [ 647 ":jitter_buffer_delay_interface", 648 "../api:sequence_checker", 649 "../media:rtc_media_base", 650 "../rtc_base", 651 "../rtc_base:checks", 652 "../rtc_base:refcount", 653 "../rtc_base:safe_minmax", 654 "../rtc_base:threading", 655 ] 656 absl_deps = [ 657 "//third_party/abseil-cpp/absl/algorithm:container", 658 "//third_party/abseil-cpp/absl/strings", 659 "//third_party/abseil-cpp/absl/types:optional", 660 ] 661} 662 663rtc_library("remote_audio_source") { 664 sources = [ 665 "remote_audio_source.cc", 666 "remote_audio_source.h", 667 ] 668 deps = [ 669 ":rtc_pc_base", 670 "../api:call_api", 671 "../api:media_stream_interface", 672 "../api:scoped_refptr", 673 "../api:sequence_checker", 674 "../media:rtc_media_base", 675 "../rtc_base", 676 "../rtc_base:checks", 677 "../rtc_base:logging", 678 "../rtc_base:rtc_base_approved", 679 "../rtc_base:safe_conversions", 680 "../rtc_base:stringutils", 681 "../rtc_base:threading", 682 "../rtc_base/synchronization:mutex", 683 ] 684 absl_deps = [ 685 "//third_party/abseil-cpp/absl/algorithm:container", 686 "//third_party/abseil-cpp/absl/strings", 687 "//third_party/abseil-cpp/absl/types:optional", 688 ] 689} 690 691rtc_library("rtp_sender") { 692 sources = [ 693 "rtp_sender.cc", 694 "rtp_sender.h", 695 ] 696 deps = [ 697 ":dtmf_sender", 698 ":stats_collector_interface", 699 "../api:audio_options_api", 700 "../api:frame_transformer_interface", 701 "../api:libjingle_peerconnection_api", 702 "../api:media_stream_interface", 703 "../api:priority", 704 "../api:rtc_error", 705 "../api:rtp_parameters", 706 "../api:scoped_refptr", 707 "../api/crypto:frame_encryptor_interface", 708 "../media:rtc_media_base", 709 "../rtc_base:checks", 710 "../rtc_base:rtc_base", 711 "../rtc_base:threading", 712 "../rtc_base/synchronization:mutex", 713 "../rtc_base/third_party/sigslot", 714 ] 715 absl_deps = [ 716 "//third_party/abseil-cpp/absl/algorithm:container", 717 "//third_party/abseil-cpp/absl/strings", 718 "//third_party/abseil-cpp/absl/types:optional", 719 ] 720} 721 722rtc_library("rtp_parameters_conversion") { 723 sources = [ 724 "rtp_parameters_conversion.cc", 725 "rtp_parameters_conversion.h", 726 ] 727 deps = [ 728 ":rtc_pc_base", 729 "../api:array_view", 730 "../api:libjingle_peerconnection_api", 731 "../api:rtc_error", 732 "../api:rtp_parameters", 733 "../media:rtc_media_base", 734 "../rtc_base:checks", 735 "../rtc_base:rtc_base", 736 ] 737 absl_deps = [ 738 "//third_party/abseil-cpp/absl/algorithm:container", 739 "//third_party/abseil-cpp/absl/strings", 740 "//third_party/abseil-cpp/absl/types:optional", 741 ] 742} 743 744rtc_library("dtmf_sender") { 745 sources = [ 746 "dtmf_sender.cc", 747 "dtmf_sender.h", 748 ] 749 deps = [ 750 "../api:libjingle_peerconnection_api", 751 "../api:scoped_refptr", 752 "../rtc_base:checks", 753 "../rtc_base:rtc_base", 754 "../rtc_base:threading", 755 "../rtc_base/task_utils:pending_task_safety_flag", 756 "../rtc_base/task_utils:to_queued_task", 757 "../rtc_base/third_party/sigslot", 758 ] 759 absl_deps = [ 760 "//third_party/abseil-cpp/absl/algorithm:container", 761 "//third_party/abseil-cpp/absl/strings", 762 "//third_party/abseil-cpp/absl/types:optional", 763 ] 764} 765 766rtc_library("media_stream") { 767 sources = [ 768 "media_stream.cc", 769 "media_stream.h", 770 ] 771 deps = [ 772 "../api:libjingle_peerconnection_api", 773 "../api:media_stream_interface", 774 "../api:scoped_refptr", 775 "../rtc_base:checks", 776 "../rtc_base:refcount", 777 "../rtc_base:rtc_base", 778 ] 779 absl_deps = [ 780 "//third_party/abseil-cpp/absl/algorithm:container", 781 "//third_party/abseil-cpp/absl/strings", 782 "//third_party/abseil-cpp/absl/types:optional", 783 ] 784} 785 786rtc_library("video_track_source") { 787 sources = [ 788 "video_track_source.cc", 789 "video_track_source.h", 790 ] 791 deps = [ 792 "../api:media_stream_interface", 793 "../api:sequence_checker", 794 "../api/video:recordable_encoded_frame", 795 "../api/video:video_frame", 796 "../media:rtc_media_base", 797 "../rtc_base:checks", 798 "../rtc_base:rtc_base_approved", 799 "../rtc_base/system:rtc_export", 800 ] 801 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 802} 803 804rtc_source_set("stats_collector_interface") { 805 sources = [ "stats_collector_interface.h" ] 806 deps = [ 807 "../api:libjingle_peerconnection_api", 808 "../api:media_stream_interface", 809 ] 810} 811 812rtc_source_set("libjingle_peerconnection") { 813 visibility = [ "*" ] 814 deps = [ 815 ":peerconnection", 816 "../api:libjingle_peerconnection_api", 817 ] 818} 819 820if (rtc_include_tests && !build_with_chromium) { 821 rtc_test("rtc_pc_unittests") { 822 testonly = true 823 824 sources = [ 825 "channel_manager_unittest.cc", 826 "channel_unittest.cc", 827 "dtls_srtp_transport_unittest.cc", 828 "dtls_transport_unittest.cc", 829 "ice_transport_unittest.cc", 830 "jsep_transport_controller_unittest.cc", 831 "jsep_transport_unittest.cc", 832 "media_session_unittest.cc", 833 "rtcp_mux_filter_unittest.cc", 834 "rtp_transport_unittest.cc", 835 "sctp_transport_unittest.cc", 836 "session_description_unittest.cc", 837 "srtp_filter_unittest.cc", 838 "srtp_session_unittest.cc", 839 "srtp_transport_unittest.cc", 840 "test/rtp_transport_test_util.h", 841 "test/srtp_test_util.h", 842 "used_ids_unittest.cc", 843 "video_rtp_receiver_unittest.cc", 844 ] 845 846 include_dirs = [ "//third_party/libsrtp/srtp" ] 847 848 if (is_win) { 849 libs = [ "strmiids.lib" ] 850 } 851 852 deps = [ 853 ":libjingle_peerconnection", 854 ":pc_test_utils", 855 ":peerconnection", 856 ":rtc_pc", 857 ":rtc_pc_base", 858 ":video_rtp_receiver", 859 "../api:array_view", 860 "../api:audio_options_api", 861 "../api:ice_transport_factory", 862 "../api:libjingle_peerconnection_api", 863 "../api:rtc_error", 864 "../api:rtp_headers", 865 "../api:rtp_parameters", 866 "../api/video:builtin_video_bitrate_allocator_factory", 867 "../api/video/test:mock_recordable_encoded_frame", 868 "../call:rtp_interfaces", 869 "../call:rtp_receiver", 870 "../media:rtc_data", 871 "../media:rtc_media_base", 872 "../media:rtc_media_tests_utils", 873 "../modules/rtp_rtcp:rtp_rtcp_format", 874 "../p2p:fake_ice_transport", 875 "../p2p:fake_port_allocator", 876 "../p2p:p2p_test_utils", 877 "../p2p:rtc_p2p", 878 "../rtc_base", 879 "../rtc_base:checks", 880 "../rtc_base:gunit_helpers", 881 "../rtc_base:rtc_base_approved", 882 "../rtc_base:rtc_base_tests_utils", 883 "../rtc_base:threading", 884 "../rtc_base/third_party/sigslot", 885 "../system_wrappers:metrics", 886 "../test:field_trial", 887 "../test:test_main", 888 "../test:test_support", 889 "//third_party/abseil-cpp/absl/algorithm:container", 890 "//third_party/abseil-cpp/absl/memory", 891 "//third_party/abseil-cpp/absl/strings", 892 ] 893 894 if (rtc_build_libsrtp) { 895 deps += [ "//third_party/libsrtp" ] 896 } 897 898 if (is_android) { 899 deps += [ "//testing/android/native_test:native_test_support" ] 900 } 901 } 902 903 rtc_library("peerconnection_perf_tests") { 904 testonly = true 905 sources = [ "peer_connection_rampup_tests.cc" ] 906 deps = [ 907 ":pc_test_utils", 908 ":peerconnection_wrapper", 909 "../api:audio_options_api", 910 "../api:create_peerconnection_factory", 911 "../api:libjingle_peerconnection_api", 912 "../api:media_stream_interface", 913 "../api:rtc_stats_api", 914 "../api:scoped_refptr", 915 "../api/audio:audio_mixer_api", 916 "../api/audio_codecs:audio_codecs_api", 917 "../api/audio_codecs:builtin_audio_decoder_factory", 918 "../api/audio_codecs:builtin_audio_encoder_factory", 919 "../api/video_codecs:builtin_video_decoder_factory", 920 "../api/video_codecs:builtin_video_encoder_factory", 921 "../api/video_codecs:video_codecs_api", 922 "../media:rtc_media_tests_utils", 923 "../modules/audio_device:audio_device_api", 924 "../modules/audio_processing:api", 925 "../p2p:p2p_test_utils", 926 "../p2p:rtc_p2p", 927 "../pc:peerconnection", 928 "../rtc_base", 929 "../rtc_base:checks", 930 "../rtc_base:gunit_helpers", 931 "../rtc_base:rtc_base_tests_utils", 932 "../rtc_base:socket_address", 933 "../rtc_base:threading", 934 "../system_wrappers", 935 "../test:perf_test", 936 "../test:test_support", 937 ] 938 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 939 } 940 941 rtc_library("peerconnection_wrapper") { 942 testonly = true 943 sources = [ 944 "peer_connection_wrapper.cc", 945 "peer_connection_wrapper.h", 946 ] 947 deps = [ 948 ":pc_test_utils", 949 "../api:function_view", 950 "../api:libjingle_peerconnection_api", 951 "../api:media_stream_interface", 952 "../api:rtc_error", 953 "../api:rtc_stats_api", 954 "../api:rtp_parameters", 955 "../api:scoped_refptr", 956 "../pc:peerconnection", 957 "../rtc_base:checks", 958 "../rtc_base:gunit_helpers", 959 "../rtc_base:rtc_base_approved", 960 "../test:test_support", 961 ] 962 } 963 964 rtc_test("peerconnection_unittests") { 965 testonly = true 966 sources = [ 967 "data_channel_integrationtest.cc", 968 "data_channel_unittest.cc", 969 "dtmf_sender_unittest.cc", 970 "ice_server_parsing_unittest.cc", 971 "jitter_buffer_delay_unittest.cc", 972 "jsep_session_description_unittest.cc", 973 "local_audio_source_unittest.cc", 974 "media_stream_unittest.cc", 975 "peer_connection_adaptation_integrationtest.cc", 976 "peer_connection_bundle_unittest.cc", 977 "peer_connection_crypto_unittest.cc", 978 "peer_connection_data_channel_unittest.cc", 979 "peer_connection_end_to_end_unittest.cc", 980 "peer_connection_factory_unittest.cc", 981 "peer_connection_header_extension_unittest.cc", 982 "peer_connection_histogram_unittest.cc", 983 "peer_connection_ice_unittest.cc", 984 "peer_connection_integrationtest.cc", 985 "peer_connection_interface_unittest.cc", 986 "peer_connection_jsep_unittest.cc", 987 "peer_connection_media_unittest.cc", 988 "peer_connection_rtp_unittest.cc", 989 "peer_connection_signaling_unittest.cc", 990 "peer_connection_simulcast_unittest.cc", 991 "peer_connection_wrapper.cc", 992 "peer_connection_wrapper.h", 993 "proxy_unittest.cc", 994 "rtc_stats_collector_unittest.cc", 995 "rtc_stats_integrationtest.cc", 996 "rtc_stats_traversal_unittest.cc", 997 "rtp_media_utils_unittest.cc", 998 "rtp_parameters_conversion_unittest.cc", 999 "rtp_sender_receiver_unittest.cc", 1000 "rtp_transceiver_unittest.cc", 1001 "sctp_utils_unittest.cc", 1002 "sdp_serializer_unittest.cc", 1003 "stats_collector_unittest.cc", 1004 "test/fake_audio_capture_module_unittest.cc", 1005 "test/test_sdp_strings.h", 1006 "track_media_info_map_unittest.cc", 1007 "video_rtp_track_source_unittest.cc", 1008 "video_track_unittest.cc", 1009 "webrtc_sdp_unittest.cc", 1010 ] 1011 1012 if (rtc_enable_sctp) { 1013 defines = [ "WEBRTC_HAVE_SCTP" ] 1014 } 1015 1016 deps = [ 1017 ":audio_rtp_receiver", 1018 ":audio_track", 1019 ":dtmf_sender", 1020 ":integration_test_helpers", 1021 ":jitter_buffer_delay", 1022 ":jitter_buffer_delay_interface", 1023 ":media_stream", 1024 ":peerconnection", 1025 ":remote_audio_source", 1026 ":rtc_pc_base", 1027 ":rtp_parameters_conversion", 1028 ":rtp_receiver", 1029 ":rtp_sender", 1030 ":rtp_transceiver", 1031 ":usage_pattern", 1032 ":video_rtp_receiver", 1033 ":video_rtp_track_source", 1034 ":video_track", 1035 ":video_track_source", 1036 "../api:array_view", 1037 "../api:audio_options_api", 1038 "../api:create_peerconnection_factory", 1039 "../api:fake_frame_decryptor", 1040 "../api:fake_frame_encryptor", 1041 "../api:function_view", 1042 "../api:libjingle_logging_api", 1043 "../api:libjingle_peerconnection_api", 1044 "../api:media_stream_interface", 1045 "../api:mock_rtp", 1046 "../api:packet_socket_factory", 1047 "../api:rtc_error", 1048 "../api:rtp_transceiver_direction", 1049 "../api:scoped_refptr", 1050 "../api/audio:audio_mixer_api", 1051 "../api/crypto:frame_decryptor_interface", 1052 "../api/crypto:frame_encryptor_interface", 1053 "../api/crypto:options", 1054 "../api/rtc_event_log", 1055 "../api/rtc_event_log:rtc_event_log_factory", 1056 "../api/task_queue", 1057 "../api/task_queue:default_task_queue_factory", 1058 "../api/transport:field_trial_based_config", 1059 "../api/transport:webrtc_key_value_config", 1060 "../api/transport/rtp:rtp_source", 1061 "../api/units:time_delta", 1062 "../api/video:builtin_video_bitrate_allocator_factory", 1063 "../api/video:video_rtp_headers", 1064 "../call/adaptation:resource_adaptation_test_utilities", 1065 "../logging:fake_rtc_event_log", 1066 "../media:rtc_media_config", 1067 "../media:rtc_media_engine_defaults", 1068 "../modules/audio_device:audio_device_api", 1069 "../modules/audio_processing:audio_processing_statistics", 1070 "../modules/audio_processing:audioproc_test_utils", 1071 "../modules/rtp_rtcp:rtp_rtcp_format", 1072 "../p2p:fake_ice_transport", 1073 "../p2p:fake_port_allocator", 1074 "../p2p:p2p_server_utils", 1075 "../rtc_base:checks", 1076 "../rtc_base:gunit_helpers", 1077 "../rtc_base:ip_address", 1078 "../rtc_base:rtc_base_tests_utils", 1079 "../rtc_base:rtc_json", 1080 "../rtc_base:socket_address", 1081 "../rtc_base:threading", 1082 "../rtc_base/synchronization:mutex", 1083 "../rtc_base/third_party/base64", 1084 "../rtc_base/third_party/sigslot", 1085 "../system_wrappers:metrics", 1086 "../test:field_trial", 1087 "../test:fileutils", 1088 "../test:rtp_test_utils", 1089 "../test/pc/sctp:fake_sctp_transport", 1090 "./scenario_tests:pc_scenario_tests", 1091 "//third_party/abseil-cpp/absl/algorithm:container", 1092 "//third_party/abseil-cpp/absl/memory", 1093 "//third_party/abseil-cpp/absl/strings", 1094 "//third_party/abseil-cpp/absl/types:optional", 1095 ] 1096 if (is_android) { 1097 deps += [ ":android_black_magic" ] 1098 } 1099 1100 deps += [ 1101 ":libjingle_peerconnection", 1102 ":pc_test_utils", 1103 "../api:callfactory_api", 1104 "../api:rtc_event_log_output_file", 1105 "../api:rtc_stats_api", 1106 "../api:rtp_parameters", 1107 "../api/audio_codecs:audio_codecs_api", 1108 "../api/audio_codecs:builtin_audio_decoder_factory", 1109 "../api/audio_codecs:builtin_audio_encoder_factory", 1110 "../api/audio_codecs:opus_audio_decoder_factory", 1111 "../api/audio_codecs:opus_audio_encoder_factory", 1112 "../api/audio_codecs/L16:audio_decoder_L16", 1113 "../api/audio_codecs/L16:audio_encoder_L16", 1114 "../api/video_codecs:builtin_video_decoder_factory", 1115 "../api/video_codecs:builtin_video_encoder_factory", 1116 "../api/video_codecs:video_codecs_api", 1117 "../call:call_interfaces", 1118 "../media:rtc_audio_video", 1119 "../media:rtc_data", # TODO(phoglund): AFAIK only used for one sctp 1120 # constant. 1121 "../media:rtc_media_base", 1122 "../media:rtc_media_tests_utils", 1123 "../modules/audio_processing", 1124 "../modules/audio_processing:api", 1125 "../modules/utility", 1126 "../p2p:p2p_test_utils", 1127 "../p2p:rtc_p2p", 1128 "../pc:rtc_pc", 1129 "../rtc_base", 1130 "../rtc_base:rtc_base_approved", 1131 "../rtc_base:rtc_task_queue", 1132 "../rtc_base:safe_conversions", 1133 "../test:audio_codec_mocks", 1134 "../test:test_main", 1135 "../test:test_support", 1136 ] 1137 1138 if (is_android) { 1139 deps += [ 1140 "//testing/android/native_test:native_test_support", 1141 1142 # We need to depend on this one directly, or classloads will fail for 1143 # the voice engine BuildInfo, for instance. 1144 "../sdk/android:libjingle_peerconnection_java", 1145 ] 1146 1147 shard_timeout = 900 1148 } 1149 } 1150 1151 if (is_android) { 1152 rtc_library("android_black_magic") { 1153 # The android code uses hacky includes to chromium-base and the ssl code; 1154 # having this in a separate target enables us to keep the peerconnection 1155 # unit tests clean. 1156 check_includes = false 1157 testonly = true 1158 sources = [ 1159 "test/android_test_initializer.cc", 1160 "test/android_test_initializer.h", 1161 ] 1162 deps = [ 1163 "../sdk/android:libjingle_peerconnection_jni", 1164 "//testing/android/native_test:native_test_support", 1165 ] 1166 } 1167 } 1168 1169 rtc_library("integration_test_helpers") { 1170 testonly = true 1171 sources = [ 1172 "test/integration_test_helpers.cc", 1173 "test/integration_test_helpers.h", 1174 ] 1175 deps = [ 1176 ":audio_rtp_receiver", 1177 ":audio_track", 1178 ":dtmf_sender", 1179 ":jitter_buffer_delay", 1180 ":jitter_buffer_delay_interface", 1181 ":media_stream", 1182 ":pc_test_utils", 1183 ":peerconnection", 1184 ":remote_audio_source", 1185 ":rtc_pc_base", 1186 ":rtp_parameters_conversion", 1187 ":rtp_receiver", 1188 ":rtp_sender", 1189 ":rtp_transceiver", 1190 ":usage_pattern", 1191 ":video_rtp_receiver", 1192 ":video_rtp_track_source", 1193 ":video_track", 1194 ":video_track_source", 1195 "../api:array_view", 1196 "../api:audio_options_api", 1197 "../api:callfactory_api", 1198 "../api:create_peerconnection_factory", 1199 "../api:fake_frame_decryptor", 1200 "../api:fake_frame_encryptor", 1201 "../api:function_view", 1202 "../api:libjingle_logging_api", 1203 "../api:libjingle_peerconnection_api", 1204 "../api:media_stream_interface", 1205 "../api:mock_rtp", 1206 "../api:packet_socket_factory", 1207 "../api:rtc_error", 1208 "../api:rtc_stats_api", 1209 "../api:rtp_parameters", 1210 "../api:rtp_transceiver_direction", 1211 "../api:scoped_refptr", 1212 "../api/audio:audio_mixer_api", 1213 "../api/crypto:frame_decryptor_interface", 1214 "../api/crypto:frame_encryptor_interface", 1215 "../api/crypto:options", 1216 "../api/rtc_event_log", 1217 "../api/rtc_event_log:rtc_event_log_factory", 1218 "../api/task_queue", 1219 "../api/task_queue:default_task_queue_factory", 1220 "../api/transport:field_trial_based_config", 1221 "../api/transport:webrtc_key_value_config", 1222 "../api/transport/rtp:rtp_source", 1223 "../api/units:time_delta", 1224 "../api/video:builtin_video_bitrate_allocator_factory", 1225 "../api/video:video_rtp_headers", 1226 "../api/video_codecs:video_codecs_api", 1227 "../call:call_interfaces", 1228 "../call/adaptation:resource_adaptation_test_utilities", 1229 "../logging:fake_rtc_event_log", 1230 "../media:rtc_audio_video", 1231 "../media:rtc_media_base", 1232 "../media:rtc_media_config", 1233 "../media:rtc_media_engine_defaults", 1234 "../media:rtc_media_tests_utils", 1235 "../modules/audio_device:audio_device_api", 1236 "../modules/audio_processing:api", 1237 "../modules/audio_processing:audio_processing_statistics", 1238 "../modules/audio_processing:audioproc_test_utils", 1239 "../modules/rtp_rtcp:rtp_rtcp_format", 1240 "../p2p:fake_ice_transport", 1241 "../p2p:fake_port_allocator", 1242 "../p2p:p2p_server_utils", 1243 "../p2p:p2p_test_utils", 1244 "../p2p:rtc_p2p", 1245 "../rtc_base", 1246 "../rtc_base:checks", 1247 "../rtc_base:gunit_helpers", 1248 "../rtc_base:ip_address", 1249 "../rtc_base:rtc_base_tests_utils", 1250 "../rtc_base:rtc_json", 1251 "../rtc_base:socket_address", 1252 "../rtc_base:threading", 1253 "../rtc_base:timeutils", 1254 "../rtc_base/synchronization:mutex", 1255 "../rtc_base/task_utils:pending_task_safety_flag", 1256 "../rtc_base/task_utils:to_queued_task", 1257 "../rtc_base/third_party/base64", 1258 "../rtc_base/third_party/sigslot", 1259 "../system_wrappers:metrics", 1260 "../test:field_trial", 1261 "../test:fileutils", 1262 "../test:rtp_test_utils", 1263 "../test:test_support", 1264 "../test/pc/sctp:fake_sctp_transport", 1265 ] 1266 absl_deps = [ 1267 "//third_party/abseil-cpp/absl/algorithm:container", 1268 "//third_party/abseil-cpp/absl/memory", 1269 "//third_party/abseil-cpp/absl/strings", 1270 "//third_party/abseil-cpp/absl/types:optional", 1271 ] 1272 } 1273 1274 rtc_library("pc_test_utils") { 1275 testonly = true 1276 sources = [ 1277 "test/fake_audio_capture_module.cc", 1278 "test/fake_audio_capture_module.h", 1279 "test/fake_data_channel_provider.h", 1280 "test/fake_peer_connection_base.h", 1281 "test/fake_peer_connection_for_stats.h", 1282 "test/fake_periodic_video_source.h", 1283 "test/fake_periodic_video_track_source.h", 1284 "test/fake_rtc_certificate_generator.h", 1285 "test/fake_video_track_renderer.h", 1286 "test/fake_video_track_source.h", 1287 "test/frame_generator_capturer_video_track_source.h", 1288 "test/mock_channel_interface.h", 1289 "test/mock_data_channel.h", 1290 "test/mock_delayable.h", 1291 "test/mock_peer_connection_observers.h", 1292 "test/mock_rtp_receiver_internal.h", 1293 "test/mock_rtp_sender_internal.h", 1294 "test/peer_connection_test_wrapper.cc", 1295 "test/peer_connection_test_wrapper.h", 1296 "test/rtc_stats_obtainer.h", 1297 "test/test_sdp_strings.h", 1298 ] 1299 1300 deps = [ 1301 ":jitter_buffer_delay", 1302 ":jitter_buffer_delay_interface", 1303 ":libjingle_peerconnection", 1304 ":peerconnection", 1305 ":rtc_pc_base", 1306 ":rtp_receiver", 1307 ":rtp_sender", 1308 ":video_track_source", 1309 "../api:audio_options_api", 1310 "../api:create_frame_generator", 1311 "../api:create_peerconnection_factory", 1312 "../api:libjingle_peerconnection_api", 1313 "../api:media_stream_interface", 1314 "../api:rtc_error", 1315 "../api:rtc_stats_api", 1316 "../api:scoped_refptr", 1317 "../api:sequence_checker", 1318 "../api/audio:audio_mixer_api", 1319 "../api/audio_codecs:audio_codecs_api", 1320 "../api/task_queue", 1321 "../api/task_queue:default_task_queue_factory", 1322 "../api/video:builtin_video_bitrate_allocator_factory", 1323 "../api/video:video_frame", 1324 "../api/video:video_rtp_headers", 1325 "../api/video_codecs:builtin_video_decoder_factory", 1326 "../api/video_codecs:builtin_video_encoder_factory", 1327 "../api/video_codecs:video_codecs_api", 1328 "../call:call_interfaces", 1329 "../media:rtc_data", 1330 "../media:rtc_media", 1331 "../media:rtc_media_base", 1332 "../media:rtc_media_tests_utils", 1333 "../modules/audio_device", 1334 "../modules/audio_processing", 1335 "../modules/audio_processing:api", 1336 "../p2p:fake_port_allocator", 1337 "../p2p:p2p_test_utils", 1338 "../p2p:rtc_p2p", 1339 "../rtc_base", 1340 "../rtc_base:checks", 1341 "../rtc_base:gunit_helpers", 1342 "../rtc_base:rtc_base_approved", 1343 "../rtc_base:rtc_task_queue", 1344 "../rtc_base:task_queue_for_test", 1345 "../rtc_base:threading", 1346 "../rtc_base/synchronization:mutex", 1347 "../rtc_base/task_utils:repeating_task", 1348 "../rtc_base/third_party/sigslot", 1349 "../test:test_support", 1350 "../test:video_test_common", 1351 ] 1352 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 1353 } 1354} 1355