Loading hal/Android.mk +4 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,10 @@ ifeq ($(strip $(AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24)),true) LOCAL_CFLAGS += -DPCM_OFFLOAD_ENABLED_24 endif ifeq ($(strip $(AUDIO_FEATURE_ENABLED_AAC_ADTS_OFFLOAD)),true) LOCAL_CFLAGS += -DAAC_ADTS_OFFLOAD_ENABLED endif ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DEV_ARBI)),true) LOCAL_CFLAGS += -DDEV_ARBI_ENABLED LOCAL_SRC_FILES += audio_extn/dev_arbi.c Loading hal/audio_extn/audio_extn.h +10 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,16 @@ #define AUDIO_FORMAT_APE 0x1D000000UL #endif #ifndef AAC_ADTS_OFFLOAD_ENABLED #define AUDIO_FORMAT_AAC_ADTS 0x1E000000UL #define AUDIO_FORMAT_AAC_ADTS_LC (AUDIO_FORMAT_AAC_ADTS |\ AUDIO_FORMAT_AAC_SUB_LC) #define AUDIO_FORMAT_AAC_ADTS_HE_V1 (AUDIO_FORMAT_AAC_ADTS |\ AUDIO_FORMAT_AAC_SUB_HE_V1) #define AUDIO_FORMAT_AAC_ADTS_HE_V2 (AUDIO_FORMAT_AAC_ADTS |\ AUDIO_FORMAT_AAC_SUB_HE_V2) #endif #ifndef COMPRESS_METADATA_NEEDED #define audio_extn_parse_compress_metadata(out, parms) (0) #else Loading hal/audio_extn/utils.c +4 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,10 @@ const struct string_to_enum s_format_name_to_enum_table[] = { STRING_TO_ENUM(AUDIO_FORMAT_AAC_LC), STRING_TO_ENUM(AUDIO_FORMAT_AAC_HE_V1), STRING_TO_ENUM(AUDIO_FORMAT_AAC_HE_V2), STRING_TO_ENUM(AUDIO_FORMAT_AAC_ADTS), STRING_TO_ENUM(AUDIO_FORMAT_AAC_SUB_LC), STRING_TO_ENUM(AUDIO_FORMAT_AAC_SUB_HE_V1), STRING_TO_ENUM(AUDIO_FORMAT_AAC_SUB_HE_V2), #endif }; Loading hal/audio_hw.c +10 −11 Original line number Diff line number Diff line Loading @@ -305,6 +305,9 @@ static bool is_supported_format(audio_format_t format) format == AUDIO_FORMAT_AAC_LC || format == AUDIO_FORMAT_AAC_HE_V1 || format == AUDIO_FORMAT_AAC_HE_V2 || format == AUDIO_FORMAT_AAC_ADTS_LC || format == AUDIO_FORMAT_AAC_ADTS_HE_V1 || format == AUDIO_FORMAT_AAC_ADTS_HE_V2 || format == AUDIO_FORMAT_PCM_16_BIT_OFFLOAD || format == AUDIO_FORMAT_PCM_24_BIT_OFFLOAD || format == AUDIO_FORMAT_FLAC || Loading @@ -329,6 +332,9 @@ static int get_snd_codec_id(audio_format_t format) case AUDIO_FORMAT_AAC: id = SND_AUDIOCODEC_AAC; break; case AUDIO_FORMAT_AAC_ADTS: id = SND_AUDIOCODEC_AAC; break; case AUDIO_FORMAT_PCM_OFFLOAD: id = SND_AUDIOCODEC_PCM; break; Loading Loading @@ -1836,15 +1842,6 @@ static int parse_compress_metadata(struct stream_out *out, struct str_parms *par return -EINVAL; } ret = str_parms_get_str(parms, AUDIO_OFFLOAD_CODEC_FORMAT, value, sizeof(value)); if (ret >= 0) { if (atoi(value) == SND_AUDIOSTREAMFORMAT_MP4ADTS) { out->compr_config.codec->format = SND_AUDIOSTREAMFORMAT_MP4ADTS; ALOGV("ADTS format is set in offload mode"); } out->send_new_metadata = 1; } ret = audio_extn_parse_compress_metadata(out, parms); ret = str_parms_get_str(parms, AUDIO_OFFLOAD_CODEC_SAMPLE_RATE, value, sizeof(value)); Loading Loading @@ -2931,8 +2928,10 @@ static int adev_open_output_stream(struct audio_hw_device *dev, /*TODO: Do we need to change it for passthrough */ out->compr_config.codec->format = SND_AUDIOSTREAMFORMAT_RAW; if (config->offload_info.format == AUDIO_FORMAT_AAC) 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) out->compr_config.codec->format = SND_AUDIOSTREAMFORMAT_MP4ADTS; if (config->offload_info.format == AUDIO_FORMAT_PCM_16_BIT_OFFLOAD) out->compr_config.codec->format = SNDRV_PCM_FORMAT_S16_LE; if(config->offload_info.format == AUDIO_FORMAT_PCM_24_BIT_OFFLOAD) Loading hal/msm8916/platform.c +4 −0 Original line number Diff line number Diff line Loading @@ -4093,6 +4093,10 @@ unsigned char platform_map_to_edid_format(int audio_format) ALOGV("%s:AAC", __func__); format = AAC; break; case AUDIO_FORMAT_AAC_ADTS: ALOGV("%s:AAC_ADTS", __func__); format = AAC; break; case AUDIO_FORMAT_E_AC3: ALOGV("%s:E_AC3", __func__); format = DOLBY_DIGITAL_PLUS; Loading Loading
hal/Android.mk +4 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,10 @@ ifeq ($(strip $(AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24)),true) LOCAL_CFLAGS += -DPCM_OFFLOAD_ENABLED_24 endif ifeq ($(strip $(AUDIO_FEATURE_ENABLED_AAC_ADTS_OFFLOAD)),true) LOCAL_CFLAGS += -DAAC_ADTS_OFFLOAD_ENABLED endif ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DEV_ARBI)),true) LOCAL_CFLAGS += -DDEV_ARBI_ENABLED LOCAL_SRC_FILES += audio_extn/dev_arbi.c Loading
hal/audio_extn/audio_extn.h +10 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,16 @@ #define AUDIO_FORMAT_APE 0x1D000000UL #endif #ifndef AAC_ADTS_OFFLOAD_ENABLED #define AUDIO_FORMAT_AAC_ADTS 0x1E000000UL #define AUDIO_FORMAT_AAC_ADTS_LC (AUDIO_FORMAT_AAC_ADTS |\ AUDIO_FORMAT_AAC_SUB_LC) #define AUDIO_FORMAT_AAC_ADTS_HE_V1 (AUDIO_FORMAT_AAC_ADTS |\ AUDIO_FORMAT_AAC_SUB_HE_V1) #define AUDIO_FORMAT_AAC_ADTS_HE_V2 (AUDIO_FORMAT_AAC_ADTS |\ AUDIO_FORMAT_AAC_SUB_HE_V2) #endif #ifndef COMPRESS_METADATA_NEEDED #define audio_extn_parse_compress_metadata(out, parms) (0) #else Loading
hal/audio_extn/utils.c +4 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,10 @@ const struct string_to_enum s_format_name_to_enum_table[] = { STRING_TO_ENUM(AUDIO_FORMAT_AAC_LC), STRING_TO_ENUM(AUDIO_FORMAT_AAC_HE_V1), STRING_TO_ENUM(AUDIO_FORMAT_AAC_HE_V2), STRING_TO_ENUM(AUDIO_FORMAT_AAC_ADTS), STRING_TO_ENUM(AUDIO_FORMAT_AAC_SUB_LC), STRING_TO_ENUM(AUDIO_FORMAT_AAC_SUB_HE_V1), STRING_TO_ENUM(AUDIO_FORMAT_AAC_SUB_HE_V2), #endif }; Loading
hal/audio_hw.c +10 −11 Original line number Diff line number Diff line Loading @@ -305,6 +305,9 @@ static bool is_supported_format(audio_format_t format) format == AUDIO_FORMAT_AAC_LC || format == AUDIO_FORMAT_AAC_HE_V1 || format == AUDIO_FORMAT_AAC_HE_V2 || format == AUDIO_FORMAT_AAC_ADTS_LC || format == AUDIO_FORMAT_AAC_ADTS_HE_V1 || format == AUDIO_FORMAT_AAC_ADTS_HE_V2 || format == AUDIO_FORMAT_PCM_16_BIT_OFFLOAD || format == AUDIO_FORMAT_PCM_24_BIT_OFFLOAD || format == AUDIO_FORMAT_FLAC || Loading @@ -329,6 +332,9 @@ static int get_snd_codec_id(audio_format_t format) case AUDIO_FORMAT_AAC: id = SND_AUDIOCODEC_AAC; break; case AUDIO_FORMAT_AAC_ADTS: id = SND_AUDIOCODEC_AAC; break; case AUDIO_FORMAT_PCM_OFFLOAD: id = SND_AUDIOCODEC_PCM; break; Loading Loading @@ -1836,15 +1842,6 @@ static int parse_compress_metadata(struct stream_out *out, struct str_parms *par return -EINVAL; } ret = str_parms_get_str(parms, AUDIO_OFFLOAD_CODEC_FORMAT, value, sizeof(value)); if (ret >= 0) { if (atoi(value) == SND_AUDIOSTREAMFORMAT_MP4ADTS) { out->compr_config.codec->format = SND_AUDIOSTREAMFORMAT_MP4ADTS; ALOGV("ADTS format is set in offload mode"); } out->send_new_metadata = 1; } ret = audio_extn_parse_compress_metadata(out, parms); ret = str_parms_get_str(parms, AUDIO_OFFLOAD_CODEC_SAMPLE_RATE, value, sizeof(value)); Loading Loading @@ -2931,8 +2928,10 @@ static int adev_open_output_stream(struct audio_hw_device *dev, /*TODO: Do we need to change it for passthrough */ out->compr_config.codec->format = SND_AUDIOSTREAMFORMAT_RAW; if (config->offload_info.format == AUDIO_FORMAT_AAC) 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) out->compr_config.codec->format = SND_AUDIOSTREAMFORMAT_MP4ADTS; if (config->offload_info.format == AUDIO_FORMAT_PCM_16_BIT_OFFLOAD) out->compr_config.codec->format = SNDRV_PCM_FORMAT_S16_LE; if(config->offload_info.format == AUDIO_FORMAT_PCM_24_BIT_OFFLOAD) Loading
hal/msm8916/platform.c +4 −0 Original line number Diff line number Diff line Loading @@ -4093,6 +4093,10 @@ unsigned char platform_map_to_edid_format(int audio_format) ALOGV("%s:AAC", __func__); format = AAC; break; case AUDIO_FORMAT_AAC_ADTS: ALOGV("%s:AAC_ADTS", __func__); format = AAC; break; case AUDIO_FORMAT_E_AC3: ALOGV("%s:E_AC3", __func__); format = DOLBY_DIGITAL_PLUS; Loading