From 81f82c32459029bf0744e28c73f95a7f18cab5ac Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Mon, 12 Apr 2010 16:05:57 -0700 Subject: Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don't have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks. Change-Id: Ic9a9198413431db4ea40bb63b9de91aa8a7183af related-to-bug: 2587341 --- media/libstagefright/ESDS.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'media/libstagefright/ESDS.cpp') diff --git a/media/libstagefright/ESDS.cpp b/media/libstagefright/ESDS.cpp index 28d338c..b7c8e0c 100644 --- a/media/libstagefright/ESDS.cpp +++ b/media/libstagefright/ESDS.cpp @@ -25,7 +25,8 @@ ESDS::ESDS(const void *data, size_t size) mSize(size), mInitCheck(NO_INIT), mDecoderSpecificOffset(0), - mDecoderSpecificLength(0) { + mDecoderSpecificLength(0), + mObjectTypeIndication(0) { memcpy(mData, data, size); mInitCheck = parse(); @@ -40,6 +41,16 @@ status_t ESDS::InitCheck() const { return mInitCheck; } +status_t ESDS::getObjectTypeIndication(uint8_t *objectTypeIndication) const { + if (mInitCheck != OK) { + return mInitCheck; + } + + *objectTypeIndication = mObjectTypeIndication; + + return OK; +} + status_t ESDS::getCodecSpecificInfo(const void **data, size_t *size) const { if (mInitCheck != OK) { return mInitCheck; @@ -164,6 +175,8 @@ status_t ESDS::parseDecoderConfigDescriptor(size_t offset, size_t size) { return ERROR_MALFORMED; } + mObjectTypeIndication = mData[offset]; + offset += 13; size -= 13; -- cgit v1.1