From ee3b2be65da55cfe1fc17d1db75738535f99ceef Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Wed, 28 Aug 2002 09:19:28 +0000
Subject: [PATCH] fixes rv10 decoding crash

Originally committed as revision 873 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/rv10.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c
index 2483059296f..7562cbb2fe1 100644
--- a/libavcodec/rv10.c
+++ b/libavcodec/rv10.c
@@ -296,6 +296,10 @@ static int rv10_decode_picture_header(MpegEncContext *s)
         return -1;
 
     s->qscale = get_bits(&s->gb, 5);
+    if(s->qscale==0){
+        fprintf(stderr, "error, qscale:0\n");
+        return -1;
+    }
 
     if (s->pict_type == I_TYPE) {
         if (s->rv10_version == 3) {
@@ -322,7 +326,7 @@ static int rv10_decode_picture_header(MpegEncContext *s)
         s->mb_y = 0;
         mb_count = s->mb_width * s->mb_height;
     }
-
+//printf("%d\n", get_bits(&s->gb, 3));
     get_bits(&s->gb, 3);	/* ignored */
     s->f_code = 1;
     s->unrestricted_mv = 1;
@@ -353,6 +357,9 @@ static int rv10_decode_init(AVCodecContext *avctx)
 
     h263_decode_init_vlc(s);
 
+    s->y_dc_scale_table=
+    s->c_dc_scale_table= ff_mpeg1_dc_scale_table;
+
     /* init rv vlc */
     if (!done) {
         init_vlc(&rv_dc_lum, DC_VLC_BITS, 256, 
-- 
GitLab