am 10ed3f74: Merge "Add input buffer size check for software video encoders" into gingerbread

Merge commit '10ed3f7438f6ae797bac32476dc61465c6484c85' into gingerbread-plus-aosp

* commit '10ed3f7438f6ae797bac32476dc61465c6484c85':
  Add input buffer size check for software video encoders
This commit is contained in:
James Dong
2010-08-10 13:28:56 -07:00
committed by Android Git Automerger
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) {