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

Commit 10ed3f74 authored by James Dong's avatar James Dong Committed by Android (Google) Code Review
Browse files

Merge "Add input buffer size check for software video encoders" into gingerbread

parents 18f0174f e6daea59
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -391,8 +391,18 @@ status_t AVCEncoder::read(
        if (err != OK) {
            LOGE("Failed to read input video frame: %d", err);
            outputBuffer->release();
            mInputBuffer->release();
            mInputBuffer = NULL;
            return err;
        }

        if (mInputBuffer->size() - ((mVideoWidth * mVideoHeight * 3) >> 1) != 0) {
            outputBuffer->release();
            mInputBuffer->release();
            mInputBuffer = NULL;
            return UNKNOWN_ERROR;
        }

        int64_t timeUs;
        CHECK(mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs));
        outputBuffer->meta_data()->setInt64(kKeyTime, timeUs);
+10 −0
Original line number Diff line number Diff line
@@ -292,8 +292,18 @@ status_t M4vH263Encoder::read(
    if (OK != mSource->read(&mInputBuffer, options)) {
        LOGE("Failed to read from data source");
        outputBuffer->release();
        mInputBuffer->release();
        mInputBuffer = NULL;
        return UNKNOWN_ERROR;
    }

    if (mInputBuffer->size() - ((mVideoWidth * mVideoHeight * 3) >> 1) != 0) {
        outputBuffer->release();
        mInputBuffer->release();
        mInputBuffer = NULL;
        return UNKNOWN_ERROR;
    }

    int64_t timeUs;
    CHECK(mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs));
    if (mNextModTimeUs > timeUs) {