From: Anton Khirnov Date: Mon, 19 Nov 2012 08:21:15 +0000 (+0100) Subject: interplayvideo: return meaningful error codes. X-Git-Tag: android-x86-4.4-r1~364^2~2164 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=089b3d6815a8b8f720482b907f526300d5dd7927;p=android-x86%2Fexternal-ffmpeg.git interplayvideo: return meaningful error codes. --- diff --git a/libavcodec/interplayvideo.c b/libavcodec/interplayvideo.c index 3f098ac31d..012df378af 100644 --- a/libavcodec/interplayvideo.c +++ b/libavcodec/interplayvideo.c @@ -74,11 +74,11 @@ static int copy_from(IpvideoContext *s, AVFrame *src, int delta_x, int delta_y) + delta_x * (1 + s->is_16bpp); if (motion_offset < 0) { av_log(s->avctx, AV_LOG_ERROR, " Interplay video: motion offset < 0 (%d)\n", motion_offset); - return -1; + return AVERROR_INVALIDDATA; } else if (motion_offset > s->upper_motion_limit_offset) { av_log(s->avctx, AV_LOG_ERROR, " Interplay video: motion offset above limit (%d >= %d)\n", motion_offset, s->upper_motion_limit_offset); - return -1; + return AVERROR_INVALIDDATA; } if (src->data[0] == NULL) { av_log(s->avctx, AV_LOG_ERROR, "Invalid decode type, corrupted header?\n"); @@ -959,6 +959,7 @@ static int ipvideo_decode_frame(AVCodecContext *avctx, const uint8_t *buf = avpkt->data; int buf_size = avpkt->size; IpvideoContext *s = avctx->priv_data; + int ret; /* decoding map contains 4 bits of information per 8x8 block */ s->decoding_map_size = avctx->width * avctx->height / (8 * 8 * 2); @@ -973,9 +974,9 @@ static int ipvideo_decode_frame(AVCodecContext *avctx, buf_size - s->decoding_map_size); s->current_frame.reference = 3; - if (ff_get_buffer(avctx, &s->current_frame)) { + if ((ret = ff_get_buffer(avctx, &s->current_frame)) < 0) { av_log(avctx, AV_LOG_ERROR, " Interplay Video: get_buffer() failed\n"); - return -1; + return ret; } if (!s->is_16bpp) {