xref: /aosp_15_r20/external/webrtc/modules/congestion_controller/pcc/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# Copyright (c) 2018 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("pcc") {
12  sources = [
13    "pcc_factory.cc",
14    "pcc_factory.h",
15  ]
16  deps = [
17    ":pcc_controller",
18    "../../../api/transport:network_control",
19    "../../../api/units:time_delta",
20  ]
21}
22
23rtc_library("pcc_controller") {
24  sources = [
25    "pcc_network_controller.cc",
26    "pcc_network_controller.h",
27  ]
28  deps = [
29    ":bitrate_controller",
30    ":monitor_interval",
31    ":rtt_tracker",
32    "../../../api/transport:network_control",
33    "../../../api/units:data_rate",
34    "../../../api/units:data_size",
35    "../../../api/units:time_delta",
36    "../../../api/units:timestamp",
37    "../../../rtc_base:checks",
38    "../../../rtc_base:random",
39  ]
40  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
41}
42
43rtc_library("monitor_interval") {
44  sources = [
45    "monitor_interval.cc",
46    "monitor_interval.h",
47  ]
48  deps = [
49    "../../../api/transport:network_control",
50    "../../../api/units:data_rate",
51    "../../../api/units:data_size",
52    "../../../api/units:time_delta",
53    "../../../api/units:timestamp",
54    "../../../rtc_base:logging",
55  ]
56}
57
58rtc_library("rtt_tracker") {
59  sources = [
60    "rtt_tracker.cc",
61    "rtt_tracker.h",
62  ]
63  deps = [
64    "../../../api/transport:network_control",
65    "../../../api/units:time_delta",
66    "../../../api/units:timestamp",
67  ]
68}
69
70rtc_library("utility_function") {
71  sources = [
72    "utility_function.cc",
73    "utility_function.h",
74  ]
75  deps = [
76    ":monitor_interval",
77    "../../../api/transport:network_control",
78    "../../../api/units:data_rate",
79    "../../../rtc_base:checks",
80  ]
81}
82
83rtc_library("bitrate_controller") {
84  sources = [
85    "bitrate_controller.cc",
86    "bitrate_controller.h",
87  ]
88  deps = [
89    ":monitor_interval",
90    ":utility_function",
91    "../../../api/transport:network_control",
92    "../../../api/units:data_rate",
93  ]
94  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
95}
96
97if (rtc_include_tests && !build_with_chromium) {
98  rtc_library("pcc_unittests") {
99    testonly = true
100    sources = [
101      "bitrate_controller_unittest.cc",
102      "monitor_interval_unittest.cc",
103      "pcc_network_controller_unittest.cc",
104      "rtt_tracker_unittest.cc",
105      "utility_function_unittest.cc",
106    ]
107    deps = [
108      ":bitrate_controller",
109      ":monitor_interval",
110      ":pcc",
111      ":pcc_controller",
112      ":rtt_tracker",
113      ":utility_function",
114      "../../../api/transport:network_control",
115      "../../../api/units:data_rate",
116      "../../../api/units:data_size",
117      "../../../api/units:time_delta",
118      "../../../api/units:timestamp",
119      "../../../test:test_support",
120      "../../../test/scenario",
121    ]
122  }
123}
124