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

Commit e6daea59 authored by James Dong's avatar James Dong
Browse files

Add input buffer size check for software video encoders

Change-Id: I03953a1245060ed6656a965e1a8a61386126c441
parent 532d2ac5
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) {