summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/StagefrightMetadataRetriever.cpp
diff options
context:
space:
mode:
authorSuresh Choudhary <sureshc@nvidia.com>2014-03-18 17:24:15 +0530
committerSteve Kondik <steve@cyngn.com>2015-10-23 12:38:46 -0500
commitcda69c5bcff82e72b085970ba1ef62f41fd7d3ee (patch)
treebd1078e960c57e8295876675b97514ce3b81af8e /media/libstagefright/StagefrightMetadataRetriever.cpp
parent227de4e6a0be638b78386050ba188dc33cc30427 (diff)
downloadframeworks_av-cda69c5bcff82e72b085970ba1ef62f41fd7d3ee.zip
frameworks_av-cda69c5bcff82e72b085970ba1ef62f41fd7d3ee.tar.gz
frameworks_av-cda69c5bcff82e72b085970ba1ef62f41fd7d3ee.tar.bz2
libstagefright: Handle unsupported codec metaData
Modification done in StagefrightMetadataRetriver to handle NULL return for meta data if codec is unsupported by extractor. Change-Id: I905cec5ee91b098d99e1935437b562d2d9206381
Diffstat (limited to 'media/libstagefright/StagefrightMetadataRetriever.cpp')
-rw-r--r--media/libstagefright/StagefrightMetadataRetriever.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp
index 6c795ac..28f9557 100644
--- a/media/libstagefright/StagefrightMetadataRetriever.cpp
+++ b/media/libstagefright/StagefrightMetadataRetriever.cpp
@@ -455,6 +455,10 @@ VideoFrame *StagefrightMetadataRetriever::getFrameAtTime(
for (i = 0; i < n; ++i) {
sp<MetaData> meta = mExtractor->getTrackMetaData(i);
+ if (meta == NULL) {
+ continue;
+ }
+
const char *mime;
CHECK(meta->findCString(kKeyMIMEType, &mime));
@@ -625,6 +629,10 @@ void StagefrightMetadataRetriever::parseMetaData() {
size_t numTracks = mExtractor->countTracks();
+ if (numTracks == 0) { //If no tracks available, corrupt or not valid stream
+ return;
+ }
+
char tmp[32];
sprintf(tmp, "%zu", numTracks);
@@ -648,6 +656,9 @@ void StagefrightMetadataRetriever::parseMetaData() {
String8 timedTextLang;
for (size_t i = 0; i < numTracks; ++i) {
sp<MetaData> trackMeta = mExtractor->getTrackMetaData(i);
+ if (trackMeta == NULL) {
+ continue;
+ }
int64_t durationUs;
if (trackMeta->findInt64(kKeyDuration, &durationUs)) {