Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a82eba21 authored by Suresh Choudhary's avatar Suresh Choudhary Committed by Steve Kondik
Browse files

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
parent 061947f0
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -361,6 +361,10 @@ VideoFrame *StagefrightMetadataRetriever::getFrameAtTime(
    for (i = 0; i < n; ++i) {
    for (i = 0; i < n; ++i) {
        sp<MetaData> meta = mExtractor->getTrackMetaData(i);
        sp<MetaData> meta = mExtractor->getTrackMetaData(i);


        if (meta == NULL) {
            continue;
        }

        const char *mime;
        const char *mime;
        CHECK(meta->findCString(kKeyMIMEType, &mime));
        CHECK(meta->findCString(kKeyMIMEType, &mime));


@@ -522,6 +526,10 @@ void StagefrightMetadataRetriever::parseMetaData() {


    size_t numTracks = mExtractor->countTracks();
    size_t numTracks = mExtractor->countTracks();


    if (numTracks == 0) {      //If no tracks available, corrupt or not valid stream
        return;
    }

    char tmp[32];
    char tmp[32];
    sprintf(tmp, "%zu", numTracks);
    sprintf(tmp, "%zu", numTracks);


@@ -539,6 +547,9 @@ void StagefrightMetadataRetriever::parseMetaData() {
    String8 timedTextLang;
    String8 timedTextLang;
    for (size_t i = 0; i < numTracks; ++i) {
    for (size_t i = 0; i < numTracks; ++i) {
        sp<MetaData> trackMeta = mExtractor->getTrackMetaData(i);
        sp<MetaData> trackMeta = mExtractor->getTrackMetaData(i);
        if (trackMeta == NULL) {
            continue;
        }


        int64_t durationUs;
        int64_t durationUs;
        if (trackMeta->findInt64(kKeyDuration, &durationUs)) {
        if (trackMeta->findInt64(kKeyDuration, &durationUs)) {