blob: 3f697d12ac84cd3eb7821b56fa0474944c8b274a [file] [log] [blame]
Alex Loiko4bb1e4a2018-10-05 11:06:14 +02001/*
2 * Copyright (c) 2018 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 "modules/audio_processing/agc2/agc2_common.h"
12
Yves Gerey988cc082018-10-23 12:03:01 +020013#include <stdio.h>
Jonas Olssona4d87372019-07-05 19:08:33 +020014
Alex Loiko4bb1e4a2018-10-05 11:06:14 +020015#include <string>
16
17#include "system_wrappers/include/field_trial.h"
18
19namespace webrtc {
20
21float GetInitialSaturationMarginDb() {
22 constexpr char kForceInitialSaturationMarginFieldTrial[] =
23 "WebRTC-Audio-Agc2ForceInitialSaturationMargin";
24
25 const bool use_forced_initial_saturation_margin =
26 webrtc::field_trial::IsEnabled(kForceInitialSaturationMarginFieldTrial);
27 if (use_forced_initial_saturation_margin) {
28 const std::string field_trial_string = webrtc::field_trial::FindFullName(
29 kForceInitialSaturationMarginFieldTrial);
30 float margin_db = -1;
31 if (sscanf(field_trial_string.c_str(), "Enabled-%f", &margin_db) == 1 &&
32 margin_db >= 12.f && margin_db <= 25.f) {
33 return margin_db;
34 }
35 }
36 constexpr float kDefaultInitialSaturationMarginDb = 20.f;
37 return kDefaultInitialSaturationMarginDb;
38}
39
40float GetExtraSaturationMarginOffsetDb() {
41 constexpr char kForceExtraSaturationMarginFieldTrial[] =
42 "WebRTC-Audio-Agc2ForceExtraSaturationMargin";
43
44 const bool use_forced_extra_saturation_margin =
45 webrtc::field_trial::IsEnabled(kForceExtraSaturationMarginFieldTrial);
46 if (use_forced_extra_saturation_margin) {
47 const std::string field_trial_string = webrtc::field_trial::FindFullName(
48 kForceExtraSaturationMarginFieldTrial);
49 float margin_db = -1;
50 if (sscanf(field_trial_string.c_str(), "Enabled-%f", &margin_db) == 1 &&
51 margin_db >= 0.f && margin_db <= 10.f) {
52 return margin_db;
53 }
54 }
55 constexpr float kDefaultExtraSaturationMarginDb = 2.f;
56 return kDefaultExtraSaturationMarginDb;
57}
Nico Weber22f99252019-02-20 10:13:16 -050058} // namespace webrtc