Mercurial > libavcodec.hg
comparison wmv2.c @ 2655:ab7bd4722cef libavcodec
fix block corruption caused by clear_blocks() optimization
author | michael |
---|---|
date | Sun, 08 May 2005 13:04:46 +0000 |
parents | ef44d24680d1 |
children | b866af0c02d6 |
comparison
equal
deleted
inserted
replaced
2654:ec2b0cba6764 | 2655:ab7bd4722cef |
---|---|
585 } | 585 } |
586 | 586 |
587 static void wmv2_add_block(Wmv2Context *w, DCTELEM *block1, uint8_t *dst, int stride, int n){ | 587 static void wmv2_add_block(Wmv2Context *w, DCTELEM *block1, uint8_t *dst, int stride, int n){ |
588 MpegEncContext * const s= &w->s; | 588 MpegEncContext * const s= &w->s; |
589 | 589 |
590 if (s->block_last_index[n] >= 0) { | |
590 switch(w->abt_type_table[n]){ | 591 switch(w->abt_type_table[n]){ |
591 case 0: | 592 case 0: |
592 if (s->block_last_index[n] >= 0) { | 593 s->dsp.idct_add (dst, stride, block1); |
593 s->dsp.idct_add (dst, stride, block1); | |
594 } | |
595 break; | 594 break; |
596 case 1: | 595 case 1: |
597 simple_idct84_add(dst , stride, block1); | 596 simple_idct84_add(dst , stride, block1); |
598 simple_idct84_add(dst + 4*stride, stride, w->abt_block2[n]); | 597 simple_idct84_add(dst + 4*stride, stride, w->abt_block2[n]); |
599 memset(w->abt_block2[n], 0, 64*sizeof(DCTELEM)); | 598 memset(w->abt_block2[n], 0, 64*sizeof(DCTELEM)); |
604 memset(w->abt_block2[n], 0, 64*sizeof(DCTELEM)); | 603 memset(w->abt_block2[n], 0, 64*sizeof(DCTELEM)); |
605 break; | 604 break; |
606 default: | 605 default: |
607 av_log(s->avctx, AV_LOG_ERROR, "internal error in WMV2 abt\n"); | 606 av_log(s->avctx, AV_LOG_ERROR, "internal error in WMV2 abt\n"); |
608 } | 607 } |
608 } | |
609 } | 609 } |
610 | 610 |
611 void ff_wmv2_add_mb(MpegEncContext *s, DCTELEM block1[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr){ | 611 void ff_wmv2_add_mb(MpegEncContext *s, DCTELEM block1[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr){ |
612 Wmv2Context * const w= (Wmv2Context*)s; | 612 Wmv2Context * const w= (Wmv2Context*)s; |
613 | 613 |