diff options
-rwxr-xr-x | configure | 6 | ||||
-rw-r--r-- | libavutil/internal.h | 21 |
2 files changed, 27 insertions, 0 deletions
@@ -954,6 +954,8 @@ HAVE_LIST=" dos_paths ebp_available ebx_available + exp2 + exp2f fast_64bit fast_cmov fast_unaligned @@ -970,6 +972,7 @@ HAVE_LIST=" libdc1394_2 llrint log2 + log2f loongson lrint lrintf @@ -2379,8 +2382,11 @@ done check_lib math.h sin -lm check_lib va/va.h vaInitialize -lva +check_func exp2 +check_func exp2f check_func llrint check_func log2 +check_func log2f check_func lrint check_func lrintf check_func round diff --git a/libavutil/internal.h b/libavutil/internal.h index 7f620d8dd7..ad43206756 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -263,6 +263,20 @@ if ((y) < (x)) {\ }\ } +#if !HAVE_EXP2 +static av_always_inline av_const double exp2(double x) +{ + return exp(x * 0.693147180559945); +} +#endif /* HAVE_EXP2 */ + +#if !HAVE_EXP2F +static av_always_inline av_const float exp2f(float x) +{ + return exp2(x); +} +#endif /* HAVE_EXP2F */ + #if !HAVE_LLRINT static av_always_inline av_const long long llrint(double x) { @@ -277,6 +291,13 @@ static av_always_inline av_const double log2(double x) } #endif /* HAVE_LOG2 */ +#if !HAVE_LOG2F +static av_always_inline av_const float log2f(float x) +{ + return log2(x); +} +#endif /* HAVE_LOG2F */ + #if !HAVE_LRINT static av_always_inline av_const long int lrint(double x) { |