summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Converse <alex.converse@gmail.com>2009-07-10 19:20:06 +0000
committerAlex Converse <alex.converse@gmail.com>2009-07-10 19:20:06 +0000
commit291fd18a6ede0fc6a6d35c9a98af6ae7fd6d6117 (patch)
treec850a66c9a9c6109680c6f14582963c7c6cbe5e8
parent451ae257242c4e10b6f1e816e14638bb45ad762b (diff)
Add a log2 replacement for systems that haven't quite caught up with the C99
standard library. Originally committed as revision 19395 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rwxr-xr-xconfigure3
-rw-r--r--libavutil/internal.h7
2 files changed, 9 insertions, 1 deletions
diff --git a/configure b/configure
index 799827340f..ad9e8c13f0 100755
--- a/configure
+++ b/configure
@@ -911,6 +911,7 @@ HAVE_LIST="
libdc1394_1
libdc1394_2
llrint
+ log2
loongson
lrint
lrintf
@@ -2078,7 +2079,7 @@ check_lib math.h sin -lm
check_lib va/va.h vaInitialize -lva
# test for C99 functions in math.h
-for func in llrint lrint lrintf round roundf truncf; do
+for func in llrint log2 lrint lrintf round roundf truncf; do
check_exec <<EOF && enable $func || disable $func
#include <math.h>
int main(void) { return ($func(3.999f) > 0)?0:1; }
diff --git a/libavutil/internal.h b/libavutil/internal.h
index a80ea2470b..1012f1c690 100644
--- a/libavutil/internal.h
+++ b/libavutil/internal.h
@@ -265,6 +265,13 @@ 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)
+{
+ return log(x) * 1.44269504088896340736;
+}
+#endif /* HAVE_LOG2 */
+
#if !HAVE_LRINT
static av_always_inline av_const long int lrint(double x)
{