diff options
author | Suresh Choudhary <sureshc@nvidia.com> | 2014-03-18 17:24:15 +0530 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-10-23 12:38:46 -0500 |
commit | cda69c5bcff82e72b085970ba1ef62f41fd7d3ee (patch) | |
tree | bd1078e960c57e8295876675b97514ce3b81af8e /media/libstagefright/StagefrightMetadataRetriever.cpp | |
parent | 227de4e6a0be638b78386050ba188dc33cc30427 (diff) | |
download | frameworks_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.cpp | 11 |
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)) { |