[FFmpeg-cvslog] Silence warnings for fic files with zero-sized cursors.

Carl Eugen Hoyos git at videolan.org
Mon Nov 3 01:07:19 CET 2014


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Mon Nov  3 00:43:08 2014 +0100| [d457478fb0283d13886d433345ea323b862af9ae] | committer: Carl Eugen Hoyos

Silence warnings for fic files with zero-sized cursors.

Fixes ticket #4072.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d457478fb0283d13886d433345ea323b862af9ae
---

 libavcodec/fic.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/libavcodec/fic.c b/libavcodec/fic.c
index 5615e69..adc8a25 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;



More information about the ffmpeg-cvslog mailing list