policy_hal: Null check for output profile types
- Voice call with BT fails
- BT output is not setting profile type.While initiating voice
call APM closes all opened outputs to fall back to ULL based
on profile types
- Added null check for profile type for different outputs
Change-Id: Ib577d7fade7f42a0b56ee1f59dc6472ca780f502
diff --git a/policy_hal/AudioPolicyManager.cpp b/policy_hal/AudioPolicyManager.cpp
index 03f6c41..5605fbc 100644
--- a/policy_hal/AudioPolicyManager.cpp
+++ b/policy_hal/AudioPolicyManager.cpp
@@ -1677,6 +1677,10 @@
//suspend PCM (deep-buffer) output & close compress & direct tracks
for (size_t i = 0; i < mOutputs.size(); i++) {
AudioOutputDescriptor *outputDesc = mOutputs.valueAt(i);
+ if (!outputDesc || !outputDesc->mProfile) {
+ ALOGD("ouput desc / profile is NULL");
+ continue;
+ }
if (((!outputDesc->isDuplicated() &&outputDesc->mProfile->mFlags & AUDIO_OUTPUT_FLAG_PRIMARY))
&& prop_playback_enabled) {
ALOGD(" calling suspendOutput on call mdoe for primary output");
@@ -1701,6 +1705,10 @@
//restore PCM (deep-buffer) output after call termination
for (size_t i = 0; i < mOutputs.size(); i++) {
AudioOutputDescriptor *outputDesc = mOutputs.valueAt(i);
+ if (!outputDesc || !outputDesc->mProfile) {
+ ALOGD("ouput desc / profile is NULL");
+ continue;
+ }
if (!outputDesc->isDuplicated() &&outputDesc->mProfile->mFlags & AUDIO_OUTPUT_FLAG_PRIMARY) {
ALOGD("calling restoreOutput after call mode for primary output");
mpClientInterface->restoreOutput(mOutputs.keyAt(i));