From 219b7ee59ef415f6e530f298d33e9cf9518bd242 Mon Sep 17 00:00:00 2001 From: jiabin Date: Tue, 28 Dec 2021 21:36:44 +0000 Subject: [PATCH] Fix direct mode conversion error. The direct mode should only be set when it is shown in the returned value from audio policy service. Bug: 212193510 Test: atest AudioManagerTest Change-Id: Iaaf035b79b27aa76e9de2b55fba3b6fd87ab820e --- core/jni/android_media_AudioSystem.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp index 0b0870d9700ac..3e2b25853a6a2 100644 --- a/core/jni/android_media_AudioSystem.cpp +++ b/core/jni/android_media_AudioSystem.cpp @@ -2782,13 +2782,13 @@ static jboolean android_media_AudioSystem_canBeSpatialized(JNIEnv *env, jobject static jint convertAudioDirectModeFromNative(audio_direct_mode_t directMode) { jint result = DIRECT_NOT_SUPPORTED; - if ((directMode | AUDIO_DIRECT_OFFLOAD_SUPPORTED) != AUDIO_DIRECT_NOT_SUPPORTED) { + if ((directMode & AUDIO_DIRECT_OFFLOAD_SUPPORTED) != AUDIO_DIRECT_NOT_SUPPORTED) { result |= DIRECT_OFFLOAD_SUPPORTED; } - if ((directMode | AUDIO_DIRECT_OFFLOAD_GAPLESS_SUPPORTED) != AUDIO_DIRECT_NOT_SUPPORTED) { + if ((directMode & AUDIO_DIRECT_OFFLOAD_GAPLESS_SUPPORTED) != AUDIO_DIRECT_NOT_SUPPORTED) { result |= DIRECT_OFFLOAD_GAPLESS_SUPPORTED; } - if ((directMode | AUDIO_DIRECT_BITSTREAM_SUPPORTED) != AUDIO_DIRECT_NOT_SUPPORTED) { + if ((directMode & AUDIO_DIRECT_BITSTREAM_SUPPORTED) != AUDIO_DIRECT_NOT_SUPPORTED) { result |= DIRECT_BITSTREAM_SUPPORTED; } return result; @@ -2799,7 +2799,7 @@ static jint android_media_AudioSystem_getDirectPlaybackSupport(JNIEnv *env, jobj JNIAudioAttributeHelper::UniqueAaPtr paa = JNIAudioAttributeHelper::makeUnique(); jint jStatus = JNIAudioAttributeHelper::nativeFromJava(env, jaa, paa.get()); if (jStatus != (jint)AUDIO_JAVA_SUCCESS) { - return AUDIO_DIRECT_NOT_SUPPORTED; + return DIRECT_NOT_SUPPORTED; } audio_config_t nConfig; @@ -2809,7 +2809,7 @@ static jint android_media_AudioSystem_getDirectPlaybackSupport(JNIEnv *env, jobj status_t status = AudioSystem::getDirectPlaybackSupport(paa.get(), &nConfig, &directMode); if (status != NO_ERROR) { ALOGW("%s native returned error %d", __func__, status); - return AUDIO_DIRECT_NOT_SUPPORTED; + return DIRECT_NOT_SUPPORTED; } return convertAudioDirectModeFromNative(directMode); }