diff options
author | Andreas Huber <andih@google.com> | 2010-02-09 10:20:00 -0800 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-02-09 14:21:44 -0800 |
commit | 42c444a8b18730614426a3c28193ae5fd59bab80 (patch) | |
tree | 1e61f28ffe8b8f9ee418fb643c03d73781c283b9 /media | |
parent | fe3b8e9fe5e68ef307fdac3ad94b15215038dbc3 (diff) | |
download | frameworks_base-42c444a8b18730614426a3c28193ae5fd59bab80.zip frameworks_base-42c444a8b18730614426a3c28193ae5fd59bab80.tar.gz frameworks_base-42c444a8b18730614426a3c28193ae5fd59bab80.tar.bz2 |
If the codec's input buffer size is too small to accomodate the buffer read from the source, report and error instead of asserting.
Diffstat (limited to 'media')
-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); |