blob: c014934c0c961b31a570886c1ab8fc43a5c2eddb [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
kjellanderb62dbbe2016-09-23 00:38:52 -070011rtc_static_library("congestion_controller") {
Stefan Holmer80e12072016-02-23 13:30:42 +010012 sources = [
Olga Sharonova44e57be2017-12-20 13:13:32 +000013 "acknowledged_bitrate_estimator.cc",
14 "acknowledged_bitrate_estimator.h",
15 "bitrate_estimator.cc",
16 "bitrate_estimator.h",
17 "delay_based_bwe.cc",
18 "delay_based_bwe.h",
nisse559af382017-03-21 06:41:12 -070019 "include/receive_side_congestion_controller.h",
20 "include/send_side_congestion_controller.h",
Olga Sharonova44e57be2017-12-20 13:13:32 +000021 "median_slope_estimator.cc",
22 "median_slope_estimator.h",
23 "probe_bitrate_estimator.cc",
24 "probe_bitrate_estimator.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",
Olga Sharonova44e57be2017-12-20 13:13:32 +000031 "trendline_estimator.cc",
32 "trendline_estimator.h",
Stefan Holmer80e12072016-02-23 13:30:42 +010033 ]
34
Olga Sharonova44e57be2017-12-20 13:13:32 +000035 if (rtc_enable_bwe_test_logging) {
36 defines = [ "BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=1" ]
37 } else {
38 defines = [ "BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=0" ]
39 }
40
41 # TODO(jschuh): Bug 1348: fix this warning.
42 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
43
kjellandere40a7ee2016-10-16 23:56:12 -070044 if (!build_with_chromium && is_clang) {
45 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -070046 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
Stefan Holmer80e12072016-02-23 13:30:42 +010047 }
48
49 deps = [
mbonadei1140f972017-04-26 03:38:35 -070050 "..:module_api",
mbonadei49f465f2016-12-28 04:43:46 -080051 "../..:webrtc_common",
Olga Sharonova44e57be2017-12-20 13:13:32 +000052 "../../:typedefs",
53 "../../api:optional",
54 "../../logging:rtc_event_log_api",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010055 "../../rtc_base:checks",
56 "../../rtc_base:rate_limiter",
ehmaldonadof6a861a2017-07-19 10:40:47 -070057 "../../rtc_base:rtc_base",
Olga Sharonova44e57be2017-12-20 13:13:32 +000058 "../../rtc_base:rtc_base_approved",
59 "../../rtc_base:rtc_numerics",
mbonadei49f465f2016-12-28 04:43:46 -080060 "../../system_wrappers",
Mirko Bonadeia498ae82017-12-06 09:17:14 +010061 "../../system_wrappers:field_trial_api",
62 "../../system_wrappers:metrics_api",
Stefan Holmer80e12072016-02-23 13:30:42 +010063 "../bitrate_controller",
64 "../pacing",
mbonadei49f465f2016-12-28 04:43:46 -080065 "../remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +010066 "../rtp_rtcp:rtp_rtcp_format",
Olga Sharonova44e57be2017-12-20 13:13:32 +000067 "../utility",
Stefan Holmer80e12072016-02-23 13:30:42 +010068 ]
69}
ehmaldonado36268652017-01-19 08:27:11 -080070
71if (rtc_include_tests) {
72 rtc_source_set("congestion_controller_unittests") {
73 testonly = true
kjellandere0629c02017-04-25 04:04:50 -070074
ehmaldonado36268652017-01-19 08:27:11 -080075 sources = [
tschumim9d117642017-07-17 01:41:41 -070076 "acknowledged_bitrate_estimator_unittest.cc",
elad.alon5bbf43f2017-03-09 06:40:08 -080077 "congestion_controller_unittests_helper.cc",
78 "congestion_controller_unittests_helper.h",
ehmaldonado36268652017-01-19 08:27:11 -080079 "delay_based_bwe_unittest.cc",
80 "delay_based_bwe_unittest_helper.cc",
81 "delay_based_bwe_unittest_helper.h",
82 "median_slope_estimator_unittest.cc",
83 "probe_bitrate_estimator_unittest.cc",
84 "probe_controller_unittest.cc",
Niels Möller245f17e2017-08-21 10:45:07 +020085 "receive_side_congestion_controller_unittest.cc",
86 "send_side_congestion_controller_unittest.cc",
ehmaldonado36268652017-01-19 08:27:11 -080087 "transport_feedback_adapter_unittest.cc",
88 "trendline_estimator_unittest.cc",
89 ]
90 deps = [
91 ":congestion_controller",
zstein7cb69d52017-05-08 11:52:38 -070092 ":mock_congestion_controller",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010093 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -070094 "../../rtc_base:rtc_base",
95 "../../rtc_base:rtc_base_approved",
96 "../../rtc_base:rtc_base_tests_utils",
Mirko Bonadeia498ae82017-12-06 09:17:14 +010097 "../../system_wrappers",
ehmaldonado36268652017-01-19 08:27:11 -080098 "../../test:field_trial",
99 "../../test:test_support",
100 "../bitrate_controller:bitrate_controller",
mbonadei334f9e62017-09-04 04:57:11 -0700101 "../pacing:mock_paced_sender",
ehmaldonado36268652017-01-19 08:27:11 -0800102 "../pacing:pacing",
103 "../remote_bitrate_estimator:remote_bitrate_estimator",
Mirko Bonadeib5728d92017-12-06 07:51:33 +0100104 "../rtp_rtcp:rtp_rtcp_format",
ehmaldonado36268652017-01-19 08:27:11 -0800105 "//testing/gmock",
106 ]
107 if (!build_with_chromium && is_clang) {
108 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
109 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
110 }
111 }
zstein7cb69d52017-05-08 11:52:38 -0700112
113 rtc_source_set("mock_congestion_controller") {
114 testonly = true
115 sources = [
116 "include/mock/mock_congestion_observer.h",
117 "include/mock/mock_send_side_congestion_controller.h",
118 ]
119 deps = [
120 ":congestion_controller",
121 "../../test:test_support",
122 ]
123 }
ehmaldonado36268652017-01-19 08:27:11 -0800124}