From 291fd18a6ede0fc6a6d35c9a98af6ae7fd6d6117 Mon Sep 17 00:00:00 2001 From: Alex Converse Date: Fri, 10 Jul 2009 19:20:06 +0000 Subject: [PATCH] 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 --- configure | 3 ++- libavutil/internal.h | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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 < 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) {