glibcompat: add replacement for g_async_queue_timeout_pop().
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 31 Jan 2013 10:30:12 +0000 (11:30 +0100)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 31 Jan 2013 10:30:35 +0000 (11:30 +0100)
g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
new data to arrive in the queue.

gst-libs/gst/vaapi/glibcompat.h

index 6c9a8aa..24057f8 100644 (file)
@@ -135,6 +135,18 @@ g_cond_wait_until(GCompatCond *cond, GStaticMutex *mutex, gint64 end_time)
 #define g_cond_wait(cond, mutex)        g_compat_cond_wait(cond, mutex)
 #endif
 
+#if !GLIB_CHECK_VERSION(2,31,18)
+static inline gpointer
+g_async_queue_timeout_pop(GAsyncQueue *queue, guint64 timeout)
+{
+    GTimeVal end_time;
+
+    g_get_current_time(&end_time);
+    g_time_val_add(&end_time, timeout);
+    return g_async_queue_timed_pop(queue, &end_time);
+}
+#endif
+
 #undef G_COMPAT_DEFINE
 
 #endif /* GLIB_COMPAT_H */