gstclock: Fix GST_STIME_ARGS
authorEdward Hervey <edward@centricular.com>
Mon, 30 Nov 2015 16:11:33 +0000 (17:11 +0100)
committerEdward Hervey <bilboed@bilboed.com>
Tue, 1 Dec 2015 16:13:41 +0000 (17:13 +0100)
It wasn't properly handling GST_CLOCK_STIME_NONE and always use the
sign marker (+/-) to make it easier to identify signed values in
logs

https://bugzilla.gnome.org/show_bug.cgi?id=758870

gst/gstclock.h

index cb82831..f81b27a 100644 (file)
@@ -266,8 +266,16 @@ G_STMT_START {                                                    \
  *
  * Since: 1.6
  */
-#define GST_STIME_ARGS(t) \
-          ((t) >= 0) ? ' ' : '-', GST_TIME_ARGS (ABS (t))
+#define GST_STIME_ARGS(t)                                              \
+  ((t) == GST_CLOCK_STIME_NONE || (t) >= 0) ? '+' : '-',               \
+    GST_CLOCK_STIME_IS_VALID (t) ?                                     \
+    (guint) (((GstClockTime)(ABS(t))) / (GST_SECOND * 60 * 60)) : 99,  \
+    GST_CLOCK_STIME_IS_VALID (t) ?                                     \
+    (guint) ((((GstClockTime)(ABS(t))) / (GST_SECOND * 60)) % 60) : 99,        \
+    GST_CLOCK_STIME_IS_VALID (t) ?                                     \
+    (guint) ((((GstClockTime)(ABS(t))) / GST_SECOND) % 60) : 99,       \
+    GST_CLOCK_STIME_IS_VALID (t) ?                                     \
+    (guint) (((GstClockTime)(ABS(t))) % GST_SECOND) : 999999999
 
 typedef struct _GstClockEntry   GstClockEntry;
 typedef struct _GstClock        GstClock;