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 "paced_sender.cc", 21 "paced_sender.h", 22 "pacing_controller.cc", 23 "pacing_controller.h", 24 "packet_router.cc", 25 "packet_router.h", 26 "round_robin_packet_queue.cc", 27 "round_robin_packet_queue.h", 28 "rtp_packet_pacer.h", 29 "task_queue_paced_sender.cc", 30 "task_queue_paced_sender.h", 31 ] 32 33 deps = [ 34 ":interval_budget", 35 "..:module_api", 36 "../../api:function_view", 37 "../../api/rtc_event_log", 38 "../../api/task_queue:task_queue", 39 "../../api/transport:field_trial_based_config", 40 "../../api/transport:network_control", 41 "../../api/transport:webrtc_key_value_config", 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:rtc_base_approved", 50 "../../rtc_base:rtc_task_queue", 51 "../../rtc_base/experiments:field_trial_parser", 52 "../../rtc_base/synchronization:mutex", 53 "../../rtc_base/synchronization:sequence_checker", 54 "../../rtc_base/task_utils:to_queued_task", 55 "../../system_wrappers", 56 "../../system_wrappers:metrics", 57 "../remote_bitrate_estimator", 58 "../rtp_rtcp", 59 "../rtp_rtcp:rtp_rtcp_format", 60 "../utility", 61 ] 62 absl_deps = [ 63 "//third_party/abseil-cpp/absl/memory", 64 "//third_party/abseil-cpp/absl/strings", 65 "//third_party/abseil-cpp/absl/types:optional", 66 ] 67} 68 69rtc_library("interval_budget") { 70 sources = [ 71 "interval_budget.cc", 72 "interval_budget.h", 73 ] 74 75 deps = [ 76 "../../rtc_base:checks", 77 "../../rtc_base:rtc_base_approved", 78 ] 79} 80 81if (rtc_include_tests) { 82 rtc_library("pacing_unittests") { 83 testonly = true 84 85 sources = [ 86 "bitrate_prober_unittest.cc", 87 "interval_budget_unittest.cc", 88 "paced_sender_unittest.cc", 89 "pacing_controller_unittest.cc", 90 "packet_router_unittest.cc", 91 "task_queue_paced_sender_unittest.cc", 92 ] 93 deps = [ 94 ":interval_budget", 95 ":pacing", 96 "../../api/units:data_rate", 97 "../../api/units:time_delta", 98 "../../modules/utility:mock_process_thread", 99 "../../rtc_base:checks", 100 "../../rtc_base:rtc_base_approved", 101 "../../rtc_base:rtc_base_tests_utils", 102 "../../rtc_base/experiments:alr_experiment", 103 "../../system_wrappers", 104 "../../system_wrappers:field_trial", 105 "../../test:explicit_key_value_config", 106 "../../test:field_trial", 107 "../../test:test_support", 108 "../../test/time_controller:time_controller", 109 "../rtp_rtcp", 110 "../rtp_rtcp:mock_rtp_rtcp", 111 "../rtp_rtcp:rtp_rtcp_format", 112 ] 113 } 114} 115