Commit e2bf1082 authored by Paul B Mahol's avatar Paul B Mahol

svq1dec: return more meaningful error codes

Signed-off-by: 's avatarPaul B Mahol <onemda@gmail.com>
parent d3109811
...@@ -206,7 +206,7 @@ static int svq1_decode_block_intra(GetBitContext *bitbuf, uint8_t *pixels, ...@@ -206,7 +206,7 @@ static int svq1_decode_block_intra(GetBitContext *bitbuf, uint8_t *pixels,
av_dlog(NULL, av_dlog(NULL,
"Error (svq1_decode_block_intra): invalid vector: stages=%i level=%i\n", "Error (svq1_decode_block_intra): invalid vector: stages=%i level=%i\n",
stages, level); stages, level);
return -1; /* invalid vector */ return AVERROR_INVALIDDATA; /* invalid vector */
} }
mean = get_vlc2(bitbuf, svq1_intra_mean.table, 8, 3); mean = get_vlc2(bitbuf, svq1_intra_mean.table, 8, 3);
...@@ -258,7 +258,7 @@ static int svq1_decode_block_non_intra(GetBitContext *bitbuf, uint8_t *pixels, ...@@ -258,7 +258,7 @@ static int svq1_decode_block_non_intra(GetBitContext *bitbuf, uint8_t *pixels,
av_dlog(NULL, av_dlog(NULL,
"Error (svq1_decode_block_non_intra): invalid vector: stages=%i level=%i\n", "Error (svq1_decode_block_non_intra): invalid vector: stages=%i level=%i\n",
stages, level); stages, level);
return -1; /* invalid vector */ return AVERROR_INVALIDDATA; /* invalid vector */
} }
mean = get_vlc2(bitbuf, svq1_inter_mean.table, 9, 3) - 256; mean = get_vlc2(bitbuf, svq1_inter_mean.table, 9, 3) - 256;
...@@ -279,7 +279,7 @@ static int svq1_decode_motion_vector(GetBitContext *bitbuf, svq1_pmv *mv, ...@@ -279,7 +279,7 @@ static int svq1_decode_motion_vector(GetBitContext *bitbuf, svq1_pmv *mv,
/* get motion code */ /* get motion code */
diff = get_vlc2(bitbuf, svq1_motion_component.table, 7, 2); diff = get_vlc2(bitbuf, svq1_motion_component.table, 7, 2);
if (diff < 0) if (diff < 0)
return -1; return AVERROR_INVALIDDATA;
else if (diff) { else if (diff) {
if (get_bits1(bitbuf)) if (get_bits1(bitbuf))
diff = -diff; diff = -diff;
...@@ -518,7 +518,7 @@ static int svq1_decode_frame_header(GetBitContext *bitbuf, MpegEncContext *s) ...@@ -518,7 +518,7 @@ static int svq1_decode_frame_header(GetBitContext *bitbuf, MpegEncContext *s)
/* frame type */ /* frame type */
s->pict_type = get_bits(bitbuf, 2) + 1; s->pict_type = get_bits(bitbuf, 2) + 1;
if (s->pict_type == 4) if (s->pict_type == 4)
return -1; return AVERROR_INVALIDDATA;
if (s->pict_type == AV_PICTURE_TYPE_I) { if (s->pict_type == AV_PICTURE_TYPE_I) {
/* unknown fields */ /* unknown fields */
...@@ -555,7 +555,7 @@ static int svq1_decode_frame_header(GetBitContext *bitbuf, MpegEncContext *s) ...@@ -555,7 +555,7 @@ static int svq1_decode_frame_header(GetBitContext *bitbuf, MpegEncContext *s)
s->height = get_bits(bitbuf, 12); s->height = get_bits(bitbuf, 12);
if (!s->width || !s->height) if (!s->width || !s->height)
return -1; return AVERROR_INVALIDDATA;
} else { } else {
/* get width, height from table */ /* get width, height from table */
s->width = ff_svq1_frame_size_table[frame_size_code].width; s->width = ff_svq1_frame_size_table[frame_size_code].width;
...@@ -569,7 +569,7 @@ static int svq1_decode_frame_header(GetBitContext *bitbuf, MpegEncContext *s) ...@@ -569,7 +569,7 @@ static int svq1_decode_frame_header(GetBitContext *bitbuf, MpegEncContext *s)
skip_bits1(bitbuf); /* component checksums after image data if (1) */ skip_bits1(bitbuf); /* component checksums after image data if (1) */
if (get_bits(bitbuf, 2) != 0) if (get_bits(bitbuf, 2) != 0)
return -1; return AVERROR_INVALIDDATA;
} }
if (get_bits1(bitbuf) == 1) { if (get_bits1(bitbuf) == 1) {
...@@ -603,7 +603,7 @@ static int svq1_decode_frame(AVCodecContext *avctx, void *data, ...@@ -603,7 +603,7 @@ static int svq1_decode_frame(AVCodecContext *avctx, void *data,
s->f_code = get_bits(&s->gb, 22); s->f_code = get_bits(&s->gb, 22);
if ((s->f_code & ~0x70) || !(s->f_code & 0x60)) if ((s->f_code & ~0x70) || !(s->f_code & 0x60))
return -1; return AVERROR_INVALIDDATA;
/* swap some header bytes (why?) */ /* swap some header bytes (why?) */
if (s->f_code != 0x20) { if (s->f_code != 0x20) {
...@@ -637,12 +637,12 @@ static int svq1_decode_frame(AVCodecContext *avctx, void *data, ...@@ -637,12 +637,12 @@ static int svq1_decode_frame(AVCodecContext *avctx, void *data,
avctx->skip_frame >= AVDISCARD_ALL) avctx->skip_frame >= AVDISCARD_ALL)
return buf_size; return buf_size;
if (ff_MPV_frame_start(s, avctx) < 0) if ((result = ff_MPV_frame_start(s, avctx)) < 0)
return -1; return result;
pmv = av_malloc((FFALIGN(s->width, 16) / 8 + 3) * sizeof(*pmv)); pmv = av_malloc((FFALIGN(s->width, 16) / 8 + 3) * sizeof(*pmv));
if (!pmv) if (!pmv)
return -1; return AVERROR(ENOMEM);
/* decode y, u and v components */ /* decode y, u and v components */
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
......
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