diff options
author | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2014-11-03 00:43:08 +0100 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2014-11-03 00:43:08 +0100 |
commit | d457478fb0283d13886d433345ea323b862af9ae (patch) | |
tree | 226c5ceba5940e22bd8e58bfe647a95b4d3efb70 | |
parent | e6b7246a688bfd7e3a52c3ec639fa0f92c4bfc09 (diff) | |
download | ffmpeg-d457478fb0283d13886d433345ea323b862af9ae.tar.gz |
Silence warnings for fic files with zero-sized cursors.
Fixes ticket #4072.
-rw-r--r-- | libavcodec/fic.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libavcodec/fic.c b/libavcodec/fic.c index 5615e69abc..adc8a25d4c 100644 --- a/libavcodec/fic.c +++ b/libavcodec/fic.c @@ -308,7 +308,10 @@ static int fic_decode_frame(AVCodecContext *avctx, void *data, return AVERROR_INVALIDDATA; } - if (tsize < 32) { + if (!tsize) + skip_cursor = 1; + + if (!skip_cursor && tsize < 32) { av_log(avctx, AV_LOG_WARNING, "Cursor data too small. Skipping cursor.\n"); skip_cursor = 1; @@ -317,14 +320,14 @@ static int fic_decode_frame(AVCodecContext *avctx, void *data, /* Cursor position. */ cur_x = AV_RL16(src + 33); cur_y = AV_RL16(src + 35); - if (cur_x > avctx->width || cur_y > avctx->height) { + if (!skip_cursor && (cur_x > avctx->width || cur_y > avctx->height)) { av_log(avctx, AV_LOG_WARNING, "Invalid cursor position: (%d,%d). Skipping cusor.\n", cur_x, cur_y); skip_cursor = 1; } - if (AV_RL16(src + 37) != 32 || AV_RL16(src + 39) != 32) { + if (!skip_cursor && (AV_RL16(src + 37) != 32 || AV_RL16(src + 39) != 32)) { av_log(avctx, AV_LOG_WARNING, "Invalid cursor size. Skipping cursor.\n"); skip_cursor = 1; |