hal: Add support for TrueHD HDMI pass-through
Add TrueHD format for apq8098 compress pass-through.
Change-Id: Ica0e11aee535c6f7e21c26ab391e5e7bb71c6b02
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 1d32409..8f7e125 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -5175,12 +5175,20 @@
channels = max_supported_channels;
} else {
- /*During pass through set default bit width and channels*/
- channels = DEFAULT_HDMI_OUT_CHANNELS;
+ /*During pass through set default bit width */
+ if (usecase->stream.out->format == AUDIO_FORMAT_DOLBY_TRUEHD)
+ channels = 8;
+ else
+ channels = DEFAULT_HDMI_OUT_CHANNELS;
+
if ((usecase->stream.out->format == AUDIO_FORMAT_E_AC3) ||
- (usecase->stream.out->format == AUDIO_FORMAT_E_AC3_JOC))
+ (usecase->stream.out->format == AUDIO_FORMAT_E_AC3_JOC) ||
+ (usecase->stream.out->format == AUDIO_FORMAT_DOLBY_TRUEHD))
sample_rate = sample_rate * 4 ;
+ if (!edid_is_supported_sr(edid_info, sample_rate))
+ sample_rate = edid_get_highest_supported_sr(edid_info);
+
bit_width = CODEC_BACKEND_DEFAULT_BIT_WIDTH;
/* We force route so that the BE format can be set to Compr */
}
@@ -5970,6 +5978,10 @@
ALOGV("%s:E_AC3", __func__);
format = DOLBY_DIGITAL_PLUS;
break;
+ case AUDIO_FORMAT_DOLBY_TRUEHD:
+ ALOGV("%s:MAT", __func__);
+ format = MAT;
+ break;
case AUDIO_FORMAT_DTS:
ALOGV("%s:DTS", __func__);
format = DTS;