diff options
author | Sharad Sangle <assangle@codeaurora.org> | 2015-07-18 19:26:22 +0530 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2015-10-06 03:24:16 -0600 |
commit | d098f35fa9cd20969a1fbf08d585f13a27166bef (patch) | |
tree | 112fbede22267fe32ca21d5b030d5b5227ef6d13 | |
parent | 3f854035a48cbaa5059996f039fb0fa2ecd69743 (diff) | |
download | frameworks_av-d098f35fa9cd20969a1fbf08d585f13a27166bef.zip frameworks_av-d098f35fa9cd20969a1fbf08d585f13a27166bef.tar.gz frameworks_av-d098f35fa9cd20969a1fbf08d585f13a27166bef.tar.bz2 |
audio: add support for offload FLAC
Add support for FLAC playback in
compressed offload mode
Change-Id: I617b41b867277272212d6cf1a6f82f646c5b1032
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[] = { |