diff options
5 files changed, 16 insertions, 0 deletions
diff --git a/media/libavextensions/stagefright/AVExtensions.h b/media/libavextensions/stagefright/AVExtensions.h index f9f4cf1..04588d5 100644 --- a/media/libavextensions/stagefright/AVExtensions.h +++ b/media/libavextensions/stagefright/AVExtensions.h @@ -79,6 +79,8 @@ struct AVUtils { virtual audio_format_t updateAudioFormat(audio_format_t audioFormat, const sp<AMessage> &); + virtual bool canOffloadAPE(const sp<MetaData> &meta); + // ----- NO TRESSPASSING BEYOND THIS LINE ------ DECLARE_LOADABLE_SINGLETON(AVUtils); }; diff --git a/media/libavextensions/stagefright/AVUtils.cpp b/media/libavextensions/stagefright/AVUtils.cpp index a4100c5..ee0602b 100644 --- a/media/libavextensions/stagefright/AVUtils.cpp +++ b/media/libavextensions/stagefright/AVUtils.cpp @@ -101,6 +101,10 @@ sp<MediaCodec> AVUtils::createCustomComponentByName( return NULL; } +bool AVUtils::canOffloadAPE(const sp<MetaData> &meta) { + return true; +} + // ----- NO TRESSPASSING BEYOND THIS LINE ------ AVUtils::AVUtils() { } diff --git a/media/libstagefright/Utils.cpp b/media/libstagefright/Utils.cpp index 1ef1610..5339c82 100644 --- a/media/libstagefright/Utils.cpp +++ b/media/libstagefright/Utils.cpp @@ -824,6 +824,10 @@ bool canOffloadStream(const sp<MetaData>& meta, bool hasVideo, return false; } + if (AVUtils::get()->canOffloadAPE(meta) != true) { + return false; + } + // Redefine aac format according to its profile // Offloading depends on audio DSP capabilities. int32_t aacaot = -1; diff --git a/services/audiopolicy/common/managerdefinitions/Android.mk b/services/audiopolicy/common/managerdefinitions/Android.mk index f4e81d8..10362f4 100644 --- a/services/audiopolicy/common/managerdefinitions/Android.mk +++ b/services/audiopolicy/common/managerdefinitions/Android.mk @@ -44,6 +44,9 @@ endif ifeq ($(strip $(AUDIO_FEATURE_ENABLED_ALAC_OFFLOAD)),true) LOCAL_CFLAGS += -DALAC_OFFLOAD_ENABLED endif +ifeq ($(strip $(AUDIO_FEATURE_ENABLED_APE_OFFLOAD)),true) +LOCAL_CFLAGS += -DAPE_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 a88a6d8..3088120 100644 --- a/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h +++ b/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h @@ -213,6 +213,9 @@ const StringToEnum sFormatNameToEnumTable[] = { #ifdef ALAC_OFFLOAD_ENABLED STRING_TO_ENUM(AUDIO_FORMAT_ALAC), #endif +#ifdef APE_OFFLOAD_ENABLED + STRING_TO_ENUM(AUDIO_FORMAT_APE), +#endif }; const StringToEnum sOutChannelsNameToEnumTable[] = { |