diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/libwebrtc/pc/BUILD.gn | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/pc/BUILD.gn')
-rw-r--r-- | third_party/libwebrtc/pc/BUILD.gn | 2846 |
1 files changed, 2846 insertions, 0 deletions
diff --git a/third_party/libwebrtc/pc/BUILD.gn b/third_party/libwebrtc/pc/BUILD.gn new file mode 100644 index 0000000000..0be2fabab3 --- /dev/null +++ b/third_party/libwebrtc/pc/BUILD.gn @@ -0,0 +1,2846 @@ +# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. + +# Visibility considerations: +# +# Most targets in this file should have visibility ":*", as they are only +# used internally. +# Some functions are cleared for wider webrtc usage; these have default +# visibility (set to "//*", not the gn default of "*"). +# These are: +# - rtc_pc +# - session_description +# - simulcast_description +# - peerconnection +# - sdp_utils +# - media_stream_observer +# - video_track_source +# - libjingle_peerconnection +# +# Some targets are depended on by external users for historical reasons, +# and are therefore marked with visibility "*". This is in the process +# of being removed. +# +# Some targets are only publicly visible in Chrome builds. +# These are marked up as such. + +import("../webrtc.gni") +if (is_android) { + import("//build/config/android/config.gni") + import("//build/config/android/rules.gni") +} + +group("pc") { + deps = [ ":rtc_pc" ] +} + +rtc_library("proxy") { + visibility = [ ":*" ] + sources = [ + "proxy.cc", + "proxy.h", + ] + deps = [ + "../api:scoped_refptr", + "../api/task_queue", + "../rtc_base:event_tracer", + "../rtc_base:rtc_event", + "../rtc_base:stringutils", + "../rtc_base:threading", + "../rtc_base/system:rtc_export", + ] +} + +rtc_source_set("channel") { + visibility = [ + ":*", + "../test/peer_scenario", + ] + sources = [ + "channel.cc", + "channel.h", + ] + deps = [ + ":channel_interface", + ":rtp_media_utils", + ":rtp_transport_internal", + ":session_description", + "../api:libjingle_peerconnection_api", + "../api:rtp_parameters", + "../api:rtp_transceiver_direction", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/crypto:options", + "../api/task_queue:pending_task_safety_flag", + "../api/units:timestamp", + "../call:rtp_interfaces", + "../call:rtp_receiver", + "../media:codec", + "../media:media_channel", + "../media:media_channel_impl", + "../media:rid_description", + "../media:rtc_media_base", + "../media:rtp_utils", + "../media:stream_params", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../p2p:rtc_p2p", + "../rtc_base:async_packet_socket", + "../rtc_base:checks", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:event_tracer", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:network_route", + "../rtc_base:socket", + "../rtc_base:stringutils", + "../rtc_base:threading", + "../rtc_base:unique_id_generator", + "../rtc_base/containers:flat_set", + "../rtc_base/network:sent_packet", + "../rtc_base/third_party/sigslot", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_source_set("channel_interface") { + visibility = [ ":*" ] + sources = [ "channel_interface.h" ] + deps = [ + ":rtp_transport_internal", + "../api:libjingle_peerconnection_api", + "../api:rtp_parameters", + "../media:media_channel", + "../media:rtc_media_base", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] +} + +rtc_source_set("dtls_srtp_transport") { + visibility = [ ":*" ] + sources = [ + "dtls_srtp_transport.cc", + "dtls_srtp_transport.h", + ] + deps = [ + ":srtp_transport", + "../api:dtls_transport_interface", + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../p2p:rtc_p2p", + "../rtc_base:buffer", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:ssl", + "../rtc_base/third_party/sigslot", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_source_set("dtls_transport") { + visibility = [ ":*" ] + sources = [ + "dtls_transport.cc", + "dtls_transport.h", + ] + deps = [ + ":ice_transport", + "../api:dtls_transport_interface", + "../api:ice_transport_interface", + "../api:libjingle_peerconnection_api", + "../api:make_ref_counted", + "../api:scoped_refptr", + "../api:sequence_checker", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:ssl", + "../rtc_base:threading", + "../rtc_base/synchronization:mutex", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_source_set("external_hmac") { + visibility = [ ":*" ] + sources = [ + "external_hmac.cc", + "external_hmac.h", + ] + deps = [ + "../rtc_base:logging", + "../rtc_base:zero_memory", + ] + if (rtc_build_libsrtp) { + deps += [ "//third_party/libsrtp" ] + } +} + +rtc_source_set("ice_transport") { + visibility = [ ":*" ] + sources = [ + "ice_transport.cc", + "ice_transport.h", + ] + deps = [ + "../api:ice_transport_interface", + "../api:libjingle_peerconnection_api", + "../api:sequence_checker", + "../rtc_base:checks", + "../rtc_base:macromagic", + "../rtc_base:threading", + ] +} + +rtc_source_set("jsep_transport") { + visibility = [ ":*" ] + sources = [ + "jsep_transport.cc", + "jsep_transport.h", + ] + deps = [ + ":dtls_srtp_transport", + ":dtls_transport", + ":rtcp_mux_filter", + ":rtp_transport", + ":rtp_transport_internal", + ":sctp_transport", + ":session_description", + ":srtp_filter", + ":srtp_transport", + ":transport_stats", + "../api:array_view", + "../api:candidate", + "../api:ice_transport_interface", + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/transport:datagram_transport_interface", + "../media:rtc_data_sctp_transport_internal", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:event_tracer", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:threading", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_source_set("jsep_transport_collection") { + visibility = [ ":*" ] + sources = [ + "jsep_transport_collection.cc", + "jsep_transport_collection.h", + ] + deps = [ + ":jsep_transport", + ":session_description", + "../api:libjingle_peerconnection_api", + "../api:sequence_checker", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base/system:no_unique_address", + ] + absl_deps = [] +} + +rtc_source_set("jsep_transport_controller") { + visibility = [ + ":*", + "../test/peer_scenario:*", + ] + sources = [ + "jsep_transport_controller.cc", + "jsep_transport_controller.h", + ] + deps = [ + ":channel", + ":dtls_srtp_transport", + ":dtls_transport", + ":jsep_transport", + ":jsep_transport_collection", + ":rtp_transport", + ":rtp_transport_internal", + ":sctp_transport", + ":session_description", + ":srtp_transport", + ":transport_stats", + "../api:async_dns_resolver", + "../api:candidate", + "../api:dtls_transport_interface", + "../api:ice_transport_factory", + "../api:ice_transport_interface", + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../api:rtp_parameters", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/crypto:options", + "../api/rtc_event_log", + "../api/transport:datagram_transport_interface", + "../api/transport:enums", + "../api/transport:sctp_transport_factory_interface", + "../media:rtc_data_sctp_transport_internal", + "../p2p:rtc_p2p", + "../rtc_base:callback_list", + "../rtc_base:checks", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:event_tracer", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:ssl", + "../rtc_base:threading", + "../rtc_base/third_party/sigslot", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_source_set("media_session") { + visibility = [ "*" ] # Used by Chrome + sources = [ + "media_session.cc", + "media_session.h", + ] + deps = [ + ":jsep_transport", + ":media_protocol_names", + ":rtp_media_utils", + ":session_description", + ":simulcast_description", + ":used_ids", + "../api:field_trials_view", + "../api:libjingle_peerconnection_api", + "../api:rtp_parameters", + "../api:rtp_transceiver_direction", + "../api/crypto:options", + "../media:codec", + "../media:media_constants", + "../media:rid_description", + "../media:rtc_data_sctp_transport_internal", + "../media:rtc_media_base", + "../media:rtc_sdp_video_format_utils", + "../media:stream_params", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:unique_id_generator", + "../rtc_base/memory:always_valid_pointer", + "../rtc_base/third_party/base64", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_source_set("media_stream_proxy") { + visibility = [ ":*" ] + sources = [ "media_stream_proxy.h" ] + deps = [ + ":proxy", + "../api:media_stream_interface", + ] +} + +rtc_source_set("media_stream_track_proxy") { + visibility = [ ":*" ] + sources = [ "media_stream_track_proxy.h" ] + deps = [ + ":proxy", + "../api:media_stream_interface", + ] +} + +rtc_source_set("peer_connection_factory_proxy") { + visibility = [ ":*" ] + sources = [ "peer_connection_factory_proxy.h" ] + deps = [ + ":proxy", + "../api:libjingle_peerconnection_api", + ] +} + +rtc_source_set("peer_connection_proxy") { + visibility = [ ":*" ] + sources = [ "peer_connection_proxy.h" ] + deps = [ + ":proxy", + "../api:libjingle_peerconnection_api", + ] +} + +rtc_source_set("rtcp_mux_filter") { + visibility = [ ":*" ] + sources = [ + "rtcp_mux_filter.cc", + "rtcp_mux_filter.h", + ] + deps = [ + ":session_description", + "../rtc_base:logging", + ] +} + +rtc_source_set("rtp_media_utils") { + visibility = [ ":*" ] + sources = [ + "rtp_media_utils.cc", + "rtp_media_utils.h", + ] + deps = [ + "../api:rtp_transceiver_direction", + "../rtc_base:checks", + ] +} + +rtc_source_set("rtp_receiver_proxy") { + visibility = [ ":*" ] + sources = [ "rtp_receiver_proxy.h" ] + deps = [ + ":proxy", + "../api:libjingle_peerconnection_api", + ] +} + +rtc_source_set("rtp_sender_proxy") { + visibility = [ ":*" ] + sources = [ "rtp_sender_proxy.h" ] + deps = [ + ":proxy", + "../api:libjingle_peerconnection_api", + "../api:rtp_sender_interface", + ] +} + +rtc_source_set("rtp_transport") { + visibility = [ ":*" ] + sources = [ + "rtp_transport.cc", + "rtp_transport.h", + ] + deps = [ + ":rtp_transport_internal", + ":session_description", + "../api:array_view", + "../api/units:timestamp", + "../call:rtp_receiver", + "../call:video_stream_api", + "../media:rtc_media_base", + "../media:rtp_utils", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../p2p:rtc_p2p", + "../rtc_base:async_packet_socket", + "../rtc_base:checks", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:event_tracer", + "../rtc_base:logging", + "../rtc_base:network_route", + "../rtc_base:socket", + "../rtc_base/network:sent_packet", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_source_set("rtp_transport_internal") { + visibility = [ + ":*", + "../test/peer_scenario", + ] + sources = [ "rtp_transport_internal.h" ] + deps = [ + ":session_description", + "../call:rtp_receiver", + "../p2p:rtc_p2p", + "../rtc_base:network_route", + "../rtc_base:ssl", + "../rtc_base/third_party/sigslot", + ] +} + +rtc_source_set("sctp_transport") { + visibility = [ ":*" ] + sources = [ + "sctp_transport.cc", + "sctp_transport.h", + ] + deps = [ + ":dtls_transport", + "../api:dtls_transport_interface", + "../api:libjingle_peerconnection_api", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/transport:datagram_transport_interface", + "../media:rtc_data_sctp_transport_internal", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:threading", + "../rtc_base/third_party/sigslot", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_source_set("sctp_utils") { + visibility = [ + ":*", + "../test/fuzzers:*", + ] + sources = [ + "sctp_utils.cc", + "sctp_utils.h", + ] + deps = [ + "../api:libjingle_peerconnection_api", + "../api:priority", + "../api/transport:datagram_transport_interface", + "../media:media_channel", + "../media:rtc_media_base", + "../rtc_base:byte_buffer", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:logging", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} +rtc_source_set("srtp_filter") { + visibility = [ ":*" ] + sources = [ + "srtp_filter.cc", + "srtp_filter.h", + ] + deps = [ + ":session_description", + "../api:array_view", + "../api:libjingle_peerconnection_api", + "../api:sequence_checker", + "../rtc_base:buffer", + "../rtc_base:logging", + "../rtc_base:ssl", + "../rtc_base:zero_memory", + "../rtc_base/third_party/base64", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_source_set("srtp_session") { + visibility = [ ":*" ] + sources = [ + "srtp_session.cc", + "srtp_session.h", + ] + deps = [ + ":external_hmac", + "../api:array_view", + "../api:field_trials_view", + "../api:scoped_refptr", + "../api:sequence_checker", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../rtc_base:byte_order", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:timeutils", + "../rtc_base/synchronization:mutex", + "../system_wrappers:metrics", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/base:core_headers", + "//third_party/abseil-cpp/absl/strings:strings", + ] + if (rtc_build_libsrtp) { + deps += [ "//third_party/libsrtp" ] + } +} +rtc_source_set("srtp_transport") { + visibility = [ ":*" ] + sources = [ + "srtp_transport.cc", + "srtp_transport.h", + ] + deps = [ + ":rtp_transport", + ":srtp_session", + "../api:field_trials_view", + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../media:rtc_media_base", + "../media:rtp_utils", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../p2p:rtc_p2p", + "../rtc_base:async_packet_socket", + "../rtc_base:buffer", + "../rtc_base:checks", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:event_tracer", + "../rtc_base:logging", + "../rtc_base:network_route", + "../rtc_base:safe_conversions", + "../rtc_base:ssl", + "../rtc_base:zero_memory", + "../rtc_base/third_party/base64", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_source_set("transport_stats") { + visibility = [ ":*" ] + sources = [ + "transport_stats.cc", + "transport_stats.h", + ] + deps = [ + "../api:dtls_transport_interface", + "../api:libjingle_peerconnection_api", + "../p2p:rtc_p2p", + "../rtc_base:ssl", + ] +} + +rtc_source_set("used_ids") { + visibility = [ ":*" ] + sources = [ "used_ids.h" ] + deps = [ + "../api:rtp_parameters", + "../media:codec", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:logging", + ] +} + +rtc_source_set("video_track_source_proxy") { + visibility = [ "*" ] # Used by Chrome + sources = [ + "video_track_source_proxy.cc", + "video_track_source_proxy.h", + ] + deps = [ + ":proxy", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:scoped_refptr", + "../api:video_track_source_constraints", + "../api/video:recordable_encoded_frame", + "../api/video:video_frame", + "../rtc_base:threading", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_source_set("session_description") { + # TODO(bugs.webrtc.org/13661): Reduce visibility if possible + visibility = [ "*" ] # Used by Chrome and others + + sources = [ + "session_description.cc", + "session_description.h", + ] + deps = [ + ":media_protocol_names", + ":simulcast_description", + "../api:libjingle_peerconnection_api", + "../api:rtp_parameters", + "../api:rtp_transceiver_direction", + "../media:codec", + "../media:media_channel", + "../media:media_constants", + "../media:rid_description", + "../media:rtc_media_base", + "../media:stream_params", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:socket_address", + "../rtc_base:stringutils", + "../rtc_base/system:rtc_export", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/strings", + ] +} + +rtc_source_set("simulcast_description") { + sources = [ + "simulcast_description.cc", + "simulcast_description.h", + ] + deps = [ + "../rtc_base:checks", + "../rtc_base:socket_address", + "../rtc_base/system:rtc_export", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] +} + +rtc_source_set("rtc_pc") { + if (build_with_chromium) { + visibility = [ "*" ] + } + allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove. + deps = [ "../media:rtc_audio_video" ] +} + +rtc_library("media_protocol_names") { + visibility = [ ":*" ] + sources = [ + "media_protocol_names.cc", + "media_protocol_names.h", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] +} + +rtc_source_set("peerconnection") { + # TODO(bugs.webrtc.org/13661): Reduce visibility if possible + visibility = [ "*" ] # Used by Chromium and others + cflags = [] + sources = [] + + deps = [ + ":audio_rtp_receiver", + ":audio_track", + ":connection_context", + ":data_channel_controller", + ":data_channel_utils", + ":dtmf_sender", + ":ice_server_parsing", + ":jitter_buffer_delay", + ":jsep_ice_candidate", + ":jsep_session_description", + ":legacy_stats_collector", + ":legacy_stats_collector_interface", + ":local_audio_source", + ":media_protocol_names", + ":media_stream", + ":media_stream_observer", + ":peer_connection", + ":peer_connection_factory", + ":peer_connection_internal", + ":peer_connection_message_handler", + ":proxy", + ":remote_audio_source", + ":rtc_stats_collector", + ":rtc_stats_traversal", + ":rtp_parameters_conversion", + ":rtp_receiver", + ":rtp_sender", + ":rtp_transceiver", + ":rtp_transmission_manager", + ":sctp_data_channel", + ":sdp_offer_answer", + ":sdp_serializer", + ":sdp_state_provider", + ":sdp_utils", + ":session_description", + ":simulcast_description", + ":stream_collection", + ":track_media_info_map", + ":transceiver_list", + ":usage_pattern", + ":video_rtp_receiver", + ":video_track", + ":video_track_source", + ":webrtc_sdp", + ":webrtc_session_description_factory", + "../api:array_view", + "../api:async_dns_resolver", + "../api:audio_options_api", + "../api:call_api", + "../api:callfactory_api", + "../api:fec_controller_api", + "../api:field_trials_view", + "../api:frame_transformer_interface", + "../api:ice_transport_factory", + "../api:libjingle_logging_api", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:network_state_predictor_api", + "../api:packet_socket_factory", + "../api:priority", + "../api:rtc_error", + "../api:rtc_event_log_output_file", + "../api:rtc_stats_api", + "../api:rtp_parameters", + "../api:rtp_transceiver_direction", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/adaptation:resource_adaptation_api", + "../api/audio_codecs:audio_codecs_api", + "../api/crypto:frame_decryptor_interface", + "../api/crypto:options", + "../api/neteq:neteq_api", + "../api/rtc_event_log", + "../api/task_queue", + "../api/task_queue:pending_task_safety_flag", + "../api/transport:bitrate_settings", + "../api/transport:datagram_transport_interface", + "../api/transport:enums", + "../api/transport:field_trial_based_config", + "../api/transport:network_control", + "../api/transport:sctp_transport_factory_interface", + "../api/units:data_rate", + "../api/video:builtin_video_bitrate_allocator_factory", + "../api/video:video_bitrate_allocator_factory", + "../api/video:video_codec_constants", + "../api/video:video_frame", + "../api/video:video_rtp_headers", + "../api/video_codecs:video_codecs_api", + "../call:call_interfaces", + "../call:rtp_interfaces", + "../call:rtp_sender", + "../common_video", + "../logging:ice_log", + "../media:rtc_data_sctp_transport_internal", + "../media:rtc_media_base", + "../media:rtc_media_config", + "../modules/audio_processing:audio_processing_statistics", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../p2p:rtc_p2p", + "../rtc_base:callback_list", + "../rtc_base:checks", + "../rtc_base:ip_address", + "../rtc_base:network_constants", + "../rtc_base:rtc_operations_chain", + "../rtc_base:safe_minmax", + "../rtc_base:socket_address", + "../rtc_base:threading", + "../rtc_base:weak_ptr", + "../rtc_base/experiments:field_trial_parser", + "../rtc_base/network:sent_packet", + "../rtc_base/synchronization:mutex", + "../rtc_base/system:file_wrapper", + "../rtc_base/system:no_unique_address", + "../rtc_base/system:rtc_export", + "../rtc_base/system:unused", + "../rtc_base/third_party/base64", + "../rtc_base/third_party/sigslot", + "../stats", + "../system_wrappers", + "../system_wrappers:field_trial", + "../system_wrappers:metrics", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("sctp_data_channel") { + visibility = [ ":*" ] + sources = [ + "sctp_data_channel.cc", + "sctp_data_channel.h", + ] + deps = [ + ":data_channel_utils", + ":proxy", + ":sctp_utils", + "../api:libjingle_peerconnection_api", + "../api:priority", + "../api:rtc_error", + "../api:scoped_refptr", + "../api/transport:datagram_transport_interface", + "../media:media_channel", + "../media:rtc_data_sctp_transport_internal", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:ssl", + "../rtc_base:threading", + "../rtc_base:threading", + "../rtc_base/system:unused", + "../rtc_base/third_party/sigslot:sigslot", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/cleanup", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("data_channel_utils") { + # TODO(bugs.webrtc.org/13661): Reduce visibility if possible + visibility = [ "*" ] # Known to be used externally + + sources = [ + "data_channel_utils.cc", + "data_channel_utils.h", + ] + deps = [ + "../api:libjingle_peerconnection_api", + "../media:rtc_media_base", + "../rtc_base:checks", + ] +} + +rtc_library("connection_context") { + visibility = [ ":*" ] + sources = [ + "connection_context.cc", + "connection_context.h", + ] + deps = [ + "../api:callfactory_api", + "../api:field_trials_view", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:refcountedbase", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/neteq:neteq_api", + "../api/transport:field_trial_based_config", + "../api/transport:sctp_transport_factory_interface", + "../media:rtc_data_sctp_transport_factory", + "../media:rtc_media_base", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:macromagic", + "../rtc_base:network", + "../rtc_base:rtc_certificate_generator", + "../rtc_base:socket_factory", + "../rtc_base:socket_server", + "../rtc_base:ssl", + "../rtc_base:threading", + "../rtc_base:timeutils", + "../rtc_base/memory:always_valid_pointer", + ] +} + +rtc_source_set("data_channel_controller") { + visibility = [ ":*" ] + sources = [ + "data_channel_controller.cc", + "data_channel_controller.h", + ] + deps = [ + ":data_channel_utils", + ":peer_connection_internal", + ":sctp_data_channel", + ":sctp_utils", + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/transport:datagram_transport_interface", + "../media:media_channel", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:ssl", + "../rtc_base:threading", + "../rtc_base:weak_ptr", + "../rtc_base/third_party/sigslot", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_source_set("peer_connection_sdp_methods") { + visibility = [ ":*" ] + sources = [ "peer_connection_sdp_methods.h" ] + deps = [ + ":jsep_transport_controller", + ":peer_connection_message_handler", + ":sctp_data_channel", + ":usage_pattern", + "../api:libjingle_peerconnection_api", + "../call:call_interfaces", + ] +} + +rtc_source_set("peer_connection_internal") { + visibility = [ ":*" ] + sources = [ "peer_connection_internal.h" ] + deps = [ + ":jsep_transport_controller", + ":peer_connection_message_handler", + ":peer_connection_sdp_methods", + ":rtp_transceiver", + ":rtp_transmission_manager", + ":sctp_data_channel", + "../api:libjingle_peerconnection_api", + "../call:call_interfaces", + "../modules/audio_device", + ] + + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_source_set("rtc_stats_collector") { + visibility = [ + ":*", + "../api:*", + ] + sources = [ + "rtc_stats_collector.cc", + "rtc_stats_collector.h", + ] + deps = [ + ":channel", + ":channel_interface", + ":data_channel_utils", + ":peer_connection_internal", + ":rtc_stats_traversal", + ":rtp_receiver", + ":rtp_receiver_proxy", + ":rtp_sender", + ":rtp_sender_proxy", + ":rtp_transceiver", + ":sctp_data_channel", + ":track_media_info_map", + ":transport_stats", + ":webrtc_sdp", + "../api:array_view", + "../api:candidate", + "../api:dtls_transport_interface", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtc_stats_api", + "../api:rtp_parameters", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/task_queue:task_queue", + "../api/units:time_delta", + "../api/video:video_rtp_headers", + "../api/video_codecs:scalability_mode", + "../call:call_interfaces", + "../common_video:common_video", + "../media:media_channel", + "../media:media_channel_impl", + "../media:rtc_media_base", + "../modules/audio_device", + "../modules/audio_processing:audio_processing_statistics", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:event_tracer", + "../rtc_base:ip_address", + "../rtc_base:logging", + "../rtc_base:network_constants", + "../rtc_base:refcount", + "../rtc_base:rtc_event", + "../rtc_base:socket_address", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:threading", + "../rtc_base:timeutils", + "../rtc_base/synchronization:mutex", + "../rtc_base/third_party/sigslot:sigslot", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/functional:bind_front", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_source_set("rtc_stats_traversal") { + visibility = [ ":*" ] + sources = [ + "rtc_stats_traversal.cc", + "rtc_stats_traversal.h", + ] + deps = [ + "../api:rtc_stats_api", + "../api:scoped_refptr", + "../rtc_base:checks", + ] +} + +rtc_source_set("sdp_offer_answer") { + visibility = [ ":*" ] + sources = [ + "sdp_offer_answer.cc", # TODO: Make separate target when not circular + "sdp_offer_answer.h", # dependent on peerconnection.h + ] + deps = [ + ":channel", + ":channel_interface", + ":connection_context", + ":data_channel_controller", + ":dtls_transport", + ":jsep_transport_controller", + ":legacy_stats_collector", + ":media_session", + ":media_stream", + ":media_stream_observer", + ":media_stream_proxy", + ":peer_connection_internal", + ":peer_connection_message_handler", + ":rtp_media_utils", + ":rtp_receiver", + ":rtp_receiver_proxy", + ":rtp_sender", + ":rtp_sender_proxy", + ":rtp_transceiver", + ":rtp_transmission_manager", + ":sdp_state_provider", + ":session_description", + ":simulcast_description", + ":stream_collection", + ":transceiver_list", + ":usage_pattern", + ":webrtc_session_description_factory", + "../api:array_view", + "../api:audio_options_api", + "../api:candidate", + "../api:dtls_transport_interface", + "../api:field_trials_view", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtc_error", + "../api:rtp_parameters", + "../api:rtp_sender_interface", + "../api:rtp_transceiver_direction", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/crypto:options", + "../api/video:builtin_video_bitrate_allocator_factory", + "../api/video:video_bitrate_allocator_factory", + "../media:codec", + "../media:media_channel", + "../media:rid_description", + "../media:rtc_media_base", + "../media:stream_params", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:event_tracer", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:rtc_operations_chain", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:threading", + "../rtc_base:unique_id_generator", + "../rtc_base:weak_ptr", + "../system_wrappers:metrics", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/memory:memory", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} +rtc_source_set("jsep_ice_candidate") { + visibility = [ ":*" ] +} +rtc_source_set("jsep_session_description") { + visibility = [ ":*" ] +} +rtc_source_set("local_audio_source") { + visibility = [ ":*" ] + sources = [ + "local_audio_source.cc", + "local_audio_source.h", + ] + deps = [ + "../api:audio_options_api", + "../api:media_stream_interface", + "../api:scoped_refptr", + ] +} +rtc_source_set("peer_connection") { + visibility = [ ":*" ] + sources = [ + "peer_connection.cc", + "peer_connection.h", + ] + deps = [ + ":channel", + ":channel_interface", + ":connection_context", + ":data_channel_controller", + ":data_channel_utils", + ":dtls_transport", + ":ice_server_parsing", + ":jsep_transport_controller", + ":legacy_stats_collector", + ":peer_connection_internal", + ":peer_connection_message_handler", + ":rtc_stats_collector", + ":rtp_receiver", + ":rtp_receiver_proxy", + ":rtp_sender", + ":rtp_sender_proxy", + ":rtp_transceiver", + ":rtp_transmission_manager", + ":rtp_transport_internal", + ":sctp_data_channel", + ":sctp_transport", + ":sdp_offer_answer", + ":session_description", + ":simulcast_description", + ":transceiver_list", + ":transport_stats", + ":usage_pattern", + ":webrtc_session_description_factory", + "../api:async_dns_resolver", + "../api:candidate", + "../api:dtls_transport_interface", + "../api:field_trials_view", + "../api:ice_transport_interface", + "../api:libjingle_logging_api", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtc_error", + "../api:rtc_stats_api", + "../api:rtp_parameters", + "../api:rtp_sender_interface", + "../api:rtp_transceiver_direction", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api:turn_customizer", + "../api/adaptation:resource_adaptation_api", + "../api/crypto:options", + "../api/rtc_event_log", + "../api/task_queue:pending_task_safety_flag", + "../api/transport:bitrate_settings", + "../api/transport:datagram_transport_interface", + "../api/transport:enums", + "../api/video:video_codec_constants", + "../call:call_interfaces", + "../media:media_channel", + "../media:rid_description", + "../media:rtc_media_base", + "../media:rtc_media_config", + "../media:stream_params", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:event_tracer", + "../rtc_base:ip_address", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:net_helper", + "../rtc_base:network", + "../rtc_base:network_constants", + "../rtc_base:socket_address", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:threading", + "../rtc_base:unique_id_generator", + "../rtc_base:weak_ptr", + "../rtc_base/third_party/sigslot", + "../system_wrappers:metrics", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_source_set("sdp_serializer") { + visibility = [ ":*" ] + sources = [ + "sdp_serializer.cc", + "sdp_serializer.h", + ] + deps = [ + ":session_description", + ":simulcast_description", + "../api:rtc_error", + "../media:rid_description", + "../media:rtc_media_base", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../rtc_base:checks", + "../rtc_base:stringutils", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings:strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} +rtc_source_set("sdp_utils") { + sources = [ + "sdp_utils.cc", + "sdp_utils.h", + ] + deps = [ + ":session_description", + "../api:libjingle_peerconnection_api", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base/system:rtc_export", + ] +} +rtc_source_set("legacy_stats_collector") { + visibility = [ ":*" ] + sources = [ + "legacy_stats_collector.cc", + "legacy_stats_collector.h", + ] + deps = [ + ":channel", + ":channel_interface", + ":data_channel_utils", + ":legacy_stats_collector_interface", + ":peer_connection_internal", + ":rtp_receiver", + ":rtp_receiver_proxy", + ":rtp_sender_proxy", + ":rtp_transceiver", + ":transport_stats", + "../api:candidate", + "../api:field_trials_view", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtp_parameters", + "../api:rtp_sender_interface", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/audio_codecs:audio_codecs_api", + "../api/video:video_rtp_headers", + "../call:call_interfaces", + "../media:media_channel", + "../media:media_channel_impl", + "../media:rtc_media_base", + "../modules/audio_processing:audio_processing_statistics", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:event_tracer", + "../rtc_base:ip_address", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:network_constants", + "../rtc_base:socket_address", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:threading", + "../rtc_base:timeutils", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} +rtc_source_set("stream_collection") { + visibility = [ ":*" ] + sources = [ "stream_collection.h" ] + deps = [ "../api:libjingle_peerconnection_api" ] +} +rtc_source_set("track_media_info_map") { + visibility = [ ":*" ] + sources = [ + "track_media_info_map.cc", + "track_media_info_map.h", + ] + deps = [ + ":rtp_receiver", + ":rtp_sender", + "../api:array_view", + "../api:media_stream_interface", + "../api:rtp_parameters", + "../api:scoped_refptr", + "../media:media_channel", + "../media:rtc_media_base", + "../media:stream_params", + "../rtc_base:checks", + "../rtc_base:refcount", + "../rtc_base:threading", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} +rtc_source_set("webrtc_sdp") { + # TODO(bugs.webrtc.org/13661): Reduce visibility if possible + visibility = [ "*" ] # Used by Chrome and more + + sources = [ + "jsep_ice_candidate.cc", + "jsep_session_description.cc", + "webrtc_sdp.cc", + "webrtc_sdp.h", + ] + deps = [ + ":media_protocol_names", + ":media_session", + ":sdp_serializer", + ":session_description", + ":simulcast_description", + "../api:candidate", + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../api:rtp_parameters", + "../api:rtp_transceiver_direction", + "../media:codec", + "../media:media_constants", + "../media:rid_description", + "../media:rtc_data_sctp_transport_internal", + "../media:rtc_media_base", + "../media:rtp_utils", + "../media:stream_params", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:ip_address", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:net_helper", + "../rtc_base:network_constants", + "../rtc_base:socket_address", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base/system:rtc_export", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} +rtc_source_set("webrtc_session_description_factory") { + visibility = [ ":*" ] + sources = [ + "webrtc_session_description_factory.cc", + "webrtc_session_description_factory.h", + ] + deps = [ + ":connection_context", + ":media_session", + ":sdp_state_provider", + ":session_description", + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/task_queue", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:rtc_certificate_generator", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:unique_id_generator", + "../rtc_base:weak_ptr", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/functional:any_invocable", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("ice_server_parsing") { + # TODO(bugs.webrtc.org/13661): Reduce visibility if possible + visibility = [ "*" ] # Known to be used externally + + sources = [ + "ice_server_parsing.cc", + "ice_server_parsing.h", + ] + deps = [ + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:ip_address", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:socket_address", + "../rtc_base:stringutils", + "../rtc_base/system:rtc_export", + ] +} + +rtc_library("media_stream_observer") { + sources = [ + "media_stream_observer.cc", + "media_stream_observer.h", + ] + deps = [ + "../api:media_stream_interface", + "../api:scoped_refptr", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ] +} +rtc_source_set("peer_connection_factory") { + # TODO(bugs.webrtc.org/13661): Reduce visibility if possible + visibility = [ "*" ] # Known to be used externally + sources = [ + "peer_connection_factory.cc", + "peer_connection_factory.h", + ] + deps = [ + ":local_audio_source", + ":media_stream_proxy", + ":media_stream_track_proxy", + ":peer_connection", + ":peer_connection_factory_proxy", + ":peer_connection_proxy", + "../api:audio_options_api", + "../api:callfactory_api", + "../api:fec_controller_api", + "../api:field_trials_view", + "../api:ice_transport_interface", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:network_state_predictor_api", + "../api:packet_socket_factory", + "../api:rtc_error", + "../api:rtp_parameters", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/metronome", + "../api/neteq:neteq_api", + "../api/rtc_event_log:rtc_event_log", + "../api/task_queue:task_queue", + "../api/transport:bitrate_settings", + "../api/transport:network_control", + "../api/transport:sctp_transport_factory_interface", + "../api/units:data_rate", + "../call:call_interfaces", + "../call:rtp_interfaces", + "../call:rtp_sender", + "../media:rtc_media_base", + "../p2p:rtc_p2p", + "../pc:audio_track", + "../pc:connection_context", + "../pc:media_stream", + "../pc:rtp_parameters_conversion", + "../pc:session_description", + "../pc:video_track", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:rtc_certificate_generator", + "../rtc_base:safe_conversions", + "../rtc_base:threading", + "../rtc_base/experiments:field_trial_parser", + "../rtc_base/system:file_wrapper", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ] +} + +rtc_library("peer_connection_message_handler") { + visibility = [ ":*" ] + sources = [ + "peer_connection_message_handler.cc", + "peer_connection_message_handler.h", + ] + deps = [ + ":legacy_stats_collector_interface", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtc_error", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/task_queue", + "../api/task_queue:pending_task_safety_flag", + "../rtc_base:checks", + ] +} + +rtc_library("usage_pattern") { + visibility = [ ":*" ] + sources = [ + "usage_pattern.cc", + "usage_pattern.h", + ] + deps = [ + "../api:libjingle_peerconnection_api", + "../rtc_base:logging", + "../system_wrappers:metrics", + ] +} + +rtc_library("rtp_transceiver") { + visibility = [ ":*" ] + sources = [ + "rtp_transceiver.cc", + "rtp_transceiver.h", + ] + deps = [ + ":channel", + ":channel_interface", + ":connection_context", + ":peer_connection_sdp_methods", + ":proxy", + ":rtp_media_utils", + ":rtp_parameters_conversion", + ":rtp_receiver", + ":rtp_receiver_proxy", + ":rtp_sender", + ":rtp_sender_proxy", + ":rtp_transport_internal", + ":session_description", + "../api:array_view", + "../api:audio_options_api", + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../api:rtp_parameters", + "../api:rtp_sender_interface", + "../api:rtp_transceiver_direction", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/task_queue", + "../api/task_queue:pending_task_safety_flag", + "../api/video:video_bitrate_allocator_factory", + "../media:codec", + "../media:media_channel", + "../media:media_constants", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:threading", + "../rtc_base/third_party/sigslot", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/memory", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("rtp_transmission_manager") { + visibility = [ ":*" ] + sources = [ + "rtp_transmission_manager.cc", + "rtp_transmission_manager.h", + ] + deps = [ + ":audio_rtp_receiver", + ":channel", + ":channel_interface", + ":legacy_stats_collector_interface", + ":rtp_receiver", + ":rtp_receiver_proxy", + ":rtp_sender", + ":rtp_sender_proxy", + ":rtp_transceiver", + ":transceiver_list", + ":usage_pattern", + ":video_rtp_receiver", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtc_error", + "../api:rtp_parameters", + "../api:rtp_sender_interface", + "../api:rtp_transceiver_direction", + "../api:scoped_refptr", + "../api:sequence_checker", + "../media:media_channel", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:ssl", + "../rtc_base:threading", + "../rtc_base:weak_ptr", + "../rtc_base/third_party/sigslot", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("transceiver_list") { + visibility = [ ":*" ] + sources = [ + "transceiver_list.cc", + "transceiver_list.h", + ] + deps = [ + ":rtp_transceiver", + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../api:rtp_parameters", + "../api:rtp_sender_interface", + "../api:scoped_refptr", + "../api:sequence_checker", + "../rtc_base:checks", + "../rtc_base:macromagic", + "../rtc_base/system:no_unique_address", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_library("rtp_receiver") { + visibility = [ ":*" ] + sources = [ + "rtp_receiver.cc", + "rtp_receiver.h", + ] + deps = [ + ":media_stream", + ":media_stream_proxy", + ":video_track_source", + "../api:dtls_transport_interface", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtp_parameters", + "../api:scoped_refptr", + "../api/crypto:frame_decryptor_interface", + "../api/video:video_frame", + "../media:media_channel", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:threading", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("audio_rtp_receiver") { + visibility = [ ":*" ] + sources = [ + "audio_rtp_receiver.cc", + "audio_rtp_receiver.h", + ] + deps = [ + ":audio_track", + ":jitter_buffer_delay", + ":media_stream", + ":media_stream_track_proxy", + ":remote_audio_source", + ":rtp_receiver", + "../api:dtls_transport_interface", + "../api:frame_transformer_interface", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtp_parameters", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/crypto:frame_decryptor_interface", + "../api/task_queue:pending_task_safety_flag", + "../api/transport/rtp:rtp_source", + "../media:media_channel", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:macromagic", + "../rtc_base:threading", + "../rtc_base/system:no_unique_address", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("video_rtp_receiver") { + visibility = [ ":*" ] + sources = [ + "video_rtp_receiver.cc", + "video_rtp_receiver.h", + ] + deps = [ + ":jitter_buffer_delay", + ":media_stream", + ":media_stream_track_proxy", + ":rtp_receiver", + ":video_rtp_track_source", + ":video_track", + "../api:dtls_transport_interface", + "../api:frame_transformer_interface", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtp_parameters", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/crypto:frame_decryptor_interface", + "../api/transport/rtp:rtp_source", + "../api/video:recordable_encoded_frame", + "../api/video:video_frame", + "../media:media_channel", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:threading", + "../rtc_base/system:no_unique_address", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("video_rtp_track_source") { + visibility = [ ":*" ] + sources = [ + "video_rtp_track_source.cc", + "video_rtp_track_source.h", + ] + deps = [ + ":video_track_source", + "../api:sequence_checker", + "../api/video:recordable_encoded_frame", + "../api/video:video_frame", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:macromagic", + "../rtc_base/synchronization:mutex", + "../rtc_base/system:no_unique_address", + ] +} + +rtc_library("audio_track") { + visibility = [ ":*" ] + sources = [ + "audio_track.cc", + "audio_track.h", + ] + deps = [ + "../api:media_stream_interface", + "../api:scoped_refptr", + "../api:sequence_checker", + "../rtc_base:checks", + "../rtc_base/system:no_unique_address", + ] +} + +rtc_library("video_track") { + visibility = [ ":*" ] + sources = [ + "video_track.cc", + "video_track.h", + ] + deps = [ + ":video_track_source_proxy", + "../api:media_stream_interface", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/video:video_frame", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:macromagic", + "../rtc_base:threading", + "../rtc_base/system:no_unique_address", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_source_set("sdp_state_provider") { + visibility = [ ":*" ] + sources = [ "sdp_state_provider.h" ] + deps = [ "../api:libjingle_peerconnection_api" ] +} + +rtc_library("jitter_buffer_delay") { + visibility = [ ":*" ] + sources = [ + "jitter_buffer_delay.cc", + "jitter_buffer_delay.h", + ] + deps = [ + "../api:sequence_checker", + "../rtc_base:checks", + "../rtc_base:macromagic", + "../rtc_base:safe_conversions", + "../rtc_base:safe_minmax", + "../rtc_base/system:no_unique_address", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_library("remote_audio_source") { + visibility = [ ":*" ] + sources = [ + "remote_audio_source.cc", + "remote_audio_source.h", + ] + deps = [ + ":channel", + "../api:call_api", + "../api:media_stream_interface", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/task_queue", + "../media:media_channel", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:event_tracer", + "../rtc_base:logging", + "../rtc_base:safe_conversions", + "../rtc_base:stringutils", + "../rtc_base/synchronization:mutex", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("rtp_sender") { + visibility = [ ":*" ] + sources = [ + "rtp_sender.cc", + "rtp_sender.h", + ] + deps = [ + ":dtmf_sender", + ":legacy_stats_collector_interface", + "../api:audio_options_api", + "../api:dtls_transport_interface", + "../api:dtmf_sender_interface", + "../api:frame_transformer_interface", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:priority", + "../api:rtc_error", + "../api:rtp_parameters", + "../api:rtp_sender_interface", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/crypto:frame_encryptor_interface", + "../media:media_channel", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:event_tracer", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:ssl", + "../rtc_base:threading", + "../rtc_base/synchronization:mutex", + "../rtc_base/third_party/sigslot", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("rtp_parameters_conversion") { + visibility = [ ":*" ] + sources = [ + "rtp_parameters_conversion.cc", + "rtp_parameters_conversion.h", + ] + deps = [ + ":session_description", + "../api:array_view", + "../api:libjingle_peerconnection_api", + "../api:rtc_error", + "../api:rtp_parameters", + "../media:codec", + "../media:media_constants", + "../media:rtc_media_base", + "../media:rtp_utils", + "../media:stream_params", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:stringutils", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("dtmf_sender") { + visibility = [ ":*" ] + sources = [ + "dtmf_sender.cc", + "dtmf_sender.h", + ] + deps = [ + ":proxy", + "../api:dtmf_sender_interface", + "../api:libjingle_peerconnection_api", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/task_queue", + "../api/task_queue:pending_task_safety_flag", + "../api/units:time_delta", + "../rtc_base:checks", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:refcount", + "../rtc_base/third_party/sigslot", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("media_stream") { + visibility = [ ":*" ] + sources = [ + "media_stream.cc", + "media_stream.h", + ] + deps = [ + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:scoped_refptr", + "../rtc_base:checks", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] +} + +rtc_library("video_track_source") { + sources = [ + "video_track_source.cc", + "video_track_source.h", + ] + deps = [ + "../api:media_stream_interface", + "../api:sequence_checker", + "../api/video:recordable_encoded_frame", + "../api/video:video_frame", + "../media:media_channel", + "../media:rtc_media_base", + "../rtc_base:checks", + "../rtc_base:macromagic", + "../rtc_base/system:no_unique_address", + "../rtc_base/system:rtc_export", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] +} + +rtc_source_set("legacy_stats_collector_interface") { + visibility = [ ":*" ] + sources = [ "legacy_stats_collector_interface.h" ] + deps = [ + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + ] +} + +rtc_source_set("libjingle_peerconnection") { + # TODO(bugs.webrtc.org/13661): Reduce visibility if possible + visibility = [ "*" ] # Used by Chrome and others + + deps = [ + ":peerconnection", + "../api:libjingle_peerconnection_api", + ] +} + +if (rtc_include_tests && !build_with_chromium) { + rtc_test("rtc_pc_unittests") { + testonly = true + + sources = [ + "audio_rtp_receiver_unittest.cc", + "channel_unittest.cc", + "dtls_srtp_transport_unittest.cc", + "dtls_transport_unittest.cc", + "ice_transport_unittest.cc", + "jsep_transport_controller_unittest.cc", + "jsep_transport_unittest.cc", + "media_session_unittest.cc", + "rtcp_mux_filter_unittest.cc", + "rtp_transport_unittest.cc", + "sctp_transport_unittest.cc", + "session_description_unittest.cc", + "srtp_filter_unittest.cc", + "srtp_session_unittest.cc", + "srtp_transport_unittest.cc", + "test/rtp_transport_test_util.h", + "test/srtp_test_util.h", + "used_ids_unittest.cc", + "video_rtp_receiver_unittest.cc", + ] + + include_dirs = [ "//third_party/libsrtp/srtp" ] + + if (is_win) { + libs = [ "strmiids.lib" ] + } + + deps = [ + ":audio_rtp_receiver", + ":channel", + ":dtls_srtp_transport", + ":dtls_transport", + ":ice_transport", + ":jsep_transport", + ":jsep_transport_controller", + ":libjingle_peerconnection", + ":media_protocol_names", + ":media_session", + ":pc_test_utils", + ":peerconnection", + ":rtc_pc", + ":rtcp_mux_filter", + ":rtp_media_utils", + ":rtp_transport", + ":rtp_transport_internal", + ":sctp_transport", + ":session_description", + ":srtp_filter", + ":srtp_session", + ":srtp_transport", + ":used_ids", + ":video_rtp_receiver", + "../api:array_view", + "../api:audio_options_api", + "../api:candidate", + "../api:dtls_transport_interface", + "../api:ice_transport_factory", + "../api:libjingle_peerconnection_api", + "../api:make_ref_counted", + "../api:make_ref_counted", + "../api:rtc_error", + "../api:rtp_headers", + "../api:rtp_parameters", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/task_queue:pending_task_safety_flag", + "../api/task_queue:task_queue", + "../api/transport:datagram_transport_interface", + "../api/transport:enums", + "../api/video:builtin_video_bitrate_allocator_factory", + "../api/video:recordable_encoded_frame", + "../api/video/test:mock_recordable_encoded_frame", + "../call:rtp_interfaces", + "../call:rtp_receiver", + "../media:codec", + "../media:media_channel", + "../media:media_constants", + "../media:rid_description", + "../media:rtc_data_sctp_transport_internal", + "../media:rtc_media_base", + "../media:rtc_media_tests_utils", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../p2p:fake_ice_transport", + "../p2p:fake_port_allocator", + "../p2p:p2p_test_utils", + "../p2p:rtc_p2p", + "../rtc_base:async_packet_socket", + "../rtc_base:buffer", + "../rtc_base:byte_order", + "../rtc_base:checks", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:gunit_helpers", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:net_helper", + "../rtc_base:rtc_base_tests_utils", + "../rtc_base:socket_address", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:task_queue_for_test", + "../rtc_base:threading", + "../rtc_base:unique_id_generator", + "../rtc_base/containers:flat_set", + "../rtc_base/third_party/sigslot", + "../system_wrappers:metrics", + "../test:explicit_key_value_config", + "../test:run_loop", + "../test:scoped_key_value_config", + "../test:test_main", + "../test:test_support", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/functional:any_invocable", + "//third_party/abseil-cpp/absl/memory", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] + + if (rtc_build_libsrtp) { + deps += [ "//third_party/libsrtp" ] + } + + if (is_android) { + use_default_launcher = false + deps += [ + "//build/android/gtest_apk:native_test_instrumentation_test_runner_java", + "//testing/android/native_test:native_test_java", + "//testing/android/native_test:native_test_support", + ] + } + } + + rtc_library("peerconnection_perf_tests") { + testonly = true + sources = [ "peer_connection_rampup_tests.cc" ] + deps = [ + ":pc_test_utils", + ":peer_connection", + ":peerconnection", + ":peerconnection_wrapper", + "../api:audio_options_api", + "../api:create_peerconnection_factory", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtc_error", + "../api:rtc_stats_api", + "../api:scoped_refptr", + "../api/audio:audio_mixer_api", + "../api/audio_codecs:audio_codecs_api", + "../api/audio_codecs:builtin_audio_decoder_factory", + "../api/audio_codecs:builtin_audio_encoder_factory", + "../api/test/metrics:global_metrics_logger_and_exporter", + "../api/test/metrics:metric", + "../api/video_codecs:builtin_video_decoder_factory", + "../api/video_codecs:builtin_video_encoder_factory", + "../api/video_codecs:video_codecs_api", + "../media:rtc_media_tests_utils", + "../modules/audio_device:audio_device_api", + "../modules/audio_processing:api", + "../p2p:p2p_test_utils", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:gunit_helpers", + "../rtc_base:rtc_base_tests_utils", + "../rtc_base:socket_address", + "../rtc_base:socket_factory", + "../rtc_base:ssl", + "../rtc_base:task_queue_for_test", + "../rtc_base:threading", + "../system_wrappers", + "../test:test_support", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] + } + + rtc_library("peerconnection_wrapper") { + testonly = true + sources = [ + "peer_connection_wrapper.cc", + "peer_connection_wrapper.h", + ] + deps = [ + ":pc_test_utils", + ":peerconnection", + ":sdp_utils", + "../api:function_view", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:rtc_error", + "../api:rtc_stats_api", + "../api:rtp_parameters", + "../api:rtp_sender_interface", + "../api:scoped_refptr", + "../rtc_base:checks", + "../rtc_base:gunit_helpers", + "../rtc_base:logging", + "../test:test_support", + ] + } + + rtc_test("slow_peer_connection_unittests") { + testonly = true + sources = [ "slow_peer_connection_integration_test.cc" ] + deps = [ + ":integration_test_helpers", + ":pc_test_utils", + "../api:dtmf_sender_interface", + "../api:libjingle_peerconnection_api", + "../api:scoped_refptr", + "../api/units:time_delta", + "../p2p:p2p_server_utils", + "../p2p:p2p_test_utils", + "../p2p:rtc_p2p", + "../rtc_base:gunit_helpers", + "../rtc_base:logging", + "../rtc_base:rtc_base_tests_utils", + "../rtc_base:socket_address", + "../rtc_base:ssl", + "../test:test_main", + "../test:test_support", + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] + } + + rtc_test("peerconnection_unittests") { + testonly = true + sources = [ + "data_channel_integrationtest.cc", + "data_channel_unittest.cc", + "dtmf_sender_unittest.cc", + "ice_server_parsing_unittest.cc", + "jitter_buffer_delay_unittest.cc", + "jsep_session_description_unittest.cc", + "legacy_stats_collector_unittest.cc", + "local_audio_source_unittest.cc", + "media_stream_unittest.cc", + "peer_connection_adaptation_integrationtest.cc", + "peer_connection_bundle_unittest.cc", + "peer_connection_crypto_unittest.cc", + "peer_connection_data_channel_unittest.cc", + "peer_connection_end_to_end_unittest.cc", + "peer_connection_factory_unittest.cc", + "peer_connection_field_trial_tests.cc", + "peer_connection_header_extension_unittest.cc", + "peer_connection_histogram_unittest.cc", + "peer_connection_ice_unittest.cc", + "peer_connection_integrationtest.cc", + "peer_connection_interface_unittest.cc", + "peer_connection_jsep_unittest.cc", + "peer_connection_media_unittest.cc", + "peer_connection_rtp_unittest.cc", + "peer_connection_signaling_unittest.cc", + "peer_connection_simulcast_unittest.cc", + "peer_connection_svc_integrationtest.cc", + "peer_connection_wrapper.cc", + "peer_connection_wrapper.h", + "proxy_unittest.cc", + "rtc_stats_collector_unittest.cc", + "rtc_stats_integrationtest.cc", + "rtc_stats_traversal_unittest.cc", + "rtp_media_utils_unittest.cc", + "rtp_parameters_conversion_unittest.cc", + "rtp_sender_receiver_unittest.cc", + "rtp_transceiver_unittest.cc", + "sctp_utils_unittest.cc", + "sdp_offer_answer_unittest.cc", + "sdp_serializer_unittest.cc", + "test/fake_audio_capture_module_unittest.cc", + "test/test_sdp_strings.h", + "track_media_info_map_unittest.cc", + "video_rtp_track_source_unittest.cc", + "video_track_unittest.cc", + "webrtc_sdp_unittest.cc", + ] + + deps = [ + ":audio_rtp_receiver", + ":audio_track", + ":channel", + ":channel_interface", + ":data_channel_controller_unittest", + ":dtls_srtp_transport", + ":dtls_transport", + ":dtmf_sender", + ":ice_server_parsing", + ":integration_test_helpers", + ":jitter_buffer_delay", + ":legacy_stats_collector", + ":local_audio_source", + ":media_protocol_names", + ":media_session", + ":media_stream", + ":peer_connection", + ":peer_connection_factory", + ":peer_connection_proxy", + ":proxy", + ":rtc_stats_collector", + ":rtc_stats_traversal", + ":rtp_media_utils", + ":rtp_parameters_conversion", + ":rtp_receiver", + ":rtp_sender", + ":rtp_sender_proxy", + ":rtp_transceiver", + ":rtp_transport_internal", + ":sctp_data_channel", + ":sctp_transport", + ":sctp_utils", + ":sdp_serializer", + ":sdp_utils", + ":session_description", + ":simulcast_description", + ":stream_collection", + ":track_media_info_map", + ":transport_stats", + ":usage_pattern", + ":video_rtp_receiver", + ":video_rtp_track_source", + ":video_track", + ":video_track_source", + ":webrtc_sdp", + "../api:array_view", + "../api:audio_options_api", + "../api:candidate", + "../api:create_peerconnection_factory", + "../api:dtls_transport_interface", + "../api:dtmf_sender_interface", + "../api:fake_frame_decryptor", + "../api:fake_frame_encryptor", + "../api:field_trials_view", + "../api:function_view", + "../api:ice_transport_interface", + "../api:libjingle_logging_api", + "../api:libjingle_peerconnection_api", + "../api:make_ref_counted", + "../api:media_stream_interface", + "../api:mock_encoder_selector", + "../api:mock_packet_socket_factory", + "../api:mock_video_track", + "../api:packet_socket_factory", + "../api:priority", + "../api:rtc_error", + "../api:rtp_sender_interface", + "../api:rtp_transceiver_direction", + "../api:scoped_refptr", + "../api/adaptation:resource_adaptation_api", + "../api/audio:audio_mixer_api", + "../api/crypto:frame_decryptor_interface", + "../api/crypto:frame_encryptor_interface", + "../api/crypto:options", + "../api/rtc_event_log", + "../api/rtc_event_log:rtc_event_log_factory", + "../api/task_queue", + "../api/task_queue:default_task_queue_factory", + "../api/transport:datagram_transport_interface", + "../api/transport:field_trial_based_config", + "../api/transport:sctp_transport_factory_interface", + "../api/transport/rtp:rtp_source", + "../api/units:time_delta", + "../api/units:timestamp", + "../api/video:builtin_video_bitrate_allocator_factory", + "../api/video:encoded_image", + "../api/video:recordable_encoded_frame", + "../api/video:video_bitrate_allocator_factory", + "../api/video:video_codec_constants", + "../api/video:video_frame", + "../api/video:video_rtp_headers", + "../api/video_codecs:scalability_mode", + "../call/adaptation:resource_adaptation_test_utilities", + "../common_video", + "../logging:fake_rtc_event_log", + "../media:codec", + "../media:delayable", + "../media:media_channel", + "../media:media_constants", + "../media:rid_description", + "../media:rtc_data_sctp_transport_internal", + "../media:rtc_media_config", + "../media:rtc_media_engine_defaults", + "../media:stream_params", + "../modules/audio_device:audio_device_api", + "../modules/audio_processing:audio_processing_statistics", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../p2p:fake_port_allocator", + "../p2p:p2p_server_utils", + "../rtc_base:byte_buffer", + "../rtc_base:checks", + "../rtc_base:copy_on_write_buffer", + "../rtc_base:event_tracer", + "../rtc_base:gunit_helpers", + "../rtc_base:ip_address", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:mdns_responder_interface", + "../rtc_base:net_helper", + "../rtc_base:network", + "../rtc_base:network_constants", + "../rtc_base:refcount", + "../rtc_base:rtc_base_tests_utils", + "../rtc_base:rtc_certificate_generator", + "../rtc_base:rtc_json", + "../rtc_base:socket_address", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:task_queue_for_test", + "../rtc_base:threading", + "../rtc_base:timeutils", + "../rtc_base:unique_id_generator", + "../rtc_base/synchronization:mutex", + "../rtc_base/third_party/base64", + "../rtc_base/third_party/sigslot", + "../system_wrappers:metrics", + "../test:run_loop", + "../test:scoped_key_value_config", + "../test/pc/sctp:fake_sctp_transport", + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/memory", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] + + if (is_android) { + use_default_launcher = false + deps += [ + ":android_black_magic", + + # We need to depend on this one directly, or classloads will fail for + # the voice engine BuildInfo, for instance. + "//sdk/android:libjingle_peerconnection_java", + "//sdk/android:native_test_jni_onload", + ] + shard_timeout = 900 + } + + deps += [ + ":libjingle_peerconnection", + ":pc_test_utils", + ":rtc_pc", + "../api:callfactory_api", + "../api:rtc_event_log_output_file", + "../api:rtc_stats_api", + "../api:rtp_parameters", + "../api/audio_codecs:audio_codecs_api", + "../api/audio_codecs:builtin_audio_decoder_factory", + "../api/audio_codecs:builtin_audio_encoder_factory", + "../api/audio_codecs:opus_audio_decoder_factory", + "../api/audio_codecs:opus_audio_encoder_factory", + "../api/audio_codecs/L16:audio_decoder_L16", + "../api/audio_codecs/L16:audio_encoder_L16", + "../api/video_codecs:builtin_video_decoder_factory", + "../api/video_codecs:builtin_video_encoder_factory", + "../api/video_codecs:video_codecs_api", + "../call:call_interfaces", + "../media:rtc_audio_video", + "../media:rtc_media_base", + "../media:rtc_media_tests_utils", + "../modules/audio_processing", + "../modules/audio_processing:api", + "../p2p:p2p_test_utils", + "../p2p:rtc_p2p", + "../rtc_base:rtc_task_queue", + "../rtc_base:safe_conversions", + "../test:audio_codec_mocks", + "../test:test_main", + "../test:test_support", + ] + } + + rtc_library("data_channel_controller_unittest") { + testonly = true + sources = [ "data_channel_controller_unittest.cc" ] + deps = [ + ":data_channel_controller", + ":pc_test_utils", + ":peer_connection_internal", + ":sctp_data_channel", + "../test:test_support", + ] + } + + if (is_android) { + rtc_library("android_black_magic") { + # The android code uses hacky includes to ssl code. Having this in a + # separate target enables us to keep the peerconnection unit tests clean. + testonly = true + sources = [ + "test/android_test_initializer.cc", + "test/android_test_initializer.h", + ] + deps = [ + "../rtc_base:ssl", + "../sdk/android:internal_jni", + "../sdk/android:libjingle_peerconnection_jni", + "//modules/utility:utility", + "//rtc_base:checks", + "//testing/android/native_test:native_test_support", + ] + } + } + + rtc_library("integration_test_helpers") { + testonly = true + sources = [ + "test/integration_test_helpers.cc", + "test/integration_test_helpers.h", + ] + deps = [ + ":audio_rtp_receiver", + ":audio_track", + ":dtmf_sender", + ":jitter_buffer_delay", + ":local_audio_source", + ":media_session", + ":media_stream", + ":pc_test_utils", + ":peer_connection", + ":peer_connection_factory", + ":peer_connection_proxy", + ":peerconnection", + ":remote_audio_source", + ":rtp_media_utils", + ":rtp_parameters_conversion", + ":rtp_receiver", + ":rtp_sender", + ":rtp_transceiver", + ":session_description", + ":usage_pattern", + ":video_rtp_receiver", + ":video_rtp_track_source", + ":video_track", + ":video_track_source", + "../api:array_view", + "../api:audio_options_api", + "../api:callfactory_api", + "../api:candidate", + "../api:create_peerconnection_factory", + "../api:fake_frame_decryptor", + "../api:fake_frame_encryptor", + "../api:field_trials_view", + "../api:function_view", + "../api:ice_transport_interface", + "../api:libjingle_logging_api", + "../api:libjingle_peerconnection_api", + "../api:media_stream_interface", + "../api:mock_rtp", + "../api:packet_socket_factory", + "../api:rtc_error", + "../api:rtc_stats_api", + "../api:rtp_parameters", + "../api:rtp_sender_interface", + "../api:rtp_transceiver_direction", + "../api:scoped_refptr", + "../api/audio:audio_mixer_api", + "../api/crypto:frame_decryptor_interface", + "../api/crypto:frame_encryptor_interface", + "../api/crypto:options", + "../api/rtc_event_log", + "../api/rtc_event_log:rtc_event_log_factory", + "../api/task_queue", + "../api/task_queue:default_task_queue_factory", + "../api/task_queue:pending_task_safety_flag", + "../api/transport:field_trial_based_config", + "../api/transport/rtp:rtp_source", + "../api/units:time_delta", + "../api/video:builtin_video_bitrate_allocator_factory", + "../api/video:video_rtp_headers", + "../api/video_codecs:video_codecs_api", + "../call:call_interfaces", + "../call/adaptation:resource_adaptation_test_utilities", + "../logging:fake_rtc_event_log", + "../media:rtc_audio_video", + "../media:rtc_media_base", + "../media:rtc_media_config", + "../media:rtc_media_engine_defaults", + "../media:rtc_media_tests_utils", + "../media:stream_params", + "../modules/audio_device:audio_device_api", + "../modules/audio_processing:api", + "../modules/audio_processing:audio_processing_statistics", + "../modules/audio_processing:audioproc_test_utils", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../p2p:fake_ice_transport", + "../p2p:fake_port_allocator", + "../p2p:p2p_server_utils", + "../p2p:p2p_test_utils", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:gunit_helpers", + "../rtc_base:ip_address", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:mdns_responder_interface", + "../rtc_base:rtc_base_tests_utils", + "../rtc_base:rtc_certificate_generator", + "../rtc_base:rtc_event", + "../rtc_base:rtc_json", + "../rtc_base:safe_conversions", + "../rtc_base:socket_address", + "../rtc_base:ssl", + "../rtc_base:task_queue_for_test", + "../rtc_base:threading", + "../rtc_base:timeutils", + "../rtc_base/synchronization:mutex", + "../rtc_base/task_utils:repeating_task", + "../rtc_base/third_party/base64", + "../rtc_base/third_party/sigslot", + "../system_wrappers:metrics", + "../test:explicit_key_value_config", + "../test:fileutils", + "../test:rtp_test_utils", + "../test:scoped_key_value_config", + "../test:test_support", + "../test/pc/sctp:fake_sctp_transport", + ] + absl_deps = [ + "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/memory", + "//third_party/abseil-cpp/absl/strings", + "//third_party/abseil-cpp/absl/types:optional", + ] + } + + rtc_library("pc_test_utils") { + testonly = true + sources = [ + "test/fake_audio_capture_module.cc", + "test/fake_audio_capture_module.h", + "test/fake_data_channel_controller.h", + "test/fake_peer_connection_base.h", + "test/fake_peer_connection_for_stats.h", + "test/fake_periodic_video_source.h", + "test/fake_periodic_video_track_source.h", + "test/fake_rtc_certificate_generator.h", + "test/fake_video_track_renderer.h", + "test/fake_video_track_source.h", + "test/frame_generator_capturer_video_track_source.h", + "test/mock_channel_interface.h", + "test/mock_data_channel.h", + "test/mock_peer_connection_internal.h", + "test/mock_peer_connection_observers.h", + "test/mock_rtp_receiver_internal.h", + "test/mock_rtp_sender_internal.h", + "test/mock_voice_media_channel.h", + "test/peer_connection_test_wrapper.cc", + "test/peer_connection_test_wrapper.h", + "test/rtc_stats_obtainer.h", + "test/test_sdp_strings.h", + ] + + deps = [ + ":channel", + ":channel_interface", + ":jitter_buffer_delay", + ":libjingle_peerconnection", + ":peer_connection_internal", + ":peerconnection", + ":rtp_receiver", + ":rtp_sender", + ":sctp_data_channel", + ":stream_collection", + ":video_track_source", + "../api:audio_options_api", + "../api:call_api", + "../api:create_frame_generator", + "../api:create_peerconnection_factory", + "../api:field_trials_view", + "../api:field_trials_view", + "../api:libjingle_peerconnection_api", + "../api:make_ref_counted", + "../api:media_stream_interface", + "../api:rtc_error", + "../api:rtc_stats_api", + "../api:scoped_refptr", + "../api:sequence_checker", + "../api/audio:audio_mixer_api", + "../api/audio_codecs:audio_codecs_api", + "../api/task_queue", + "../api/task_queue:default_task_queue_factory", + "../api/units:time_delta", + "../api/video:builtin_video_bitrate_allocator_factory", + "../api/video:video_frame", + "../api/video:video_rtp_headers", + "../api/video_codecs:builtin_video_decoder_factory", + "../api/video_codecs:builtin_video_encoder_factory", + "../api/video_codecs:video_codecs_api", + "../call:call_interfaces", + "../media:media_channel", + "../media:media_channel_impl", + "../media:rtc_media", + "../media:rtc_media_base", + "../media:rtc_media_tests_utils", + "../modules/audio_device", + "../modules/audio_processing", + "../modules/audio_processing:api", + "../modules/rtp_rtcp:rtp_rtcp_format", + "../p2p:fake_port_allocator", + "../p2p:p2p_test_utils", + "../p2p:rtc_p2p", + "../rtc_base:checks", + "../rtc_base:gunit_helpers", + "../rtc_base:logging", + "../rtc_base:macromagic", + "../rtc_base:rtc_certificate_generator", + "../rtc_base:rtc_task_queue", + "../rtc_base:ssl", + "../rtc_base:stringutils", + "../rtc_base:task_queue_for_test", + "../rtc_base:threading", + "../rtc_base:timeutils", + "../rtc_base/synchronization:mutex", + "../rtc_base/task_utils:repeating_task", + "../rtc_base/third_party/sigslot", + "../test:scoped_key_value_config", + "../test:test_support", + "../test:video_test_common", + ] + absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] + } + + svc_tests_resources = [ + "../resources/difficult_photo_1850_1110.yuv", + "../resources/photo_1850_1110.yuv", + "../resources/presentation_1850_1110.yuv", + "../resources/web_screenshot_1850_1110.yuv", + ] + + if (is_ios) { + bundle_data("svc_tests_bundle_data") { + testonly = true + sources = svc_tests_resources + outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] + } + } + + rtc_test("svc_tests") { + sources = [ "test/svc_e2e_tests.cc" ] + data = svc_tests_resources + deps = [ + "../api:create_network_emulation_manager", + "../api:create_peer_connection_quality_test_frame_generator", + "../api:create_peerconnection_quality_test_fixture", + "../api:frame_generator_api", + "../api:media_stream_interface", + "../api:network_emulation_manager_api", + "../api:peer_connection_quality_test_fixture_api", + "../api:rtc_stats_api", + "../api:simulated_network_api", + "../api:time_controller", + "../api/test/metrics:global_metrics_logger_and_exporter", + "../api/test/pclf:media_configuration", + "../api/test/pclf:media_quality_test_params", + "../api/test/pclf:peer_configurer", + "../api/video_codecs:video_codecs_api", + "../call:simulated_network", + "../modules/video_coding:webrtc_vp9", + "../modules/video_coding/svc:scalability_mode_util", + "../rtc_base/containers:flat_map", + "../system_wrappers:field_trial", + "../test:field_trial", + "../test:fileutils", + "../test:test_main", + "../test:test_support", + "../test/pc/e2e:network_quality_metrics_reporter", + "../test/pc/e2e/analyzer/video:default_video_quality_analyzer", + ] + + if (is_ios) { + deps += [ ":svc_tests_bundle_data" ] + } + } +} |