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

Commit 4829dea8 authored by Jon Larimer's avatar Jon Larimer Committed by Gerrit Code Review
Browse files

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

parents 800e479f 2c184d8b
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1202,7 +1202,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);
            }
@@ -1776,7 +1776,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);
            }

@@ -1825,7 +1825,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);
            }

@@ -2042,6 +2042,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;