libeffects: Added code to update sourceFormat field properly for MC input
Added code to update SourceFormat field properly for MC input in CS and EQ
modules.
Test: lvmtest
Bug: 127583584
Change-Id: If5aa175e2557f64f04cb1f2de5a5822ecb553f2e
diff --git a/media/libeffects/lvm/lib/Bundle/src/LVM_Control.c b/media/libeffects/lvm/lib/Bundle/src/LVM_Control.c
index 1d95342..1b27cb4 100644
--- a/media/libeffects/lvm/lib/Bundle/src/LVM_Control.c
+++ b/media/libeffects/lvm/lib/Bundle/src/LVM_Control.c
@@ -793,6 +793,15 @@
{
EQNB_Params.SourceFormat = LVEQNB_STEREO;
}
+#ifdef SUPPORT_MC
+ /* Note: Currently SourceFormat field of EQNB is not been
+ * used by the module.
+ */
+ else if (LocalParams.SourceFormat == LVM_MULTICHANNEL)
+ {
+ EQNB_Params.SourceFormat = LVEQNB_MULTICHANNEL;
+ }
+#endif
else
{
EQNB_Params.SourceFormat = LVEQNB_MONOINSTEREO; /* Force to Mono-in-Stereo mode */
@@ -862,7 +871,16 @@
CS_Params.SpeakerType = LVCS_HEADPHONES;
}
+#ifdef SUPPORT_MC
+ /* Concert sound module processes only the left and right channels
+ * data. So the Source Format is set to LVCS_STEREO for multichannel
+ * input also.
+ */
+ if (LocalParams.SourceFormat == LVM_STEREO ||
+ LocalParams.SourceFormat == LVM_MULTICHANNEL)
+#else
if (LocalParams.SourceFormat == LVM_STEREO) /* Mono format not supported */
+#endif
{
CS_Params.SourceFormat = LVCS_STEREO;
}
diff --git a/media/libeffects/lvm/lib/Eq/lib/LVEQNB.h b/media/libeffects/lvm/lib/Eq/lib/LVEQNB.h
index 385dbcf..804f1bf 100644
--- a/media/libeffects/lvm/lib/Eq/lib/LVEQNB.h
+++ b/media/libeffects/lvm/lib/Eq/lib/LVEQNB.h
@@ -184,6 +184,9 @@
{
LVEQNB_STEREO = 0,
LVEQNB_MONOINSTEREO = 1,
+#ifdef SUPPORT_MC
+ LVEQNB_MULTICHANNEL = 2,
+#endif
LVEQNB_SOURCE_MAX = LVM_MAXINT_32
} LVEQNB_SourceFormat_en;