On Sun, 1 Jul 2012, Måns Rullgård wrote:
Martin Storsjö <[email protected]> writes:
From: "Ronald S. Bultje" <[email protected]>
Some compilers, MSVC among them, don't recognize the divisions by
zero as meaning infinity/nan.
These macros should, according to the standard, expand to constant
expressions, but this shouldn't matter for our usage.
---
libavutil/mathematics.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/libavutil/mathematics.h b/libavutil/mathematics.h
index a734b75..043dd0f 100644
--- a/libavutil/mathematics.h
+++ b/libavutil/mathematics.h
@@ -25,6 +25,7 @@
#include <math.h>
#include "attributes.h"
#include "rational.h"
+#include "intfloat.h"
#ifndef M_LOG2_10
#define M_LOG2_10 3.32192809488736234787 /* log_2 10 */
@@ -33,10 +34,10 @@
#define M_PHI 1.61803398874989484820 /* phi / golden ratio */
#endif
#ifndef NAN
-#define NAN (0.0/0.0)
+#define NAN av_int2float(0x7fc00000)
#endif
#ifndef INFINITY
-#define INFINITY (1.0/0.0)
+#define INFINITY av_int2float(0x7f800000)
#endif
/**
--
Seems OK, but did you make sure it works as expected?
Make fate works fine with this in place, and it is tested by the fate-eval
test. (I also extended this test to test isinf and the INFINITY macro.)
// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel