[FFmpeg-cvslog] rv20: Fix handling of frame skip.

Michael Niedermayer git at videolan.org
Wed Mar 6 04:07:43 CET 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed Mar  6 03:10:18 2013 +0100| [bb01be80462adcf4900c925e25bc644e512a4b7b] | committer: Michael Niedermayer

rv20: Fix handling of frame skip.

Fixes division by zero

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavcodec/rv10.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c
index 1528780..3f338f3 100644
--- a/libavcodec/rv10.c
+++ b/libavcodec/rv10.c
@@ -419,7 +419,8 @@ static int rv20_decode_picture_header(RVDecContext *rv)
     if (s->pict_type==AV_PICTURE_TYPE_B) {
         if(s->pp_time <=s->pb_time || s->pp_time <= s->pp_time - s->pb_time || s->pp_time<=0){
             av_log(s->avctx, AV_LOG_DEBUG, "messed up order, possible from seeking? skipping current b frame\n");
-            return FRAME_SKIPPED;
+#define ERROR_SKIP_FRAME -123
+            return ERROR_SKIP_FRAME;
         }
         ff_mpeg4_init_direct_mv(s);
     }
@@ -542,7 +543,8 @@ static int rv10_decode_packet(AVCodecContext *avctx,
     else
         mb_count = rv20_decode_picture_header(rv);
     if (mb_count < 0) {
-        av_log(s->avctx, AV_LOG_ERROR, "HEADER ERROR\n");
+        if (mb_count != ERROR_SKIP_FRAME)
+            av_log(s->avctx, AV_LOG_ERROR, "HEADER ERROR\n");
         return -1;
     }
 



More information about the ffmpeg-cvslog mailing list