vp3: The DC-only IDCT is surprisingly not supposed to be bitexact to the
authorDavid Conrad <lessen42@gmail.com>
Fri, 28 May 2010 07:01:34 +0000 (07:01 +0000)
committerDavid Conrad <lessen42@gmail.com>
Fri, 28 May 2010 07:01:34 +0000 (07:01 +0000)
full IDCT. Fix this.

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

libavcodec/x86/vp3dsp_mmx.c

index 44a8477..188240d 100644 (file)
@@ -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"