Merge "libeffects: Fix for crash during playback on bluetooth headset" into qt-dev
diff --git a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
index 3a97905..3fbbc09 100644
--- a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
+++ b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
@@ -650,6 +650,9 @@
params.SpeakerType = LVM_HEADPHONES;
pContext->pBundledContext->SampleRate = LVM_FS_44100;
+#ifdef SUPPORT_MC
+ pContext->pBundledContext->ChMask = AUDIO_CHANNEL_OUT_STEREO;
+#endif
/* Concert Sound parameters */
params.VirtualizerOperatingMode = LVM_MODE_OFF;
@@ -695,6 +698,11 @@
params.TE_OperatingMode = LVM_TE_OFF;
params.TE_EffectLevel = 0;
+#ifdef SUPPORT_MC
+ params.NrChannels =
+ audio_channel_count_from_out_mask(AUDIO_CHANNEL_OUT_STEREO);
+ params.ChMask = AUDIO_CHANNEL_OUT_STEREO;
+#endif
/* Activate the initial settings */
LvmStatus = LVM_SetControlParameters(pContext->pBundledContext->hInstance,
¶ms);
@@ -1297,7 +1305,12 @@
return -EINVAL;
}
+#ifdef SUPPORT_MC
+ if (pContext->pBundledContext->SampleRate != SampleRate ||
+ pContext->pBundledContext->ChMask != pConfig->inputCfg.channels) {
+#else
if(pContext->pBundledContext->SampleRate != SampleRate){
+#endif
LVM_ControlParams_t ActiveParams;
LVM_ReturnStatus_en LvmStatus = LVM_SUCCESS;
@@ -1323,6 +1336,9 @@
LVM_ERROR_CHECK(LvmStatus, "LVM_SetControlParameters", "Effect_setConfig")
ALOGV("\tEffect_setConfig Succesfully called LVM_SetControlParameters\n");
pContext->pBundledContext->SampleRate = SampleRate;
+#ifdef SUPPORT_MC
+ pContext->pBundledContext->ChMask = pConfig->inputCfg.channels;
+#endif
LvmEffect_limitLevel(pContext);
diff --git a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.h b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.h
index 6bf045d..6af4554 100644
--- a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.h
+++ b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.h
@@ -107,6 +107,9 @@
LVM_FLOAT *pInputBuffer;
LVM_FLOAT *pOutputBuffer;
#endif
+#ifdef SUPPORT_MC
+ LVM_INT32 ChMask;
+#endif
};
/* SessionContext : One session */