| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "media/webrtc/webrtc_switches.h" |
| |
| #include "base/command_line.h" |
| #include "build/build_config.h" |
| |
| namespace switches { |
| |
| // Override the default minimum starting volume of the Automatic Gain Control |
| // algorithm in WebRTC used with audio tracks from getUserMedia. |
| // The valid range is 12-255. Values outside that range will be clamped |
| // to the lowest or highest valid value inside WebRTC. |
| // TODO(tommi): Remove this switch when crbug.com/555577 is fixed. |
| const char kAgcStartupMinVolume[] = "agc-startup-min-volume"; |
| |
| } // namespace switches |
| |
| namespace features { |
| |
| // Enables running WebRTC Audio Processing in the audio service, rather than |
| // in the renderer process. Should be combined with running the audio service |
| // out of the browser process, except for when testing locally. |
| const base::Feature kWebRtcApmInAudioService{"WebRtcApmInAudioService", |
| base::FEATURE_DISABLED_BY_DEFAULT}; |
| |
| // Enables multi channel capture audio to be processed without |
| // downmixing in the WebRTC audio processing module when running in the renderer |
| // process. |
| const base::Feature kWebRtcEnableCaptureMultiChannelApm{ |
| "WebRtcEnableCaptureMultiChannelApm", base::FEATURE_DISABLED_BY_DEFAULT}; |
| |
| // Enables the WebRTC Agc2 digital adaptation with WebRTC Agc1 analog |
| // adaptation. Feature for http://crbug.com/873650. Is sent to WebRTC. |
| const base::Feature kWebRtcHybridAgc{"WebRtcHybridAgc", |
| base::FEATURE_DISABLED_BY_DEFAULT}; |
| |
| } // namespace features |
| |
| namespace switches { |
| |
| const char kForceDisableWebRtcApmInAudioService[] = |
| "disable-webrtc-apm-in-audio-service"; |
| |
| } // namespace switches |
| |
| namespace media { |
| |
| bool IsWebRtcApmInAudioServiceEnabled() { |
| #if defined(OS_WIN) || defined(OS_MACOSX) || \ |
| (defined(OS_LINUX) && !defined(OS_CHROMEOS)) |
| return base::FeatureList::IsEnabled(features::kWebRtcApmInAudioService) && |
| !base::CommandLine::ForCurrentProcess()->HasSwitch( |
| switches::kForceDisableWebRtcApmInAudioService); |
| #else |
| return false; |
| #endif |
| } |
| |
| } // namespace media |