summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim.muller@collabora.co.uk>2011-12-12 02:31:36 +0000
committerTim-Philipp Müller <tim.muller@collabora.co.uk>2011-12-12 09:46:27 +0000
commitf60eb9ae2c2ebb402fafbfa314970890e9f3342b (patch)
tree7ea1600c254c7d4174186b924f16b6a49bacda38
parent66f6e1288845ab21787b1fcd4605a90a5b552bb8 (diff)
alpha: use new glib API for static mutex if available
-rw-r--r--gst/alpha/gstalpha.c22
-rw-r--r--gst/alpha/gstalpha.h4
2 files changed, 26 insertions, 0 deletions
diff --git a/gst/alpha/gstalpha.c b/gst/alpha/gstalpha.c
index 65aae69b2..f4d0cce48 100644
--- a/gst/alpha/gstalpha.c
+++ b/gst/alpha/gstalpha.c
@@ -161,6 +161,8 @@ static GstStaticCaps gst_alpha_alpha_caps =
";" GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_BGRA ";" GST_VIDEO_CAPS_ABGR ";"
GST_VIDEO_CAPS_RGBA);
+/* FIXME: why do we need our own lock for this? */
+#if !GLIB_CHECK_VERSION (2, 31, 0)
#define GST_ALPHA_LOCK(alpha) G_STMT_START { \
GST_LOG_OBJECT (alpha, "Locking alpha from thread %p", g_thread_self ()); \
g_static_mutex_lock (&alpha->lock); \
@@ -171,6 +173,18 @@ static GstStaticCaps gst_alpha_alpha_caps =
GST_LOG_OBJECT (alpha, "Unlocking alpha from thread %p", g_thread_self ()); \
g_static_mutex_unlock (&alpha->lock); \
} G_STMT_END
+#else
+#define GST_ALPHA_LOCK(alpha) G_STMT_START { \
+ GST_LOG_OBJECT (alpha, "Locking alpha from thread %p", g_thread_self ()); \
+ g_mutex_lock (&alpha->lock); \
+ GST_LOG_OBJECT (alpha, "Locked alpha from thread %p", g_thread_self ()); \
+} G_STMT_END
+
+#define GST_ALPHA_UNLOCK(alpha) G_STMT_START { \
+ GST_LOG_OBJECT (alpha, "Unlocking alpha from thread %p", g_thread_self ()); \
+ g_mutex_unlock (&alpha->lock); \
+} G_STMT_END
+#endif
static gboolean gst_alpha_start (GstBaseTransform * trans);
static gboolean gst_alpha_get_unit_size (GstBaseTransform * btrans,
@@ -312,7 +326,11 @@ gst_alpha_init (GstAlpha * alpha, GstAlphaClass * klass)
alpha->black_sensitivity = DEFAULT_BLACK_SENSITIVITY;
alpha->white_sensitivity = DEFAULT_WHITE_SENSITIVITY;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
g_static_mutex_init (&alpha->lock);
+#else
+ g_mutex_init (&alpha->lock);
+#endif
}
static void
@@ -320,7 +338,11 @@ gst_alpha_finalize (GObject * object)
{
GstAlpha *alpha = GST_ALPHA (object);
+#if !GLIB_CHECK_VERSION (2, 31, 0)
g_static_mutex_free (&alpha->lock);
+#else
+ g_mutex_clear (&alpha->lock);
+#endif
G_OBJECT_CLASS (parent_class)->finalize (object);
}
diff --git a/gst/alpha/gstalpha.h b/gst/alpha/gstalpha.h
index 44025572c..5de966e09 100644
--- a/gst/alpha/gstalpha.h
+++ b/gst/alpha/gstalpha.h
@@ -70,7 +70,11 @@ struct _GstAlpha
/* <private> */
/* caps */
+#if !GLIB_CHECK_VERSION (2, 31, 0)
GStaticMutex lock;
+#else
+ GMutex lock;
+#endif
GstVideoFormat in_format, out_format;
gint width, height;