From 9786bd4d94a72ce4245398c3067c016852d1fd55 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 24 Apr 2005 22:08:31 +0000 Subject: [PATCH] fixing broken_rv20_1mb_.rm Originally committed as revision 4155 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/rv10.c | 18 ++++++++++-------- libavformat/rm.c | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c index 23106bcc0a..4d3f6108da 100644 --- a/libavcodec/rv10.c +++ b/libavcodec/rv10.c @@ -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; diff --git a/libavformat/rm.c b/libavformat/rm.c index bea8c4bb2c..f4babe4b62 100644 --- a/libavformat/rm.c +++ b/libavformat/rm.c @@ -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'):