# Copyright (c) 2015 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("api") {
  visibility = [ "*" ]
  deps = []

  if (!build_with_mozilla) {
    deps += [ ":libjingle_peerconnection_api" ]
  }
}

rtc_source_set("call_api") {
  visibility = [ "*" ]
  sources = [ "call/audio_sink.h" ]
}

rtc_source_set("callfactory_api") {
  visibility = [ "*" ]
  sources = [ "call/call_factory_interface.h" ]
  deps = [
    "../call:rtp_interfaces",
    "../rtc_base/system:rtc_export",
  ]
}

rtc_source_set("enable_media") {
  visibility = [ "*" ]
  sources = [
    "enable_media.cc",
    "enable_media.h",
  ]
  deps = [
    ":libjingle_peerconnection_api",
    "../call",
    "../media:rtc_audio_video",
    "../pc:media_factory",
    "../rtc_base/system:rtc_export",
    "environment",
  ]
}

rtc_source_set("enable_media_with_defaults") {
  visibility = [ "*" ]
  allow_poison = [
    "audio_codecs",
    "environment_construction",
    "software_video_codecs",
  ]
  sources = [
    "enable_media_with_defaults.cc",
    "enable_media_with_defaults.h",
  ]
  deps = [
    ":enable_media",
    ":libjingle_peerconnection_api",
    "../modules/audio_processing:api",
    "../rtc_base/system:rtc_export",
    "audio_codecs:builtin_audio_decoder_factory",
    "audio_codecs:builtin_audio_encoder_factory",
    "task_queue:default_task_queue_factory",
    "video_codecs:builtin_video_decoder_factory",
    "video_codecs:builtin_video_encoder_factory",
  ]
}

if (!build_with_chromium) {
  rtc_library("create_peerconnection_factory") {
    visibility = [ "*" ]
    allow_poison = [ "environment_construction" ]
    sources = [
      "create_peerconnection_factory.cc",
      "create_peerconnection_factory.h",
    ]
    deps = [
      ":enable_media",
      ":libjingle_peerconnection_api",
      ":scoped_refptr",
      "../api/rtc_event_log:rtc_event_log_factory",
      "../modules/audio_device:audio_device_api",
      "../modules/audio_processing:api",
      "../pc:peer_connection_factory",
      "../pc:webrtc_sdp",
      "../rtc_base:threading",
      "../stats:rtc_stats",
      "audio:audio_mixer_api",
      "audio_codecs:audio_codecs_api",
      "task_queue:default_task_queue_factory",
      "transport:field_trial_based_config",
      "video_codecs:video_codecs_api",
    ]
  }
}

rtc_library("location") {
  visibility = [ "*" ]
  deps = [ "../rtc_base/system:rtc_export" ]
  if (build_with_chromium) {
    sources = [ "../../webrtc_overrides/api/location.h" ]
    deps += [ "//base" ]
  } else {
    sources = [ "location.h" ]
  }
}

rtc_library("rtp_headers") {
  visibility = [ "*" ]
  sources = [
    "rtp_headers.cc",
    "rtp_headers.h",
  ]
  deps = [
    ":array_view",
    "units:timestamp",
    "video:video_rtp_headers",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_library("rtp_packet_info") {
  visibility = [ "*" ]
  sources = [
    "rtp_packet_info.cc",
    "rtp_packet_info.h",
    "rtp_packet_infos.h",
  ]
  deps = [
    ":array_view",
    ":make_ref_counted",
    ":refcountedbase",
    ":rtp_headers",
    ":scoped_refptr",
    "../rtc_base/system:rtc_export",
    "units:time_delta",
    "units:timestamp",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_source_set("video_track_source_constraints") {
  visibility = [ "*" ]
  sources = [ "video_track_source_constraints.h" ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_library("media_stream_interface") {
  visibility = [ "*" ]
  sources = [
    "media_stream_interface.cc",
    "media_stream_interface.h",
    "media_stream_track.h",
    "notifier.h",
  ]
  deps = [
    ":audio_options_api",
    ":make_ref_counted",
    ":ref_count",
    ":ref_count",
    ":rtp_parameters",
    ":scoped_refptr",
    ":sequence_checker",
    ":video_track_source_constraints",
    "../modules/audio_processing:audio_processing_statistics",
    "../rtc_base:checks",
    "../rtc_base/system:no_unique_address",
    "../rtc_base/system:rtc_export",
    "video:recordable_encoded_frame",
    "video:video_frame",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/types:optional",
  ]
}

rtc_library("candidate") {
  visibility = [ "*" ]

  sources = [
    "candidate.cc",
    "candidate.h",
  ]
  deps = [
    "../rtc_base:checks",
    "../rtc_base:ip_address",
    "../rtc_base:logging",
    "../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/base:core_headers",
    "//third_party/abseil-cpp/absl/strings",
  ]
}

rtc_source_set("turn_customizer") {
  visibility = [ "*" ]
  sources = [ "turn_customizer.h" ]
  deps = [ "transport:stun_types" ]
}

rtc_source_set("ice_transport_interface") {
  visibility = [ "*" ]

  sources = [ "ice_transport_interface.h" ]
  deps = [
    ":async_dns_resolver",
    ":packet_socket_factory",
    ":ref_count",
    ":rtc_error",
    ":scoped_refptr",
    "rtc_event_log:rtc_event_log",
  ]
}

rtc_library("dtls_transport_interface") {
  visibility = [ "*" ]

  sources = [
    "dtls_transport_interface.cc",
    "dtls_transport_interface.h",
  ]
  deps = [
    ":ice_transport_interface",
    ":ref_count",
    ":rtc_error",
    ":scoped_refptr",
    "../rtc_base:ssl",
    "../rtc_base/system:rtc_export",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_library("dtmf_sender_interface") {
  visibility = [ "*" ]

  sources = [ "dtmf_sender_interface.h" ]
  deps = [
    ":media_stream_interface",
    ":ref_count",
  ]
}

rtc_library("rtp_sender_interface") {
  visibility = [ "*" ]

  sources = [
    "rtp_sender_interface.cc",
    "rtp_sender_interface.h",
  ]
  deps = [
    ":dtls_transport_interface",
    ":dtmf_sender_interface",
    ":frame_transformer_interface",
    ":media_stream_interface",
    ":ref_count",
    ":rtc_error",
    ":rtp_parameters",
    ":scoped_refptr",
    "../rtc_base:checks",
    "../rtc_base/system:rtc_export",
    "crypto:frame_encryptor_interface",
    "video_codecs:video_codecs_api",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ]
}

rtc_library("libjingle_peerconnection_api") {
  visibility = [ "*" ]
  cflags = []
  sources = [
    "crypto_params.h",
    "data_channel_interface.cc",
    "data_channel_interface.h",
    "jsep.cc",
    "jsep.h",
    "jsep_ice_candidate.cc",
    "jsep_ice_candidate.h",
    "jsep_session_description.h",
    "legacy_stats_types.cc",
    "legacy_stats_types.h",
    "peer_connection_interface.cc",
    "peer_connection_interface.h",
    "rtp_receiver_interface.cc",
    "rtp_receiver_interface.h",
    "rtp_transceiver_interface.cc",
    "rtp_transceiver_interface.h",
    "sctp_transport_interface.cc",
    "sctp_transport_interface.h",
    "set_local_description_observer_interface.h",
    "set_remote_description_observer_interface.h",
    "uma_metrics.h",
    "video_track_source_proxy_factory.h",

    # Remove when downstream has been updated
    "dtmf_sender_interface.h",
    "rtp_sender_interface.h",
  ]
  public_deps += [  # no-presubmit-check TODO(webrtc:8603)
    # Remove when downstream has been updated
    ":dtmf_sender_interface",
    ":rtp_sender_interface",
  ]
  deps = [
    ":array_view",
    ":async_dns_resolver",
    ":audio_options_api",
    ":candidate",
    ":dtls_transport_interface",
    ":fec_controller_api",
    ":field_trials",
    ":field_trials_view",
    ":frame_transformer_interface",
    ":ice_transport_interface",
    ":libjingle_logging_api",
    ":make_ref_counted",
    ":media_stream_interface",
    ":network_state_predictor_api",
    ":packet_socket_factory",
    ":priority",
    ":ref_count",
    ":rtc_error",
    ":rtc_stats_api",
    ":rtp_packet_info",
    ":rtp_parameters",
    ":rtp_sender_interface",
    ":rtp_transceiver_direction",
    ":scoped_refptr",
    ":sequence_checker",
    ":turn_customizer",
    "../call:rtp_interfaces",
    "../p2p:rtc_p2p",
    "../pc:media_factory",
    "../rtc_base:copy_on_write_buffer",
    "../rtc_base:logging",
    "../rtc_base:network",
    "../rtc_base:network_constants",
    "../rtc_base:rtc_certificate_generator",
    "../rtc_base:ssl",
    "../rtc_base:stringutils",
    "adaptation:resource_adaptation_api",
    "audio:audio_mixer_api",
    "audio_codecs:audio_codecs_api",
    "crypto:frame_decryptor_interface",
    "crypto:frame_encryptor_interface",
    "crypto:options",
    "metronome",
    "neteq:neteq_api",
    "rtc_event_log",
    "task_queue",
    "transport:bitrate_settings",
    "transport:enums",
    "transport:network_control",
    "transport:sctp_transport_factory_interface",
    "transport/rtp:rtp_source",
    "units:data_rate",
    "units:timestamp",
    "video:encoded_image",
    "video:video_bitrate_allocator_factory",
    "video:video_frame",
    "video:video_rtp_headers",
    "video_codecs:video_codecs_api",

    # Basically, don't add stuff here. You might break sensitive downstream
    # targets like pnacl. API should not depend on anything outside of this
    # file, really. All these should arguably go away in time.
    "../media:rtc_media_base",
    "../media:rtc_media_config",
    "../modules/audio_processing:audio_processing_statistics",
    "../rtc_base:checks",
    "../rtc_base:ip_address",
    "../rtc_base:socket_address",
    "../rtc_base:threading",
    "../rtc_base/system:rtc_export",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//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",
  ]
}

rtc_source_set("frame_transformer_interface") {
  visibility = [ "*" ]
  sources = [ "frame_transformer_interface.h" ]
  deps = [
    ":make_ref_counted",
    ":ref_count",
    ":scoped_refptr",
    "video:encoded_frame",
    "video:video_frame_metadata",
  ]
}

rtc_library("rtc_error") {
  visibility = [ "*" ]
  sources = [
    "rtc_error.cc",
    "rtc_error.h",
  ]
  deps = [
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base/system:rtc_export",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/types:optional",
  ]
}

rtc_source_set("packet_socket_factory") {
  visibility = [ "*" ]
  sources = [ "packet_socket_factory.h" ]
  deps = [
    ":async_dns_resolver",
    "../rtc_base:async_packet_socket",
    "../rtc_base:proxy_info",
    "../rtc_base:socket_address",
    "../rtc_base/system:rtc_export",
  ]
}

rtc_source_set("async_dns_resolver") {
  visibility = [ "*" ]
  sources = [ "async_dns_resolver.h" ]
  deps = [
    "../rtc_base:checks",
    "../rtc_base:socket_address",
    "../rtc_base/system:rtc_export",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ]
}

rtc_source_set("ref_count") {
  visibility = [ "*" ]
  sources = [ "ref_count.h" ]
}

rtc_source_set("scoped_refptr") {
  visibility = [ "*" ]
  sources = [ "scoped_refptr.h" ]
}

rtc_source_set("make_ref_counted") {
  visibility = [ "*" ]
  sources = [ "make_ref_counted.h" ]
  deps = [
    ":ref_count",
    "../rtc_base:refcount",
  ]
}

rtc_source_set("video_quality_analyzer_api") {
  visibility = [ "*" ]
  testonly = true
  sources = [ "test/video_quality_analyzer_interface.h" ]

  deps = [
    ":array_view",
    ":stats_observer_interface",
    "../rtc_base:checks",
    "video:encoded_image",
    "video:video_frame",
    "video:video_rtp_headers",
    "video_codecs:video_codecs_api",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/types:optional",
  ]
}

rtc_source_set("track_id_stream_info_map") {
  visibility = [ "*" ]
  sources = [ "test/track_id_stream_info_map.h" ]
  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}

rtc_source_set("rtp_transceiver_direction") {
  visibility = [ "*" ]
  sources = [ "rtp_transceiver_direction.h" ]
}

rtc_source_set("priority") {
  visibility = [ "*" ]
  sources = [ "priority.h" ]
}

rtc_library("rtp_parameters") {
  visibility = [ "*" ]
  sources = [
    "media_types.cc",
    "media_types.h",
    "rtp_parameters.cc",
    "rtp_parameters.h",
  ]
  deps = [
    ":array_view",
    ":priority",
    ":rtp_transceiver_direction",
    "../rtc_base:checks",
    "../rtc_base:stringutils",
    "../rtc_base/system:rtc_export",
    "video:resolution",
    "video_codecs:scalability_mode",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/container:inlined_vector",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/types:optional",
  ]
}

if (is_android) {
  java_cpp_enum("priority_enums") {
    sources = [ "priority.h" ]
  }
}

rtc_source_set("audio_quality_analyzer_api") {
  visibility = [ "*" ]
  testonly = true
  sources = [ "test/audio_quality_analyzer_interface.h" ]

  deps = [
    ":stats_observer_interface",
    ":track_id_stream_info_map",
  ]
}

rtc_source_set("stats_observer_interface") {
  visibility = [ "*" ]
  testonly = true
  sources = [ "test/stats_observer_interface.h" ]

  deps = [ ":rtc_stats_api" ]

  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}

rtc_source_set("peer_network_dependencies") {
  visibility = [ "*" ]
  sources = [ "test/peer_network_dependencies.h" ]
  deps = [
    ":packet_socket_factory",
    "../rtc_base:network",
    "../rtc_base:threading",
  ]
}

rtc_source_set("peer_connection_quality_test_fixture_api") {
  visibility = [ "*" ]
  testonly = true
  sources = [ "test/peerconnection_quality_test_fixture.h" ]

  deps = [
    ":array_view",
    ":audio_quality_analyzer_api",
    ":callfactory_api",
    ":fec_controller_api",
    ":frame_generator_api",
    ":function_view",
    ":libjingle_peerconnection_api",
    ":media_stream_interface",
    ":network_state_predictor_api",
    ":packet_socket_factory",
    ":peer_network_dependencies",
    ":rtp_parameters",
    ":simulated_network_api",
    ":stats_observer_interface",
    ":track_id_stream_info_map",
    ":video_quality_analyzer_api",
    "../media:media_constants",
    "../media:rtc_media_base",
    "../modules/audio_processing:api",
    "../rtc_base:checks",
    "../rtc_base:network",
    "../rtc_base:rtc_certificate_generator",
    "../rtc_base:ssl",
    "../rtc_base:stringutils",
    "../rtc_base:threading",
    "../test:fileutils",
    "audio:audio_mixer_api",
    "rtc_event_log",
    "task_queue",
    "test/pclf:media_configuration",
    "test/pclf:media_quality_test_params",
    "test/pclf:peer_configurer",
    "test/video:video_frame_writer",
    "transport:network_control",
    "units:time_delta",
    "video:video_frame",
    "video_codecs:video_codecs_api",
  ]
  absl_deps = [
    "//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",
  ]
}

rtc_source_set("frame_generator_api") {
  visibility = [ "*" ]
  sources = [
    "test/frame_generator_interface.cc",
    "test/frame_generator_interface.h",
  ]

  deps = [
    ":scoped_refptr",
    "video:video_frame",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

if (rtc_include_tests) {
  # TODO(srte): Move to network_emulation sub directory.
  rtc_library("create_network_emulation_manager") {
    visibility = [ "*" ]
    testonly = true
    sources = [
      "test/create_network_emulation_manager.cc",
      "test/create_network_emulation_manager.h",
    ]
    deps = [
      ":network_emulation_manager_api",
      "../test/network:emulated_network",
    ]
  }

  if (!build_with_chromium) {
    rtc_source_set("video_quality_test_fixture_api") {
      visibility = [ "*" ]
      testonly = true
      sources = [ "test/video_quality_test_fixture.h" ]
      deps = [
        ":fec_controller_api",
        ":libjingle_peerconnection_api",
        ":network_state_predictor_api",
        ":rtp_parameters",
        ":simulated_network_api",
        "../call:fake_network",
        "../call:rtp_interfaces",
        "../test:test_common",
        "../test:video_test_common",
        "../video/config:encoder_config",
        "transport:bitrate_settings",
        "transport:network_control",
        "video_codecs:video_codecs_api",
      ]
    }

    rtc_library("test_dependency_factory") {
      visibility = [ "*" ]
      testonly = true
      sources = [
        "test/test_dependency_factory.cc",
        "test/test_dependency_factory.h",
      ]
      deps = [
        ":video_quality_test_fixture_api",
        "../rtc_base:checks",
        "../rtc_base:platform_thread_types",
      ]
    }

    rtc_library("create_video_quality_test_fixture_api") {
      visibility = [ "*" ]
      testonly = true
      sources = [
        "test/create_video_quality_test_fixture.cc",
        "test/create_video_quality_test_fixture.h",
      ]
      deps = [
        ":fec_controller_api",
        ":network_state_predictor_api",
        ":scoped_refptr",
        ":video_quality_test_fixture_api",
        "../video:video_quality_test",
      ]
    }

    rtc_library("create_peerconnection_quality_test_fixture") {
      visibility = [ "*" ]
      testonly = true
      sources = [
        "test/create_peerconnection_quality_test_fixture.cc",
        "test/create_peerconnection_quality_test_fixture.h",
      ]

      deps = [
        ":audio_quality_analyzer_api",
        ":peer_connection_quality_test_fixture_api",
        ":time_controller",
        ":video_quality_analyzer_api",
        "../test/pc/e2e:peerconnection_quality_test",
        "test/metrics:global_metrics_logger_and_exporter",
      ]
    }
  }
}

rtc_library("create_frame_generator") {
  visibility = [ "*" ]
  testonly = true
  sources = [
    "test/create_frame_generator.cc",
    "test/create_frame_generator.h",
  ]
  deps = [
    ":frame_generator_api",
    "../rtc_base:checks",
    "../system_wrappers",
    "../test:frame_generator_impl",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_library("create_peer_connection_quality_test_frame_generator") {
  visibility = [ "*" ]
  testonly = true
  sources = [
    "test/create_peer_connection_quality_test_frame_generator.cc",
    "test/create_peer_connection_quality_test_frame_generator.h",
  ]
  deps = [
    ":create_frame_generator",
    ":frame_generator_api",
    "../rtc_base:checks",
    "../test:fileutils",
    "test/pclf:media_configuration",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_source_set("libjingle_logging_api") {
  visibility = [ "*" ]
  sources = [ "rtc_event_log_output.h" ]
  absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ]
}

rtc_library("rtc_event_log_output_file") {
  visibility = [ "*" ]
  sources = [
    "rtc_event_log_output_file.cc",
    "rtc_event_log_output_file.h",
  ]

  deps = [
    ":libjingle_logging_api",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base/system:file_wrapper",
    "rtc_event_log",
  ]
}

rtc_source_set("rtc_stats_api") {
  visibility = [ "*" ]
  cflags = []
  sources = [
    "stats/rtc_stats.h",
    "stats/rtc_stats_collector_callback.h",
    "stats/rtc_stats_report.h",
    "stats/rtcstats_objects.h",
  ]

  deps = [
    ":make_ref_counted",
    ":ref_count",
    ":scoped_refptr",
    "../api:refcountedbase",
    "../rtc_base:checks",
    "../rtc_base:refcount",
    "../rtc_base/system:rtc_export",
    "units:timestamp",
  ]

  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_library("audio_options_api") {
  visibility = [ "*" ]
  sources = [
    "audio_options.cc",
    "audio_options.h",
  ]

  deps = [
    ":array_view",
    "../rtc_base:stringutils",
    "../rtc_base/system:rtc_export",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_library("transport_api") {
  visibility = [ "*" ]
  sources = [
    "call/transport.cc",
    "call/transport.h",
  ]
  deps = [
    ":array_view",
    ":refcountedbase",
    ":scoped_refptr",
  ]
}

rtc_source_set("bitrate_allocation") {
  visibility = [ "*" ]
  sources = [ "call/bitrate_allocation.h" ]
  deps = [
    "units:data_rate",
    "units:time_delta",
  ]
}

# TODO(srte): Move to network_emulation sub directory.
rtc_source_set("simulated_network_api") {
  visibility = [ "*" ]
  sources = [ "test/simulated_network.h" ]
  deps = [
    "../rtc_base:macromagic",
    "../rtc_base:random",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

# TODO(srte): Move to network_emulation sub directory.
rtc_source_set("network_emulation_manager_api") {
  visibility = [ "*" ]
  sources = [
    "test/network_emulation_manager.cc",
    "test/network_emulation_manager.h",
  ]
  deps = [
    ":array_view",
    ":packet_socket_factory",
    ":peer_network_dependencies",
    ":simulated_network_api",
    ":time_controller",
    "../call:simulated_network",
    "../rtc_base:checks",
    "../rtc_base:network",
    "../rtc_base:network_constants",
    "../rtc_base:threading",
    "test/network_emulation",
    "units:data_rate",
    "units:data_size",
    "units:timestamp",
  ]
}

rtc_source_set("time_controller") {
  visibility = [ "*" ]
  sources = [
    "test/time_controller.cc",
    "test/time_controller.h",
  ]

  deps = [
    "../rtc_base:threading",
    "../rtc_base/synchronization:yield_policy",
    "../system_wrappers",
    "task_queue",
    "units:time_delta",
    "units:timestamp",
  ]
}

rtc_source_set("fec_controller_api") {
  visibility = [ "*" ]
  sources = [
    "fec_controller.h",
    "fec_controller_override.h",
  ]

  deps = [
    "../modules:module_fec_api",
    "video:video_frame_type",
  ]
}

rtc_source_set("network_state_predictor_api") {
  visibility = [ "*" ]
  sources = [ "network_state_predictor.h" ]
}

rtc_source_set("array_view") {
  visibility = [ "*" ]
  sources = [ "array_view.h" ]
  deps = [
    "../rtc_base:checks",
    "../rtc_base:type_traits",
  ]
}

rtc_source_set("refcountedbase") {
  visibility = [ "*" ]
  sources = [ "ref_counted_base.h" ]
  deps = [
    ":ref_count",
    "../rtc_base:macromagic",
    "../rtc_base:refcount",
  ]
}

rtc_library("ice_transport_factory") {
  visibility = [ "*" ]
  sources = [
    "ice_transport_factory.cc",
    "ice_transport_factory.h",
  ]
  deps = [
    ":ice_transport_interface",
    ":libjingle_peerconnection_api",
    ":make_ref_counted",
    ":packet_socket_factory",
    ":scoped_refptr",
    "../p2p:rtc_p2p",
    "../rtc_base:threading",
    "../rtc_base/system:rtc_export",
    "rtc_event_log:rtc_event_log",
  ]
}

rtc_library("neteq_simulator_api") {
  visibility = [ "*" ]
  sources = [
    "test/neteq_simulator.cc",
    "test/neteq_simulator.h",
  ]
}

rtc_source_set("function_view") {
  visibility = [ "*" ]
  sources = [ "function_view.h" ]
  deps = [ "../rtc_base:checks" ]
}

rtc_source_set("sequence_checker") {
  visibility = [ "*" ]
  sources = [ "sequence_checker.h" ]
  deps = [
    "../rtc_base:checks",
    "../rtc_base:macromagic",
    "../rtc_base/synchronization:sequence_checker_internal",
  ]
}

if (rtc_include_tests) {
  if (rtc_enable_protobuf && !build_with_chromium) {
    rtc_library("audioproc_f_api") {
      visibility = [ "*" ]
      testonly = true
      sources = [
        "test/audioproc_float.cc",
        "test/audioproc_float.h",
      ]

      deps = [
        "../modules/audio_processing",
        "../modules/audio_processing:api",
        "../modules/audio_processing:audioproc_f_impl",
      ]
    }

    rtc_library("neteq_simulator_factory") {
      visibility = [ "*" ]
      testonly = true
      sources = [
        "test/neteq_simulator_factory.cc",
        "test/neteq_simulator_factory.h",
      ]
      deps = [
        ":neteq_simulator_api",
        "../modules/audio_coding:neteq_test_factory",
        "../rtc_base:checks",
        "neteq:neteq_api",
      ]
      absl_deps = [
        "//third_party/abseil-cpp/absl/flags:flag",
        "//third_party/abseil-cpp/absl/flags:parse",
        "//third_party/abseil-cpp/absl/strings",
        "//third_party/abseil-cpp/absl/types:optional",
      ]
    }
  }

  rtc_source_set("simulcast_test_fixture_api") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/simulcast_test_fixture.h" ]
  }

  rtc_library("create_simulcast_test_fixture_api") {
    visibility = [ "*" ]
    testonly = true
    sources = [
      "test/create_simulcast_test_fixture.cc",
      "test/create_simulcast_test_fixture.h",
    ]
    deps = [
      ":simulcast_test_fixture_api",
      "../modules/video_coding:simulcast_test_fixture_impl",
      "video_codecs:video_codecs_api",
    ]
  }

  rtc_library("videocodec_test_stats_api") {
    visibility = [ "*" ]
    testonly = true
    sources = [
      "test/videocodec_test_stats.cc",
      "test/videocodec_test_stats.h",
    ]
    deps = [
      "../api/units:data_rate",
      "../api/units:frequency",
      "../rtc_base:stringutils",
      "video:video_frame_type",
    ]
    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
  }

  rtc_library("videocodec_test_fixture_api") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/videocodec_test_fixture.h" ]
    deps = [
      ":videocodec_test_stats_api",
      "../modules/video_coding:video_codec_interface",
      "video_codecs:video_codecs_api",
    ]
  }

  rtc_library("create_videocodec_test_fixture_api") {
    visibility = [ "*" ]
    testonly = true
    sources = [
      "test/create_videocodec_test_fixture.cc",
      "test/create_videocodec_test_fixture.h",
    ]
    deps = [
      ":videocodec_test_fixture_api",
      "../modules/video_coding:video_codecs_test_framework",
      "../modules/video_coding:videocodec_test_impl",
      "video_codecs:video_codecs_api",
    ]
  }

  rtc_source_set("mock_audio_mixer") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_audio_mixer.h" ]

    deps = [
      "../test:test_support",
      "audio:audio_mixer_api",
    ]
  }

  rtc_source_set("mock_audio_sink") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_audio_sink.h" ]

    deps = [
      "../api:media_stream_interface",
      "../test:test_support",
    ]
    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
  }

  rtc_source_set("mock_data_channel") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_data_channel.h" ]

    deps = [
      ":libjingle_peerconnection_api",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_dtmf_sender") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_dtmf_sender.h" ]

    deps = [
      ":dtmf_sender_interface",
      ":libjingle_peerconnection_api",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_fec_controller_override") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_fec_controller_override.h" ]
    deps = [
      ":fec_controller_api",
      "../test:test_support",
    ]
  }

  rtc_library("mock_frame_encryptor") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_frame_encryptor.h" ]
    deps = [
      # For api/crypto/frame_encryptor_interface.h
      ":libjingle_peerconnection_api",
      "../test:test_support",
      "crypto:frame_encryptor_interface",
    ]
  }

  rtc_library("mock_frame_decryptor") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_frame_decryptor.h" ]
    deps = [
      ":libjingle_peerconnection_api",
      "../test:test_support",
      "crypto:frame_decryptor_interface",
    ]
  }

  rtc_library("mock_encoder_selector") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_encoder_selector.h" ]
    deps = [
      ":libjingle_peerconnection_api",
      "../api/video_codecs:video_codecs_api",
      "../test:test_support",
    ]
  }

  rtc_library("fake_frame_encryptor") {
    visibility = [ "*" ]
    testonly = true
    sources = [
      "test/fake_frame_encryptor.cc",
      "test/fake_frame_encryptor.h",
    ]
    deps = [
      ":array_view",
      ":libjingle_peerconnection_api",
      ":make_ref_counted",
      ":ref_count",
      ":rtp_parameters",
      "../rtc_base:checks",
      "../rtc_base:refcount",
      "crypto:frame_encryptor_interface",
    ]
  }

  rtc_library("fake_frame_decryptor") {
    visibility = [ "*" ]
    testonly = true
    sources = [
      "test/fake_frame_decryptor.cc",
      "test/fake_frame_decryptor.h",
    ]
    deps = [
      ":array_view",
      ":libjingle_peerconnection_api",
      ":make_ref_counted",
      ":rtp_parameters",
      "../rtc_base:checks",
      "crypto:frame_decryptor_interface",
    ]
  }

  rtc_source_set("mock_media_stream_interface") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_media_stream_interface.h" ]

    deps = [
      ":media_stream_interface",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_packet_socket_factory") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_packet_socket_factory.h" ]

    deps = [
      ":packet_socket_factory",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_peerconnectioninterface") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_peerconnectioninterface.h" ]

    deps = [
      ":libjingle_peerconnection_api",
      ":ref_count",
      "../api:scoped_refptr",
      "../rtc_base:refcount",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_peer_connection_factory_interface") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_peer_connection_factory_interface.h" ]

    deps = [
      ":libjingle_peerconnection_api",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_session_description_interface") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_session_description_interface.h" ]
    deps = [
      ":libjingle_peerconnection_api",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_transformable_frame") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_transformable_frame.h" ]
    deps = [
      ":array_view",
      ":frame_transformer_interface",
      "../test:test_support",
      "units:timestamp",
    ]
  }

  rtc_source_set("mock_async_dns_resolver") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_async_dns_resolver.h" ]
    deps = [
      ":async_dns_resolver",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_rtp") {
    visibility = [ "*" ]
    testonly = true
    sources = [
      "test/mock_rtp_transceiver.h",
      "test/mock_rtpreceiver.h",
      "test/mock_rtpsender.h",
    ]

    deps = [
      ":libjingle_peerconnection_api",
      ":rtp_sender_interface",
      "../api/crypto:frame_decryptor_interface",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_transformable_audio_frame") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_transformable_audio_frame.h" ]

    deps = [
      ":frame_transformer_interface",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_transformable_video_frame") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_transformable_video_frame.h" ]

    deps = [
      ":frame_transformer_interface",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_video_bitrate_allocator") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_video_bitrate_allocator.h" ]

    deps = [
      "../api/video:video_bitrate_allocator",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_video_bitrate_allocator_factory") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_video_bitrate_allocator_factory.h" ]

    deps = [
      "../api/video:video_bitrate_allocator_factory",
      "../test:test_support",
    ]
  }

  rtc_source_set("mock_video_codec_factory") {
    visibility = [ "*" ]
    testonly = true
    sources = [
      "test/mock_video_decoder_factory.h",
      "test/mock_video_encoder_factory.h",
    ]

    deps = [
      "../api/video_codecs:video_codecs_api",
      "../test:test_support",
    ]
  }

  rtc_library("mock_video_decoder") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_video_decoder.h" ]

    deps = [
      "../api/video_codecs:video_codecs_api",
      "../test:test_support",
    ]
  }

  rtc_library("mock_video_encoder") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_video_encoder.h" ]

    deps = [
      "../api/video_codecs:video_codecs_api",
      "../test:test_support",
    ]
  }

  rtc_library("mock_video_track") {
    visibility = [ "*" ]
    testonly = true
    sources = [ "test/mock_video_track.h" ]

    deps = [
      ":ref_count",
      "../api:media_stream_interface",
      "../api:scoped_refptr",
      "../rtc_base:refcount",
      "../test:test_support",
    ]
  }

  rtc_library("create_time_controller") {
    visibility = [ "*" ]
    testonly = true
    sources = [
      "test/create_time_controller.cc",
      "test/create_time_controller.h",
    ]

    deps = [
      ":enable_media_with_defaults",
      ":libjingle_peerconnection_api",
      ":time_controller",
      "../call",
      "../call:call_interfaces",
      "../call:rtp_interfaces",
      "../pc:media_factory",
      "../rtc_base:checks",
      "../system_wrappers",
      "../test/time_controller",
      "environment",
    ]
    absl_deps = [ "//third_party/abseil-cpp/absl/base:nullability" ]
  }

  rtc_library("rtc_api_unittests") {
    testonly = true

    sources = [
      "array_view_unittest.cc",
      "field_trials_unittest.cc",
      "function_view_unittest.cc",
      "rtc_error_unittest.cc",
      "rtc_event_log_output_file_unittest.cc",
      "rtp_packet_info_unittest.cc",
      "rtp_packet_infos_unittest.cc",
      "rtp_parameters_unittest.cc",
      "scoped_refptr_unittest.cc",
      "sequence_checker_unittest.cc",
      "test/create_time_controller_unittest.cc",
      "test/peerconnection_quality_test_fixture_unittest.cc",
    ]

    deps = [
      ":array_view",
      ":create_time_controller",
      ":field_trials",
      ":field_trials_view",
      ":function_view",
      ":libjingle_peerconnection_api",
      ":peer_connection_quality_test_fixture_api",
      ":rtc_error",
      ":rtc_event_log_output_file",
      ":rtp_packet_info",
      ":rtp_parameters",
      ":scoped_refptr",
      ":sequence_checker",
      ":time_controller",
      "../rtc_base:buffer",
      "../rtc_base:checks",
      "../rtc_base:gunit_helpers",
      "../rtc_base:platform_thread",
      "../rtc_base:rtc_event",
      "../rtc_base:rtc_task_queue",
      "../rtc_base:task_queue_for_test",
      "../rtc_base/containers:flat_set",
      "../rtc_base/task_utils:repeating_task",
      "../system_wrappers:field_trial",
      "../test:field_trial",
      "../test:fileutils",
      "../test:rtc_expect_death",
      "../test:test_support",
      "environment:environment_unittests",
      "task_queue:task_queue_default_factory_unittests",
      "test/pclf:media_configuration",
      "test/video:video_frame_writer",
      "transport:field_trial_based_config",
      "units:time_delta",
      "units:timestamp",
      "units:units_unittests",
      "video:frame_buffer_unittest",
      "video:rtp_video_frame_assembler_unittests",
      "video:video_frame_metadata_unittest",
    ]
    absl_deps = [
      "//third_party/abseil-cpp/absl/strings",
      "//third_party/abseil-cpp/absl/types:optional",
    ]
  }

  rtc_library("compile_all_headers") {
    testonly = true

    sources = [ "test/compile_all_headers.cc" ]

    deps = [
      ":fake_frame_decryptor",
      ":fake_frame_encryptor",
      ":mock_async_dns_resolver",
      ":mock_audio_mixer",
      ":mock_audio_sink",
      ":mock_data_channel",
      ":mock_dtmf_sender",
      ":mock_frame_decryptor",
      ":mock_frame_encryptor",
      ":mock_media_stream_interface",
      ":mock_packet_socket_factory",
      ":mock_peer_connection_factory_interface",
      ":mock_peerconnectioninterface",
      ":mock_rtp",
      ":mock_session_description_interface",
      ":mock_transformable_audio_frame",
      ":mock_transformable_frame",
      ":mock_transformable_video_frame",
      ":mock_video_bitrate_allocator",
      ":mock_video_bitrate_allocator_factory",
      ":mock_video_codec_factory",
      ":mock_video_decoder",
      ":mock_video_encoder",
      ":mock_video_track",
      ":rtc_api_unittests",
      "units:units_unittests",
    ]
  }
}

rtc_source_set("field_trials_registry") {
  visibility = [ "*" ]
  sources = [
    "field_trials_registry.cc",
    "field_trials_registry.h",
  ]
  deps = [
    ":field_trials_view",
    "../experiments:registered_field_trials",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base/containers:flat_set",
    "../rtc_base/system:rtc_export",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/strings",
  ]
}

rtc_source_set("field_trials_view") {
  visibility = [ "*" ]
  sources = [ "field_trials_view.h" ]
  deps = [ "../rtc_base/system:rtc_export" ]
  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}

rtc_source_set("webrtc_key_value_config") {
  visibility = [ "*" ]
  sources = [ "webrtc_key_value_config.h" ]
  deps = [ ":field_trials_view" ]
}

rtc_library("field_trials") {
  visibility = [ "*" ]
  sources = [
    "field_trials.cc",
    "field_trials.h",
  ]
  deps = [
    ":field_trials_registry",
    "../rtc_base:checks",
    "../rtc_base/containers:flat_map",
    "../system_wrappers:field_trial",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}

rtc_library("frame_transformer_factory") {
  visibility = [ "*" ]
  sources = [
    "frame_transformer_factory.cc",
    "frame_transformer_factory.h",
  ]
  deps = [
    ":frame_transformer_interface",
    ":ref_count",
    ":scoped_refptr",
    "../audio:audio",
    "../modules/rtp_rtcp",
    "video:encoded_frame",
    "video:video_frame_metadata",
  ]
}
