From 42b7678d655dbe1f8ce0f27bdea8ec778973a81d Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Sun, 11 Jan 2009 10:50:00 +0000 Subject: 30l: when reading mb_offset in RV30 slice header its size should be calculated from current frame dimensions Originally committed as revision 16536 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/rv30.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'libavcodec/rv30.c') diff --git a/libavcodec/rv30.c b/libavcodec/rv30.c index 0528f010b6..0c6f343c9e 100644 --- a/libavcodec/rv30.c +++ b/libavcodec/rv30.c @@ -51,13 +51,12 @@ static int rv30_parse_slice_header(RV34DecContext *r, GetBitContext *gb, SliceIn skip_bits1(gb); si->pts = get_bits(gb, 13); rpr = get_bits(gb, r->rpr); - if(!rpr){ - si->width = w; - si->height = h; - }else{ - si->width = r->s.avctx->extradata[6 + rpr*2] << 2; - si->height = r->s.avctx->extradata[7 + rpr*2] << 2; + if(rpr){ + w = r->s.avctx->extradata[6 + rpr*2] << 2; + h = r->s.avctx->extradata[7 + rpr*2] << 2; } + si->width = w; + si->height = h; mb_size = ((w + 15) >> 4) * ((h + 15) >> 4); mb_bits = ff_rv34_get_start_offset(gb, mb_size); si->start = get_bits(gb, mb_bits); -- cgit v1.2.3