blob: ac5840a5edde9c7b3940c9c42dbd44b5e68b04eb [file] [log] [blame]
Erik Språngd7ee76c2019-08-02 16:32:24 +02001/*
2 * Copyright (c) 2019 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "rtc_base/experiments/experimental_screenshare_settings.h"
12
13#include "api/transport/field_trial_based_config.h"
14
15namespace webrtc {
16
17namespace {
18constexpr char kFieldTrialName[] = "WebRTC-ExperimentalScreenshareSettings";
19} // namespace
20
21ExperimentalScreenshareSettings::ExperimentalScreenshareSettings(
22 const WebRtcKeyValueConfig* key_value_config)
23 : max_qp_("max_qp"),
24 default_tl_in_base_layer_("default_tl_in_base_layer"),
25 base_layer_max_bitrate_("base_layer_max_bitrate"),
26 top_layer_max_bitrate("top_layer_max_bitrate") {
27 ParseFieldTrial({&max_qp_, &default_tl_in_base_layer_,
28 &base_layer_max_bitrate_, &top_layer_max_bitrate},
29 key_value_config->Lookup(kFieldTrialName));
30}
31
32ExperimentalScreenshareSettings
33ExperimentalScreenshareSettings::ParseFromFieldTrials() {
34 FieldTrialBasedConfig field_trial_config;
35 return ExperimentalScreenshareSettings(&field_trial_config);
36}
37
38absl::optional<int> ExperimentalScreenshareSettings::MaxQp() const {
39 return max_qp_.GetOptional();
40}
41
42absl::optional<bool> ExperimentalScreenshareSettings::DefaultTlInBaseLayer()
43 const {
44 return default_tl_in_base_layer_.GetOptional();
45}
46
47absl::optional<int> ExperimentalScreenshareSettings::BaseLayerMaxBitrate()
48 const {
49 return base_layer_max_bitrate_.GetOptional();
50}
51
52absl::optional<int> ExperimentalScreenshareSettings::TopLayerMaxBitrate()
53 const {
54 return top_layer_max_bitrate.GetOptional();
55}
56
57} // namespace webrtc