# Copyright (c) 2025 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")
import("test/test_resources.gni")

if (rtc_enable_protobuf) {
  rtc_library("simulator") {
    # Cannot be testonly because it is used in downstream production code.
    sources = [
      "assembler.cc",
      "assembler.h",
      "decodability_simulator.cc",
      "decodability_simulator.h",
      "decodability_tracker.cc",
      "decodability_tracker.h",
      "frame_base.h",
      "log_classifiers.cc",
      "log_classifiers.h",
      "receiver.cc",
      "receiver.h",
      "rendering_simulator.cc",
      "rendering_simulator.h",
      "rendering_tracker.cc",
      "rendering_tracker.h",
      "results_base.h",
      "rtc_event_log_driver.cc",
      "rtc_event_log_driver.h",
      "rtcp_rtt_calculator.cc",
      "rtcp_rtt_calculator.h",
      "rtp_packet_simulator.cc",
      "rtp_packet_simulator.h",
      "rtt_simulator.cc",
      "rtt_simulator.h",
      "stream_base.h",
    ]
    deps = [
      "../../../api:field_trials",
      "../../../api:rtp_headers",
      "../../../api:rtp_packet_info",
      "../../../api:rtp_parameters",
      "../../../api:scoped_refptr",
      "../../../api:sequence_checker",
      "../../../api:transport_api",
      "../../../api/environment",
      "../../../api/environment:environment_factory",
      "../../../api/environment:force_test_environment",
      "../../../api/numerics",
      "../../../api/task_queue",
      "../../../api/task_queue:pending_task_safety_flag",
      "../../../api/units:data_size",
      "../../../api/units:time_delta",
      "../../../api/units:timestamp",
      "../../../api/video:encoded_frame",
      "../../../api/video:frame_buffer",
      "../../../api/video:video_frame",
      "../../../api/video:video_rtp_headers",
      "../../../api/video/timing:video_jitter_timing_factory",
      "../../../api/video/timing:video_jitter_timing_interface",
      "../../../call:rtp_interfaces",
      "../../../call:rtp_receiver",
      "../../../call:video_receive_stream_api",
      "../../../logging:rtc_event_log_parser",
      "../../../logging:rtc_event_rtp_rtcp",
      "../../../logging:rtc_event_video",
      "../../../modules:module_api",
      "../../../modules/rtp_rtcp",
      "../../../modules/rtp_rtcp:ntp_time_util",
      "../../../modules/rtp_rtcp:rtp_rtcp_format",
      "../../../modules/video_coding:nack_requester",
      "../../../modules/video_coding/timing:timing_module",
      "../../../rtc_base:checks",
      "../../../rtc_base:logging",
      "../../../rtc_base:macromagic",
      "../../../rtc_base:rtc_numerics",
      "../../../system_wrappers",
      "../../../test/time_controller:simulated_time_task_queue_controller",
      "../../../video",
      "../../../video:task_queue_frame_decode_scheduler",
      "../../../video:video_stream_buffer_controller",
      "../../../video/render:incoming_video_stream",
      "//third_party/abseil-cpp/absl/algorithm:container",
      "//third_party/abseil-cpp/absl/base:nullability",
      "//third_party/abseil-cpp/absl/container:flat_hash_map",
      "//third_party/abseil-cpp/absl/container:flat_hash_set",
      "//third_party/abseil-cpp/absl/container:inlined_vector",
      "//third_party/abseil-cpp/absl/functional:any_invocable",
      "//third_party/abseil-cpp/absl/hash",
      "//third_party/abseil-cpp/absl/strings:string_view",
    ]
  }

  if (rtc_include_tests) {
    rtc_cc_test("assembler_unittest") {
      sources = [ "assembler_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api:sequence_checker",
        "../../../api/transport/rtp:dependency_descriptor",
        "../../../api/units:time_delta",
        "../../../api/units:timestamp",
        "../../../api/video:encoded_frame",
        "../../../logging:rtc_event_log_parser",
        "../../../modules/rtp_rtcp:rtp_rtcp_format",
        "../../../rtc_base:macromagic",
        "../../../test:test_support",
        "test",
      ]
    }

    rtc_cc_test("decodability_simulator_unittest") {
      sources = [ "decodability_simulator_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api/numerics",
        "../../../api/units:data_size",
        "../../../api/units:time_delta",
        "../../../api/units:timestamp",
        "../../../logging:rtc_event_log_parser",
        "../../../test:test_support",
        "test",
        "//third_party/abseil-cpp/absl/algorithm:container",
      ]
      data = VIDEO_TIMING_SIMULATOR_TEST_RESOURCES
      if (is_ios) {
        deps += [ "test:video_timing_simulator_test_resources_bundle_data" ]
      }
    }

    rtc_cc_test("decodability_tracker_unittest") {
      sources = [ "decodability_tracker_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api:sequence_checker",
        "../../../api/video:encoded_frame",
        "../../../rtc_base:macromagic",
        "../../../test:test_support",
        "test",
      ]
    }

    rtc_cc_test("frame_base_unittest") {
      sources = [ "frame_base_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api/units:time_delta",
        "../../../api/units:timestamp",
        "../../../test:test_support",
      ]
    }

    rtc_cc_test("log_classifiers_unittest") {
      sources = [ "log_classifiers_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../logging:rtc_event_log_parser",
        "../../../test:test_support",
        "test",
      ]
    }

    rtc_cc_test("receiver_unittest") {
      sources = [ "receiver_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api:sequence_checker",
        "../../../modules/rtp_rtcp",
        "../../../modules/rtp_rtcp:rtp_rtcp_format",
        "../../../rtc_base:macromagic",
        "../../../test:test_support",
        "test",
      ]
    }

    rtc_cc_test("rendering_simulator_unittest") {
      sources = [ "rendering_simulator_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api/numerics",
        "../../../api/units:data_size",
        "../../../api/units:time_delta",
        "../../../api/units:timestamp",
        "../../../logging:rtc_event_log_parser",
        "../../../test:test_support",
        "test",
        "//third_party/abseil-cpp/absl/algorithm:container",
        "//third_party/abseil-cpp/absl/strings:string_view",
      ]
      data = VIDEO_TIMING_SIMULATOR_TEST_RESOURCES
      if (is_ios) {
        deps += [ "test:video_timing_simulator_test_resources_bundle_data" ]
      }
    }

    rtc_cc_test("rendering_tracker_unittest") {
      sources = [ "rendering_tracker_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api:sequence_checker",
        "../../../api/units:time_delta",
        "../../../api/video:encoded_frame",
        "../../../api/video:video_frame",
        "../../../modules/video_coding/timing:timing_module",
        "../../../rtc_base:macromagic",
        "../../../test:test_support",
        "test",
      ]
    }

    rtc_cc_test("results_base_unittest") {
      sources = [ "results_base_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../test:test_support",
      ]
    }

    rtc_cc_test("rtc_event_log_driver_unittest") {
      sources = [ "rtc_event_log_driver_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api/environment",
        "../../../api/units:time_delta",
        "../../../api/units:timestamp",
        "../../../logging:rtc_event_log_parser",
        "../../../modules/rtp_rtcp",
        "../../../modules/rtp_rtcp:ntp_time_util",
        "../../../modules/rtp_rtcp:rtp_rtcp_format",
        "../../../rtc_base:checks",
        "../../../system_wrappers",
        "../../../test:test_support",
        "test",
        "//third_party/abseil-cpp/absl/strings:string_view",
      ]
    }

    rtc_cc_test("rtcp_rtt_calculator_unittest") {
      sources = [ "rtcp_rtt_calculator_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api/units:time_delta",
        "../../../api/units:timestamp",
        "../../../modules/rtp_rtcp",
        "../../../modules/rtp_rtcp:ntp_time_util",
        "../../../modules/rtp_rtcp:rtp_rtcp_format",
        "../../../system_wrappers",
        "../../../test:near_matcher",
        "../../../test:test_support",
      ]
    }

    rtc_cc_test("rtp_packet_simulator_unittest") {
      sources = [ "rtp_packet_simulator_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api:rtp_headers",
        "../../../api/environment",
        "../../../api/units:timestamp",
        "../../../logging:rtc_event_rtp_rtcp",
        "../../../modules/rtp_rtcp",
        "../../../modules/rtp_rtcp:rtp_rtcp_format",
        "../../../system_wrappers",
        "../../../test:create_test_environment",
        "../../../test:test_support",
      ]
    }

    rtc_cc_test("rtt_simulator_unittest") {
      sources = [ "rtt_simulator_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api:sequence_checker",
        "../../../api/units:time_delta",
        "../../../api/units:timestamp",
        "../../../logging:rtc_event_rtp_rtcp",
        "../../../modules/rtp_rtcp",
        "../../../modules/rtp_rtcp:ntp_time_util",
        "../../../modules/rtp_rtcp:rtp_rtcp_format",
        "../../../system_wrappers",
        "../../../test:test_support",
        "test",
      ]
    }

    rtc_cc_test("stream_base_unittest") {
      sources = [ "stream_base_unittest.cc" ]
      deps = [
        ":simulator",
        "../../../api/numerics",
        "../../../api/units:data_size",
        "../../../api/units:time_delta",
        "../../../api/units:timestamp",
        "../../../test:test_support",
      ]
    }
  }
}
