blob: 87866896b3e66f5553c76b0ef686625742027d76 [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",
Ying Wang0810a7c2019-04-10 13:48:24 +020033 "../../..:webrtc_common",
34 "../../../api:network_state_predictor_api",
Danil Chapovalov83bbe912019-08-07 12:24:53 +020035 "../../../api/rtc_event_log",
Sebastian Jansson95edb032019-01-17 16:24:12 +010036 "../../../api/transport:field_trial_based_config",
Sebastian Janssonc6c44262018-05-09 10:33:39 +020037 "../../../api/transport:network_control",
Sebastian Jansson95edb032019-01-17 16:24:12 +010038 "../../../api/transport:webrtc_key_value_config",
Yves Gerey3e707812018-11-28 16:47:49 +010039 "../../../api/units:data_rate",
40 "../../../api/units:data_size",
41 "../../../api/units:time_delta",
42 "../../../api/units:timestamp",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010043 "../../../logging:rtc_event_pacing",
44 "../../../rtc_base:checks",
Sebastian Jansson2c796482019-02-26 15:43:44 +010045 "../../../rtc_base:logging",
46 "../../../rtc_base:macromagic",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010047 "../../../rtc_base/experiments:alr_experiment",
Sebastian Jansson57606322018-09-10 18:27:21 +020048 "../../../rtc_base/experiments:field_trial_parser",
Erik Språng71215642019-01-21 16:30:55 +010049 "../../../rtc_base/experiments:rate_control_settings",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010050 "../../../system_wrappers",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010051 "../../bitrate_controller",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +010052 "../../remote_bitrate_estimator",
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 = [
Danil Chapovalov83bbe912019-08-07 12:24:53 +020091 "../../../api/rtc_event_log",
Per Kjellander5b698732019-04-15 12:36:33 +020092 "../../../api/transport:field_trial_based_config",
Sebastian Jansson95edb032019-01-17 16:24:12 +010093 "../../../api/transport:webrtc_key_value_config",
Sebastian Janssonf9f49a32018-06-25 17:56:08 +020094 "../../../logging:rtc_event_log_api",
95 "../../../logging:rtc_event_pacing",
96 "../../../rtc_base:checks",
Sebastian Jansson2c796482019-02-26 15:43:44 +010097 "../../../rtc_base:safe_conversions",
Sebastian Jansson7db3bb92019-03-25 10:17:00 +010098 "../../../rtc_base:timeutils",
Sebastian Janssonf9f49a32018-06-25 17:56:08 +020099 "../../../rtc_base/experiments:alr_experiment",
Per Kjellandera7caaf02019-04-29 13:51:52 +0200100 "../../../rtc_base/experiments:field_trial_parser",
Sebastian Janssonf9f49a32018-06-25 17:56:08 +0200101 "../../pacing:interval_budget",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200102 "//third_party/abseil-cpp/absl/memory",
Sebastian Janssonf9f49a32018-06-25 17:56:08 +0200103 "//third_party/abseil-cpp/absl/types:optional",
104 ]
105}
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100106rtc_source_set("estimators") {
107 configs += [ ":bwe_test_logging" ]
108 sources = [
109 "acknowledged_bitrate_estimator.cc",
110 "acknowledged_bitrate_estimator.h",
111 "bitrate_estimator.cc",
112 "bitrate_estimator.h",
113 "delay_increase_detector_interface.h",
114 "median_slope_estimator.cc",
115 "median_slope_estimator.h",
116 "probe_bitrate_estimator.cc",
117 "probe_bitrate_estimator.h",
118 "trendline_estimator.cc",
119 "trendline_estimator.h",
120 ]
121
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100122 deps = [
Ying Wang0810a7c2019-04-10 13:48:24 +0200123 "../../../api:network_state_predictor_api",
Danil Chapovalov83bbe912019-08-07 12:24:53 +0200124 "../../../api/rtc_event_log",
Sebastian Jansson88290ae2019-06-20 12:26:31 +0200125 "../../../api/transport:network_control",
Sebastian Jansson95edb032019-01-17 16:24:12 +0100126 "../../../api/transport:webrtc_key_value_config",
Sebastian Janssonb6787bc2018-11-19 18:01:17 +0100127 "../../../api/units:data_rate",
Sebastian Jansson88290ae2019-06-20 12:26:31 +0200128 "../../../api/units:timestamp",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100129 "../../../logging:rtc_event_bwe",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100130 "../../../rtc_base:checks",
Sebastian Jansson2c796482019-02-26 15:43:44 +0100131 "../../../rtc_base:logging",
132 "../../../rtc_base:macromagic",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100133 "../../../rtc_base:rtc_numerics",
Sebastian Jansson2c796482019-02-26 15:43:44 +0100134 "../../../rtc_base:safe_conversions",
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100135 "../../../rtc_base:safe_minmax",
Sebastian Janssonda0222b2018-12-21 14:14:43 +0100136 "../../../rtc_base/experiments:field_trial_parser",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100137 "../../remote_bitrate_estimator",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200138 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0040b662018-06-18 10:48:16 +0200139 "//third_party/abseil-cpp/absl/types:optional",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100140 ]
141}
142
143rtc_source_set("delay_based_bwe") {
144 configs += [ ":bwe_test_logging" ]
145 sources = [
146 "delay_based_bwe.cc",
147 "delay_based_bwe.h",
148 ]
149
150 deps = [
151 ":estimators",
Ying Wang0810a7c2019-04-10 13:48:24 +0200152 "../../../api:network_state_predictor_api",
Danil Chapovalov83bbe912019-08-07 12:24:53 +0200153 "../../../api/rtc_event_log",
Yves Gerey988cc082018-10-23 12:03:01 +0200154 "../../../api/transport:network_control",
Sebastian Jansson88290ae2019-06-20 12:26:31 +0200155 "../../../api/transport:network_control",
Sebastian Jansson95edb032019-01-17 16:24:12 +0100156 "../../../api/transport:webrtc_key_value_config",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100157 "../../../logging:rtc_event_bwe",
158 "../../../logging:rtc_event_log_api",
159 "../../../rtc_base:checks",
160 "../../../rtc_base:rtc_base_approved",
Sebastian Janssonda0222b2018-12-21 14:14:43 +0100161 "../../../rtc_base/experiments:field_trial_parser",
Mirko Bonadei17f48782018-09-28 08:51:10 +0200162 "../../../system_wrappers:metrics",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100163 "../../pacing",
164 "../../remote_bitrate_estimator",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200165 "//third_party/abseil-cpp/absl/memory",
Yves Gerey988cc082018-10-23 12:03:01 +0200166 "//third_party/abseil-cpp/absl/types:optional",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100167 ]
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100168}
169
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200170rtc_source_set("probe_controller") {
171 sources = [
172 "probe_controller.cc",
173 "probe_controller.h",
174 ]
175
176 deps = [
Danil Chapovalov83bbe912019-08-07 12:24:53 +0200177 "../../../api/rtc_event_log",
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200178 "../../../api/transport:network_control",
Sebastian Jansson95edb032019-01-17 16:24:12 +0100179 "../../../api/transport:webrtc_key_value_config",
Yves Gerey3e707812018-11-28 16:47:49 +0100180 "../../../api/units:data_rate",
181 "../../../api/units:time_delta",
182 "../../../api/units:timestamp",
Piotr (Peter) Slatalac39f4622019-02-15 07:38:04 -0800183 "../../../logging:rtc_event_bwe",
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200184 "../../../logging:rtc_event_pacing",
185 "../../../rtc_base:checks",
Sebastian Jansson2c796482019-02-26 15:43:44 +0100186 "../../../rtc_base:logging",
187 "../../../rtc_base:macromagic",
188 "../../../rtc_base:safe_conversions",
Jonas Olssone0960042019-03-12 13:49:26 +0100189 "../../../rtc_base/experiments:field_trial_parser",
Sebastian Janssonda2ec402018-08-02 16:27:28 +0200190 "../../../rtc_base/system:unused",
Mirko Bonadei17f48782018-09-28 08:51:10 +0200191 "../../../system_wrappers:metrics",
Artem Titov533a9fe2019-03-21 12:18:05 +0100192 "//third_party/abseil-cpp/absl/memory",
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200193 "//third_party/abseil-cpp/absl/types:optional",
194 ]
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200195}
196
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100197if (rtc_include_tests) {
Sebastian Jansson13171bd2018-07-03 18:11:45 +0200198 rtc_source_set("test_goog_cc_printer") {
199 testonly = true
200 sources = [
201 "test/goog_cc_printer.cc",
202 "test/goog_cc_printer.h",
203 ]
204 deps = [
Yves Gerey3e707812018-11-28 16:47:49 +0100205 ":alr_detector",
206 ":delay_based_bwe",
Sebastian Janssond0e0ec92018-09-04 18:55:14 +0200207 ":estimators",
Sebastian Jansson13171bd2018-07-03 18:11:45 +0200208 ":goog_cc",
Danil Chapovalov83bbe912019-08-07 12:24:53 +0200209 "../../../api/rtc_event_log",
Sebastian Janssonc87b8c12018-10-09 19:02:03 +0200210 "../../../api/transport:goog_cc",
Yves Gerey3e707812018-11-28 16:47:49 +0100211 "../../../api/transport:network_control",
212 "../../../api/units:timestamp",
Yves Gerey3e707812018-11-28 16:47:49 +0100213 "../../../rtc_base:checks",
Sebastian Jansson871ac422019-05-17 17:53:44 +0200214 "../../../test/logging:log_writer",
Artem Titov94b57c02019-03-21 13:35:10 +0100215 "../../remote_bitrate_estimator",
Yves Gerey3e707812018-11-28 16:47:49 +0100216 "//third_party/abseil-cpp/absl/types:optional",
Sebastian Jansson13171bd2018-07-03 18:11:45 +0200217 ]
218 }
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100219 rtc_source_set("goog_cc_unittests") {
220 testonly = true
221
222 sources = [
223 "acknowledged_bitrate_estimator_unittest.cc",
224 "alr_detector_unittest.cc",
Sebastian Jansson3bdbc842018-10-11 15:02:12 +0200225 "congestion_window_pushback_controller_unittest.cc",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100226 "delay_based_bwe_unittest.cc",
227 "delay_based_bwe_unittest_helper.cc",
228 "delay_based_bwe_unittest_helper.h",
Sebastian Jansson34ee4192018-08-30 14:57:40 +0200229 "goog_cc_network_control_unittest.cc",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100230 "median_slope_estimator_unittest.cc",
231 "probe_bitrate_estimator_unittest.cc",
232 "probe_controller_unittest.cc",
233 "trendline_estimator_unittest.cc",
234 ]
235 deps = [
Sebastian Janssonf9f49a32018-06-25 17:56:08 +0200236 ":alr_detector",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100237 ":delay_based_bwe",
238 ":estimators",
239 ":goog_cc",
Sebastian Janssonb2ecc3d2018-07-13 17:22:01 +0200240 ":probe_controller",
Sebastian Jansson3bdbc842018-10-11 15:02:12 +0200241 ":pushback_controller",
Sebastian Jansson95edb032019-01-17 16:24:12 +0100242 "../../../api/transport:field_trial_based_config",
Sebastian Janssonc87b8c12018-10-09 19:02:03 +0200243 "../../../api/transport:goog_cc",
Sebastian Janssonc6c44262018-05-09 10:33:39 +0200244 "../../../api/transport:network_control",
245 "../../../api/transport:network_control_test",
Sebastian Jansson95edb032019-01-17 16:24:12 +0100246 "../../../api/transport:webrtc_key_value_config",
Yves Gerey3e707812018-11-28 16:47:49 +0100247 "../../../api/units:data_rate",
248 "../../../api/units:timestamp",
Sebastian Jansson34ee4192018-08-30 14:57:40 +0200249 "../../../logging:mocks",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100250 "../../../rtc_base:checks",
251 "../../../rtc_base:rtc_base_approved",
252 "../../../rtc_base:rtc_base_tests_utils",
253 "../../../rtc_base/experiments:alr_experiment",
254 "../../../system_wrappers",
255 "../../../test:field_trial",
256 "../../../test:test_support",
Sebastian Jansson71a091e2018-09-27 19:08:21 +0200257 "../../../test/scenario",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100258 "../../pacing",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100259 "//testing/gmock",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200260 "//third_party/abseil-cpp/absl/memory",
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100261 ]
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100262 }
Sebastian Jansson449c1c02018-10-22 17:18:46 +0200263
Sebastian Janssonebd94f62019-04-03 13:38:15 +0200264 # TODO(srte): Remove this target when dependency in root BUILD is gone.
265 rtc_source_set("goog_cc_slow_tests") {
Sebastian Jansson449c1c02018-10-22 17:18:46 +0200266 }
Sebastian Janssonfc7ec8e2018-02-28 16:48:00 +0100267}