blob: af943df78fbb828f83c0a0cf6af1728ab2505a64 [file] [log] [blame]
Alex Loiko4bb1e4a2018-10-05 09:06:141/*
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 10:03:0113#include <stdio.h>
Alex Loiko4bb1e4a2018-10-05 09:06:1414#include <string>
15
16#include "system_wrappers/include/field_trial.h"
17
18namespace webrtc {
19
20float GetInitialSaturationMarginDb() {
21 constexpr char kForceInitialSaturationMarginFieldTrial[] =
22 "WebRTC-Audio-Agc2ForceInitialSaturationMargin";
23
24 const bool use_forced_initial_saturation_margin =
25 webrtc::field_trial::IsEnabled(kForceInitialSaturationMarginFieldTrial);
26 if (use_forced_initial_saturation_margin) {
27 const std::string field_trial_string = webrtc::field_trial::FindFullName(
28 kForceInitialSaturationMarginFieldTrial);
29 float margin_db = -1;
30 if (sscanf(field_trial_string.c_str(), "Enabled-%f", &margin_db) == 1 &&
31 margin_db >= 12.f && margin_db <= 25.f) {
32 return margin_db;
33 }
34 }
35 constexpr float kDefaultInitialSaturationMarginDb = 20.f;
36 return kDefaultInitialSaturationMarginDb;
37}
38
39float GetExtraSaturationMarginOffsetDb() {
40 constexpr char kForceExtraSaturationMarginFieldTrial[] =
41 "WebRTC-Audio-Agc2ForceExtraSaturationMargin";
42
43 const bool use_forced_extra_saturation_margin =
44 webrtc::field_trial::IsEnabled(kForceExtraSaturationMarginFieldTrial);
45 if (use_forced_extra_saturation_margin) {
46 const std::string field_trial_string = webrtc::field_trial::FindFullName(
47 kForceExtraSaturationMarginFieldTrial);
48 float margin_db = -1;
49 if (sscanf(field_trial_string.c_str(), "Enabled-%f", &margin_db) == 1 &&
50 margin_db >= 0.f && margin_db <= 10.f) {
51 return margin_db;
52 }
53 }
54 constexpr float kDefaultExtraSaturationMarginDb = 2.f;
55 return kDefaultExtraSaturationMarginDb;
56}
57}; // namespace webrtc