[go: up one dir, main page]

Add feature flag to control IAudioClient3 support on Windows

This will allow an easy way to enable or disable IAudioClient3 support.

(cherry picked from commit 6109ef51e5f2a4b018a920470e547da46da72159)

Bug: 972579
Change-Id: Ie6658c7c8ef0a002b339b29988df478991078ee3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651727
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Commit-Queue: Olga Sharonova <olka@chromium.org>
Reviewed-by: Olga Sharonova <olka@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#667598}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1660658
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/branch-heads/3809@{#329}
Cr-Branched-From: d82dec1a818f378c464ba307ddd9c92133eac355-refs/heads/master@{#665002}
diff --git a/media/audio/audio_features.cc b/media/audio/audio_features.cc
index e5fdc299..a36d1fc 100644
--- a/media/audio/audio_features.cc
+++ b/media/audio/audio_features.cc
@@ -28,4 +28,8 @@
                                           base::FEATURE_DISABLED_BY_DEFAULT};
 #endif
 
+#if defined(OS_WIN)
+const base::Feature kAllowIAudioClient3{"AllowIAudioClient3",
+                                        base::FEATURE_ENABLED_BY_DEFAULT};
+#endif
 }  // namespace features
diff --git a/media/audio/audio_features.h b/media/audio/audio_features.h
index 70e228d..b219d86 100644
--- a/media/audio/audio_features.h
+++ b/media/audio/audio_features.h
@@ -23,6 +23,10 @@
 MEDIA_EXPORT extern const base::Feature kForceEnableSystemAec;
 #endif
 
+#if defined(OS_WIN)
+MEDIA_EXPORT extern const base::Feature kAllowIAudioClient3;
+#endif
+
 }  // namespace features
 
 #endif  // MEDIA_AUDIO_AUDIO_FEATURES_H_
diff --git a/media/audio/win/core_audio_util_win.cc b/media/audio/win/core_audio_util_win.cc
index addae7d..04ab5e3 100644
--- a/media/audio/win/core_audio_util_win.cc
+++ b/media/audio/win/core_audio_util_win.cc
@@ -24,6 +24,7 @@
 #include "base/win/scoped_variant.h"
 #include "base/win/windows_version.h"
 #include "media/audio/audio_device_description.h"
+#include "media/audio/audio_features.h"
 #include "media/base/media_switches.h"
 
 using Microsoft::WRL::ComPtr;
@@ -313,7 +314,8 @@
 }
 
 bool IAudioClient3IsSupported() {
-  return CoreAudioUtil::GetIAudioClientVersion() >= 3;
+  return base::FeatureList::IsEnabled(features::kAllowIAudioClient3) &&
+         CoreAudioUtil::GetIAudioClientVersion() >= 3;
 }
 
 std::string GetDeviceID(IMMDevice* device) {