diff options
-rw-r--r-- | media/libstagefright/OMXCodec.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp index 7c7c9e2..c6c6f21 100644 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -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); |