Partially revert r20233, exp2f is not available on some BSDs, DOS and AVR32.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Thu, 15 Oct 2009 17:10:07 +0000 (17:10 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Thu, 15 Oct 2009 17:10:07 +0000 (17:10 +0000)
Originally committed as revision 20240 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mpegaudiodec.c

index e531fd3..47c2279 100644 (file)
@@ -411,7 +411,7 @@ static av_cold int decode_init(AVCodecContext * avctx)
             double value = i/4;
             double f, fm;
             int e, m;
-            f = value * cbrtf(value) * exp2f((i&3)*0.25);
+            f = value * cbrtf(value) * pow(2, (i&3)*0.25);
             fm = frexp(f, &e);
             m = (uint32_t)(fm*(1LL<<31) + 0.5);
             e+= FRAC_BITS - 31 + 5 - 100;
@@ -423,7 +423,7 @@ static av_cold int decode_init(AVCodecContext * avctx)
         for(i=0; i<512*16; i++){
             double value = i & 15;
             int exponent= (i>>4);
-            double f= value * cbrtf(value) * exp2f((exponent-400)*0.25 + FRAC_BITS + 5);
+            double f= value * cbrtf(value) * pow(2, (exponent-400)*0.25 + FRAC_BITS + 5);
             expval_table[exponent][i&15]= llrint(f);
             if((i&15)==1)
                 exp_table[exponent]= llrint(f);