Browse code

fixing broken_rv20_1mb_.rm

Originally committed as revision 4155 to svn://svn.ffmpeg.org/ffmpeg/trunk

Michael Niedermayer authored on 2005/04/25 07:08:31
Showing 2 changed files
... ...
@@ -440,21 +440,23 @@ static int rv20_decode_picture_header(MpegEncContext *s)
440 440
         }
441 441
         seq= get_bits(&s->gb, 14)<<1;
442 442
 
443
-        if(v>1 || (s->avctx->sub_id < 0x20201002 && v>0)){
444
-            f= get_bits(&s->gb, av_log2(v-1)+1);
445
-        }
446
-        
443
+        if(v) 
444
+            f= get_bits(&s->gb, av_log2(v));
445
+
447 446
         if(s->avctx->debug & FF_DEBUG_PICT_INFO){
448 447
             av_log(s->avctx, AV_LOG_DEBUG, "F %d/%d\n", f, v);
449 448
         }
449
+    }else{
450
+        seq= get_bits(&s->gb, 8)*128;
451
+    }
450 452
 
453
+//     if(s->avctx->sub_id <= 0x20201002){ //0x20201002 definitely needs this 
454
+    mb_pos= ff_h263_decode_mba(s);
455
+/*    }else{
451 456
         mb_pos= get_bits(&s->gb, av_log2(s->mb_num-1)+1);
452 457
         s->mb_x= mb_pos % s->mb_width;
453 458
         s->mb_y= mb_pos / s->mb_width;
454
-    }else{
455
-        seq= get_bits(&s->gb, 8)*128;
456
-        mb_pos= ff_h263_decode_mba(s);
457
-    }
459
+    }*/
458 460
 //av_log(s->avctx, AV_LOG_DEBUG, "%d\n", seq);
459 461
     seq |= s->time &~0x7FFF;
460 462
     if(seq - s->time >  0x4000) seq -= 0x8000;
... ...
@@ -606,7 +606,7 @@ static int rm_read_header(AVFormatContext *s, AVFormatParameters *ap)
606 606
                tag,
607 607
                tag_size);
608 608
 #endif
609
-        if (tag_size < 10)
609
+        if (tag_size < 10 && tag != MKTAG('D', 'A', 'T', 'A'))
610 610
             goto fail;
611 611
         switch(tag) {
612 612
         case MKTAG('P', 'R', 'O', 'P'):