diff options
5 files changed, 24 insertions, 1 deletions
diff --git a/media/libavextensions/stagefright/AVExtensions.h b/media/libavextensions/stagefright/AVExtensions.h index 08dbeeb..29f4cbc 100644 --- a/media/libavextensions/stagefright/AVExtensions.h +++ b/media/libavextensions/stagefright/AVExtensions.h @@ -31,12 +31,14 @@ #include <media/stagefright/DataSource.h> #include <common/AVExtensionsCommon.h> +#include <system/audio.h> namespace android { struct ACodec; class MediaExtractor; struct MediaCodec; +class AudioParameter; /* * Factory to create objects of base-classes in libstagefright @@ -58,6 +60,8 @@ struct AVUtils { virtual status_t convertMetaDataToMessage( const sp<MetaData> &meta, sp<AMessage> *format); virtual DataSource::SnifferFunc getExtendedSniffer(); + virtual status_t mapMimeToAudioFormat( audio_format_t& format, const char* mime); + virtual status_t sendMetaDataToHal(const sp<MetaData>& meta, AudioParameter *param); virtual sp<MediaCodec> createCustomComponentByName(const sp<ALooper> &looper, const char* mime, bool encoder); diff --git a/media/libavextensions/stagefright/AVUtils.cpp b/media/libavextensions/stagefright/AVUtils.cpp index 8fe0c53..d767f45 100644 --- a/media/libavextensions/stagefright/AVUtils.cpp +++ b/media/libavextensions/stagefright/AVUtils.cpp @@ -49,6 +49,16 @@ status_t AVUtils::convertMetaDataToMessage( return OK; } +status_t AVUtils::mapMimeToAudioFormat( + audio_format_t&, const char* ) { + return OK; +} + +status_t AVUtils::sendMetaDataToHal( + const sp<MetaData>&, AudioParameter *){ + return OK; +} + static bool dumbSniffer( const sp<DataSource> &, String8 *, float *, sp<AMessage> *) { diff --git a/media/libstagefright/Utils.cpp b/media/libstagefright/Utils.cpp index e22c0c9..a8927ee 100644 --- a/media/libstagefright/Utils.cpp +++ b/media/libstagefright/Utils.cpp @@ -727,6 +727,7 @@ status_t sendMetaDataToHal(sp<MediaPlayerBase::AudioSink>& sink, param.addInt(String8(AUDIO_OFFLOAD_CODEC_PADDING_SAMPLES), paddingSamples); } + AVUtils::get()->sendMetaDataToHal(meta, ¶m); ALOGV("sendMetaDataToHal: bitRate %d, sampleRate %d, chanMask %d," "delaySample %d, paddingSample %d", bitRate, sampleRate, channelMask, delaySamples, paddingSamples); @@ -762,7 +763,7 @@ const struct mime_conv_t* p = &mimeLookup[0]; ++p; } - return BAD_VALUE; + return AVUtils::get()->mapMimeToAudioFormat(format, mime); } struct aac_format_conv_t { diff --git a/services/audiopolicy/common/managerdefinitions/Android.mk b/services/audiopolicy/common/managerdefinitions/Android.mk index 8728ff3..81b0a7a 100644 --- a/services/audiopolicy/common/managerdefinitions/Android.mk +++ b/services/audiopolicy/common/managerdefinitions/Android.mk @@ -30,6 +30,11 @@ LOCAL_C_INCLUDES += \ LOCAL_EXPORT_C_INCLUDE_DIRS := \ $(LOCAL_PATH)/include +ifeq ($(call is-vendor-board-platform,QCOM),true) +ifeq ($(strip $(AUDIO_FEATURE_ENABLED_FLAC_OFFLOAD)),true) +LOCAL_CFLAGS += -DFLAC_OFFLOAD_ENABLED +endif +endif LOCAL_MODULE := libaudiopolicycomponents diff --git a/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h b/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h index e87397d..dfb3555 100644 --- a/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h +++ b/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h @@ -201,6 +201,9 @@ const StringToEnum sFormatNameToEnumTable[] = { STRING_TO_ENUM(AUDIO_FORMAT_E_AC3), STRING_TO_ENUM(AUDIO_FORMAT_DTS), STRING_TO_ENUM(AUDIO_FORMAT_DTS_HD), +#ifdef FLAC_OFFLOAD_ENABLED + STRING_TO_ENUM(AUDIO_FORMAT_FLAC), +#endif }; const StringToEnum sOutChannelsNameToEnumTable[] = { |