blob: 1e1e4bad88fb7fd18591766d605a3554ab79d6fa [file] [log] [blame]
# 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
# - 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_source_set("proxy") {
visibility = [ ":*" ]
sources = [ "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:rtp_utils",
"../media:stream_params",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:dtls_transport_internal",
"../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/algorithm:container",
"//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",
]
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:dtls_transport_internal",
"../p2p:packet_transport_internal",
"../p2p:rtc_p2p",
"../rtc_base:buffer",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:ssl",
]
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:dtls_transport",
"../p2p:dtls_transport_internal",
"../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_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:dtls_transport",
"../p2p:dtls_transport_internal",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
"../p2p:p2p_transport_channel",
"../p2p:rtc_p2p",
"../p2p:transport_description",
"../p2p:transport_info",
"../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:p2p_constants",
"../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/environment",
"../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:connection",
"../p2p:dtls_transport",
"../p2p:dtls_transport_factory",
"../p2p:dtls_transport_internal",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
"../p2p:p2p_transport_channel",
"../p2p:packet_transport_internal",
"../p2p:port",
"../p2p:port_allocator",
"../p2p:rtc_p2p",
"../p2p:transport_description",
"../p2p:transport_info",
"../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/functional:any_invocable",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_source_set("media_factory") {
sources = [ "media_factory.h" ]
deps = [
"../api/environment",
"../call:call_interfaces",
"../media:media_engine",
]
}
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:media_engine",
"../media:rid_description",
"../media:rtc_data_sctp_transport_internal",
"../media:rtc_sdp_video_format_utils",
"../media:stream_params",
"../p2p:ice_credentials_iterator",
"../p2p:p2p_constants",
"../p2p:rtc_p2p",
"../p2p:transport_description",
"../p2p:transport_description_factory",
"../p2p:transport_info",
"../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",
"../api/transport:bandwidth_estimation_settings",
]
}
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/task_queue:pending_task_safety_flag",
"../api/units:timestamp",
"../call:rtp_receiver",
"../call:video_stream_api",
"../media:rtp_utils",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:packet_transport_internal",
"../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:received_packet",
"../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:ice_transport_internal",
"../p2p:rtc_p2p",
"../rtc_base:callback_list",
"../rtc_base:network_route",
"../rtc_base:ssl",
]
}
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:dtls_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_data_sctp_transport_internal",
"../net/dcsctp/public:types",
"../rtc_base:byte_buffer",
"../rtc_base:copy_on_write_buffer",
"../rtc_base:logging",
"../rtc_base:ssl",
]
absl_deps = [ "//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:rtp_utils",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:packet_transport_internal",
"../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:connection",
"../p2p:dtls_transport_internal",
"../p2p:ice_transport_internal",
"../p2p:port",
"../p2p:rtc_p2p",
"../rtc_base:ssl",
]
}
rtc_source_set("used_ids") {
visibility = [ ":*" ]
sources = [ "used_ids.h" ]
deps = [
"../api:rtp_parameters",
"../media:codec",
"../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:stream_params",
"../p2p:rtc_p2p",
"../p2p:transport_description",
"../p2p:transport_info",
"../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_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:sequence_checker",
"../api/task_queue:pending_task_safety_flag",
"../api/transport:datagram_transport_interface",
"../media:media_channel",
"../media:rtc_data_sctp_transport_internal",
"../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/containers:flat_set",
"../rtc_base/system:no_unique_address",
"../rtc_base/system:unused",
]
absl_deps = [ "//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:media_engine",
"../rtc_base:checks",
]
}
rtc_library("connection_context") {
visibility = [ ":*" ]
sources = [
"connection_context.cc",
"connection_context.h",
]
deps = [
":media_factory",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:refcountedbase",
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/environment",
"../api/neteq:neteq_api",
"../api/transport:sctp_transport_factory_interface",
"../media:media_engine",
"../media:rtc_data_sctp_transport_factory",
"../p2p:basic_packet_socket_factory",
"../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/task_queue:pending_task_safety_flag",
"../api/transport:datagram_transport_interface",
"../media:media_channel",
"../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",
]
absl_deps = [
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_source_set("peer_connection_internal") {
visibility = [ ":*" ]
sources = [ "peer_connection_internal.h" ]
deps = [
":jsep_transport_controller",
":peer_connection_message_handler",
":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",
"../modules/audio_device",
"../modules/audio_processing:audio_processing_statistics",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:connection",
"../p2p:connection_info",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
"../p2p:port",
"../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/containers:flat_set",
"../rtc_base/synchronization:mutex",
]
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",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
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",
":used_ids",
":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:stream_params",
"../p2p:connection",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
"../p2p:p2p_transport_channel",
"../p2p:port",
"../p2p:port_allocator",
"../p2p:rtc_p2p",
"../p2p:transport_description",
"../p2p:transport_description_factory",
"../p2p:transport_info",
"../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/environment",
"../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:media_engine",
"../media:rid_description",
"../media:rtc_media_config",
"../media:stream_params",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:basic_async_resolver_factory",
"../p2p:connection",
"../p2p:connection_info",
"../p2p:dtls_transport_internal",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
"../p2p:p2p_transport_channel",
"../p2p:port",
"../p2p:port_allocator",
"../p2p:rtc_p2p",
"../p2p:transport_description",
"../p2p:transport_info",
"../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",
"../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("simulcast_sdp_serializer") {
visibility = [ ":*" ]
sources = [
"simulcast_sdp_serializer.cc",
"simulcast_sdp_serializer.h",
]
deps = [
":session_description",
":simulcast_description",
"../api:rtc_error",
"../media:rid_description",
"../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",
"../p2p:transport_info",
"../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",
"../modules/audio_processing:audio_processing_statistics",
"../p2p:connection",
"../p2p:connection_info",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
"../p2p:port",
"../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: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",
":session_description",
":simulcast_description",
":simulcast_sdp_serializer",
"../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:rtp_utils",
"../media:stream_params",
"../p2p:candidate_pair_interface",
"../p2p:connection",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
"../p2p:port",
"../p2p:port_interface",
"../p2p:rtc_p2p",
"../p2p:transport_description",
"../p2p:transport_info",
"../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",
"../p2p:transport_description",
"../p2p:transport_description_factory",
"../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:connection",
"../p2p:port",
"../p2p:port_allocator",
"../p2p:port_interface",
"../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
allow_poison = [ "environment_construction" ]
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: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/environment",
"../api/environment:environment_factory",
"../api/metronome",
"../api/neteq:neteq_api",
"../api/rtc_event_log:rtc_event_log",
"../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:media_engine",
"../p2p:basic_packet_socket_factory",
"../p2p:basic_port_allocator",
"../p2p:connection",
"../p2p:default_ice_transport_factory",
"../p2p:port_allocator",
"../p2p:rtc_p2p",
"../pc:audio_track",
"../pc:connection_context",
"../pc:media_factory",
"../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",
":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:field_trials_view",
"../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/audio_codecs:audio_codecs_api",
"../api/crypto:options",
"../api/task_queue",
"../api/task_queue:pending_task_safety_flag",
"../api/video:video_bitrate_allocator_factory",
"../media:codec",
"../media:media_channel",
"../media:media_channel_impl",
"../media:media_constants",
"../media:media_engine",
"../media:rtc_media_config",
"../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",
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base:ssl",
"../rtc_base:threading",
"../rtc_base:weak_ptr",
]
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:video_broadcaster",
"../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",
"../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",
"../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:video_broadcaster",
"../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:video_source_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",
"../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:audio_source",
"../media:media_channel",
"../media:media_engine",
"../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: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",
"../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",
]
}
# This target contains the libraries that are required in order to get an
# usable peerconnection-using binary.
rtc_source_set("libjingle_peerconnection") {
# TODO(bugs.webrtc.org/13661): Reduce visibility if possible
visibility = [ "*" ] # Used by Chrome and others
allow_poison = [ "environment_construction" ]
deps = [
":jsep_session_description",
":peer_connection_factory",
":rtc_stats_collector",
"../api:libjingle_peerconnection_api",
"../stats",
]
}
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_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",
":rtc_pc",
":rtcp_mux_filter",
":rtp_media_utils",
":rtp_parameters_conversion",
":rtp_transport",
":rtp_transport_internal",
":sctp_transport",
":session_description",
":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/environment:environment_factory",
"../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_tests_utils",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:candidate_pair_interface",
"../p2p:dtls_transport_factory",
"../p2p:dtls_transport_internal",
"../p2p:fake_ice_transport",
"../p2p:fake_port_allocator",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
"../p2p:p2p_test_utils",
"../p2p:packet_transport_internal",
"../p2p:rtc_p2p",
"../p2p:transport_description",
"../p2p:transport_info",
"../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/network:received_packet",
"../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_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:video_codecs_api",
"../api/video_codecs:video_decoder_factory_template",
"../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
"../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
"../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
"../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
"../api/video_codecs:video_encoder_factory_template",
"../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
"../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
"../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
"../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
"../media:rtc_media_tests_utils",
"../modules/audio_device:audio_device_api",
"../modules/audio_processing:api",
"../p2p:basic_port_allocator",
"../p2p:connection",
"../p2p:p2p_test_utils",
"../p2p:port_allocator",
"../p2p:port_interface",
"../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",
":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",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
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:connection",
"../p2p:p2p_server_utils",
"../p2p:p2p_test_utils",
"../p2p:port_allocator",
"../p2p:port_interface",
"../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",
"../test/time_controller:time_controller",
"//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_encodings_integrationtest.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",
"simulcast_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",
":enable_fake_media",
":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_utils",
":session_description",
":simulcast_description",
":simulcast_sdp_serializer",
":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:enable_media",
"../api:enable_media_with_defaults",
"../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_async_dns_resolver",
"../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/environment:environment_factory",
"../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:data_rate",
"../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:media_channel",
"../media:media_constants",
"../media:media_engine",
"../media:rid_description",
"../media:rtc_data_sctp_transport_internal",
"../media:rtc_media_config",
"../media:stream_params",
"../modules/audio_device:audio_device_api",
"../modules/audio_processing:audio_processing_statistics",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:basic_port_allocator",
"../p2p:connection",
"../p2p:connection_info",
"../p2p:dtls_transport_internal",
"../p2p:fake_port_allocator",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
"../p2p:p2p_server_utils",
"../p2p:port",
"../p2p:port_allocator",
"../p2p:port_interface",
"../p2p:transport_description",
"../p2p:transport_info",
"../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:null_socket_server",
"../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:field_trial",
"../test:rtc_expect_death",
"../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: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",
"../api/video_codecs:video_decoder_factory_template",
"../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
"../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
"../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
"../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
"../api/video_codecs:video_encoder_factory_template",
"../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
"../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
"../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
"../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
"../call:call_interfaces",
"../media:rtc_audio_video",
"../media:rtc_media_tests_utils",
"../modules/audio_processing",
"../modules/audio_processing:api",
"../p2p:p2p_test_utils",
"../p2p:rtc_p2p",
"../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",
"../rtc_base:null_socket_server",
"../test:run_loop",
"../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",
":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:candidate",
"../api:create_peerconnection_factory",
"../api:enable_media_with_defaults",
"../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_async_dns_resolver",
"../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:media_engine",
"../media:rtc_media_config",
"../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:basic_port_allocator",
"../p2p:connection",
"../p2p:fake_ice_transport",
"../p2p:fake_port_allocator",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
"../p2p:p2p_server_utils",
"../p2p:p2p_test_utils",
"../p2p:port",
"../p2p:port_allocator",
"../p2p:port_interface",
"../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:null_socket_server",
"../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",
"../test/time_controller",
]
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("enable_fake_media") {
testonly = true
visibility = [ ":*" ]
sources = [
"test/enable_fake_media.cc",
"test/enable_fake_media.h",
]
deps = [
":media_factory",
"../api:libjingle_peerconnection_api",
"../api/environment",
"../call:call_interfaces",
"../media:rtc_media_tests_utils",
"../rtc_base:checks",
]
absl_deps = [ "//third_party/abseil-cpp/absl/base:nullability" ]
}
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_receive_channel_interface.h",
"test/peer_connection_test_wrapper.cc",
"test/peer_connection_test_wrapper.h",
"test/rtc_stats_obtainer.h",
"test/simulcast_layer_util.cc",
"test/simulcast_layer_util.h",
"test/test_sdp_strings.h",
]
deps = [
":channel",
":channel_interface",
":enable_fake_media",
":jitter_buffer_delay",
":libjingle_peerconnection",
":peer_connection_internal",
":rtp_receiver",
":rtp_sender",
":sctp_data_channel",
":session_description",
":simulcast_description",
":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:rtp_parameters",
"../api:scoped_refptr",
"../api:sequence_checker",
"../api/audio:audio_mixer_api",
"../api/audio_codecs:audio_codecs_api",
"../api/environment",
"../api/environment:environment_factory",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"../api/units:time_delta",
"../api/video:builtin_video_bitrate_allocator_factory",
"../api/video:resolution",
"../api/video:video_frame",
"../api/video:video_rtp_headers",
"../api/video_codecs:video_codecs_api",
"../api/video_codecs:video_decoder_factory_template",
"../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
"../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
"../api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
"../api/video_codecs:video_decoder_factory_template_open_h264_adapter",
"../api/video_codecs:video_encoder_factory_template",
"../api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
"../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
"../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
"../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
"../call:call_interfaces",
"../media:media_channel",
"../media:media_channel_impl",
"../media:rtc_media",
"../media:rtc_media_tests_utils",
"../media:rtc_simulcast_encoder_adapter",
"../media:video_broadcaster",
"../modules/audio_device",
"../modules/audio_processing",
"../modules/audio_processing:api",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:connection",
"../p2p:fake_port_allocator",
"../p2p:p2p_test_utils",
"../p2p:port_allocator",
"../p2p:rtc_p2p",
"../rtc_base:checks",
"../rtc_base:gunit_helpers",
"../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base:rtc_certificate_generator",
"../rtc_base:ssl",
"../rtc_base:stringutils",
"../rtc_base:task_queue_for_test",
"../rtc_base:threading",
"../rtc_base:timeutils",
"../rtc_base:weak_ptr",
"../rtc_base/synchronization:mutex",
"../rtc_base/task_utils:repeating_task",
"../rtc_base/third_party/sigslot",
"../test:frame_generator_capturer",
"../test:scoped_key_value_config",
"../test:test_support",
]
absl_deps = [
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/strings",
"//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" ]
}
}
}