diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-11-14 08:59:03 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2013-01-06 13:31:39 +0100 |
commit | 313da47aa1f28aba3a81b0f4c9c23fd29df1070a (patch) | |
tree | 91e037c12ee9abf6906ddee47ff5e81d8a335e0b /libavcodec/8bps.c | |
parent | f7d15d2f42d99df3a3c2448dd91e436f8fb005f4 (diff) | |
download | ffmpeg-313da47aa1f28aba3a81b0f4c9c23fd29df1070a.tar.gz |
8bps: return meaningful error codes.
Diffstat (limited to 'libavcodec/8bps.c')
-rw-r--r-- | libavcodec/8bps.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libavcodec/8bps.c b/libavcodec/8bps.c index 8f0692c4ba..ceed13f5b8 100644 --- a/libavcodec/8bps.c +++ b/libavcodec/8bps.c @@ -69,15 +69,16 @@ static int decode_frame(AVCodecContext *avctx, void *data, unsigned int px_inc; unsigned int planes = c->planes; unsigned char *planemap = c->planemap; + int ret; if (c->pic.data[0]) avctx->release_buffer(avctx, &c->pic); c->pic.reference = 0; c->pic.buffer_hints = FF_BUFFER_HINTS_VALID; - if (ff_get_buffer(avctx, &c->pic) < 0){ + if ((ret = ff_get_buffer(avctx, &c->pic)) < 0) { av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); - return -1; + return ret; } /* Set data pointer after line lengths */ @@ -101,14 +102,14 @@ static int decode_frame(AVCodecContext *avctx, void *data, /* Decode a row of this plane */ while (dlen > 0) { if (dp + 1 >= buf + buf_size) - return -1; + return AVERROR_INVALIDDATA; if ((count = *dp++) <= 127) { count++; dlen -= count + 1; if (pixptr + count * px_inc > pixptr_end) break; if (dp + count > buf + buf_size) - return -1; + return AVERROR_INVALIDDATA; while (count--) { *pixptr = *dp++; pixptr += px_inc; @@ -185,7 +186,7 @@ static av_cold int decode_init(AVCodecContext *avctx) default: av_log(avctx, AV_LOG_ERROR, "Error: Unsupported color depth: %u.\n", avctx->bits_per_coded_sample); - return -1; + return AVERROR_INVALIDDATA; } return 0; |