# HG changeset patch # User michael # Date 1114118602 0 # Node ID fe4ed09b0f0dd039cc6078c92a7a64a7f83f22eb # Parent aaf8e94bce00b825d99f2b4d7c6a7ded418fe0f1 avoid clearing block[] if its not used at all diff -r aaf8e94bce00 -r fe4ed09b0f0d mpeg12.c --- a/mpeg12.c Thu Apr 21 20:38:42 2005 +0000 +++ b/mpeg12.c Thu Apr 21 21:23:22 2005 +0000 @@ -1140,6 +1140,12 @@ dprintf("mb_type=%x\n", mb_type); // motion_type = 0; /* avoid warning */ if (IS_INTRA(mb_type)) { + s->dsp.clear_blocks(s->block[0]); + + if(!s->chroma_y_shift){ + s->dsp.clear_blocks(s->block[6]); + } + /* compute dct type */ if (s->picture_structure == PICT_FRAME && //FIXME add a interlaced_dct coded var? !s->frame_pred_frame_dct) { @@ -1357,8 +1363,13 @@ } s->mb_intra = 0; + if (HAS_CBP(mb_type)) { + s->dsp.clear_blocks(s->block[0]); + + if(!s->chroma_y_shift){ + s->dsp.clear_blocks(s->block[6]); + } - if (HAS_CBP(mb_type)) { cbp = get_vlc2(&s->gb, mb_pat_vlc.table, MB_PAT_VLC_BITS, 1); if (cbp < 0 || ((cbp == 0) && (s->chroma_format < 2)) ){ av_log(s->avctx, AV_LOG_ERROR, "invalid cbp at %d %d\n", s->mb_x, s->mb_y); @@ -2578,10 +2589,6 @@ XVMC_init_block(s);//set s->block #endif - s->dsp.clear_blocks(s->block[0]); - if(!s->chroma_y_shift){ - s->dsp.clear_blocks(s->block[6]); - } ret = mpeg_decode_mb(s, s->block); s->chroma_qscale= s->qscale;