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

Commit 0cecba27 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "libstagefright: Check trackMeta for NULL"

parents aaa51ee2 233d602b
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -164,6 +164,9 @@ sp<IMemory> StagefrightMetadataRetriever::getImageInternal(

    for (i = 0; i < n; ++i) {
        sp<MetaData> meta = mExtractor->getTrackMetaData(i);
        if (!meta) {
            continue;
        }
        ALOGV("getting track %zu of %zu, meta=%s", i, n, meta->toString().c_str());

        const char *mime;
@@ -185,6 +188,9 @@ sp<IMemory> StagefrightMetadataRetriever::getImageInternal(
    }

    sp<MetaData> trackMeta = mExtractor->getTrackMetaData(i);
    if (!trackMeta) {
        return NULL;
    }

    if (metaOnly) {
        return FrameDecoder::getMetadataOnly(trackMeta, colorFormat, thumbnail);
@@ -285,6 +291,9 @@ status_t StagefrightMetadataRetriever::getFrameInternal(
    size_t i;
    for (i = 0; i < n; ++i) {
        sp<MetaData> meta = mExtractor->getTrackMetaData(i);
        if (!meta) {
            continue;
        }

        const char *mime;
        CHECK(meta->findCString(kKeyMIMEType, &mime));
@@ -301,6 +310,9 @@ status_t StagefrightMetadataRetriever::getFrameInternal(

    sp<MetaData> trackMeta = mExtractor->getTrackMetaData(
            i, MediaExtractor::kIncludeExtensiveMetaData);
    if (!trackMeta) {
        return UNKNOWN_ERROR;
    }

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

        int64_t durationUs;
        if (trackMeta->findInt64(kKeyDuration, &durationUs)) {
@@ -672,8 +687,9 @@ void StagefrightMetadataRetriever::parseMetaData() {
                !strcasecmp(fileMIME, "video/x-matroska")) {
            sp<MetaData> trackMeta = mExtractor->getTrackMetaData(0);
            const char *trackMIME;
            if (trackMeta != nullptr) {
                CHECK(trackMeta->findCString(kKeyMIMEType, &trackMIME));

            }
            if (!strncasecmp("audio/", trackMIME, 6)) {
                // The matroska file only contains a single audio track,
                // rewrite its mime type.