# Copyright (c) 2014 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")

rtc_library("video") {
  sources = [
    "buffered_frame_decryptor.cc",
    "buffered_frame_decryptor.h",
    "call_stats2.cc",
    "call_stats2.h",
    "encoder_rtcp_feedback.cc",
    "encoder_rtcp_feedback.h",
    "quality_limitation_reason_tracker.cc",
    "quality_limitation_reason_tracker.h",
    "quality_threshold.cc",
    "quality_threshold.h",
    "receive_statistics_proxy2.cc",
    "receive_statistics_proxy2.h",
    "report_block_stats.cc",
    "report_block_stats.h",
    "rtp_streams_synchronizer2.cc",
    "rtp_streams_synchronizer2.h",
    "rtp_video_stream_receiver2.cc",
    "rtp_video_stream_receiver2.h",
    "rtp_video_stream_receiver_frame_transformer_delegate.cc",
    "rtp_video_stream_receiver_frame_transformer_delegate.h",
    "send_delay_stats.cc",
    "send_delay_stats.h",
    "send_statistics_proxy.cc",
    "send_statistics_proxy.h",
    "stats_counter.cc",
    "stats_counter.h",
    "stream_synchronization.cc",
    "stream_synchronization.h",
    "transport_adapter.cc",
    "transport_adapter.h",
    "video_quality_observer2.cc",
    "video_quality_observer2.h",
    "video_receive_stream2.cc",
    "video_receive_stream2.h",
    "video_send_stream.cc",
    "video_send_stream.h",
    "video_send_stream_impl.cc",
    "video_send_stream_impl.h",
    "video_stream_decoder2.cc",
    "video_stream_decoder2.h",
  ]

  deps = [
    ":frame_cadence_adapter",
    ":frame_dumping_decoder",
    ":task_queue_frame_decode_scheduler",
    ":unique_timestamp_counter",
    ":video_stream_buffer_controller",
    ":video_stream_encoder_impl",
    "../api:array_view",
    "../api:fec_controller_api",
    "../api:field_trials_view",
    "../api:frame_transformer_interface",
    "../api:rtp_parameters",
    "../api:scoped_refptr",
    "../api:sequence_checker",
    "../api:transport_api",
    "../api/crypto:frame_decryptor_interface",
    "../api/crypto:options",
    "../api/task_queue",
    "../api/task_queue:pending_task_safety_flag",
    "../api/transport:field_trial_based_config",
    "../api/units:data_rate",
    "../api/units:frequency",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../api/video:encoded_image",
    "../api/video:recordable_encoded_frame",
    "../api/video:video_bitrate_allocation",
    "../api/video:video_bitrate_allocator",
    "../api/video:video_codec_constants",
    "../api/video:video_frame",
    "../api/video:video_rtp_headers",
    "../api/video:video_stream_encoder",
    "../api/video_codecs:video_codecs_api",
    "../call:bitrate_allocator",
    "../call:call_interfaces",
    "../call:rtp_interfaces",
    "../call:rtp_receiver",
    "../call:rtp_sender",
    "../call:video_stream_api",
    "../common_video",
    "../modules:module_api",
    "../modules:module_api_public",
    "../modules/pacing",
    "../modules/remote_bitrate_estimator",
    "../modules/rtp_rtcp",
    "../modules/rtp_rtcp:rtp_rtcp_format",
    "../modules/rtp_rtcp:rtp_video_header",
    "../modules/video_coding",
    "../modules/video_coding:nack_requester",
    "../modules/video_coding:packet_buffer",
    "../modules/video_coding:video_codec_interface",
    "../modules/video_coding:video_coding_utility",
    "../modules/video_coding:webrtc_vp9_helpers",
    "../modules/video_coding/timing:timing_module",
    "../rtc_base:checks",
    "../rtc_base:event_tracer",
    "../rtc_base:histogram_percentile_counter",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:mod_ops",
    "../rtc_base:moving_max_counter",
    "../rtc_base:platform_thread",
    "../rtc_base:rate_statistics",
    "../rtc_base:rate_tracker",
    "../rtc_base:rtc_event",
    "../rtc_base:rtc_numerics",
    "../rtc_base:rtc_task_queue",
    "../rtc_base:safe_conversions",
    "../rtc_base:sample_counter",
    "../rtc_base:stringutils",
    "../rtc_base:threading",
    "../rtc_base:timeutils",
    "../rtc_base/experiments:alr_experiment",
    "../rtc_base/experiments:field_trial_parser",
    "../rtc_base/experiments:keyframe_interval_settings_experiment",
    "../rtc_base/experiments:min_video_bitrate_experiment",
    "../rtc_base/experiments:normalize_simulcast_size_experiment",
    "../rtc_base/experiments:rate_control_settings",
    "../rtc_base/synchronization:mutex",
    "../rtc_base/system:no_unique_address",
    "../rtc_base/task_utils:repeating_task",
    "../system_wrappers",
    "../system_wrappers:field_trial",
    "../system_wrappers:metrics",
    "adaptation:video_adaptation",
  ]
  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",
  ]

  if (!build_with_mozilla) {
    deps += [ "../media:rtc_media_base" ]
  }
}

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

  sources = [
    "video_stream_decoder_impl.cc",
    "video_stream_decoder_impl.h",
  ]

  deps = [
    "../api:field_trials_view",
    "../api:sequence_checker",
    "../api/task_queue",
    "../api/transport:field_trial_based_config",
    "../api/video:encoded_frame",
    "../api/video:video_frame",
    "../api/video:video_rtp_headers",
    "../api/video:video_stream_decoder",
    "../api/video_codecs:video_codecs_api",
    "../modules/video_coding",
    "../modules/video_coding:frame_buffer2",
    "../modules/video_coding/timing:timing_module",
    "../rtc_base:logging",
    "../rtc_base:mod_ops",
    "../rtc_base:platform_thread",
    "../rtc_base:rtc_task_queue",
    "../rtc_base:timeutils",
    "../rtc_base/memory:always_valid_pointer",
    "../rtc_base/synchronization:mutex",
    "../system_wrappers",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

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

  sources = [
    "frame_dumping_decoder.cc",
    "frame_dumping_decoder.h",
  ]

  deps = [
    "../api/video:encoded_frame",
    "../api/video:encoded_image",
    "../api/video_codecs:video_codecs_api",
    "../modules/video_coding",
    "../modules/video_coding:video_codec_interface",
    "../modules/video_coding:video_coding_utility",
    "../rtc_base/system:file_wrapper",
  ]
}

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

  deps = [
    "../api:field_trials_view",
    "../api:sequence_checker",
    "../api/task_queue",
    "../api/task_queue:pending_task_safety_flag",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../api/video:video_frame",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:race_checker",
    "../rtc_base:rate_statistics",
    "../rtc_base:timeutils",
    "../rtc_base/synchronization:mutex",
    "../rtc_base/system:no_unique_address",
    "../rtc_base/task_utils:repeating_task",
    "../system_wrappers",
    "../system_wrappers:field_trial",
    "../system_wrappers:metrics",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:core_headers",
  ]
}

rtc_library("video_stream_buffer_controller") {
  sources = [
    "video_stream_buffer_controller.cc",
    "video_stream_buffer_controller.h",
  ]
  deps = [
    ":decode_synchronizer",
    ":frame_decode_scheduler",
    ":frame_decode_timing",
    ":task_queue_frame_decode_scheduler",
    ":video_receive_stream_timeout_tracker",
    "../api:field_trials_view",
    "../api:sequence_checker",
    "../api/metronome",
    "../api/task_queue",
    "../api/units:data_size",
    "../api/video:encoded_frame",
    "../api/video:frame_buffer",
    "../api/video:video_rtp_headers",
    "../modules/video_coding",
    "../modules/video_coding:frame_helpers",
    "../modules/video_coding:video_codec_interface",
    "../modules/video_coding/timing:inter_frame_delay",
    "../modules/video_coding/timing:jitter_estimator",
    "../modules/video_coding/timing:timing_module",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base/experiments:rtt_mult_experiment",
    "../system_wrappers",
    "../system_wrappers:field_trial",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/functional:bind_front",
    "//third_party/abseil-cpp/absl/types:optional",
  ]
}

rtc_source_set("frame_decode_scheduler") {
  sources = [ "frame_decode_scheduler.h" ]
  deps = [
    ":frame_decode_timing",
    "../api/units:timestamp",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/types:optional",
  ]
}

rtc_library("task_queue_frame_decode_scheduler") {
  sources = [
    "task_queue_frame_decode_scheduler.cc",
    "task_queue_frame_decode_scheduler.h",
  ]
  deps = [
    ":frame_decode_scheduler",
    ":frame_decode_timing",
    "../api:sequence_checker",
    "../api/task_queue",
    "../api/task_queue:pending_task_safety_flag",
    "../api/units:timestamp",
    "../rtc_base:checks",
    "../system_wrappers",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_library("frame_decode_timing") {
  sources = [
    "frame_decode_timing.cc",
    "frame_decode_timing.h",
  ]
  deps = [
    "../api/task_queue",
    "../api/task_queue:pending_task_safety_flag",
    "../api/units:time_delta",
    "../modules/video_coding/timing:timing_module",
    "../rtc_base:logging",
    "../system_wrappers",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

rtc_library("video_receive_stream_timeout_tracker") {
  sources = [
    "video_receive_stream_timeout_tracker.cc",
    "video_receive_stream_timeout_tracker.h",
  ]
  deps = [
    "../api/task_queue",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../rtc_base:logging",
    "../rtc_base/task_utils:repeating_task",
    "../system_wrappers",
  ]
}

rtc_library("decode_synchronizer") {
  sources = [
    "decode_synchronizer.cc",
    "decode_synchronizer.h",
  ]
  deps = [
    ":frame_decode_scheduler",
    ":frame_decode_timing",
    "../api:sequence_checker",
    "../api/metronome",
    "../api/task_queue",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}

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

  # visibility = [ "../api/video:video_stream_encoder_create" ]
  sources = [
    "alignment_adjuster.cc",
    "alignment_adjuster.h",
    "encoder_bitrate_adjuster.cc",
    "encoder_bitrate_adjuster.h",
    "encoder_overshoot_detector.cc",
    "encoder_overshoot_detector.h",
    "frame_encode_metadata_writer.cc",
    "frame_encode_metadata_writer.h",
    "video_source_sink_controller.cc",
    "video_source_sink_controller.h",
    "video_stream_encoder.cc",
    "video_stream_encoder.h",
  ]

  deps = [
    ":frame_cadence_adapter",
    "../api:field_trials_view",
    "../api:rtp_parameters",
    "../api:sequence_checker",
    "../api/adaptation:resource_adaptation_api",
    "../api/task_queue:pending_task_safety_flag",
    "../api/task_queue:task_queue",
    "../api/units:data_rate",
    "../api/video:encoded_image",
    "../api/video:render_resolution",
    "../api/video:video_adaptation",
    "../api/video:video_bitrate_allocation",
    "../api/video:video_bitrate_allocator",
    "../api/video:video_bitrate_allocator_factory",
    "../api/video:video_codec_constants",
    "../api/video:video_frame",
    "../api/video:video_layers_allocation",
    "../api/video:video_rtp_headers",
    "../api/video:video_stream_encoder",
    "../api/video_codecs:video_codecs_api",
    "../call/adaptation:resource_adaptation",
    "../common_video",
    "../modules:module_api_public",
    "../modules/video_coding",
    "../modules/video_coding:video_codec_interface",
    "../modules/video_coding:video_coding_utility",
    "../modules/video_coding:webrtc_vp9_helpers",
    "../modules/video_coding/svc:scalability_structures",
    "../modules/video_coding/svc:svc_rate_allocator",
    "../rtc_base:checks",
    "../rtc_base:criticalsection",
    "../rtc_base:event_tracer",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:race_checker",
    "../rtc_base:rate_statistics",
    "../rtc_base:refcount",
    "../rtc_base:rtc_event",
    "../rtc_base:rtc_numerics",
    "../rtc_base:rtc_task_queue",
    "../rtc_base:safe_conversions",
    "../rtc_base:stringutils",
    "../rtc_base:timeutils",
    "../rtc_base/experiments:alr_experiment",
    "../rtc_base/experiments:balanced_degradation_settings",
    "../rtc_base/experiments:encoder_info_settings",
    "../rtc_base/experiments:field_trial_parser",
    "../rtc_base/experiments:quality_rampup_experiment",
    "../rtc_base/experiments:quality_scaler_settings",
    "../rtc_base/experiments:quality_scaling_experiment",
    "../rtc_base/experiments:rate_control_settings",
    "../rtc_base/synchronization:mutex",
    "../rtc_base/system:no_unique_address",
    "../rtc_base/task_utils:repeating_task",
    "../system_wrappers",
    "../system_wrappers:field_trial",
    "../system_wrappers:metrics",
    "adaptation:video_adaptation",
  ]
  absl_deps = [
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/cleanup",
    "//third_party/abseil-cpp/absl/types:optional",
  ]
}

rtc_library("unique_timestamp_counter") {
  sources = [
    "unique_timestamp_counter.cc",
    "unique_timestamp_counter.h",
  ]
}

if (rtc_include_tests) {
  rtc_library("video_mocks") {
    testonly = true
    sources = [ "test/mock_video_stream_encoder.h" ]
    deps = [
      "../api/video:video_stream_encoder",
      "../test:test_support",
    ]
  }
  if (!build_with_chromium) {
    rtc_library("video_quality_test") {
      testonly = true

      # Only targets in this file and api/ can depend on this.
      visibility = [
        ":*",
        "../api:create_video_quality_test_fixture_api",
      ]
      sources = [
        "video_analyzer.cc",
        "video_analyzer.h",
        "video_quality_test.cc",
        "video_quality_test.h",
      ]
      deps = [
        ":frame_dumping_decoder",
        "../api:create_frame_generator",
        "../api:fec_controller_api",
        "../api:frame_generator_api",
        "../api:libjingle_peerconnection_api",
        "../api:rtc_event_log_output_file",
        "../api:test_dependency_factory",
        "../api:video_quality_test_fixture_api",
        "../api/numerics",
        "../api/rtc_event_log:rtc_event_log_factory",
        "../api/task_queue",
        "../api/task_queue:default_task_queue_factory",
        "../api/test/metrics:global_metrics_logger_and_exporter",
        "../api/test/metrics:metric",
        "../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:fake_network",
        "../call:simulated_network",
        "../common_video",
        "../media:rtc_audio_video",
        "../media:rtc_encoder_simulcast_proxy",
        "../media:rtc_internal_video_codecs",
        "../media:rtc_media_base",
        "../modules/audio_device:audio_device_api",
        "../modules/audio_device:audio_device_module_from_input_and_output",
        "../modules/audio_device:windows_core_audio_utility",
        "../modules/audio_mixer:audio_mixer_impl",
        "../modules/rtp_rtcp",
        "../modules/rtp_rtcp:rtp_rtcp_format",
        "../modules/video_coding",
        "../modules/video_coding:video_coding_utility",
        "../modules/video_coding:webrtc_h264",
        "../modules/video_coding:webrtc_multiplex",
        "../modules/video_coding:webrtc_vp8",
        "../modules/video_coding:webrtc_vp9",
        "../rtc_base:macromagic",
        "../rtc_base:platform_thread",
        "../rtc_base:rtc_base_tests_utils",
        "../rtc_base:rtc_event",
        "../rtc_base:rtc_numerics",
        "../rtc_base:stringutils",
        "../rtc_base:task_queue_for_test",
        "../rtc_base:timeutils",
        "../rtc_base/synchronization:mutex",
        "../rtc_base/task_utils:repeating_task",
        "../system_wrappers",
        "../test:fake_video_codecs",
        "../test:fileutils",
        "../test:platform_video_capturer",
        "../test:rtp_test_utils",
        "../test:test_common",
        "../test:test_renderer",
        "../test:test_support",
        "../test:test_support_test_artifacts",
        "../test:video_test_common",
        "../test:video_test_support",
        "config:streams_config",
      ]
      absl_deps = [
        "//third_party/abseil-cpp/absl/algorithm:container",
        "//third_party/abseil-cpp/absl/flags:flag",
        "//third_party/abseil-cpp/absl/flags:parse",
        "//third_party/abseil-cpp/absl/strings",
      ]

      if (is_mac || is_ios) {
        deps += [ "../test:video_test_mac" ]
      }
      if (is_win) {
        deps += [ "../rtc_base/win:scoped_com_initializer" ]
      }
    }

    rtc_library("video_full_stack_tests") {
      testonly = true

      sources = [ "full_stack_tests.cc" ]
      deps = [
        ":video_quality_test",
        "../api:simulated_network_api",
        "../api:test_dependency_factory",
        "../api:video_quality_test_fixture_api",
        "../api/video_codecs:video_codecs_api",
        "../modules/pacing",
        "../modules/video_coding:webrtc_vp9",
        "../rtc_base/experiments:alr_experiment",
        "../system_wrappers:field_trial",
        "../test:field_trial",
        "../test:fileutils",
        "../test:test_common",
        "../test:test_support",
        "//testing/gtest",
      ]
      absl_deps = [
        "//third_party/abseil-cpp/absl/flags:flag",
        "//third_party/abseil-cpp/absl/flags:parse",
        "//third_party/abseil-cpp/absl/types:optional",
      ]
    }

    rtc_library("video_pc_full_stack_tests") {
      testonly = true

      sources = [ "pc_full_stack_tests.cc" ]
      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:simulated_network_api",
        "../api:time_controller",
        "../api/test/metrics:global_metrics_logger_and_exporter",
        "../api/video_codecs:video_codecs_api",
        "../call:simulated_network",
        "../modules/video_coding:webrtc_vp9",
        "../system_wrappers:field_trial",
        "../test:field_trial",
        "../test:fileutils",
        "../test:test_support",
        "../test/pc/e2e:network_quality_metrics_reporter",
      ]
    }

    rtc_library("video_loopback_lib") {
      testonly = true
      sources = [
        "video_loopback.cc",
        "video_loopback.h",
      ]
      deps = [
        ":video_quality_test",
        "../api:libjingle_peerconnection_api",
        "../api:simulated_network_api",
        "../api:video_quality_test_fixture_api",
        "../api/transport:bitrate_settings",
        "../api/video_codecs:video_codecs_api",
        "../rtc_base:checks",
        "../rtc_base:logging",
        "../system_wrappers:field_trial",
        "../test:field_trial",
        "../test:run_test",
        "../test:run_test_interface",
        "../test:test_common",
        "../test:test_renderer",
        "../test:test_support",
        "//testing/gtest",
      ]
      absl_deps = [
        "//third_party/abseil-cpp/absl/flags:flag",
        "//third_party/abseil-cpp/absl/flags:parse",
        "//third_party/abseil-cpp/absl/types:optional",
      ]
    }

    if (is_mac) {
      mac_app_bundle("video_loopback") {
        testonly = true
        sources = [ "video_loopback_main.mm" ]
        info_plist = "../test/mac/Info.plist"
        deps = [ ":video_loopback_lib" ]
      }
    } else {
      rtc_executable("video_loopback") {
        testonly = true
        sources = [ "video_loopback_main.cc" ]
        deps = [ ":video_loopback_lib" ]
      }
    }

    rtc_executable("screenshare_loopback") {
      testonly = true
      sources = [ "screenshare_loopback.cc" ]

      deps = [
        ":video_quality_test",
        "../api:libjingle_peerconnection_api",
        "../api:simulated_network_api",
        "../api:video_quality_test_fixture_api",
        "../api/transport:bitrate_settings",
        "../api/video_codecs:video_codecs_api",
        "../rtc_base:checks",
        "../rtc_base:logging",
        "../rtc_base:stringutils",
        "../system_wrappers:field_trial",
        "../test:field_trial",
        "../test:run_test",
        "../test:run_test_interface",
        "../test:test_common",
        "../test:test_renderer",
        "../test:test_support",
        "//third_party/abseil-cpp/absl/flags:flag",
        "//third_party/abseil-cpp/absl/flags:parse",
        "//third_party/abseil-cpp/absl/types:optional",
      ]
    }

    rtc_executable("sv_loopback") {
      testonly = true
      sources = [ "sv_loopback.cc" ]
      deps = [
        ":video_quality_test",
        "../api:libjingle_peerconnection_api",
        "../api:simulated_network_api",
        "../api:video_quality_test_fixture_api",
        "../api/transport:bitrate_settings",
        "../api/video_codecs:video_codecs_api",
        "../rtc_base:checks",
        "../rtc_base:logging",
        "../rtc_base:stringutils",
        "../system_wrappers:field_trial",
        "../test:field_trial",
        "../test:run_test",
        "../test:run_test_interface",
        "../test:test_common",
        "../test:test_renderer",
        "../test:test_support",
        "//testing/gtest",
        "//third_party/abseil-cpp/absl/flags:flag",
        "//third_party/abseil-cpp/absl/flags:parse",
        "//third_party/abseil-cpp/absl/types:optional",
      ]
    }
  }

  # TODO(pbos): Rename test suite.
  rtc_library("video_tests") {
    testonly = true

    defines = []
    sources = [
      "alignment_adjuster_unittest.cc",
      "buffered_frame_decryptor_unittest.cc",
      "call_stats2_unittest.cc",
      "cpu_scaling_tests.cc",
      "decode_synchronizer_unittest.cc",
      "encoder_bitrate_adjuster_unittest.cc",
      "encoder_overshoot_detector_unittest.cc",
      "encoder_rtcp_feedback_unittest.cc",
      "end_to_end_tests/bandwidth_tests.cc",
      "end_to_end_tests/call_operation_tests.cc",
      "end_to_end_tests/codec_tests.cc",
      "end_to_end_tests/config_tests.cc",
      "end_to_end_tests/extended_reports_tests.cc",
      "end_to_end_tests/fec_tests.cc",
      "end_to_end_tests/frame_encryption_tests.cc",
      "end_to_end_tests/histogram_tests.cc",
      "end_to_end_tests/multi_codec_receive_tests.cc",
      "end_to_end_tests/multi_stream_tester.cc",
      "end_to_end_tests/multi_stream_tester.h",
      "end_to_end_tests/multi_stream_tests.cc",
      "end_to_end_tests/network_state_tests.cc",
      "end_to_end_tests/resolution_bitrate_limits_tests.cc",
      "end_to_end_tests/retransmission_tests.cc",
      "end_to_end_tests/rtp_rtcp_tests.cc",
      "end_to_end_tests/ssrc_tests.cc",
      "end_to_end_tests/stats_tests.cc",
      "end_to_end_tests/transport_feedback_tests.cc",
      "frame_cadence_adapter_unittest.cc",
      "frame_decode_timing_unittest.cc",
      "frame_encode_metadata_writer_unittest.cc",
      "picture_id_tests.cc",
      "quality_limitation_reason_tracker_unittest.cc",
      "quality_scaling_tests.cc",
      "quality_threshold_unittest.cc",
      "receive_statistics_proxy2_unittest.cc",
      "report_block_stats_unittest.cc",
      "rtp_video_stream_receiver2_unittest.cc",
      "rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc",
      "send_delay_stats_unittest.cc",
      "send_statistics_proxy_unittest.cc",
      "stats_counter_unittest.cc",
      "stream_synchronization_unittest.cc",
      "task_queue_frame_decode_scheduler_unittest.cc",
      "unique_timestamp_counter_unittest.cc",
      "video_receive_stream2_unittest.cc",
      "video_receive_stream_timeout_tracker_unittest.cc",
      "video_send_stream_impl_unittest.cc",
      "video_send_stream_tests.cc",
      "video_source_sink_controller_unittest.cc",
      "video_stream_buffer_controller_unittest.cc",
      "video_stream_decoder_impl_unittest.cc",
      "video_stream_encoder_unittest.cc",
    ]
    deps = [
      ":decode_synchronizer",
      ":frame_cadence_adapter",
      ":frame_decode_scheduler",
      ":frame_decode_timing",
      ":task_queue_frame_decode_scheduler",
      ":unique_timestamp_counter",
      ":video",
      ":video_mocks",
      ":video_receive_stream_timeout_tracker",
      ":video_stream_buffer_controller",
      ":video_stream_decoder_impl",
      ":video_stream_encoder_impl",
      "../api:create_frame_generator",
      "../api:fake_frame_decryptor",
      "../api:fake_frame_encryptor",
      "../api:field_trials_view",
      "../api:frame_generator_api",
      "../api:libjingle_peerconnection_api",
      "../api:mock_fec_controller_override",
      "../api:mock_frame_decryptor",
      "../api:mock_video_codec_factory",
      "../api:mock_video_decoder",
      "../api:mock_video_encoder",
      "../api:rtp_headers",
      "../api:rtp_parameters",
      "../api:scoped_refptr",
      "../api:sequence_checker",
      "../api:simulated_network_api",
      "../api:time_controller",
      "../api:transport_api",
      "../api/adaptation:resource_adaptation_api",
      "../api/crypto:options",
      "../api/metronome/test:fake_metronome",
      "../api/rtc_event_log",
      "../api/task_queue",
      "../api/task_queue:default_task_queue_factory",
      "../api/test/metrics:global_metrics_logger_and_exporter",
      "../api/test/metrics:metric",
      "../api/test/video:function_video_factory",
      "../api/transport:field_trial_based_config",
      "../api/units:data_rate",
      "../api/units:frequency",
      "../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_adaptation",
      "../api/video:video_bitrate_allocation",
      "../api/video:video_frame",
      "../api/video:video_frame_type",
      "../api/video:video_rtp_headers",
      "../api/video/test:video_frame_matchers",
      "../api/video_codecs:video_codecs_api",
      "../api/video_codecs:vp8_temporal_layers_factory",
      "../call:call_interfaces",
      "../call:fake_network",
      "../call:mock_bitrate_allocator",
      "../call:mock_rtp_interfaces",
      "../call:rtp_interfaces",
      "../call:rtp_receiver",
      "../call:rtp_sender",
      "../call:simulated_network",
      "../call:simulated_packet_receiver",
      "../call:video_stream_api",
      "../call/adaptation:resource_adaptation",
      "../call/adaptation:resource_adaptation_test_utilities",
      "../common_video",
      "../common_video/test:utilities",
      "../media:rtc_audio_video",
      "../media:rtc_internal_video_codecs",
      "../media:rtc_media",
      "../media:rtc_media_base",
      "../media:rtc_media_tests_utils",
      "../media:rtc_simulcast_encoder_adapter",
      "../modules:module_api_public",
      "../modules/pacing",
      "../modules/rtp_rtcp",
      "../modules/rtp_rtcp:mock_rtp_rtcp",
      "../modules/rtp_rtcp:rtp_rtcp_format",
      "../modules/video_coding",
      "../modules/video_coding:codec_globals_headers",
      "../modules/video_coding:encoded_frame",
      "../modules/video_coding:packet_buffer",
      "../modules/video_coding:video_codec_interface",
      "../modules/video_coding:video_coding_utility",
      "../modules/video_coding:webrtc_h264",
      "../modules/video_coding:webrtc_multiplex",
      "../modules/video_coding:webrtc_vp8",
      "../modules/video_coding:webrtc_vp9",
      "../modules/video_coding:webrtc_vp9_helpers",
      "../modules/video_coding/codecs/av1:libaom_av1_encoder",
      "../modules/video_coding/svc:scalability_mode_util",
      "../modules/video_coding/svc:scalability_structures",
      "../modules/video_coding/svc:scalable_video_controller",
      "../modules/video_coding/timing:timing_module",
      "../rtc_base",
      "../rtc_base:byte_buffer",
      "../rtc_base:checks",
      "../rtc_base:gunit_helpers",
      "../rtc_base:logging",
      "../rtc_base:macromagic",
      "../rtc_base:platform_thread",
      "../rtc_base:rate_limiter",
      "../rtc_base:rate_statistics",
      "../rtc_base:refcount",
      "../rtc_base:rtc_base_tests_utils",
      "../rtc_base:rtc_event",
      "../rtc_base:rtc_numerics",
      "../rtc_base:rtc_task_queue",
      "../rtc_base:safe_conversions",
      "../rtc_base:stringutils",
      "../rtc_base:task_queue_for_test",
      "../rtc_base:threading",
      "../rtc_base:timeutils",
      "../rtc_base/containers:flat_map",
      "../rtc_base/experiments:alr_experiment",
      "../rtc_base/experiments:encoder_info_settings",
      "../rtc_base/synchronization:mutex",
      "../system_wrappers",
      "../system_wrappers:field_trial",
      "../system_wrappers:metrics",
      "../test:direct_transport",
      "../test:encoder_settings",
      "../test:fake_encoded_frame",
      "../test:fake_video_codecs",
      "../test:field_trial",
      "../test:fileutils",
      "../test:frame_utils",
      "../test:mock_frame_transformer",
      "../test:mock_transport",
      "../test:null_transport",
      "../test:rtp_test_utils",
      "../test:run_loop",
      "../test:scoped_key_value_config",
      "../test:test_common",
      "../test:test_support",
      "../test:video_test_common",
      "../test/time_controller",
      "adaptation:video_adaptation",
      "config:streams_config",
    ]
    absl_deps = [
      "//third_party/abseil-cpp/absl/algorithm:container",
      "//third_party/abseil-cpp/absl/functional:any_invocable",
      "//third_party/abseil-cpp/absl/functional:bind_front",
      "//third_party/abseil-cpp/absl/memory",
      "//third_party/abseil-cpp/absl/strings",
      "//third_party/abseil-cpp/absl/types:optional",
      "//third_party/abseil-cpp/absl/types:variant",
    ]
    if (!build_with_mozilla) {
      deps += [ "../media:rtc_media_base" ]
    }
  }
}
