summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorSharad Sangle <assangle@codeaurora.org>2015-07-16 02:55:47 +0530
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:24:11 -0600
commit3757661864d0e39d98598d06071d542af5af3bbd (patch)
treed11ddc684ebb883695b147d1d0a0054379bf37a3 /media
parentaeb382ad2336837155f3288facc9c415ccc2bfa5 (diff)
downloadframeworks_av-3757661864d0e39d98598d06071d542af5af3bbd.zip
frameworks_av-3757661864d0e39d98598d06071d542af5af3bbd.tar.gz
frameworks_av-3757661864d0e39d98598d06071d542af5af3bbd.tar.bz2
audio: add support for FLAC decoding
added support for FLAC decoding Change-Id: Ia35b0b9218fdf2584348a2a95bf0401c5065dedc
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/ACodec.cpp5
-rw-r--r--media/libstagefright/omx/Android.mk6
-rwxr-xr-xmedia/libstagefright/omx/SoftOMXPlugin.cpp3
3 files changed, 12 insertions, 2 deletions
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
index 8d9bd21..e3cc413 100644
--- a/media/libstagefright/ACodec.cpp
+++ b/media/libstagefright/ACodec.cpp
@@ -2069,7 +2069,7 @@ status_t ACodec::configureCodec(
}
err = setupG711Codec(encoder, sampleRate, numChannels);
}
- } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_FLAC)) {
+ } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_FLAC) && encoder) {
int32_t numChannels = 0, sampleRate = 0, compressionLevel = -1;
if (encoder &&
(!msg->findInt32("channel-count", &numChannels)
@@ -4179,7 +4179,8 @@ status_t ACodec::getPortFormat(OMX_U32 portIndex, sp<AMessage> &notify) {
if (params.nChannels <= 0
|| (params.nChannels != 1 && !params.bInterleaved)
- || params.nBitPerSample != 16u
+ || (params.nBitPerSample != 16u
+ && params.nBitPerSample != 24u)// we support 16/24 bit s/w decoding
|| params.eNumData != OMX_NumericalDataSigned
|| params.ePCMMode != OMX_AUDIO_PCMModeLinear) {
ALOGE("unsupported PCM port: %u channels%s, %u-bit, %s(%d), %s(%d) mode ",
diff --git a/media/libstagefright/omx/Android.mk b/media/libstagefright/omx/Android.mk
index 5f0f567..d16d5df 100644
--- a/media/libstagefright/omx/Android.mk
+++ b/media/libstagefright/omx/Android.mk
@@ -30,6 +30,12 @@ LOCAL_SHARED_LIBRARIES := \
libstagefright_foundation \
libdl
+ifeq ($(call is-vendor-board-platform,QCOM),true)
+ifeq ($(strip $(AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER)),true)
+ LOCAL_CFLAGS += -DQTI_FLAC_DECODER
+endif
+endif
+
LOCAL_MODULE:= libstagefright_omx
LOCAL_CFLAGS += -Werror -Wall
LOCAL_CLANG := true
diff --git a/media/libstagefright/omx/SoftOMXPlugin.cpp b/media/libstagefright/omx/SoftOMXPlugin.cpp
index 0f9c00c..9389f67 100755
--- a/media/libstagefright/omx/SoftOMXPlugin.cpp
+++ b/media/libstagefright/omx/SoftOMXPlugin.cpp
@@ -59,6 +59,9 @@ static const struct {
{ "OMX.google.raw.decoder", "rawdec", "audio_decoder.raw" },
{ "OMX.google.flac.encoder", "flacenc", "audio_encoder.flac" },
{ "OMX.google.gsm.decoder", "gsmdec", "audio_decoder.gsm" },
+#ifdef QTI_FLAC_DECODER
+ { "OMX.qti.audio.decoder.flac", "flacdec", "audio_decoder.flac" },
+#endif
};
static const size_t kNumComponents =