diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-11-16 15:25:32 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2013-01-06 13:31:40 +0100 |
commit | b61e0b99dfac9fdd4fdec305f4c60181184af1d6 (patch) | |
tree | a995ec3920e866781cec1470ad91ad76984bcb0c /libavcodec/truemotion1.c | |
parent | 380242ca50242c3f5db6471e636274d6c0b93a71 (diff) | |
download | ffmpeg-b61e0b99dfac9fdd4fdec305f4c60181184af1d6.tar.gz |
truemotion1: return meaningful error codes
Diffstat (limited to 'libavcodec/truemotion1.c')
-rw-r--r-- | libavcodec/truemotion1.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/libavcodec/truemotion1.c b/libavcodec/truemotion1.c index c49f9fecbf..232ee2c2b8 100644 --- a/libavcodec/truemotion1.c +++ b/libavcodec/truemotion1.c @@ -308,7 +308,7 @@ static void gen_vector_table24(TrueMotion1Context *s, const uint8_t *sel_vector_ * there was an error while decoding the header */ static int truemotion1_decode_header(TrueMotion1Context *s) { - int i; + int i, ret; int width_shift = 0; int new_pix_fmt; struct frame_header header; @@ -319,7 +319,7 @@ static int truemotion1_decode_header(TrueMotion1Context *s) if (s->buf[0] < 0x10) { av_log(s->avctx, AV_LOG_ERROR, "invalid header size (%d)\n", s->buf[0]); - return -1; + return AVERROR_INVALIDDATA; } /* unscramble the header bytes with a XOR operation */ @@ -343,7 +343,7 @@ static int truemotion1_decode_header(TrueMotion1Context *s) if (header.header_type > 3) { av_log(s->avctx, AV_LOG_ERROR, "invalid header type (%d)\n", header.header_type); - return -1; + return AVERROR_INVALIDDATA; } else if ((header.header_type == 2) || (header.header_type == 3)) { s->flags = header.flags; if (!(s->flags & FLAG_INTERFRAME)) @@ -371,7 +371,7 @@ static int truemotion1_decode_header(TrueMotion1Context *s) if (header.compression >= 17) { av_log(s->avctx, AV_LOG_ERROR, "invalid compression type (%d)\n", header.compression); - return -1; + return AVERROR_INVALIDDATA; } if ((header.deltaset != s->last_deltaset) || @@ -385,7 +385,7 @@ static int truemotion1_decode_header(TrueMotion1Context *s) sel_vector_table = tables[header.vectable - 1]; else { av_log(s->avctx, AV_LOG_ERROR, "invalid vector table id (%d)\n", header.vectable); - return -1; + return AVERROR_INVALIDDATA; } } @@ -396,8 +396,8 @@ static int truemotion1_decode_header(TrueMotion1Context *s) new_pix_fmt = AV_PIX_FMT_RGB555; // RGB565 is supported as well s->w >>= width_shift; - if (av_image_check_size(s->w, s->h, 0, s->avctx) < 0) - return -1; + if ((ret = av_image_check_size(s->w, s->h, 0, s->avctx)) < 0) + return ret; if (s->w != s->avctx->width || s->h != s->avctx->height || new_pix_fmt != s->avctx->pix_fmt) { @@ -843,21 +843,21 @@ static int truemotion1_decode_frame(AVCodecContext *avctx, AVPacket *avpkt) { const uint8_t *buf = avpkt->data; - int buf_size = avpkt->size; + int ret, buf_size = avpkt->size; TrueMotion1Context *s = avctx->priv_data; s->buf = buf; s->size = buf_size; - if (truemotion1_decode_header(s) == -1) - return -1; + if ((ret = truemotion1_decode_header(s)) < 0) + return ret; s->frame.reference = 1; s->frame.buffer_hints = FF_BUFFER_HINTS_VALID | FF_BUFFER_HINTS_PRESERVE | FF_BUFFER_HINTS_REUSABLE; - if (avctx->reget_buffer(avctx, &s->frame) < 0) { + if ((ret = avctx->reget_buffer(avctx, &s->frame)) < 0) { av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed\n"); - return -1; + return ret; } if (compression_types[s->compression].algorithm == ALGO_RGB24H) { |