Commit 089b3d68 authored by Anton Khirnov's avatar Anton Khirnov

interplayvideo: return meaningful error codes.

parent 14cf33e9
...@@ -74,11 +74,11 @@ static int copy_from(IpvideoContext *s, AVFrame *src, int delta_x, int delta_y) ...@@ -74,11 +74,11 @@ static int copy_from(IpvideoContext *s, AVFrame *src, int delta_x, int delta_y)
+ delta_x * (1 + s->is_16bpp); + delta_x * (1 + s->is_16bpp);
if (motion_offset < 0) { if (motion_offset < 0) {
av_log(s->avctx, AV_LOG_ERROR, " Interplay video: motion offset < 0 (%d)\n", motion_offset); 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) { } 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", av_log(s->avctx, AV_LOG_ERROR, " Interplay video: motion offset above limit (%d >= %d)\n",
motion_offset, s->upper_motion_limit_offset); motion_offset, s->upper_motion_limit_offset);
return -1; return AVERROR_INVALIDDATA;
} }
if (src->data[0] == NULL) { if (src->data[0] == NULL) {
av_log(s->avctx, AV_LOG_ERROR, "Invalid decode type, corrupted header?\n"); av_log(s->avctx, AV_LOG_ERROR, "Invalid decode type, corrupted header?\n");
...@@ -959,6 +959,7 @@ static int ipvideo_decode_frame(AVCodecContext *avctx, ...@@ -959,6 +959,7 @@ static int ipvideo_decode_frame(AVCodecContext *avctx,
const uint8_t *buf = avpkt->data; const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size; int buf_size = avpkt->size;
IpvideoContext *s = avctx->priv_data; IpvideoContext *s = avctx->priv_data;
int ret;
/* decoding map contains 4 bits of information per 8x8 block */ /* decoding map contains 4 bits of information per 8x8 block */
s->decoding_map_size = avctx->width * avctx->height / (8 * 8 * 2); s->decoding_map_size = avctx->width * avctx->height / (8 * 8 * 2);
...@@ -973,9 +974,9 @@ static int ipvideo_decode_frame(AVCodecContext *avctx, ...@@ -973,9 +974,9 @@ static int ipvideo_decode_frame(AVCodecContext *avctx,
buf_size - s->decoding_map_size); buf_size - s->decoding_map_size);
s->current_frame.reference = 3; 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"); av_log(avctx, AV_LOG_ERROR, " Interplay Video: get_buffer() failed\n");
return -1; return ret;
} }
if (!s->is_16bpp) { if (!s->is_16bpp) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment