summaryrefslogtreecommitdiffstats
path: root/media/libstagefright
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2015-12-14 01:24:54 -0800
committerSteve Kondik <steve@cyngn.com>2015-12-14 01:24:54 -0800
commit0145bf600a8f5fa911170f8bb8c2ff6fec47a599 (patch)
tree85075538440df5773184773fd946e507dc35c009 /media/libstagefright
parent1512587eb162be68b62161371a4ad1ce81b5377b (diff)
downloadframeworks_av-0145bf600a8f5fa911170f8bb8c2ff6fec47a599.zip
frameworks_av-0145bf600a8f5fa911170f8bb8c2ff6fec47a599.tar.gz
frameworks_av-0145bf600a8f5fa911170f8bb8c2ff6fec47a599.tar.bz2
stagefright: Additional fixes for extended offload support
* Fix compilation with debug enabled * Allow FLAC offload to be enabled independent of QCOM_HARDWARE, tested with the Nexus 5X and is working! * Disable the FLACExtractor if offload is enabled since it can only output decoded PCM. This will force FFMPEG to be used, which does everything we need for FLAC offload Change-Id: I7d71c153a6a6ea7df8e32bc73f5cbe9f51cdcf64
Diffstat (limited to 'media/libstagefright')
-rw-r--r--media/libstagefright/Android.mk3
-rw-r--r--media/libstagefright/DataSource.cpp2
-rw-r--r--media/libstagefright/MediaExtractor.cpp2
-rw-r--r--media/libstagefright/Utils.cpp3
4 files changed, 9 insertions, 1 deletions
diff --git a/media/libstagefright/Android.mk b/media/libstagefright/Android.mk
index 381ef6c..efd1a30 100644
--- a/media/libstagefright/Android.mk
+++ b/media/libstagefright/Android.mk
@@ -178,10 +178,11 @@ LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/mm-audio
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER)),true)
LOCAL_CFLAGS += -DQTI_FLAC_DECODER
endif
+endif
+
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_FLAC_OFFLOAD)),true)
LOCAL_CFLAGS += -DFLAC_OFFLOAD_ENABLED
endif
-endif
LOCAL_CLANG := true
diff --git a/media/libstagefright/DataSource.cpp b/media/libstagefright/DataSource.cpp
index 8b49d18..f32bb7e 100644
--- a/media/libstagefright/DataSource.cpp
+++ b/media/libstagefright/DataSource.cpp
@@ -232,7 +232,9 @@ void DataSource::RegisterDefaultSniffers() {
RegisterSniffer_l(SniffMatroska);
RegisterSniffer_l(SniffOgg);
RegisterSniffer_l(SniffWAV);
+#ifndef FLAC_OFFLOAD_ENABLED
RegisterSniffer_l(SniffFLAC);
+#endif
RegisterSniffer_l(SniffAMR);
RegisterSniffer_l(SniffMPEG2TS);
RegisterSniffer_l(SniffMP3);
diff --git a/media/libstagefright/MediaExtractor.cpp b/media/libstagefright/MediaExtractor.cpp
index fc96e2f..cd0acfa 100644
--- a/media/libstagefright/MediaExtractor.cpp
+++ b/media/libstagefright/MediaExtractor.cpp
@@ -117,8 +117,10 @@ retry:
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_NB)
|| !strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_WB)) {
ret = new AMRExtractor(source);
+#ifndef FLAC_OFFLOAD_ENABLED
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_FLAC)) {
ret = new FLACExtractor(source);
+#endif
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_WAV)) {
ret = new WAVExtractor(source);
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_OGG)) {
diff --git a/media/libstagefright/Utils.cpp b/media/libstagefright/Utils.cpp
index a50d02d..e9d585f 100644
--- a/media/libstagefright/Utils.cpp
+++ b/media/libstagefright/Utils.cpp
@@ -791,6 +791,9 @@ static const struct mime_conv_t mimeLookup[] = {
{ MEDIA_MIMETYPE_AUDIO_AAC, AUDIO_FORMAT_AAC },
{ MEDIA_MIMETYPE_AUDIO_VORBIS, AUDIO_FORMAT_VORBIS },
{ MEDIA_MIMETYPE_AUDIO_OPUS, AUDIO_FORMAT_OPUS},
+#ifdef FLAC_OFFLOAD_ENABLED
+ { MEDIA_MIMETYPE_AUDIO_FLAC, AUDIO_FORMAT_FLAC},
+#endif
{ 0, AUDIO_FORMAT_INVALID }
};