# 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.

import("../webrtc.gni")
if (is_android) {
  import("//build/config/android/config.gni")
  import("//build/config/android/rules.gni")
}

group("pc") {
  deps = [ ":rtc_pc" ]
}

config("rtc_pc_config") {
  defines = []
  if (rtc_enable_sctp) {
    defines += [ "WEBRTC_HAVE_SCTP" ]
  }
}

rtc_library("proxy") {
  sources = [
    "proxy.cc",
    "proxy.h",
  ]
  deps = [
    "../api:scoped_refptr",
    "../api/task_queue",
    "../rtc_base:rtc_base_approved",
    "../rtc_base:threading",
    "../rtc_base/system:rtc_export",
  ]
}

rtc_library("rtc_pc_base") {
  visibility = [ "*" ]
  defines = []
  sources = [
    "channel.cc",
    "channel.h",
    "channel_interface.h",
    "channel_manager.cc",
    "channel_manager.h",
    "dtls_srtp_transport.cc",
    "dtls_srtp_transport.h",
    "dtls_transport.cc",
    "dtls_transport.h",
    "external_hmac.cc",
    "external_hmac.h",
    "ice_transport.cc",
    "ice_transport.h",
    "jsep_transport.cc",
    "jsep_transport.h",
    "jsep_transport_collection.cc",
    "jsep_transport_collection.h",
    "jsep_transport_controller.cc",
    "jsep_transport_controller.h",
    "media_session.cc",
    "media_session.h",
    "media_stream_proxy.h",
    "media_stream_track_proxy.h",
    "peer_connection_factory_proxy.h",
    "peer_connection_proxy.h",
    "rtcp_mux_filter.cc",
    "rtcp_mux_filter.h",
    "rtp_media_utils.cc",
    "rtp_media_utils.h",
    "rtp_receiver_proxy.h",
    "rtp_sender_proxy.h",
    "rtp_transport.cc",
    "rtp_transport.h",
    "rtp_transport_internal.h",
    "sctp_data_channel_transport.cc",
    "sctp_data_channel_transport.h",
    "sctp_transport.cc",
    "sctp_transport.h",
    "sctp_utils.cc",
    "sctp_utils.h",
    "srtp_filter.cc",
    "srtp_filter.h",
    "srtp_session.cc",
    "srtp_session.h",
    "srtp_transport.cc",
    "srtp_transport.h",
    "transport_stats.cc",
    "transport_stats.h",
    "used_ids.h",
    "video_track_source_proxy.cc",
    "video_track_source_proxy.h",
  ]

  deps = [
    ":media_protocol_names",
    ":proxy",
    ":session_description",
    ":simulcast_description",
    "../api:array_view",
    "../api:async_dns_resolver",
    "../api:audio_options_api",
    "../api:call_api",
    "../api:function_view",
    "../api:ice_transport_factory",
    "../api:libjingle_peerconnection_api",
    "../api:media_stream_interface",
    "../api:packet_socket_factory",
    "../api:priority",
    "../api:rtc_error",
    "../api:rtp_headers",
    "../api:rtp_parameters",
    "../api:rtp_parameters",
    "../api:rtp_transceiver_direction",
    "../api:scoped_refptr",
    "../api:sequence_checker",
    "../api/crypto:options",
    "../api/rtc_event_log",
    "../api/task_queue",
    "../api/transport:datagram_transport_interface",
    "../api/transport:enums",
    "../api/transport:sctp_transport_factory_interface",
    "../api/video:builtin_video_bitrate_allocator_factory",
    "../api/video:video_bitrate_allocator_factory",
    "../api/video:video_frame",
    "../api/video:video_rtp_headers",
    "../api/video_codecs:video_codecs_api",
    "../call:call_interfaces",
    "../call:rtp_interfaces",
    "../call:rtp_receiver",
    "../common_video",
    "../common_video:common_video",
    "../logging:ice_log",
    "../media:rtc_data_sctp_transport_internal",
    "../media:rtc_media_base",
    "../media:rtc_media_config",
    "../media:rtc_sdp_video_format_utils",
    "../modules/rtp_rtcp:rtp_rtcp",
    "../modules/rtp_rtcp:rtp_rtcp_format",
    "../p2p:rtc_p2p",
    "../rtc_base",
    "../rtc_base:callback_list",
    "../rtc_base:checks",
    "../rtc_base:rtc_task_queue",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base:stringutils",
    "../rtc_base:threading",
    "../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/task_utils:pending_task_safety_flag",
    "../rtc_base/task_utils:to_queued_task",
    "../rtc_base/third_party/base64",
    "../rtc_base/third_party/sigslot",
    "../system_wrappers:field_trial",
    "../system_wrappers:metrics",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//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" ]
  }

  public_configs = [ ":rtc_pc_config" ]
}

rtc_source_set("session_description") {
  visibility = [ "*" ]
  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:rtc_media_base",
    "../p2p:rtc_p2p",
    "../rtc_base:checks",
    "../rtc_base:socket_address",
    "../rtc_base/system:rtc_export",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/memory:memory",
  ]
}

rtc_source_set("simulcast_description") {
  visibility = [ "*" ]
  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") {
  visibility = [ "*" ]
  allow_poison = [ "audio_codecs" ]  # TODO(bugs.webrtc.org/8396): Remove.
  deps = [
    ":rtc_pc_base",
    "../media:rtc_audio_video",
  ]
}

rtc_library("media_protocol_names") {
  sources = [
    "media_protocol_names.cc",
    "media_protocol_names.h",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}

rtc_library("peerconnection") {
  visibility = [ "*" ]
  cflags = []
  sources = [
    "data_channel_controller.cc",
    "data_channel_controller.h",
    "data_channel_utils.cc",
    "data_channel_utils.h",
    "ice_server_parsing.cc",
    "ice_server_parsing.h",
    "jsep_ice_candidate.cc",
    "jsep_session_description.cc",
    "local_audio_source.cc",
    "local_audio_source.h",
    "media_stream_observer.cc",
    "media_stream_observer.h",
    "peer_connection.cc",
    "peer_connection.h",
    "peer_connection_factory.cc",
    "peer_connection_factory.h",
    "peer_connection_internal.h",
    "rtc_stats_collector.cc",
    "rtc_stats_collector.h",
    "rtc_stats_traversal.cc",
    "rtc_stats_traversal.h",
    "sctp_data_channel.cc",
    "sctp_data_channel.h",
    "sdp_offer_answer.cc",  # TODO: Make separate target when not circular
    "sdp_offer_answer.h",  # dependent on peerconnection.h
    "sdp_serializer.cc",
    "sdp_serializer.h",
    "sdp_utils.cc",
    "sdp_utils.h",
    "stats_collector.cc",
    "stats_collector.h",
    "stream_collection.h",
    "track_media_info_map.cc",
    "track_media_info_map.h",
    "webrtc_sdp.cc",
    "webrtc_sdp.h",
    "webrtc_session_description_factory.cc",
    "webrtc_session_description_factory.h",
  ]

  deps = [
    ":audio_rtp_receiver",
    ":audio_track",
    ":connection_context",
    ":dtmf_sender",
    ":jitter_buffer_delay",
    ":media_protocol_names",
    ":media_stream",
    ":peer_connection_message_handler",
    ":proxy",
    ":remote_audio_source",
    ":rtc_pc_base",
    ":rtp_parameters_conversion",
    ":rtp_receiver",
    ":rtp_sender",
    ":rtp_transceiver",
    ":rtp_transmission_manager",
    ":sdp_state_provider",
    ":session_description",
    ":simulcast_description",
    ":stats_collector_interface",
    ":transceiver_list",
    ":usage_pattern",
    ":video_rtp_receiver",
    ":video_track",
    ":video_track_source",
    "../api:array_view",
    "../api:async_dns_resolver",
    "../api:audio_options_api",
    "../api:call_api",
    "../api:callfactory_api",
    "../api:fec_controller_api",
    "../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/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/transport:webrtc_key_value_config",
    "../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",
    "../rtc_base:callback_list",
    "../rtc_base:checks",
    "../rtc_base:ip_address",
    "../rtc_base:network_constants",
    "../rtc_base:rtc_base_approved",
    "../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/task_utils:pending_task_safety_flag",
    "../rtc_base/task_utils:to_queued_task",
    "../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("connection_context") {
  sources = [
    "connection_context.cc",
    "connection_context.h",
  ]
  deps = [
    ":rtc_pc_base",
    "../api:callfactory_api",
    "../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",
    "../api/transport:webrtc_key_value_config",
    "../media:rtc_data_sctp_transport_factory",
    "../media:rtc_media_base",
    "../p2p:rtc_p2p",
    "../rtc_base",
    "../rtc_base:checks",
    "../rtc_base:threading",
    "../rtc_base/task_utils:to_queued_task",
  ]
}

rtc_library("peer_connection_message_handler") {
  sources = [
    "peer_connection_message_handler.cc",
    "peer_connection_message_handler.h",
  ]
  deps = [
    ":stats_collector_interface",
    "../api:libjingle_peerconnection_api",
    "../api:media_stream_interface",
    "../api:rtc_error",
    "../api:scoped_refptr",
    "../api:sequence_checker",
    "../rtc_base",
    "../rtc_base:checks",
    "../rtc_base:threading",
  ]
}

rtc_library("usage_pattern") {
  sources = [
    "usage_pattern.cc",
    "usage_pattern.h",
  ]
  deps = [
    "../api:libjingle_peerconnection_api",
    "../rtc_base:logging",
    "../system_wrappers:metrics",
  ]
}

rtc_library("rtp_transceiver") {
  sources = [
    "rtp_transceiver.cc",
    "rtp_transceiver.h",
  ]
  deps = [
    ":proxy",
    ":rtc_pc_base",
    ":rtp_parameters_conversion",
    ":rtp_receiver",
    ":rtp_sender",
    ":session_description",
    "../api:array_view",
    "../api:libjingle_peerconnection_api",
    "../api:rtc_error",
    "../api:rtp_parameters",
    "../api:rtp_transceiver_direction",
    "../api:scoped_refptr",
    "../api:sequence_checker",
    "../api/task_queue",
    "../media:rtc_media_base",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:refcount",
    "../rtc_base:threading",
    "../rtc_base/task_utils:pending_task_safety_flag",
    "../rtc_base/task_utils:to_queued_task",
    "../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_transmission_manager") {
  sources = [
    "rtp_transmission_manager.cc",
    "rtp_transmission_manager.h",
  ]
  deps = [
    ":audio_rtp_receiver",
    ":rtc_pc_base",
    ":rtp_receiver",
    ":rtp_sender",
    ":rtp_transceiver",
    ":stats_collector_interface",
    ":transceiver_list",
    ":usage_pattern",
    ":video_rtp_receiver",
    "../api:libjingle_peerconnection_api",
    "../api:media_stream_interface",
    "../api:rtc_error",
    "../api:rtp_parameters",
    "../api:rtp_transceiver_direction",
    "../api:scoped_refptr",
    "../api:sequence_checker",
    "../media:rtc_media_base",
    "../rtc_base",
    "../rtc_base:checks",
    "../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") {
  sources = [
    "transceiver_list.cc",
    "transceiver_list.h",
  ]
  deps = [
    ":rtp_transceiver",
    "../api:libjingle_peerconnection_api",
    "../api:rtc_error",
    "../api:rtp_parameters",
    "../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") {
  sources = [
    "rtp_receiver.cc",
    "rtp_receiver.h",
  ]
  deps = [
    ":media_stream",
    ":rtc_pc_base",
    ":video_track_source",
    "../api:libjingle_peerconnection_api",
    "../api:media_stream_interface",
    "../api:rtp_parameters",
    "../api:scoped_refptr",
    "../api/crypto:frame_decryptor_interface",
    "../api/video:video_frame",
    "../media:rtc_media_base",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:rtc_base",
    "../rtc_base:rtc_base_approved",
    "../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") {
  sources = [
    "audio_rtp_receiver.cc",
    "audio_rtp_receiver.h",
  ]
  deps = [
    ":audio_track",
    ":jitter_buffer_delay",
    ":media_stream",
    ":remote_audio_source",
    ":rtc_pc_base",
    ":rtp_receiver",
    "../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",
    "../media:rtc_media_base",
    "../rtc_base",
    "../rtc_base:checks",
    "../rtc_base:refcount",
    "../rtc_base:threading",
    "../rtc_base/system:no_unique_address",
    "../rtc_base/task_utils:pending_task_safety_flag",
    "../rtc_base/task_utils:to_queued_task",
  ]
  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") {
  sources = [
    "video_rtp_receiver.cc",
    "video_rtp_receiver.h",
  ]
  deps = [
    ":jitter_buffer_delay",
    ":media_stream",
    ":rtc_pc_base",
    ":rtp_receiver",
    ":video_rtp_track_source",
    ":video_track",
    "../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:rtc_media_base",
    "../rtc_base",
    "../rtc_base:checks",
    "../rtc_base:rtc_base_approved",
    "../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") {
  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",
    "../rtc_base:checks",
    "../rtc_base/synchronization:mutex",
    "../rtc_base/system:no_unique_address",
  ]
}

rtc_library("audio_track") {
  sources = [
    "audio_track.cc",
    "audio_track.h",
  ]
  deps = [
    "../api:media_stream_interface",
    "../api:scoped_refptr",
    "../api:sequence_checker",
    "../rtc_base:checks",
    "../rtc_base:refcount",
  ]
}

rtc_library("video_track") {
  sources = [
    "video_track.cc",
    "video_track.h",
  ]
  deps = [
    "../api:media_stream_interface",
    "../api:scoped_refptr",
    "../api:sequence_checker",
    "../api/video:video_frame",
    "../media:rtc_media_base",
    "../rtc_base",
    "../rtc_base:checks",
    "../rtc_base:refcount",
    "../rtc_base:rtc_base_approved",
    "../rtc_base:threading",
  ]
}

rtc_source_set("sdp_state_provider") {
  sources = [ "sdp_state_provider.h" ]
  deps = [
    ":rtc_pc_base",
    "../api:libjingle_peerconnection_api",
  ]
}

rtc_library("jitter_buffer_delay") {
  sources = [
    "jitter_buffer_delay.cc",
    "jitter_buffer_delay.h",
  ]
  deps = [
    "../api:sequence_checker",
    "../rtc_base:checks",
    "../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") {
  sources = [
    "remote_audio_source.cc",
    "remote_audio_source.h",
  ]
  deps = [
    ":rtc_pc_base",
    "../api:call_api",
    "../api:media_stream_interface",
    "../api:scoped_refptr",
    "../api:sequence_checker",
    "../media:rtc_media_base",
    "../rtc_base",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:rtc_base_approved",
    "../rtc_base:safe_conversions",
    "../rtc_base:stringutils",
    "../rtc_base:threading",
    "../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") {
  sources = [
    "rtp_sender.cc",
    "rtp_sender.h",
  ]
  deps = [
    ":dtmf_sender",
    ":stats_collector_interface",
    "../api:audio_options_api",
    "../api:frame_transformer_interface",
    "../api:libjingle_peerconnection_api",
    "../api:media_stream_interface",
    "../api:priority",
    "../api:rtc_error",
    "../api:rtp_parameters",
    "../api:scoped_refptr",
    "../api/crypto:frame_encryptor_interface",
    "../media:rtc_media_base",
    "../rtc_base:checks",
    "../rtc_base:rtc_base",
    "../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") {
  sources = [
    "rtp_parameters_conversion.cc",
    "rtp_parameters_conversion.h",
  ]
  deps = [
    ":rtc_pc_base",
    ":session_description",
    "../api:array_view",
    "../api:libjingle_peerconnection_api",
    "../api:rtc_error",
    "../api:rtp_parameters",
    "../media:rtc_media_base",
    "../rtc_base:checks",
    "../rtc_base:rtc_base",
  ]
  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") {
  sources = [
    "dtmf_sender.cc",
    "dtmf_sender.h",
  ]
  deps = [
    ":proxy",
    "../api:libjingle_peerconnection_api",
    "../api:scoped_refptr",
    "../rtc_base:checks",
    "../rtc_base:rtc_base",
    "../rtc_base:threading",
    "../rtc_base/task_utils:pending_task_safety_flag",
    "../rtc_base/task_utils:to_queued_task",
    "../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") {
  sources = [
    "media_stream.cc",
    "media_stream.h",
  ]
  deps = [
    "../api:libjingle_peerconnection_api",
    "../api:media_stream_interface",
    "../api:scoped_refptr",
    "../rtc_base:checks",
    "../rtc_base:refcount",
    "../rtc_base:rtc_base",
  ]
  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:rtc_media_base",
    "../rtc_base:checks",
    "../rtc_base:rtc_base_approved",
    "../rtc_base/system:rtc_export",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_source_set("stats_collector_interface") {
  sources = [ "stats_collector_interface.h" ]
  deps = [
    "../api:libjingle_peerconnection_api",
    "../api:media_stream_interface",
  ]
}

rtc_source_set("libjingle_peerconnection") {
  visibility = [ "*" ]
  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_manager_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",
      ":libjingle_peerconnection",
      ":pc_test_utils",
      ":peerconnection",
      ":rtc_pc",
      ":rtc_pc_base",
      ":session_description",
      ":video_rtp_receiver",
      "../api:array_view",
      "../api:audio_options_api",
      "../api:ice_transport_factory",
      "../api:libjingle_peerconnection_api",
      "../api:rtc_error",
      "../api:rtp_headers",
      "../api:rtp_parameters",
      "../api/video:builtin_video_bitrate_allocator_factory",
      "../api/video/test:mock_recordable_encoded_frame",
      "../call:rtp_interfaces",
      "../call:rtp_receiver",
      "../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",
      "../rtc_base:checks",
      "../rtc_base:gunit_helpers",
      "../rtc_base:rtc_base_approved",
      "../rtc_base:rtc_base_tests_utils",
      "../rtc_base:threading",
      "../rtc_base/task_utils:pending_task_safety_flag",
      "../rtc_base/task_utils:to_queued_task",
      "../rtc_base/third_party/sigslot",
      "../system_wrappers:metrics",
      "../test:field_trial",
      "../test:test_common",
      "../test:test_main",
      "../test:test_support",
      "//third_party/abseil-cpp/absl/algorithm:container",
      "//third_party/abseil-cpp/absl/memory",
      "//third_party/abseil-cpp/absl/strings",
    ]

    if (rtc_build_libsrtp) {
      deps += [ "//third_party/libsrtp" ]
    }

    if (is_android) {
      deps += [ "//testing/android/native_test:native_test_support" ]
    }
  }

  rtc_library("peerconnection_perf_tests") {
    testonly = true
    sources = [ "peer_connection_rampup_tests.cc" ]
    deps = [
      ":pc_test_utils",
      ":peerconnection_wrapper",
      "../api:audio_options_api",
      "../api:create_peerconnection_factory",
      "../api:libjingle_peerconnection_api",
      "../api:media_stream_interface",
      "../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/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",
      "../pc:peerconnection",
      "../rtc_base",
      "../rtc_base:checks",
      "../rtc_base:gunit_helpers",
      "../rtc_base:rtc_base_tests_utils",
      "../rtc_base:socket_address",
      "../rtc_base:threading",
      "../system_wrappers",
      "../test:perf_test",
      "../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",
      "../api:function_view",
      "../api:libjingle_peerconnection_api",
      "../api:media_stream_interface",
      "../api:rtc_error",
      "../api:rtc_stats_api",
      "../api:rtp_parameters",
      "../api:scoped_refptr",
      "../pc:peerconnection",
      "../rtc_base:checks",
      "../rtc_base:gunit_helpers",
      "../rtc_base:rtc_base_approved",
      "../test:test_support",
    ]
  }

  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",
      "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_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_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",
      "stats_collector_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",
      ":dtmf_sender",
      ":integration_test_helpers",
      ":jitter_buffer_delay",
      ":media_stream",
      ":peerconnection",
      ":proxy",
      ":remote_audio_source",
      ":rtc_pc_base",
      ":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:create_peerconnection_factory",
      "../api:fake_frame_decryptor",
      "../api:fake_frame_encryptor",
      "../api:function_view",
      "../api:libjingle_logging_api",
      "../api:libjingle_peerconnection_api",
      "../api:media_stream_interface",
      "../api:mock_rtp",
      "../api:mock_video_track",
      "../api:packet_socket_factory",
      "../api:rtc_error",
      "../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/transport:field_trial_based_config",
      "../api/transport:webrtc_key_value_config",
      "../api/transport/rtp:rtp_source",
      "../api/units:time_delta",
      "../api/video:builtin_video_bitrate_allocator_factory",
      "../api/video:video_rtp_headers",
      "../call/adaptation:resource_adaptation_test_utilities",
      "../logging:fake_rtc_event_log",
      "../media:rtc_data_sctp_transport_internal",
      "../media:rtc_media_config",
      "../media:rtc_media_engine_defaults",
      "../modules/audio_device:audio_device_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",
      "../rtc_base:checks",
      "../rtc_base:gunit_helpers",
      "../rtc_base:ip_address",
      "../rtc_base:rtc_base_tests_utils",
      "../rtc_base:rtc_json",
      "../rtc_base:socket_address",
      "../rtc_base:threading",
      "../rtc_base/synchronization:mutex",
      "../rtc_base/third_party/base64",
      "../rtc_base/third_party/sigslot",
      "../system_wrappers:field_trial",
      "../system_wrappers:metrics",
      "../test:field_trial",
      "../test:fileutils",
      "../test:rtp_test_utils",
      "../test:test_common",
      "../test/pc/sctp:fake_sctp_transport",
      "./scenario_tests:pc_scenario_tests",
      "//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) {
      deps += [ ":android_black_magic" ]
    }

    deps += [
      ":libjingle_peerconnection",
      ":pc_test_utils",
      "../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",
      "../modules/utility",
      "../p2p:p2p_test_utils",
      "../p2p:rtc_p2p",
      "../pc:rtc_pc",
      "../rtc_base",
      "../rtc_base:rtc_base_approved",
      "../rtc_base:rtc_task_queue",
      "../rtc_base:safe_conversions",
      "../test:audio_codec_mocks",
      "../test:test_main",
      "../test:test_support",
    ]

    if (is_android) {
      deps += [
        "//testing/android/native_test:native_test_support",

        # We need to depend on this one directly, or classloads will fail for
        # the voice engine BuildInfo, for instance.
        "../sdk/android:libjingle_peerconnection_java",
      ]

      shard_timeout = 900
    }
  }

  if (is_android) {
    rtc_library("android_black_magic") {
      # The android code uses hacky includes to chromium-base and the ssl code;
      # having this in a separate target enables us to keep the peerconnection
      # unit tests clean.
      check_includes = false
      testonly = true
      sources = [
        "test/android_test_initializer.cc",
        "test/android_test_initializer.h",
      ]
      deps = [
        "../sdk/android:libjingle_peerconnection_jni",
        "//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",
      ":media_stream",
      ":pc_test_utils",
      ":peerconnection",
      ":remote_audio_source",
      ":rtc_pc_base",
      ":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:create_peerconnection_factory",
      "../api:fake_frame_decryptor",
      "../api:fake_frame_encryptor",
      "../api:function_view",
      "../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_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/transport:field_trial_based_config",
      "../api/transport:webrtc_key_value_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",
      "../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",
      "../rtc_base:checks",
      "../rtc_base:gunit_helpers",
      "../rtc_base:ip_address",
      "../rtc_base:rtc_base_tests_utils",
      "../rtc_base:rtc_json",
      "../rtc_base:socket_address",
      "../rtc_base:threading",
      "../rtc_base:timeutils",
      "../rtc_base/synchronization:mutex",
      "../rtc_base/task_utils:pending_task_safety_flag",
      "../rtc_base/task_utils:to_queued_task",
      "../rtc_base/third_party/base64",
      "../rtc_base/third_party/sigslot",
      "../system_wrappers:metrics",
      "../test:field_trial",
      "../test:fileutils",
      "../test:rtp_test_utils",
      "../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_provider.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_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 = [
      ":jitter_buffer_delay",
      ":libjingle_peerconnection",
      ":peerconnection",
      ":rtc_pc_base",
      ":rtp_receiver",
      ":rtp_sender",
      ":video_track_source",
      "../api:audio_options_api",
      "../api:create_frame_generator",
      "../api:create_peerconnection_factory",
      "../api:libjingle_peerconnection_api",
      "../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/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:rtc_media",
      "../media:rtc_media_base",
      "../media:rtc_media_tests_utils",
      "../modules/audio_device",
      "../modules/audio_processing",
      "../modules/audio_processing:api",
      "../p2p:fake_port_allocator",
      "../p2p:p2p_test_utils",
      "../p2p:rtc_p2p",
      "../rtc_base",
      "../rtc_base:checks",
      "../rtc_base:gunit_helpers",
      "../rtc_base:rtc_base_approved",
      "../rtc_base:rtc_task_queue",
      "../rtc_base:task_queue_for_test",
      "../rtc_base:threading",
      "../rtc_base/synchronization:mutex",
      "../rtc_base/task_utils:repeating_task",
      "../rtc_base/third_party/sigslot",
      "../test:test_support",
      "../test:video_test_common",
    ]
    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
  }
}
