Merge "If the codec's input buffer size is too small to accomodate the buffer read from the source, report and error instead of asserting."

This commit is contained in:
Andreas Huber
2010-02-09 14:23:30 -08:00
committed by Android (Google) Code Review

View File

@@ -139,6 +139,7 @@ static const CodecInfo kEncoderInfo[] = {
#define CODEC_LOGI(x, ...) LOGI("[%s] "x, mComponentName, ##__VA_ARGS__)
#define CODEC_LOGV(x, ...) LOGV("[%s] "x, mComponentName, ##__VA_ARGS__)
#define CODEC_LOGE(x, ...) LOGE("[%s] "x, mComponentName, ##__VA_ARGS__)
struct OMXCodecObserver : public BnOMXObserver {
OMXCodecObserver() {
@@ -1931,10 +1932,17 @@ void OMXCodec::drainInputBuffer(BufferInfo *info) {
srcLength = srcBuffer->range_length();
if (info->mSize < srcLength) {
LOGE("info->mSize = %d, srcLength = %d",
CODEC_LOGE(
"Codec's input buffers are too small to accomodate "
"buffer read from source (info->mSize = %d, srcLength = %d)",
info->mSize, srcLength);
srcBuffer->release();
srcBuffer = NULL;
setState(ERROR);
return;
}
CHECK(info->mSize >= srcLength);
memcpy(info->mData,
(const uint8_t *)srcBuffer->data() + srcBuffer->range_offset(),
srcLength);