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

Commit 98336a76 authored by Nick Kralevich's avatar Nick Kralevich Committed by Android (Google) Code Review
Browse files

Merge "Fix multiple division-by-zero conditions in MPEG4 parsing"

parents d36122b4 e3e82d54
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1208,7 +1208,7 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
                    duration = ntohl(duration32);
                }
            }
            if (duration != 0) {
            if (duration != 0 && mLastTrack->timescale != 0) {
                mLastTrack->meta->setInt64(
                        kKeyDuration, (duration * 1000000) / mLastTrack->timescale);
            }
@@ -1822,7 +1822,7 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
                }
                duration = d32;
            }
            if (duration != 0) {
            if (duration != 0 && mHeaderTimescale != 0) {
                mFileMetaData->setInt64(kKeyDuration, duration * 1000000 / mHeaderTimescale);
            }

@@ -1871,7 +1871,7 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
                return ERROR_MALFORMED;
            }

            if (duration != 0) {
            if (duration != 0 && mHeaderTimescale != 0) {
                mFileMetaData->setInt64(kKeyDuration, duration * 1000000 / mHeaderTimescale);
            }

@@ -2085,6 +2085,8 @@ status_t MPEG4Extractor::parseSegmentIndex(off64_t offset, size_t size) {
        return ERROR_MALFORMED;
    }
    ALOGV("sidx refid/timescale: %d/%d", referenceId, timeScale);
    if (timeScale == 0)
        return ERROR_MALFORMED;

    uint64_t earliestPresentationTime;
    uint64_t firstOffset;