1# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2# 3# Use of this source code is governed by a BSD-style license 4# that can be found in the LICENSE file in the root of the source 5# tree. An additional intellectual property rights grant can be found 6# in the file PATENTS. All contributing project authors may 7# be found in the AUTHORS file in the root of the source tree. 8 9import("../../webrtc.gni") 10 11rtc_library("pacing") { 12 # Client code SHOULD NOT USE THIS TARGET, but for now it needs to be public 13 # because there exists client code that uses it. 14 # TODO(bugs.webrtc.org/9808): Move to private visibility as soon as that 15 # client code gets updated. 16 visibility = [ "*" ] 17 sources = [ 18 "bitrate_prober.cc", 19 "bitrate_prober.h", 20 "pacing_controller.cc", 21 "pacing_controller.h", 22 "packet_router.cc", 23 "packet_router.h", 24 "prioritized_packet_queue.cc", 25 "prioritized_packet_queue.h", 26 "rtp_packet_pacer.h", 27 "task_queue_paced_sender.cc", 28 "task_queue_paced_sender.h", 29 ] 30 31 deps = [ 32 ":interval_budget", 33 "../../api:field_trials_view", 34 "../../api:field_trials_view", 35 "../../api:function_view", 36 "../../api:sequence_checker", 37 "../../api/rtc_event_log", 38 "../../api/task_queue:pending_task_safety_flag", 39 "../../api/task_queue:task_queue", 40 "../../api/transport:field_trial_based_config", 41 "../../api/transport:network_control", 42 "../../api/units:data_rate", 43 "../../api/units:data_size", 44 "../../api/units:time_delta", 45 "../../api/units:timestamp", 46 "../../logging:rtc_event_bwe", 47 "../../logging:rtc_event_pacing", 48 "../../rtc_base:checks", 49 "../../rtc_base:event_tracer", 50 "../../rtc_base:logging", 51 "../../rtc_base:macromagic", 52 "../../rtc_base:rtc_numerics", 53 "../../rtc_base:rtc_task_queue", 54 "../../rtc_base:timeutils", 55 "../../rtc_base/experiments:field_trial_parser", 56 "../../rtc_base/synchronization:mutex", 57 "../../rtc_base/system:unused", 58 "../../system_wrappers", 59 "../../system_wrappers:metrics", 60 "../rtp_rtcp", 61 "../rtp_rtcp:rtp_rtcp_format", 62 "../utility:utility", 63 ] 64 absl_deps = [ 65 "//third_party/abseil-cpp/absl/memory", 66 "//third_party/abseil-cpp/absl/strings", 67 "//third_party/abseil-cpp/absl/types:optional", 68 ] 69} 70 71rtc_library("interval_budget") { 72 sources = [ 73 "interval_budget.cc", 74 "interval_budget.h", 75 ] 76 77 deps = [ 78 "../../rtc_base:checks", 79 "../../rtc_base:safe_conversions", 80 ] 81} 82 83if (rtc_include_tests) { 84 rtc_library("pacing_unittests") { 85 testonly = true 86 87 sources = [ 88 "bitrate_prober_unittest.cc", 89 "interval_budget_unittest.cc", 90 "pacing_controller_unittest.cc", 91 "packet_router_unittest.cc", 92 "prioritized_packet_queue_unittest.cc", 93 "task_queue_paced_sender_unittest.cc", 94 ] 95 deps = [ 96 ":interval_budget", 97 ":pacing", 98 "../../api/task_queue:task_queue", 99 "../../api/transport:network_control", 100 "../../api/units:data_rate", 101 "../../api/units:time_delta", 102 "../../api/units:timestamp", 103 "../../rtc_base:checks", 104 "../../rtc_base:rtc_base_tests_utils", 105 "../../rtc_base/experiments:alr_experiment", 106 "../../system_wrappers", 107 "../../test:explicit_key_value_config", 108 "../../test:scoped_key_value_config", 109 "../../test:test_support", 110 "../../test/time_controller:time_controller", 111 "../rtp_rtcp", 112 "../rtp_rtcp:mock_rtp_rtcp", 113 "../rtp_rtcp:rtp_rtcp_format", 114 ] 115 absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ] 116 } 117} 118