0

Add flag for per-stream device selection for Android AAudio streams

Bug: 405950045
Change-Id: If94956dc778a7220a32fe543836ac7b7d5596a5e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6432252
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Thomas Guilbert <tguilbert@chromium.org>
Commit-Queue: Maya Jelonkiewicz <mjel@google.com>
Cr-Commit-Position: refs/heads/main@{#1443978}
This commit is contained in:
Maya Jelonkiewicz
2025-04-08 01:08:55 -07:00
committed by Chromium LUCI CQ
parent ade5132fcc
commit 1359d8f642
7 changed files with 34 additions and 0 deletions

@ -11913,6 +11913,13 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(input::features::kInputOnViz)},
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_ANDROID)
{"aaudio-per-stream-device-selection",
flag_descriptions::kAAudioPerStreamDeviceSelectionName,
flag_descriptions::kAAudioPerStreamDeviceSelectionDescription, kOsAndroid,
FEATURE_VALUE_TYPE(features::kAAudioPerStreamDeviceSelection)}
#endif // BUILDFLAG(IS_ANDROID)
// Add new entries above this line.
// NOTE: Adding a new flag requires adding a corresponding entry to enum

@ -28,6 +28,11 @@
// flag-never-expire-list.json.
[
{
"name": "aaudio-per-stream-device-selection",
"owners": [ "mjel@google.com", "cros-web-apps-team@google.com" ],
"expiry_milestone": 150
},
{
"name": "accessible-pdf-form",
"owners": [ "bravi@microsoft.com", "mohitb@microsoft.com" ],

@ -4296,6 +4296,12 @@ const char kRewriterAPIForGeminiNanoDescription[] =
#if BUILDFLAG(IS_ANDROID)
const char kAAudioPerStreamDeviceSelectionName[] =
"AAudio per-stream device selection";
const char kAAudioPerStreamDeviceSelectionDescription[] =
"Enables per-stream device selection for AAudio streams. No effect on "
"versions of Android prior to Android Q.";
const char kAccessibilityDeprecateTypeAnnounceName[] =
"Accessibility Deprecate TYPE_ANNOUNCE";
const char kAccessibilityDeprecateTypeAnnounceDescription[] =

@ -2518,6 +2518,9 @@ extern const char kRewriterAPIForGeminiNanoDescription[];
#if BUILDFLAG(IS_ANDROID)
extern const char kAAudioPerStreamDeviceSelectionName[];
extern const char kAAudioPerStreamDeviceSelectionDescription[];
extern const char kAccessibilityDeprecateTypeAnnounceName[];
extern const char kAccessibilityDeprecateTypeAnnounceDescription[];
extern const char kAccessibilityIncludeLongClickActionName[];

@ -37,6 +37,16 @@ BASE_FEATURE(kUseAAudioDriver,
BASE_FEATURE(kUseAAudioInput,
"UseAAudioInput",
base::FEATURE_ENABLED_BY_DEFAULT);
// Enables selection of audio devices for each individual AAudio stream instead
// of using communication streams and managing the system-wide communication
// route. This is not fully reliable on all Android devices.
//
// Requires `UseAAudioDriver`, `UseAAudioInput`, and an Android API level >=
// `AAUDIO_MIN_API`, otherwise it will have no effect.
BASE_FEATURE(kAAudioPerStreamDeviceSelection,
"AAudioPerStreamDeviceSelection",
base::FEATURE_DISABLED_BY_DEFAULT);
#endif
} // namespace features

@ -14,6 +14,7 @@ namespace features {
#if BUILDFLAG(IS_ANDROID)
MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseAAudioDriver);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseAAudioInput);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kAAudioPerStreamDeviceSelection);
#endif
} // namespace features

@ -12435,6 +12435,7 @@ from previous Chrome versions.
<int value="-711890895" label="enable-website-settings-manager"/>
<int value="-711422585" label="kSignInProfileCreationEnterprise:disabled"/>
<int value="-710794209" label="PersonalizationJelly:enabled"/>
<int value="-710538344" label="AAudioPerStreamDeviceSelection:disabled"/>
<int value="-709058455" label="ui-slow-animations"/>
<int value="-708482536" label="Cormorant:disabled"/>
<int value="-707548346" label="MediaAppLens:enabled"/>
@ -15432,6 +15433,7 @@ from previous Chrome versions.
<int value="448463569" label="NewShortcutMapping:disabled"/>
<int value="449793694" label="OmniboxNumWebZpsRelatedSearches:disabled"/>
<int value="450440544" label="ShowKiteForSupervisedUsers:enabled"/>
<int value="451132705" label="AAudioPerStreamDeviceSelection:enabled"/>
<int value="451196246" label="disable-impl-side-painting"/>
<int value="452139294" label="VrShellExperimentalRendering:enabled"/>
<int value="452395990" label="EnablePixDetection:disabled"/>