hal: Fix VoIP ouput is closed if voice+voip concurrency is enabled
In APM, VoIP output would be closed even if Voice+VoIP concurrency
is enabled. This is due to FLAG_DIRECT is set for compress VoIP by
default. While direct output is forced to closed if Voice+Playback
concurrency is disabled.
Fix this by adding proper flag check to avoid VoIP output is
closed.
CRs-Fixed: 1087113
Change-Id: Idbfc1b499a1252f162300f4e1be4d27b44b7e95c
diff --git a/policy_hal/AudioPolicyManager.cpp b/policy_hal/AudioPolicyManager.cpp
index 3396054..c8414af 100644
--- a/policy_hal/AudioPolicyManager.cpp
+++ b/policy_hal/AudioPolicyManager.cpp
@@ -843,8 +843,14 @@
closeOutput(mOutputs.keyAt(i));
}
} else if (AUDIO_OUTPUT_FLAG_DEEP_BUFFER == mFallBackflag) {
- if ((outputDesc->mProfile->mFlags & AUDIO_OUTPUT_FLAG_DIRECT)
- && prop_playback_enabled) {
+ if (outputDesc->mProfile->mFlags & AUDIO_OUTPUT_FLAG_VOIP_RX) {
+ if (prop_voip_enabled) {
+ ALOGD("voice_conc:calling closeOutput on call mode for DIRECT output");
+ closeOutput(mOutputs.keyAt(i));
+ }
+ }
+ else if (prop_playback_enabled
+ && (outputDesc->mProfile->mFlags & AUDIO_OUTPUT_FLAG_DIRECT)) {
ALOGD("voice_conc:calling closeOutput on call mode for COMPRESS output");
closeOutput(mOutputs.keyAt(i));
}