• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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