Mercurial > libavcodec.hg
comparison rv34.c @ 8370:edea96e4367b libavcodec
use precalculated mb_pos where available
author | kostya |
---|---|
date | Wed, 17 Dec 2008 20:10:15 +0000 |
parents | 45c3780b1a96 |
children | 2ebc9b2c7459 |
comparison
equal
deleted
inserted
replaced
8369:45c3780b1a96 | 8370:edea96e4367b |
---|---|
1146 if(s->mb_x && dist > s->mb_width) | 1146 if(s->mb_x && dist > s->mb_width) |
1147 r->avail_cache[0] = s->current_picture_ptr->mb_type[mb_pos - s->mb_stride - 1]; | 1147 r->avail_cache[0] = s->current_picture_ptr->mb_type[mb_pos - s->mb_stride - 1]; |
1148 | 1148 |
1149 s->qscale = r->si.quant; | 1149 s->qscale = r->si.quant; |
1150 cbp = cbp2 = rv34_decode_mb_header(r, intra_types); | 1150 cbp = cbp2 = rv34_decode_mb_header(r, intra_types); |
1151 r->cbp_luma [s->mb_x + s->mb_y * s->mb_stride] = cbp; | 1151 r->cbp_luma [mb_pos] = cbp; |
1152 r->cbp_chroma[s->mb_x + s->mb_y * s->mb_stride] = cbp >> 16; | 1152 r->cbp_chroma[mb_pos] = cbp >> 16; |
1153 if(s->pict_type == FF_I_TYPE) | 1153 if(s->pict_type == FF_I_TYPE) |
1154 r->deblock_coefs[mb_pos] = 0xFFFF; | 1154 r->deblock_coefs[mb_pos] = 0xFFFF; |
1155 else | 1155 else |
1156 r->deblock_coefs[mb_pos] = rv34_set_deblock_coef(r) | r->cbp_luma[mb_pos]; | 1156 r->deblock_coefs[mb_pos] = rv34_set_deblock_coef(r) | r->cbp_luma[mb_pos]; |
1157 s->current_picture_ptr->qscale_table[s->mb_x + s->mb_y * s->mb_stride] = s->qscale; | 1157 s->current_picture_ptr->qscale_table[mb_pos] = s->qscale; |
1158 | 1158 |
1159 if(cbp == -1) | 1159 if(cbp == -1) |
1160 return -1; | 1160 return -1; |
1161 | 1161 |
1162 luma_dc_quant = r->block_type == RV34_MB_P_MIX16x16 ? r->luma_dc_quant_p[s->qscale] : r->luma_dc_quant_i[s->qscale]; | 1162 luma_dc_quant = r->block_type == RV34_MB_P_MIX16x16 ? r->luma_dc_quant_p[s->qscale] : r->luma_dc_quant_i[s->qscale]; |
1186 blkoff = ((i & 1) << 2) + ((i & 2) << 4); | 1186 blkoff = ((i & 1) << 2) + ((i & 2) << 4); |
1187 rv34_decode_block(s->block[blknum] + blkoff, gb, r->cur_vlcs, r->chroma_vlc, 1); | 1187 rv34_decode_block(s->block[blknum] + blkoff, gb, r->cur_vlcs, r->chroma_vlc, 1); |
1188 rv34_dequant4x4(s->block[blknum] + blkoff, rv34_qscale_tab[rv34_chroma_quant[1][s->qscale]],rv34_qscale_tab[rv34_chroma_quant[0][s->qscale]]); | 1188 rv34_dequant4x4(s->block[blknum] + blkoff, rv34_qscale_tab[rv34_chroma_quant[1][s->qscale]],rv34_qscale_tab[rv34_chroma_quant[0][s->qscale]]); |
1189 rv34_inv_transform(s->block[blknum] + blkoff); | 1189 rv34_inv_transform(s->block[blknum] + blkoff); |
1190 } | 1190 } |
1191 if(IS_INTRA(s->current_picture_ptr->mb_type[s->mb_x + s->mb_y*s->mb_stride])) | 1191 if(IS_INTRA(s->current_picture_ptr->mb_type[mb_pos])) |
1192 rv34_output_macroblock(r, intra_types, cbp2, r->is16); | 1192 rv34_output_macroblock(r, intra_types, cbp2, r->is16); |
1193 else | 1193 else |
1194 rv34_apply_differences(r, cbp2); | 1194 rv34_apply_differences(r, cbp2); |
1195 | 1195 |
1196 return 0; | 1196 return 0; |