summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--gst/matroska/ebml-read.c12
2 files changed, 18 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 3d2d026b..64cfe2b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2008-07-02 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * gst/matroska/ebml-read.c: (_ext2dbl):
+ Use NAN constant instead of 0.0/0.0 if possible. NAN is defined
+ in math.h except on MSVC where it is defined in xmath.h.
+ Fixes compilation with MSVC.
+
+2008-07-02 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
(gst_matroska_demux_handle_src_query),
(gst_matroska_demux_parse_info),
diff --git a/gst/matroska/ebml-read.c b/gst/matroska/ebml-read.c
index 6ce679da..2220a229 100644
--- a/gst/matroska/ebml-read.c
+++ b/gst/matroska/ebml-read.c
@@ -31,6 +31,16 @@
#include <math.h>
+/* NAN is supposed to be in math.h, Microsoft defines it in xmath.h */
+#ifdef _MSC_VER
+#include <xmath.h>
+#endif
+
+/* If everything goes wrong try 0.0/0.0 which should be NAN */
+#ifndef NAN
+#define NAN (0.0 / 0.0)
+#endif
+
GST_DEBUG_CATEGORY_STATIC (ebmlread_debug);
#define GST_CAT_DEFAULT ebmlread_debug
@@ -706,7 +716,7 @@ _ext2dbl (guint8 * data)
m = (m << 8) + ext.mantissa[i];
e = (((gint) ext.exponent[0] & 0x7f) << 8) | ext.exponent[1];
if (e == 0x7fff && m)
- return 0.0 / 0.0;
+ return NAN;
e -= 16383 + 63; /* In IEEE 80 bits, the whole (i.e. 1.xxxx)
* mantissa bit is written as opposed to the
* single and double precision formats */