diff options
author | Arun Kumar Dasari <Arun@codeaurora.org> | 2016-12-27 13:01:14 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-01-19 06:02:30 -0800 |
commit | 3b174180fd25331c3439a402d929787f812f01ca (patch) | |
tree | ce1b61955d7fea4e1e2314ae9c6845b66cf286ac /hal | |
parent | bca6de20594e6b1e17fbbac0a4294ae069390aaa (diff) | |
download | hardware_qcom_audio-3b174180fd25331c3439a402d929787f812f01ca.tar.gz hardware_qcom_audio-3b174180fd25331c3439a402d929787f812f01ca.tar.bz2 hardware_qcom_audio-3b174180fd25331c3439a402d929787f812f01ca.zip |
hal: Add support for AAC LATM format
Add support for AAC LATM format in hal layer
Change-Id: I1314fb8759a59845cd7cba879f829d6fe2a0f53c
Diffstat (limited to 'hal')
-rw-r--r-- | hal/audio_extn/audio_extn.h | 10 | ||||
-rw-r--r-- | hal/audio_extn/utils.c | 7 | ||||
-rw-r--r-- | hal/audio_hw.c | 9 |
3 files changed, 24 insertions, 2 deletions
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h index 659592cf..b9402d57 100644 --- a/hal/audio_extn/audio_extn.h +++ b/hal/audio_extn/audio_extn.h @@ -83,6 +83,16 @@ AUDIO_FORMAT_AAC_SUB_HE_V2) #endif +#ifndef AUDIO_FORMAT_AAC_LATM +#define AUDIO_FORMAT_AAC_LATM 0x23000000UL +#define AUDIO_FORMAT_AAC_LATM_LC (AUDIO_FORMAT_AAC_LATM |\ + AUDIO_FORMAT_AAC_SUB_LC) +#define AUDIO_FORMAT_AAC_LATM_HE_V1 (AUDIO_FORMAT_AAC_LATM |\ + AUDIO_FORMAT_AAC_SUB_HE_V1) +#define AUDIO_FORMAT_AAC_LATM_HE_V2 (AUDIO_FORMAT_AAC_LATM |\ + AUDIO_FORMAT_AAC_SUB_HE_V2) +#endif + #ifndef COMPRESS_METADATA_NEEDED #define audio_extn_parse_compress_metadata(out, parms) (0) #else diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c index b8063939..69a7eec3 100644 --- a/hal/audio_extn/utils.c +++ b/hal/audio_extn/utils.c @@ -147,6 +147,10 @@ const struct string_to_enum s_format_name_to_enum_table[] = { STRING_TO_ENUM(AUDIO_FORMAT_AAC_ADTS_HE_V1), STRING_TO_ENUM(AUDIO_FORMAT_AAC_ADTS_HE_V2), STRING_TO_ENUM(AUDIO_FORMAT_DSD), + STRING_TO_ENUM(AUDIO_FORMAT_AAC_LATM), + STRING_TO_ENUM(AUDIO_FORMAT_AAC_LATM_LC), + STRING_TO_ENUM(AUDIO_FORMAT_AAC_LATM_HE_V1), + STRING_TO_ENUM(AUDIO_FORMAT_AAC_LATM_HE_V2), #endif }; @@ -1114,6 +1118,9 @@ int get_snd_codec_id(audio_format_t format) case AUDIO_FORMAT_AAC_ADTS: id = SND_AUDIOCODEC_AAC; break; + case AUDIO_FORMAT_AAC_LATM: + id = SND_AUDIOCODEC_AAC; + break; case AUDIO_FORMAT_PCM_OFFLOAD: case AUDIO_FORMAT_PCM: id = SND_AUDIOCODEC_PCM; diff --git a/hal/audio_hw.c b/hal/audio_hw.c index 61e9b899..e60ce6e4 100644 --- a/hal/audio_hw.c +++ b/hal/audio_hw.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. * Not a Contribution. * * Copyright (C) 2013 The Android Open Source Project @@ -503,6 +503,9 @@ static bool is_supported_format(audio_format_t format) format == AUDIO_FORMAT_AAC_ADTS_LC || format == AUDIO_FORMAT_AAC_ADTS_HE_V1 || format == AUDIO_FORMAT_AAC_ADTS_HE_V2 || + format == AUDIO_FORMAT_AAC_LATM_LC || + format == AUDIO_FORMAT_AAC_LATM_HE_V1 || + format == AUDIO_FORMAT_AAC_LATM_HE_V2 || format == AUDIO_FORMAT_PCM_24_BIT_PACKED || format == AUDIO_FORMAT_PCM_8_24_BIT || format == AUDIO_FORMAT_PCM_FLOAT || @@ -3988,8 +3991,10 @@ int adev_open_output_stream(struct audio_hw_device *dev, if ((config->offload_info.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_AAC) out->compr_config.codec->format = SND_AUDIOSTREAMFORMAT_RAW; - if ((config->offload_info.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_AAC_ADTS) + else if ((config->offload_info.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_AAC_ADTS) out->compr_config.codec->format = SND_AUDIOSTREAMFORMAT_MP4ADTS; + else if ((config->offload_info.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_AAC_LATM) + out->compr_config.codec->format = SND_AUDIOSTREAMFORMAT_MP4LATM; if ((config->offload_info.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_PCM) { |