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:
committed by
Android (Google) Code Review
commit
0dd4df27ad
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user