Provide a fallback version of the libm function trunc

Message ID 1303383836-92779-1-git-send-email-martin@martin.st
State Committed
Commit 23d3931a6a8a37bb7e86bd6cb4709eb46031bfe1
Headers show

Commit Message

Martin Storsjö April 21, 2011, 11:03 a.m.
This fixes compilation on DOS.
---
 configure        |    2 ++
 libavutil/libm.h |    7 +++++++
 2 files changed, 9 insertions(+), 0 deletions(-)

Comments

Diego Biurrun April 21, 2011, 11:11 a.m. | #1
On Thu, Apr 21, 2011 at 02:03:56PM +0300, Martin Storsjö wrote:
> This fixes compilation on DOS.
> ---
>  configure        |    2 ++
>  libavutil/libm.h |    7 +++++++
>  2 files changed, 9 insertions(+), 0 deletions(-)

OK

Diego

Patch

diff --git a/configure b/configure
index 32c3544..dd44ba4 100755
--- a/configure
+++ b/configure
@@ -1119,6 +1119,7 @@  HAVE_LIST="
     sys_videoio_h
     ten_operands
     threads
+    trunc
     truncf
     vfp_args
     VirtualAlloc
@@ -2852,6 +2853,7 @@  check_mathfunc lrint
 check_mathfunc lrintf
 check_mathfunc round
 check_mathfunc roundf
+check_mathfunc trunc
 check_mathfunc truncf
 
 # these are off by default, so fail if requested and not available
diff --git a/libavutil/libm.h b/libavutil/libm.h
index 704bcf9..783f3cd 100644
--- a/libavutil/libm.h
+++ b/libavutil/libm.h
@@ -86,6 +86,13 @@  static av_always_inline av_const float roundf(float x)
 }
 #endif /* HAVE_ROUNDF */
 
+#if !HAVE_TRUNC
+static av_always_inline av_const double trunc(double x)
+{
+    return (x > 0) ? floor(x) : ceil(x);
+}
+#endif /* HAVE_TRUNC */
+
 #if !HAVE_TRUNCF
 static av_always_inline av_const float truncf(float x)
 {