[FFmpeg-devel] [PATCH 2/2] Rename log2/exp2 replacements ff_log2/ff_exp2

Mans Rullgard mans
Tue Jan 12 16:55:11 CET 2010


This avoids conflicts with system headers on broken platforms.
---
 libavcodec/aaccoder.c          |   12 ++++++------
 libavcodec/acelp_pitch_delay.c |    2 +-
 libavcodec/sipr.c              |    2 +-
 libavutil/internal.h           |   36 ++++++++++++++++++++++--------------
 4 files changed, 30 insertions(+), 22 deletions(-)

diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c
index 0a51aa7..4376cad 100644
--- a/libavcodec/aaccoder.c
+++ b/libavcodec/aaccoder.c
@@ -523,9 +523,9 @@ static void search_for_quantizers_anmr(AVCodecContext *avctx, AACEncContext *s,
                 int minscale, maxscale;
                 float minrd = INFINITY;
                 //minimum scalefactor index is when minimum nonzero coefficient after quantizing is not clipped
-                minscale = av_clip_uint8(log2(qmin)*4 - 69 + SCALE_ONE_POS - SCALE_DIV_512);
+                minscale = av_clip_uint8(ff_log2(qmin)*4 - 69 + SCALE_ONE_POS - SCALE_DIV_512);
                 //maximum scalefactor index is when maximum coefficient after quantizing is still not zero
-                maxscale = av_clip_uint8(log2(qmax)*4 +  6 + SCALE_ONE_POS - SCALE_DIV_512);
+                maxscale = av_clip_uint8(ff_log2(qmax)*4 +  6 + SCALE_ONE_POS - SCALE_DIV_512);
                 for (q = minscale; q < maxscale; q++) {
                     float dists[12], dist;
                     memset(dists, 0, sizeof(dists));
@@ -655,7 +655,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
                 sce->sf_idx[w*16+g] = SCALE_ONE_POS;
                 continue;
             }
-            sce->sf_idx[w*16+g] = SCALE_ONE_POS + FFMIN(log2(uplims[w*16+g]/minthr)*4,59);
+            sce->sf_idx[w*16+g] = SCALE_ONE_POS + FFMIN(ff_log2(uplims[w*16+g]/minthr)*4,59);
         }
     }
 
@@ -855,7 +855,7 @@ static void search_for_quantizers_faac(AVCodecContext *avctx, AACEncContext *s,
                 continue;
             }
             sce->zeroes[w*16+g] = 0;
-            scf  = prev_scf = av_clip(SCALE_ONE_POS - SCALE_DIV_512 - log2(1/maxq[w*16+g])*16/3, 60, 218);
+            scf  = prev_scf = av_clip(SCALE_ONE_POS - SCALE_DIV_512 - ff_log2(1/maxq[w*16+g])*16/3, 60, 218);
             step = 16;
             for (;;) {
                 float dist = 0.0f;
@@ -884,7 +884,7 @@ static void search_for_quantizers_faac(AVCodecContext *avctx, AACEncContext *s,
                 if (curdiff == 0.0f)
                     step = 0;
                 else
-                    step = fabsf(log2(curdiff));
+                    step = fabsf(ff_log2(curdiff));
                 if (dist > uplim[w*16+g])
                     step = -step;
                 if (FFABS(step) <= 1 || (step > 0 && scf >= max_scf) || (step < 0 && scf <= min_scf)) {
@@ -935,7 +935,7 @@ static void search_for_quantizers_fast(AVCodecContext *avctx, AACEncContext *s,
                     sce->sf_idx[(w+w2)*16+g] = 218;
                     sce->zeroes[(w+w2)*16+g] = 1;
                 } else {
-                    sce->sf_idx[(w+w2)*16+g] = av_clip(SCALE_ONE_POS - SCALE_DIV_512 + log2(band->threshold), 80, 218);
+                    sce->sf_idx[(w+w2)*16+g] = av_clip(SCALE_ONE_POS - SCALE_DIV_512 + ff_log2(band->threshold), 80, 218);
                     sce->zeroes[(w+w2)*16+g] = 0;
                 }
                 minq = FFMIN(minq, sce->sf_idx[(w+w2)*16+g]);
diff --git a/libavcodec/acelp_pitch_delay.c b/libavcodec/acelp_pitch_delay.c
index 0451f1b..821518e 100644
--- a/libavcodec/acelp_pitch_delay.c
+++ b/libavcodec/acelp_pitch_delay.c
@@ -128,7 +128,7 @@ float ff_amr_set_fixed_gain(float fixed_gain_factor, float fixed_mean_energy,
     // ^g_c = ^gamma_gc * 100.05 (predicted dB + mean dB - dB of fixed vector)
     // Note 10^(0.05 * -10log(average x2)) = 1/sqrt((average x2)).
     float val = fixed_gain_factor *
-        exp2f(log2f(10.0) * 0.05 *
+        ff_exp2f(ff_log2f(10.0) * 0.05 *
               (ff_dot_productf(pred_table, prediction_error, 4) +
                energy_mean)) /
         sqrtf(fixed_mean_energy);
diff --git a/libavcodec/sipr.c b/libavcodec/sipr.c
index 7bfa3ab..724e72c 100644
--- a/libavcodec/sipr.c
+++ b/libavcodec/sipr.c
@@ -461,7 +461,7 @@ static void decode_frame(SiprContext *ctx, SiprParameters *params,
 
         gain_code = ff_amr_set_fixed_gain(gain_cb[params->gc_index[i]][1],
                                           avg_energy, ctx->energy_history,
-                                          34 - 15.0/(log2f(10.0) * 0.05),
+                                          34 - 15.0/(ff_log2f(10.0) * 0.05),
                                           pred);
 
         ff_weighted_vector_sumf(excitation, excitation, fixed_vector,
diff --git a/libavutil/internal.h b/libavutil/internal.h
index ad43206..f0f2145 100644
--- a/libavutil/internal.h
+++ b/libavutil/internal.h
@@ -263,19 +263,23 @@ if ((y) < (x)) {\
     }\
 }
 
-#if !HAVE_EXP2
-static av_always_inline av_const double exp2(double x)
+static av_always_inline av_const double ff_exp2(double x)
 {
+#if HAVE_EXP2
+    return exp2(x);
+#else
     return exp(x * 0.693147180559945);
-}
 #endif /* HAVE_EXP2 */
+}
 
-#if !HAVE_EXP2F
-static av_always_inline av_const float exp2f(float x)
+static av_always_inline av_const float ff_exp2f(float x)
 {
-    return exp2(x);
-}
+#if HAVE_EXP2F
+    return exp2f(x);
+#else
+    return ff_exp2(x);
 #endif /* HAVE_EXP2F */
+}
 
 #if !HAVE_LLRINT
 static av_always_inline av_const long long llrint(double x)
@@ -284,19 +288,23 @@ static av_always_inline av_const long long llrint(double x)
 }
 #endif /* HAVE_LLRINT */
 
-#if !HAVE_LOG2
-static av_always_inline av_const double log2(double x)
+static av_always_inline av_const double ff_log2(double x)
 {
+#if HAVE_LOG2
+    return log2(x);
+#else
     return log(x) * 1.44269504088896340736;
-}
 #endif /* HAVE_LOG2 */
+}
 
-#if !HAVE_LOG2F
-static av_always_inline av_const float log2f(float x)
+static av_always_inline av_const float ff_log2f(float x)
 {
-    return log2(x);
-}
+#if HAVE_LOG2F
+    return log2f(x);
+#else
+    return ff_log2(x);
 #endif /* HAVE_LOG2F */
+}
 
 #if !HAVE_LRINT
 static av_always_inline av_const long int lrint(double x)
-- 
1.6.6




More information about the ffmpeg-devel mailing list