blob: 5d744ada33bc63aebd60e3bae63055daeca5f04a [file] [log] [blame]
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +01001# 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
11config("bwe_test_logging") {
12 if (rtc_enable_bwe_test_logging) {
13 defines = [ "BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=1" ]
14 } else {
15 defines = [ "BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=0" ]
16 }
17}
18
19rtc_static_library("goog_cc") {
Mirko Bonadei50cfab72018-09-06 15:03:52 +020020 configs += [ ":bwe_test_logging" ]
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010021 sources = [
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010022 "goog_cc_network_control.cc",
23 "goog_cc_network_control.h",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010024 ]
25
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010026 deps = [
Sebastian Janssonf9f49a32018-06-25 17:56:08 +020027 ":alr_detector",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010028 ":delay_based_bwe",
29 ":estimators",
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +020030 ":probe_controller",
Sebastian Jansson3bdbc842018-10-11 15:02:12 +020031 ":pushback_controller",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010032 "../..:module_api",
33 "../../..:webrtc_common",
Sebastian Jansson95edb032019-01-17 16:24:12 +010034 "../../../api/transport:field_trial_based_config",
Sebastian Janssonc6c44262018-05-09 10:33:39 +020035 "../../../api/transport:network_control",
Sebastian Jansson95edb032019-01-17 16:24:12 +010036 "../../../api/transport:webrtc_key_value_config",
Yves Gerey3e707812018-11-28 16:47:49 +010037 "../../../api/units:data_rate",
38 "../../../api/units:data_size",
39 "../../../api/units:time_delta",
40 "../../../api/units:timestamp",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010041 "../../../logging:rtc_event_log_api",
42 "../../../logging:rtc_event_pacing",
43 "../../../rtc_base:checks",
Sebastian Jansson2c796482019-02-26 15:43:44 +010044 "../../../rtc_base:logging",
45 "../../../rtc_base:macromagic",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010046 "../../../rtc_base/experiments:alr_experiment",
Sebastian Jansson57606322018-09-10 18:27:21 +020047 "../../../rtc_base/experiments:field_trial_parser",
Erik Språng71215642019-01-21 16:30:55 +010048 "../../../rtc_base/experiments:rate_control_settings",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010049 "../../../system_wrappers",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010050 "../../bitrate_controller",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010051 "../../remote_bitrate_estimator",
52 "../../rtp_rtcp:rtp_rtcp_format",
Karl Wiberg918f50c2018-07-05 11:40:33 +020053 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0040b662018-06-18 10:48:16 +020054 "//third_party/abseil-cpp/absl/types:optional",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010055 ]
56}
57
Sebastian Jansson051251f2018-11-29 18:36:42 +010058rtc_source_set("link_capacity_estimator") {
59 sources = [
60 "link_capacity_estimator.cc",
61 "link_capacity_estimator.h",
62 ]
63 deps = [
64 "../../../api/units:data_rate",
65 "../../../rtc_base:safe_minmax",
66 "//third_party/abseil-cpp/absl/types:optional",
67 ]
68}
69
Sebastian Jansson3bdbc842018-10-11 15:02:12 +020070rtc_source_set("pushback_controller") {
71 sources = [
72 "congestion_window_pushback_controller.cc",
73 "congestion_window_pushback_controller.h",
74 ]
75 deps = [
76 "../../../api/transport:network_control",
Sebastian Jansson95edb032019-01-17 16:24:12 +010077 "../../../api/transport:webrtc_key_value_config",
Yves Gerey3e707812018-11-28 16:47:49 +010078 "../../../api/units:data_size",
Sebastian Jansson3bdbc842018-10-11 15:02:12 +020079 "../../../rtc_base:checks",
Erik Språng71215642019-01-21 16:30:55 +010080 "../../../rtc_base/experiments:rate_control_settings",
Sebastian Jansson3bdbc842018-10-11 15:02:12 +020081 "//third_party/abseil-cpp/absl/types:optional",
82 ]
83}
84
Sebastian Janssonf9f49a32018-06-25 17:56:08 +020085rtc_source_set("alr_detector") {
86 sources = [
87 "alr_detector.cc",
88 "alr_detector.h",
89 ]
Sebastian Janssonf9f49a32018-06-25 17:56:08 +020090 deps = [
91 "../../..:webrtc_common",
Sebastian Jansson95edb032019-01-17 16:24:12 +010092 "../../../api/transport:webrtc_key_value_config",
Sebastian Janssonf9f49a32018-06-25 17:56:08 +020093 "../../../logging:rtc_event_log_api",
94 "../../../logging:rtc_event_pacing",
95 "../../../rtc_base:checks",
Sebastian Jansson2c796482019-02-26 15:43:44 +010096 "../../../rtc_base:safe_conversions",
Sebastian Jansson7db3bb92019-03-25 10:17:00 +010097 "../../../rtc_base:timeutils",
Sebastian Janssonf9f49a32018-06-25 17:56:08 +020098 "../../../rtc_base/experiments:alr_experiment",
Sebastian Janssonf9f49a32018-06-25 17:56:08 +020099 "../../pacing:interval_budget",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200100 "//third_party/abseil-cpp/absl/memory",
Sebastian Janssonf9f49a32018-06-25 17:56:08 +0200101 "//third_party/abseil-cpp/absl/types:optional",
102 ]
103}
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100104rtc_source_set("estimators") {
105 configs += [ ":bwe_test_logging" ]
106 sources = [
107 "acknowledged_bitrate_estimator.cc",
108 "acknowledged_bitrate_estimator.h",
109 "bitrate_estimator.cc",
110 "bitrate_estimator.h",
111 "delay_increase_detector_interface.h",
112 "median_slope_estimator.cc",
113 "median_slope_estimator.h",
114 "probe_bitrate_estimator.cc",
115 "probe_bitrate_estimator.h",
116 "trendline_estimator.cc",
117 "trendline_estimator.h",
118 ]
119
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100120 deps = [
Sebastian Jansson95edb032019-01-17 16:24:12 +0100121 "../../../api/transport:webrtc_key_value_config",
Sebastian Janssonb6787bc2018-11-19 18:01:17 +0100122 "../../../api/units:data_rate",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100123 "../../../logging:rtc_event_bwe",
124 "../../../logging:rtc_event_log_api",
125 "../../../rtc_base:checks",
Sebastian Jansson2c796482019-02-26 15:43:44 +0100126 "../../../rtc_base:logging",
127 "../../../rtc_base:macromagic",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100128 "../../../rtc_base:rtc_numerics",
Sebastian Jansson2c796482019-02-26 15:43:44 +0100129 "../../../rtc_base:safe_conversions",
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100130 "../../../rtc_base:safe_minmax",
Sebastian Janssonda0222b2018-12-21 14:14:43 +0100131 "../../../rtc_base/experiments:field_trial_parser",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100132 "../../remote_bitrate_estimator",
133 "../../rtp_rtcp:rtp_rtcp_format",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200134 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0040b662018-06-18 10:48:16 +0200135 "//third_party/abseil-cpp/absl/types:optional",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100136 ]
137}
138
139rtc_source_set("delay_based_bwe") {
140 configs += [ ":bwe_test_logging" ]
141 sources = [
142 "delay_based_bwe.cc",
143 "delay_based_bwe.h",
144 ]
145
146 deps = [
147 ":estimators",
Yves Gerey988cc082018-10-23 12:03:01 +0200148 "../../../api/transport:network_control",
Sebastian Jansson95edb032019-01-17 16:24:12 +0100149 "../../../api/transport:webrtc_key_value_config",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100150 "../../../logging:rtc_event_bwe",
151 "../../../logging:rtc_event_log_api",
152 "../../../rtc_base:checks",
153 "../../../rtc_base:rtc_base_approved",
Sebastian Janssonda0222b2018-12-21 14:14:43 +0100154 "../../../rtc_base/experiments:field_trial_parser",
Mirko Bonadei17f48782018-09-28 08:51:10 +0200155 "../../../system_wrappers:metrics",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100156 "../../pacing",
157 "../../remote_bitrate_estimator",
Yves Gerey988cc082018-10-23 12:03:01 +0200158 "../../rtp_rtcp:rtp_rtcp_format",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200159 "//third_party/abseil-cpp/absl/memory",
Yves Gerey988cc082018-10-23 12:03:01 +0200160 "//third_party/abseil-cpp/absl/types:optional",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100161 ]
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100162}
163
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200164rtc_source_set("probe_controller") {
165 sources = [
166 "probe_controller.cc",
167 "probe_controller.h",
168 ]
169
170 deps = [
171 "../../../api/transport:network_control",
Sebastian Jansson95edb032019-01-17 16:24:12 +0100172 "../../../api/transport:webrtc_key_value_config",
Yves Gerey3e707812018-11-28 16:47:49 +0100173 "../../../api/units:data_rate",
174 "../../../api/units:time_delta",
175 "../../../api/units:timestamp",
Piotr (Peter) Slatalac39f4622019-02-15 07:38:04 -0800176 "../../../logging:rtc_event_bwe",
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200177 "../../../logging:rtc_event_log_api",
178 "../../../logging:rtc_event_pacing",
179 "../../../rtc_base:checks",
Sebastian Jansson2c796482019-02-26 15:43:44 +0100180 "../../../rtc_base:logging",
181 "../../../rtc_base:macromagic",
182 "../../../rtc_base:safe_conversions",
Jonas Olssone0960042019-03-12 13:49:26 +0100183 "../../../rtc_base/experiments:field_trial_parser",
Sebastian Janssonda2ec402018-08-02 16:27:28 +0200184 "../../../rtc_base/system:unused",
Mirko Bonadei17f48782018-09-28 08:51:10 +0200185 "../../../system_wrappers:metrics",
Artem Titov533a9fe2019-03-21 12:18:05 +0100186 "//third_party/abseil-cpp/absl/memory",
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200187 "//third_party/abseil-cpp/absl/types:optional",
188 ]
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200189}
190
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100191if (rtc_include_tests) {
Sebastian Jansson13171bd2018-07-03 18:11:45 +0200192 rtc_source_set("test_goog_cc_printer") {
193 testonly = true
194 sources = [
195 "test/goog_cc_printer.cc",
196 "test/goog_cc_printer.h",
197 ]
198 deps = [
Yves Gerey3e707812018-11-28 16:47:49 +0100199 ":alr_detector",
200 ":delay_based_bwe",
Sebastian Janssond0e0ec92018-09-04 18:55:14 +0200201 ":estimators",
Sebastian Jansson13171bd2018-07-03 18:11:45 +0200202 ":goog_cc",
203 "..:test_controller_printer",
Sebastian Janssonc87b8c12018-10-09 19:02:03 +0200204 "../../../api/transport:goog_cc",
Yves Gerey3e707812018-11-28 16:47:49 +0100205 "../../../api/transport:network_control",
206 "../../../api/units:timestamp",
207 "../../../logging:rtc_event_log_api",
208 "../../../rtc_base:checks",
Artem Titov94b57c02019-03-21 13:35:10 +0100209 "../../remote_bitrate_estimator",
Yves Gerey3e707812018-11-28 16:47:49 +0100210 "//third_party/abseil-cpp/absl/types:optional",
Sebastian Jansson13171bd2018-07-03 18:11:45 +0200211 ]
212 }
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100213 rtc_source_set("goog_cc_unittests") {
214 testonly = true
215
216 sources = [
217 "acknowledged_bitrate_estimator_unittest.cc",
218 "alr_detector_unittest.cc",
Sebastian Jansson3bdbc842018-10-11 15:02:12 +0200219 "congestion_window_pushback_controller_unittest.cc",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100220 "delay_based_bwe_unittest.cc",
221 "delay_based_bwe_unittest_helper.cc",
222 "delay_based_bwe_unittest_helper.h",
Sebastian Jansson34ee4192018-08-30 14:57:40 +0200223 "goog_cc_network_control_unittest.cc",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100224 "median_slope_estimator_unittest.cc",
225 "probe_bitrate_estimator_unittest.cc",
226 "probe_controller_unittest.cc",
227 "trendline_estimator_unittest.cc",
228 ]
229 deps = [
Sebastian Janssonf9f49a32018-06-25 17:56:08 +0200230 ":alr_detector",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100231 ":delay_based_bwe",
232 ":estimators",
233 ":goog_cc",
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200234 ":probe_controller",
Sebastian Jansson3bdbc842018-10-11 15:02:12 +0200235 ":pushback_controller",
Sebastian Jansson95edb032019-01-17 16:24:12 +0100236 "../../../api/transport:field_trial_based_config",
Sebastian Janssonc87b8c12018-10-09 19:02:03 +0200237 "../../../api/transport:goog_cc",
Sebastian Janssonc6c44262018-05-09 10:33:39 +0200238 "../../../api/transport:network_control",
239 "../../../api/transport:network_control_test",
Sebastian Jansson95edb032019-01-17 16:24:12 +0100240 "../../../api/transport:webrtc_key_value_config",
Yves Gerey3e707812018-11-28 16:47:49 +0100241 "../../../api/units:data_rate",
242 "../../../api/units:timestamp",
Sebastian Jansson34ee4192018-08-30 14:57:40 +0200243 "../../../logging:mocks",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100244 "../../../rtc_base:checks",
245 "../../../rtc_base:rtc_base_approved",
246 "../../../rtc_base:rtc_base_tests_utils",
247 "../../../rtc_base/experiments:alr_experiment",
248 "../../../system_wrappers",
249 "../../../test:field_trial",
250 "../../../test:test_support",
Sebastian Jansson71a091e2018-09-27 19:08:21 +0200251 "../../../test/scenario",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100252 "../../pacing",
253 "../../remote_bitrate_estimator",
254 "../../rtp_rtcp:rtp_rtcp_format",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100255 "//testing/gmock",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200256 "//third_party/abseil-cpp/absl/memory",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100257 ]
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100258 }
Sebastian Jansson449c1c02018-10-22 17:18:46 +0200259 rtc_source_set("goog_cc_slow_tests") {
260 testonly = true
261
262 sources = [
263 "goog_cc_network_control_slowtest.cc",
264 ]
Sebastian Jansson449c1c02018-10-22 17:18:46 +0200265 deps = [
266 ":alr_detector",
267 ":delay_based_bwe",
268 ":estimators",
269 ":goog_cc",
270 ":probe_controller",
271 ":pushback_controller",
272 "../../../api/transport:goog_cc",
273 "../../../api/transport:network_control",
274 "../../../api/transport:network_control_test",
Sebastian Jansson95edb032019-01-17 16:24:12 +0100275 "../../../api/transport:webrtc_key_value_config",
Sebastian Jansson449c1c02018-10-22 17:18:46 +0200276 "../../../logging:mocks",
277 "../../../rtc_base:checks",
278 "../../../rtc_base:rtc_base_approved",
Sebastian Jansson449c1c02018-10-22 17:18:46 +0200279 "../../../rtc_base/experiments:alr_experiment",
280 "../../../system_wrappers",
Sebastian Jansson449c1c02018-10-22 17:18:46 +0200281 "../../../test:field_trial",
282 "../../../test:test_support",
283 "../../../test/scenario",
284 "../../pacing",
285 "../../remote_bitrate_estimator",
286 "../../rtp_rtcp:rtp_rtcp_format",
287 "//testing/gmock",
288 "//third_party/abseil-cpp/absl/memory",
289 ]
290 }
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100291}