From 5fecea65a6f1b7c08939a36c4c5851b1383adef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 8 Jan 2007 13:32:32 +0000 Subject: [PATCH] configure.ac: Check if localtime_r() is available. 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 | 9 +++++++++ configure.ac | 3 +++ ext/pango/gstclockoverlay.c | 14 +++++++++++--- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 605e5b0add..4c56375961 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2007-01-08 Tim-Philipp Müller + + * 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 * gst/subparse/gstsubparse.c: (parse_mdvdsub): diff --git a/configure.ac b/configure.ac index affb33df9d..e861f40979 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/ext/pango/gstclockoverlay.c b/ext/pango/gstclockoverlay.c index 1cd071f2f9..442eda99a7 100644 --- a/ext/pango/gstclockoverlay.c +++ b/ext/pango/gstclockoverlay.c @@ -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 */