blob: 21c445d3452d5b3f84ad0464000feb0afc8dc452 [file]
# 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",
]
}
}
}