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

This commit is contained in:
James Dong
2010-08-10 13:27:09 -07:00
committed by Android (Google) Code Review
2 changed files with 20 additions and 0 deletions

View File

@@ -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);

View File

@@ -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) {