fix block corruption caused by clear_blocks() optimization

Originally committed as revision 4202 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Michael Niedermayer 20 years ago
parent 6b51185c63
commit 1c02a9732a
  1. 6
      libavcodec/wmv2.c

@ -587,11 +587,10 @@ static inline int wmv2_decode_inter_block(Wmv2Context *w, DCTELEM *block, int n,
static void wmv2_add_block(Wmv2Context *w, DCTELEM *block1, uint8_t *dst, int stride, int n){ static void wmv2_add_block(Wmv2Context *w, DCTELEM *block1, uint8_t *dst, int stride, int n){
MpegEncContext * const s= &w->s; MpegEncContext * const s= &w->s;
if (s->block_last_index[n] >= 0) {
switch(w->abt_type_table[n]){ switch(w->abt_type_table[n]){
case 0: case 0:
if (s->block_last_index[n] >= 0) { s->dsp.idct_add (dst, stride, block1);
s->dsp.idct_add (dst, stride, block1);
}
break; break;
case 1: case 1:
simple_idct84_add(dst , stride, block1); simple_idct84_add(dst , stride, block1);
@ -606,6 +605,7 @@ static void wmv2_add_block(Wmv2Context *w, DCTELEM *block1, uint8_t *dst, int st
default: default:
av_log(s->avctx, AV_LOG_ERROR, "internal error in WMV2 abt\n"); av_log(s->avctx, AV_LOG_ERROR, "internal error in WMV2 abt\n");
} }
}
} }
void ff_wmv2_add_mb(MpegEncContext *s, DCTELEM block1[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr){ void ff_wmv2_add_mb(MpegEncContext *s, DCTELEM block1[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr){

Loading…
Cancel
Save