diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-12-15 13:41:06 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-12-15 13:41:06 +0100 |
commit | f186ecc164e8dad145d4637ac1d55b66e460af7a (patch) | |
tree | b14e6d2d85dd3589c4a4cc5bb5c730976d9df854 /libavcodec/vp6.c | |
parent | 75b7e543df05e9d4dfb1f73a28bceecd0bd1971b (diff) | |
parent | bb675d3ac6d722d5e117ae9042a996b55ca05b1d (diff) | |
download | ffmpeg-f186ecc164e8dad145d4637ac1d55b66e460af7a.tar.gz |
Merge commit 'bb675d3ac6d722d5e117ae9042a996b55ca05b1d'
* commit 'bb675d3ac6d722d5e117ae9042a996b55ca05b1d':
vp56: make parse_header return standard error codes
Conflicts:
libavcodec/vp56.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/vp6.c')
-rw-r--r-- | libavcodec/vp6.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libavcodec/vp6.c b/libavcodec/vp6.c index bf168c886e..c6ca13c5c0 100644 --- a/libavcodec/vp6.c +++ b/libavcodec/vp6.c @@ -51,7 +51,7 @@ static int vp6_parse_header(VP56Context *s, const uint8_t *buf, int buf_size) int vrt_shift = 0; int sub_version; int rows, cols; - int res = 1; + int res = 0; int separated_coeff = buf[0] & 1; s->framep[VP56_FRAME_CURRENT]->key_frame = !(buf[0] & 0x80); @@ -60,7 +60,7 @@ static int vp6_parse_header(VP56Context *s, const uint8_t *buf, int buf_size) if (s->framep[VP56_FRAME_CURRENT]->key_frame) { sub_version = buf[1] >> 3; if (sub_version > 8) - return 0; + return AVERROR_INVALIDDATA; s->filter_header = buf[1] & 0x06; if (buf[1] & 1) { av_log_missing_feature(s->avctx, "Interlacing", 0); @@ -78,7 +78,7 @@ static int vp6_parse_header(VP56Context *s, const uint8_t *buf, int buf_size) /* buf[5] is number of displayed macroblock cols */ if (!rows || !cols) { av_log(s->avctx, AV_LOG_ERROR, "Invalid size %dx%d\n", cols << 4, rows << 4); - return 0; + return AVERROR_INVALIDDATA; } if (!s->macroblocks || /* first frame */ @@ -89,7 +89,7 @@ static int vp6_parse_header(VP56Context *s, const uint8_t *buf, int buf_size) s->avctx->width -= s->avctx->extradata[0] >> 4; s->avctx->height -= s->avctx->extradata[0] & 0x0F; } - res = 2; + res = VP56_SIZE_CHANGE; } ff_vp56_init_range_decoder(c, buf+6, buf_size-6); @@ -102,7 +102,7 @@ static int vp6_parse_header(VP56Context *s, const uint8_t *buf, int buf_size) s->golden_frame = 0; } else { if (!s->sub_version || !s->avctx->coded_width || !s->avctx->coded_height) - return 0; + return AVERROR_INVALIDDATA; if (separated_coeff || !s->filter_header) { coeff_offset = AV_RB16(buf+1) - 2; @@ -146,7 +146,7 @@ static int vp6_parse_header(VP56Context *s, const uint8_t *buf, int buf_size) if (buf_size < 0) { if (s->framep[VP56_FRAME_CURRENT]->key_frame) avcodec_set_dimensions(s->avctx, 0, 0); - return 0; + return AVERROR_INVALIDDATA; } if (s->use_huffman) { s->parse_coeff = vp6_parse_coeff_huffman; |