comparison rv30.c @ 8568:4a93620c5aac libavcodec

30l: when reading mb_offset in RV30 slice header its size should be calculated from current frame dimensions
author kostya
date Sun, 11 Jan 2009 10:50:00 +0000
parents 48a4d9f4c6f8
children e9d9d946f213
comparison
equal deleted inserted replaced
8567:0d5b2b0e7a87 8568:4a93620c5aac
49 return -1; 49 return -1;
50 si->quant = get_bits(gb, 5); 50 si->quant = get_bits(gb, 5);
51 skip_bits1(gb); 51 skip_bits1(gb);
52 si->pts = get_bits(gb, 13); 52 si->pts = get_bits(gb, 13);
53 rpr = get_bits(gb, r->rpr); 53 rpr = get_bits(gb, r->rpr);
54 if(!rpr){ 54 if(rpr){
55 si->width = w; 55 w = r->s.avctx->extradata[6 + rpr*2] << 2;
56 si->height = h; 56 h = r->s.avctx->extradata[7 + rpr*2] << 2;
57 }else{ 57 }
58 si->width = r->s.avctx->extradata[6 + rpr*2] << 2; 58 si->width = w;
59 si->height = r->s.avctx->extradata[7 + rpr*2] << 2; 59 si->height = h;
60 }
61 mb_size = ((w + 15) >> 4) * ((h + 15) >> 4); 60 mb_size = ((w + 15) >> 4) * ((h + 15) >> 4);
62 mb_bits = ff_rv34_get_start_offset(gb, mb_size); 61 mb_bits = ff_rv34_get_start_offset(gb, mb_size);
63 si->start = get_bits(gb, mb_bits); 62 si->start = get_bits(gb, mb_bits);
64 skip_bits1(gb); 63 skip_bits1(gb);
65 return 0; 64 return 0;