diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-11-20 07:13:49 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2013-01-14 11:39:33 +0100 |
commit | ac1e93f555aad54e5a73cf12774c07af59c1d9f1 (patch) | |
tree | 700355d7f396321a712dae4782074684901d369f /libavcodec/tscc.c | |
parent | b627c3010b9bd3fa064750e3ea3e6fb45126a847 (diff) | |
download | ffmpeg-ac1e93f555aad54e5a73cf12774c07af59c1d9f1.tar.gz |
tscc: return meaningful error codes.
Diffstat (limited to 'libavcodec/tscc.c')
-rw-r--r-- | libavcodec/tscc.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libavcodec/tscc.c b/libavcodec/tscc.c index 5b1c7be16e..d9e51ad131 100644 --- a/libavcodec/tscc.c +++ b/libavcodec/tscc.c @@ -79,22 +79,22 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, CamtasiaContext * const c = avctx->priv_data; const unsigned char *encoded = buf; int zret; // Zlib return code - int len = buf_size; + int ret, len = buf_size; if(c->pic.data[0]) avctx->release_buffer(avctx, &c->pic); c->pic.reference = 1; 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; } zret = inflateReset(&c->zstream); if (zret != Z_OK) { av_log(avctx, AV_LOG_ERROR, "Inflate reset error: %d\n", zret); - return -1; + return AVERROR_UNKNOWN; } c->zstream.next_in = encoded; c->zstream.avail_in = len; @@ -104,7 +104,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, // Z_DATA_ERROR means empty picture if ((zret != Z_OK) && (zret != Z_STREAM_END) && (zret != Z_DATA_ERROR)) { av_log(avctx, AV_LOG_ERROR, "Inflate error: %d\n", zret); - return -1; + return AVERROR_UNKNOWN; } @@ -158,7 +158,7 @@ static av_cold int decode_init(AVCodecContext *avctx) break; case 32: avctx->pix_fmt = AV_PIX_FMT_RGB32; break; default: av_log(avctx, AV_LOG_ERROR, "Camtasia error: unknown depth %i bpp\n", avctx->bits_per_coded_sample); - return -1; + return AVERROR_INVALIDDATA; } c->bpp = avctx->bits_per_coded_sample; // buffer size for RLE 'best' case when 2-byte code precedes each pixel and there may be padding after it too @@ -168,7 +168,7 @@ static av_cold int decode_init(AVCodecContext *avctx) if (c->decomp_size) { if ((c->decomp_buf = av_malloc(c->decomp_size)) == NULL) { av_log(avctx, AV_LOG_ERROR, "Can't allocate decompression buffer.\n"); - return 1; + return AVERROR(ENOMEM); } } @@ -178,7 +178,7 @@ static av_cold int decode_init(AVCodecContext *avctx) zret = inflateInit(&c->zstream); if (zret != Z_OK) { av_log(avctx, AV_LOG_ERROR, "Inflate init error: %d\n", zret); - return 1; + return AVERROR_UNKNOWN; } return 0; |