// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "media/webrtc/webrtc_features.h" #include "base/command_line.h" #include "base/metrics/field_trial_params.h" #include "build/build_config.h" #include "third_party/webrtc/modules/audio_processing/include/audio_processing.h" namespace features { // When enabled we will tell WebRTC that we want to use the 0Hz mode of the // DirectX and GDI based DesktopCapturers in combination with sharing the screen // or a separate window. In this mode, only frames with new content will be sent // to the client leading to to 0fps for a static source. A special flag called // kWebRtcAllowWgcZeroHz is used to specify the support when using the WGC // capture API. // This flag has no effect if kWebRtcAllowWgcDesktopCapturer is enabled. Use // kWebRtcAllowWgcZeroHz for WGC. BASE_FEATURE(…); // When enabled we will tell WebRTC that we want to use the // Windows.Graphics.Capture API based screen capturer, if it is available. BASE_FEATURE(…); // When enabled we will tell WebRTC that we want to use the // Windows.Graphics.Capture API based window capturer, if it is available. BASE_FEATURE(…); // When enabled we will tell WebRTC that we want to use the 0Hz mode of the // Windows.Graphics.Capture API based {Screen/Window} capturer, if the WGC // capturer is available and enabled. In this mode, only frames with new content // will be sent to the client leading to to 0fps for a static {Screen/Window} // source. // This flag only has an effect if kWebRtcAllowWgcScreenCapturer is enabled. BASE_FEATURE(…); // This flag only has an effect if kWebRtcAllowWgcWindowCapturer is enabled. BASE_FEATURE(…); // TODO(crbug.com/40872787): Deactivate the flag gradually before deleting it. // When disabled, any WebRTC Audio Processing Module input volume recommendation // is ignored and no adjustment takes place. BASE_FEATURE(…); // When enabled, overrides the Audio Processing Module parameter that controls // how multi-channel capture audio is downmixed to mono (when downmixing is // needed). BASE_FEATURE(…); // When enabled, the Audio Processing Module is used to determine whether the // playout reference is needed. Otherwise the decision is based on // `media::AudioProcessingSettings`. BASE_FEATURE(…); // When enabled, allow H.265 codec to be used for sending WebRTC streams. // Platform hardware H.265 encoder needs to be supported and enabled in order to // negotiate usage of H.265 in SDP in the direction of sending. BASE_FEATURE(…); // When enabled, allow H.265 codec to be used for receiving WebRTC streams. // Platform hardware H.265 decoder needs to be supported and enabled in order to // negotiate usage of H.265 in SDP in the direction of receiving. BASE_FEATURE(…); #if BUILDFLAG(IS_ANDROID) // Kill-switch for using 48 kHz as sample rate for Audio Processing Module // processing on Android. When enabled, enforces a 16 kHz sample rate for audio // processing on Android. BASE_FEATURE(kWebRtcApm48kHzSampleRateOnAndroidKillSwitch, "WebRtcApm48kHzSampleRateOnAndroidKillSwitch", base::FEATURE_DISABLED_BY_DEFAULT); #endif } // namespace features