Merge "hal: fix to handle voip issue when input stream starts first"
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 38223a8..7522426 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -623,7 +623,8 @@
}
} else if (voice_extn_compress_voip_is_active(adev)) {
voip_usecase = get_usecase_from_list(adev, USECASE_COMPRESS_VOIP_CALL);
- if (voip_usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND) {
+ if ((voip_usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND) &&
+ (usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND)) {
in_snd_device = voip_usecase->in_snd_device;
out_snd_device = voip_usecase->out_snd_device;
}
@@ -1400,13 +1401,14 @@
pthread_mutex_lock(&adev->lock);
/*
- * When HDMI cable is unplugged the music playback is paused and
- * the policy manager sends routing=0. But the audioflinger
- * continues to write data until standby time (3sec).
- * As the HDMI core is turned off, the write gets blocked.
+ * When HDMI cable is unplugged/usb hs is disconnected the
+ * music playback is paused and the policy manager sends routing=0
+ * But the audioflingercontinues to write data until standby time
+ * (3sec). As the HDMI core is turned off, the write gets blocked.
* Avoid this by routing audio to speaker until standby.
*/
- if (out->devices == AUDIO_DEVICE_OUT_AUX_DIGITAL &&
+ if ((out->devices == AUDIO_DEVICE_OUT_AUX_DIGITAL ||
+ out->devices == AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET) &&
val == AUDIO_DEVICE_NONE) {
val = AUDIO_DEVICE_OUT_SPEAKER;
}