configure.ac: Check if localtime_r() is available.
authorTim-Philipp Müller <tim@centricular.net>
Mon, 8 Jan 2007 13:32:32 +0000 (13:32 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Mon, 8 Jan 2007 13:32:32 +0000 (13:32 +0000)
Original commit message from CVS:
* configure.ac:
Check if localtime_r() is available.
* ext/pango/gstclockoverlay.c: (gst_clock_overlay_render_time):
If localtime_r() is not available, fall back to localtime(). Should
fix build on MingW (#393310).

ChangeLog
configure.ac
ext/pango/gstclockoverlay.c

index 605e5b0..4c56375 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2007-01-08  Tim-Philipp Müller  <tim at centricular dot net>
 
+       * configure.ac:
+         Check if localtime_r() is available.
+
+       * ext/pango/gstclockoverlay.c: (gst_clock_overlay_render_time):
+         If localtime_r() is not available, fall back to localtime(). Should
+         fix build on MingW (#393310).
+
+2007-01-08  Tim-Philipp Müller  <tim at centricular dot net>
+
        * gst/subparse/gstsubparse.c: (parse_mdvdsub):
        * gst/subparse/gstsubparse.h:
          Remove spurious 1000 subtrahend when calculating the timestamp from
index affb33d..e861f40 100644 (file)
@@ -186,6 +186,9 @@ dnl ffmpegcolorspace includes _stdint.h
 dnl also, Windows does not have long long
 AX_CREATE_STDINT_H
 
+dnl *** checks for functions ***
+AC_CHECK_FUNCS([localtime_r])
+
 dnl *** checks for types/defines ***
 
 dnl Check for FIONREAD ioctl declaration
index 1cd071f..442eda9 100644 (file)
@@ -76,14 +76,22 @@ GST_BOILERPLATE (GstClockOverlay, gst_clock_overlay, GstTextOverlay,
 static gchar *
 gst_clock_overlay_render_time (GstClockOverlay * overlay)
 {
-  struct tm t;
+  struct tm dummy, *t;
   time_t now;
 
   now = time (NULL);
-  if (localtime_r (&now, &t) == NULL)
+
+#ifdef HAVE_LOCALTIME_R
+  t = localtime_r (&now, &dummy);
+#else
+  /* on win32 this apparently returns a per-thread struct which would be fine */
+  t = localtime (&now);
+#endif
+
+  if (t == NULL)
     return g_strdup ("--:--:--");
 
-  return g_strdup_printf ("%02u:%02u:%02u", t.tm_hour, t.tm_min, t.tm_sec);
+  return g_strdup_printf ("%02u:%02u:%02u", t->tm_hour, t->tm_min, t->tm_sec);
 }
 
 /* Called with lock held */