Browse Source

vp3: The DC-only IDCT is surprisingly not supposed to be bitexact to the
full IDCT. Fix this.

Originally committed as revision 23358 to svn://svn.ffmpeg.org/ffmpeg/trunk

David Conrad 15 years ago
parent
commit
179655b6c6
1 changed files with 1 additions and 3 deletions
  1. 1 3
      libavcodec/x86/vp3dsp_mmx.c

+ 1 - 3
libavcodec/x86/vp3dsp_mmx.c

@@ -398,9 +398,7 @@ void ff_vp3_idct_add_mmx(uint8_t *dest, int line_size, DCTELEM *block)
 
 void ff_vp3_idct_dc_add_mmx2(uint8_t *dest, int linesize, const DCTELEM *block)
 {
-    int dc = block[0];
-    dc = (46341*dc)>>16;
-    dc = (46341*dc + (8<<16))>>20;
+    int dc = (block[0] + 15) >> 5;
 
     __asm__ volatile(
         "movd          %3, %%mm0 \n\t"