summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSharad Sangle <assangle@codeaurora.org>2015-07-24 20:06:53 +0530
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:24:29 -0600
commitdaef932059bbeaf1b88a8871f348be128fdf0bfe (patch)
tree5c625ce6d299e83c4789a6b3d3bde243be6ad28d
parent8d3e1e541aa6825007dda3c58cbc0900eca38d23 (diff)
downloadframeworks_av-daef932059bbeaf1b88a8871f348be128fdf0bfe.zip
frameworks_av-daef932059bbeaf1b88a8871f348be128fdf0bfe.tar.gz
frameworks_av-daef932059bbeaf1b88a8871f348be128fdf0bfe.tar.bz2
audio: add support for APE decoding.
add support for APE decoding Change-Id: I55e8f4b3b87f4bdf1c99774d702506eb7c2f05b5
-rw-r--r--media/libavextensions/stagefright/AVExtensions.h2
-rw-r--r--media/libavextensions/stagefright/AVUtils.cpp4
-rw-r--r--media/libstagefright/Utils.cpp4
-rw-r--r--services/audiopolicy/common/managerdefinitions/Android.mk3
-rw-r--r--services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h3
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[] = {