fixing broken_rv20_1mb_.rm
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 24 Apr 2005 22:08:31 +0000 (22:08 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 24 Apr 2005 22:08:31 +0000 (22:08 +0000)
Originally committed as revision 4155 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/rv10.c
libavformat/rm.c

index 23106bc..4d3f610 100644 (file)
@@ -440,21 +440,23 @@ static int rv20_decode_picture_header(MpegEncContext *s)
         }
         seq= get_bits(&s->gb, 14)<<1;
 
-        if(v>1 || (s->avctx->sub_id < 0x20201002 && v>0)){
-            f= get_bits(&s->gb, av_log2(v-1)+1);
-        }
-        
+        if(v) 
+            f= get_bits(&s->gb, av_log2(v));
+
         if(s->avctx->debug & FF_DEBUG_PICT_INFO){
             av_log(s->avctx, AV_LOG_DEBUG, "F %d/%d\n", f, v);
         }
+    }else{
+        seq= get_bits(&s->gb, 8)*128;
+    }
 
+//     if(s->avctx->sub_id <= 0x20201002){ //0x20201002 definitely needs this 
+    mb_pos= ff_h263_decode_mba(s);
+/*    }else{
         mb_pos= get_bits(&s->gb, av_log2(s->mb_num-1)+1);
         s->mb_x= mb_pos % s->mb_width;
         s->mb_y= mb_pos / s->mb_width;
-    }else{
-        seq= get_bits(&s->gb, 8)*128;
-        mb_pos= ff_h263_decode_mba(s);
-    }
+    }*/
 //av_log(s->avctx, AV_LOG_DEBUG, "%d\n", seq);
     seq |= s->time &~0x7FFF;
     if(seq - s->time >  0x4000) seq -= 0x8000;
index bea8c4b..f4babe4 100644 (file)
@@ -606,7 +606,7 @@ static int rm_read_header(AVFormatContext *s, AVFormatParameters *ap)
                tag,
                tag_size);
 #endif
-        if (tag_size < 10)
+        if (tag_size < 10 && tag != MKTAG('D', 'A', 'T', 'A'))
             goto fail;
         switch(tag) {
         case MKTAG('P', 'R', 'O', 'P'):