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("alr_experiment") {
12  sources = [
13    "alr_experiment.cc",
14    "alr_experiment.h",
15  ]
16  deps = [
17    "../:rtc_base_approved",
18    "../../api/transport:field_trial_based_config",
19    "../../api/transport:webrtc_key_value_config",
20  ]
21  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
22}
23
24rtc_library("field_trial_parser") {
25  sources = [
26    "field_trial_list.cc",
27    "field_trial_list.h",
28    "field_trial_parser.cc",
29    "field_trial_parser.h",
30    "field_trial_units.cc",
31    "field_trial_units.h",
32    "struct_parameters_parser.cc",
33    "struct_parameters_parser.h",
34  ]
35  deps = [
36    "../../api/units:data_rate",
37    "../../api/units:data_size",
38    "../../api/units:time_delta",
39    "../../rtc_base:checks",
40    "../../rtc_base:logging",
41    "../../rtc_base:safe_conversions",
42    "../../rtc_base:stringutils",
43  ]
44  absl_deps = [
45    "//third_party/abseil-cpp/absl/memory",
46    "//third_party/abseil-cpp/absl/strings:strings",
47    "//third_party/abseil-cpp/absl/types:optional",
48  ]
49}
50
51rtc_library("quality_rampup_experiment") {
52  sources = [
53    "quality_rampup_experiment.cc",
54    "quality_rampup_experiment.h",
55  ]
56  deps = [
57    ":field_trial_parser",
58    "../:rtc_base_approved",
59    "../../api/transport:field_trial_based_config",
60    "../../api/transport:webrtc_key_value_config",
61    "../../system_wrappers:field_trial",
62  ]
63  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
64}
65
66rtc_library("quality_scaler_settings") {
67  sources = [
68    "quality_scaler_settings.cc",
69    "quality_scaler_settings.h",
70  ]
71  deps = [
72    ":field_trial_parser",
73    "../:rtc_base_approved",
74    "../../api/transport:field_trial_based_config",
75    "../../api/transport:webrtc_key_value_config",
76    "../../system_wrappers:field_trial",
77  ]
78  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
79}
80
81rtc_library("quality_scaling_experiment") {
82  sources = [
83    "quality_scaling_experiment.cc",
84    "quality_scaling_experiment.h",
85  ]
86  deps = [
87    "../:rtc_base_approved",
88    "../../api/video_codecs:video_codecs_api",
89    "../../system_wrappers:field_trial",
90  ]
91  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
92}
93
94rtc_library("normalize_simulcast_size_experiment") {
95  sources = [
96    "normalize_simulcast_size_experiment.cc",
97    "normalize_simulcast_size_experiment.h",
98  ]
99  deps = [
100    "../:rtc_base_approved",
101    "../../system_wrappers:field_trial",
102  ]
103  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
104}
105
106rtc_library("balanced_degradation_settings") {
107  sources = [
108    "balanced_degradation_settings.cc",
109    "balanced_degradation_settings.h",
110  ]
111  deps = [
112    ":field_trial_parser",
113    "../:rtc_base_approved",
114    "../../api/video_codecs:video_codecs_api",
115    "../../system_wrappers:field_trial",
116  ]
117  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
118}
119
120rtc_library("cpu_speed_experiment") {
121  sources = [
122    "cpu_speed_experiment.cc",
123    "cpu_speed_experiment.h",
124  ]
125  deps = [
126    "../:rtc_base_approved",
127    "../../system_wrappers:field_trial",
128  ]
129  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
130}
131
132rtc_library("rtt_mult_experiment") {
133  sources = [
134    "rtt_mult_experiment.cc",
135    "rtt_mult_experiment.h",
136  ]
137  deps = [
138    "../:rtc_base_approved",
139    "../../system_wrappers:field_trial",
140  ]
141  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
142}
143
144rtc_library("jitter_upper_bound_experiment") {
145  sources = [
146    "jitter_upper_bound_experiment.cc",
147    "jitter_upper_bound_experiment.h",
148  ]
149  deps = [
150    "../:rtc_base_approved",
151    "../../system_wrappers:field_trial",
152  ]
153  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
154}
155
156rtc_library("rate_control_settings") {
157  sources = [
158    "rate_control_settings.cc",
159    "rate_control_settings.h",
160  ]
161  deps = [
162    ":field_trial_parser",
163    "../:rtc_base_approved",
164    "../../api/transport:field_trial_based_config",
165    "../../api/transport:webrtc_key_value_config",
166    "../../api/units:data_size",
167    "../../api/video_codecs:video_codecs_api",
168    "../../system_wrappers:field_trial",
169  ]
170  absl_deps = [
171    "//third_party/abseil-cpp/absl/strings",
172    "//third_party/abseil-cpp/absl/types:optional",
173  ]
174}
175
176rtc_library("keyframe_interval_settings_experiment") {
177  sources = [
178    "keyframe_interval_settings.cc",
179    "keyframe_interval_settings.h",
180  ]
181  deps = [
182    ":field_trial_parser",
183    "../../api/transport:field_trial_based_config",
184    "../../api/transport:webrtc_key_value_config",
185  ]
186  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
187}
188
189rtc_library("stable_target_rate_experiment") {
190  sources = [
191    "stable_target_rate_experiment.cc",
192    "stable_target_rate_experiment.h",
193  ]
194  deps = [
195    ":field_trial_parser",
196    ":rate_control_settings",
197    "../../api/transport:field_trial_based_config",
198    "../../api/transport:webrtc_key_value_config",
199  ]
200  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
201}
202
203rtc_library("min_video_bitrate_experiment") {
204  sources = [
205    "min_video_bitrate_experiment.cc",
206    "min_video_bitrate_experiment.h",
207  ]
208  deps = [
209    ":field_trial_parser",
210    "../../api/units:data_rate",
211    "../../api/video:video_frame",
212    "../../rtc_base:checks",
213    "../../rtc_base:logging",
214    "../../system_wrappers:field_trial",
215  ]
216  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
217}
218
219if (rtc_include_tests) {
220  rtc_library("experiments_unittests") {
221    testonly = true
222
223    sources = [
224      "balanced_degradation_settings_unittest.cc",
225      "cpu_speed_experiment_unittest.cc",
226      "field_trial_list_unittest.cc",
227      "field_trial_parser_unittest.cc",
228      "field_trial_units_unittest.cc",
229      "keyframe_interval_settings_unittest.cc",
230      "min_video_bitrate_experiment_unittest.cc",
231      "normalize_simulcast_size_experiment_unittest.cc",
232      "quality_rampup_experiment_unittest.cc",
233      "quality_scaler_settings_unittest.cc",
234      "quality_scaling_experiment_unittest.cc",
235      "rate_control_settings_unittest.cc",
236      "rtt_mult_experiment_unittest.cc",
237      "stable_target_rate_experiment_unittest.cc",
238      "struct_parameters_parser_unittest.cc",
239    ]
240    deps = [
241      ":balanced_degradation_settings",
242      ":cpu_speed_experiment",
243      ":field_trial_parser",
244      ":keyframe_interval_settings_experiment",
245      ":min_video_bitrate_experiment",
246      ":normalize_simulcast_size_experiment",
247      ":quality_rampup_experiment",
248      ":quality_scaler_settings",
249      ":quality_scaling_experiment",
250      ":rate_control_settings",
251      ":rtt_mult_experiment",
252      ":stable_target_rate_experiment",
253      "..:gunit_helpers",
254      "../:rtc_base_tests_utils",
255      "../../api/units:data_rate",
256      "../../api/video:video_frame",
257      "../../api/video_codecs:video_codecs_api",
258      "../../system_wrappers:field_trial",
259      "../../test:field_trial",
260      "../../test:test_main",
261      "../../test:test_support",
262    ]
263    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
264  }
265}
266