# 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("pacing") { # Client code SHOULD NOT USE THIS TARGET, but for now it needs to be public # because there exists client code that uses it. # TODO(bugs.webrtc.org/9808): Move to private visibility as soon as that # client code gets updated. visibility = [ "*" ] sources = [ "bitrate_prober.cc", "bitrate_prober.h", "pacing_controller.cc", "pacing_controller.h", "packet_router.cc", "packet_router.h", "prioritized_packet_queue.cc", "prioritized_packet_queue.h", "rtp_packet_pacer.h", "task_queue_paced_sender.cc", "task_queue_paced_sender.h", ] deps = [ ":interval_budget", "../../api:field_trials_view", "../../api:field_trials_view", "../../api:function_view", "../../api:sequence_checker", "../../api/rtc_event_log", "../../api/task_queue:pending_task_safety_flag", "../../api/task_queue:task_queue", "../../api/transport:field_trial_based_config", "../../api/transport:network_control", "../../api/units:data_rate", "../../api/units:data_size", "../../api/units:time_delta", "../../api/units:timestamp", "../../logging:rtc_event_bwe", "../../logging:rtc_event_pacing", "../../rtc_base:checks", "../../rtc_base:event_tracer", "../../rtc_base:logging", "../../rtc_base:macromagic", "../../rtc_base:rtc_numerics", "../../rtc_base:rtc_task_queue", "../../rtc_base:timeutils", "../../rtc_base/experiments:field_trial_parser", "../../rtc_base/synchronization:mutex", "../../rtc_base/system:unused", "../../system_wrappers", "../../system_wrappers:metrics", "../rtp_rtcp", "../rtp_rtcp:rtp_rtcp_format", "../utility:utility", ] absl_deps = [ "//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_library("interval_budget") { sources = [ "interval_budget.cc", "interval_budget.h", ] deps = [ "../../rtc_base:checks", "../../rtc_base:safe_conversions", ] } if (rtc_include_tests) { rtc_library("pacing_unittests") { testonly = true sources = [ "bitrate_prober_unittest.cc", "interval_budget_unittest.cc", "pacing_controller_unittest.cc", "packet_router_unittest.cc", "prioritized_packet_queue_unittest.cc", "task_queue_paced_sender_unittest.cc", ] deps = [ ":interval_budget", ":pacing", "../../api/task_queue:task_queue", "../../api/transport:network_control", "../../api/units:data_rate", "../../api/units:time_delta", "../../api/units:timestamp", "../../rtc_base:checks", "../../rtc_base:rtc_base_tests_utils", "../../rtc_base/experiments:alr_experiment", "../../system_wrappers", "../../test:explicit_key_value_config", "../../test:scoped_key_value_config", "../../test:test_support", "../../test/time_controller:time_controller", "../rtp_rtcp", "../rtp_rtcp:mock_rtp_rtcp", "../rtp_rtcp:rtp_rtcp_format", ] absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ] } }