From 0145bf600a8f5fa911170f8bb8c2ff6fec47a599 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Mon, 14 Dec 2015 01:24:54 -0800 Subject: 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 --- media/libavextensions/Android.mk | 4 ++-- media/libavextensions/stagefright/AVUtils.cpp | 4 ++-- media/libmediaplayerservice/nuplayer/StreamingSource.cpp | 1 + media/libstagefright/Android.mk | 3 ++- media/libstagefright/DataSource.cpp | 2 ++ media/libstagefright/MediaExtractor.cpp | 2 ++ media/libstagefright/Utils.cpp | 3 +++ 7 files changed, 14 insertions(+), 5 deletions(-) (limited to 'media') diff --git a/media/libavextensions/Android.mk b/media/libavextensions/Android.mk index 8099ad4..68c36d8 100644 --- a/media/libavextensions/Android.mk +++ b/media/libavextensions/Android.mk @@ -17,15 +17,15 @@ LOCAL_C_INCLUDES:= \ LOCAL_CFLAGS += -Wno-multichar -Werror -ifeq ($(call is-vendor-board-platform,QCOM),true) LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/mm-audio + ifeq ($(TARGET_ENABLE_QC_AV_ENHANCEMENTS),true) LOCAL_CFLAGS += -DENABLE_AV_ENHANCEMENTS endif + ifeq ($(strip $(AUDIO_FEATURE_ENABLED_FLAC_OFFLOAD)),true) LOCAL_CFLAGS += -DFLAC_OFFLOAD_ENABLED endif -endif LOCAL_MODULE:= libavextensions LOCAL_CFLAGS += -DLOG_NDEBUG=0 diff --git a/media/libavextensions/stagefright/AVUtils.cpp b/media/libavextensions/stagefright/AVUtils.cpp index b17ab2e..db4bc69 100644 --- a/media/libavextensions/stagefright/AVUtils.cpp +++ b/media/libavextensions/stagefright/AVUtils.cpp @@ -42,7 +42,7 @@ #include #include -#ifdef QCOM_HARDWARE +#if defined(QCOM_HARDWARE) || defined(FLAC_OFFLOAD_ENABLED) #include "QCMediaDefs.h" #include "QCMetaData.h" #ifdef FLAC_OFFLOAD_ENABLED @@ -97,13 +97,13 @@ static const MetaKeyEntry MetaKeyTable[] { {kKeyUseArbitraryMode , "use-arbitrary-mode" , INT32}, //bool (int32_t) {kKeySmoothStreaming , "smooth-streaming" , INT32}, //bool (int32_t) {kKeyHFR , "hfr" , INT32}, // int32_t +#endif #ifdef FLAC_OFFLOAD_ENABLED {kKeyMinBlkSize , "min-block-size" , INT32}, {kKeyMaxBlkSize , "max-block-size" , INT32}, {kKeyMinFrmSize , "min-frame-size" , INT32}, {kKeyMaxFrmSize , "max-frame-size" , INT32}, #endif -#endif {kKeyBitRate , "bitrate" , INT32}, diff --git a/media/libmediaplayerservice/nuplayer/StreamingSource.cpp b/media/libmediaplayerservice/nuplayer/StreamingSource.cpp index 43a1b27..136eda5 100644 --- a/media/libmediaplayerservice/nuplayer/StreamingSource.cpp +++ b/media/libmediaplayerservice/nuplayer/StreamingSource.cpp @@ -29,6 +29,7 @@ #include #include #include +#include namespace android { 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 } }; -- cgit v1.1