quantizer overflow warning + AAN dct fix
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 14 Dec 2004 20:17:23 +0000 (20:17 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 14 Dec 2004 20:17:23 +0000 (20:17 +0000)
Originally committed as revision 3754 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mpegvideo.c

index 2b0b315..0190c91 100644 (file)
@@ -164,7 +164,15 @@ static void convert_matrix(DSPContext *dsp, int (*qmat)[64], uint16_t (*qmat16)[
         }
         
         for(i=intra; i<64; i++){
-            while(((8191LL * qmat[qscale][i]) >> shift) > INT_MAX){ 
+            int64_t max= 8191;
+            if (dsp->fdct == fdct_ifast
+#ifndef FAAN_POSTSCALE
+                   || dsp->fdct == ff_faandct
+#endif
+                   ) {
+                max= (8191LL*aanscales[i]) >> 14;
+            }
+            while(((max * qmat[qscale][i]) >> shift) > INT_MAX){ 
                 shift++;
             }
         }