blob: 46c304765854a995c92f8563607fcd522b9b7e9e [file] [log] [blame]
Stefan Holmer80e12072016-02-23 13:30:42 +01001# 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
mbonadei9aa3f0a2017-01-24 06:58:22 -08009import("../../webrtc.gni")
Stefan Holmer80e12072016-02-23 13:30:42 +010010
Patrik Höglund76134542018-01-02 09:15:05 +010011config("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
kjellanderb62dbbe2016-09-23 00:38:52 -070019rtc_static_library("congestion_controller") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000020 visibility = [ "*" ]
Patrik Höglund76134542018-01-02 09:15:05 +010021 configs += [ ":bwe_test_logging" ]
Stefan Holmer80e12072016-02-23 13:30:42 +010022 sources = [
nisse559af382017-03-21 06:41:12 -070023 "include/receive_side_congestion_controller.h",
24 "include/send_side_congestion_controller.h",
Irfan Sheriffb2540bb2016-09-12 12:28:54 -070025 "probe_controller.cc",
26 "probe_controller.h",
nisse559af382017-03-21 06:41:12 -070027 "receive_side_congestion_controller.cc",
28 "send_side_congestion_controller.cc",
Stefan Holmer280de9e2016-09-30 10:06:51 +020029 "transport_feedback_adapter.cc",
30 "transport_feedback_adapter.h",
Stefan Holmer80e12072016-02-23 13:30:42 +010031 ]
32
Olga Sharonova44e57be2017-12-20 13:13:32 +000033 # TODO(jschuh): Bug 1348: fix this warning.
34 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
35
kjellandere40a7ee2016-10-16 23:56:12 -070036 if (!build_with_chromium && is_clang) {
37 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -070038 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
Stefan Holmer80e12072016-02-23 13:30:42 +010039 }
40
41 deps = [
Patrik Höglund76134542018-01-02 09:15:05 +010042 ":delay_based_bwe",
43 ":estimators",
mbonadei1140f972017-04-26 03:38:35 -070044 "..:module_api",
mbonadei49f465f2016-12-28 04:43:46 -080045 "../..:webrtc_common",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010046 "../../rtc_base:checks",
47 "../../rtc_base:rate_limiter",
ehmaldonadof6a861a2017-07-19 10:40:47 -070048 "../../rtc_base:rtc_base",
mbonadei49f465f2016-12-28 04:43:46 -080049 "../../system_wrappers",
Mirko Bonadeia498ae82017-12-06 09:17:14 +010050 "../../system_wrappers:field_trial_api",
51 "../../system_wrappers:metrics_api",
Stefan Holmer80e12072016-02-23 13:30:42 +010052 "../bitrate_controller",
53 "../pacing",
mbonadei49f465f2016-12-28 04:43:46 -080054 "../remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +010055 "../rtp_rtcp:rtp_rtcp_format",
Stefan Holmer80e12072016-02-23 13:30:42 +010056 ]
57}
ehmaldonado36268652017-01-19 08:27:11 -080058
Patrik Höglund76134542018-01-02 09:15:05 +010059rtc_source_set("estimators") {
60 configs += [ ":bwe_test_logging" ]
61 sources = [
62 "acknowledged_bitrate_estimator.cc",
63 "acknowledged_bitrate_estimator.h",
64 "bitrate_estimator.cc",
65 "bitrate_estimator.h",
66 "median_slope_estimator.cc",
67 "median_slope_estimator.h",
68 "probe_bitrate_estimator.cc",
69 "probe_bitrate_estimator.h",
70 "trendline_estimator.cc",
71 "trendline_estimator.h",
72 ]
73
74 # TODO(jschuh): Bug 1348: fix this warning.
75 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
76
77 if (!build_with_chromium && is_clang) {
78 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
79 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
80 }
81
82 deps = [
83 "../../api:optional",
84 "../../logging:rtc_event_log_api",
85 "../../rtc_base:checks",
86 "../../rtc_base:rtc_base_approved",
87 "../../rtc_base:rtc_numerics",
88 "../../system_wrappers:field_trial_api",
89 "../../system_wrappers:metrics_api",
90 "../remote_bitrate_estimator:remote_bitrate_estimator",
91 "../rtp_rtcp:rtp_rtcp_format",
92 ]
93}
94
95rtc_source_set("delay_based_bwe") {
96 configs += [ ":bwe_test_logging" ]
97 sources = [
98 "delay_based_bwe.cc",
99 "delay_based_bwe.h",
100 ]
101 deps = [
102 ":estimators",
103 "../../:typedefs",
104 "../../logging:rtc_event_log_api",
105 "../../rtc_base:checks",
106 "../../rtc_base:rtc_base_approved",
107 "../../system_wrappers:field_trial_api",
108 "../../system_wrappers:metrics_api",
109 "../pacing",
110 "../remote_bitrate_estimator",
111 ]
112
113 if (!build_with_chromium && is_clang) {
114 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
115 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
116 }
117}
118
ehmaldonado36268652017-01-19 08:27:11 -0800119if (rtc_include_tests) {
120 rtc_source_set("congestion_controller_unittests") {
121 testonly = true
kjellandere0629c02017-04-25 04:04:50 -0700122
ehmaldonado36268652017-01-19 08:27:11 -0800123 sources = [
tschumim9d117642017-07-17 01:41:41 -0700124 "acknowledged_bitrate_estimator_unittest.cc",
elad.alon5bbf43f2017-03-09 06:40:08 -0800125 "congestion_controller_unittests_helper.cc",
126 "congestion_controller_unittests_helper.h",
ehmaldonado36268652017-01-19 08:27:11 -0800127 "delay_based_bwe_unittest.cc",
128 "delay_based_bwe_unittest_helper.cc",
129 "delay_based_bwe_unittest_helper.h",
130 "median_slope_estimator_unittest.cc",
131 "probe_bitrate_estimator_unittest.cc",
132 "probe_controller_unittest.cc",
Niels Möller245f17e2017-08-21 10:45:07 +0200133 "receive_side_congestion_controller_unittest.cc",
134 "send_side_congestion_controller_unittest.cc",
ehmaldonado36268652017-01-19 08:27:11 -0800135 "transport_feedback_adapter_unittest.cc",
136 "trendline_estimator_unittest.cc",
137 ]
138 deps = [
139 ":congestion_controller",
Patrik Höglund76134542018-01-02 09:15:05 +0100140 ":delay_based_bwe",
141 ":estimators",
zstein7cb69d52017-05-08 11:52:38 -0700142 ":mock_congestion_controller",
Patrik Höglund731082c2018-01-03 09:08:20 +0100143 "../../logging:mocks",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100144 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -0700145 "../../rtc_base:rtc_base",
146 "../../rtc_base:rtc_base_approved",
147 "../../rtc_base:rtc_base_tests_utils",
Mirko Bonadeia498ae82017-12-06 09:17:14 +0100148 "../../system_wrappers",
ehmaldonado36268652017-01-19 08:27:11 -0800149 "../../test:field_trial",
150 "../../test:test_support",
151 "../bitrate_controller:bitrate_controller",
Patrik Höglund94dc1772018-01-02 14:20:17 +0100152 "../bitrate_controller:mocks",
mbonadei334f9e62017-09-04 04:57:11 -0700153 "../pacing:mock_paced_sender",
ehmaldonado36268652017-01-19 08:27:11 -0800154 "../pacing:pacing",
155 "../remote_bitrate_estimator:remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100156 "../rtp_rtcp:rtp_rtcp_format",
ehmaldonado36268652017-01-19 08:27:11 -0800157 "//testing/gmock",
158 ]
159 if (!build_with_chromium && is_clang) {
160 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
161 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
162 }
163 }
zstein7cb69d52017-05-08 11:52:38 -0700164
165 rtc_source_set("mock_congestion_controller") {
166 testonly = true
167 sources = [
168 "include/mock/mock_congestion_observer.h",
169 "include/mock/mock_send_side_congestion_controller.h",
170 ]
171 deps = [
172 ":congestion_controller",
173 "../../test:test_support",
174 ]
175 }
ehmaldonado36268652017-01-19 08:27:11 -0800176}