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) {