diff options
author | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2011-12-12 02:31:36 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2011-12-12 09:46:27 +0000 |
commit | f60eb9ae2c2ebb402fafbfa314970890e9f3342b (patch) | |
tree | 7ea1600c254c7d4174186b924f16b6a49bacda38 | |
parent | 66f6e1288845ab21787b1fcd4605a90a5b552bb8 (diff) |
alpha: use new glib API for static mutex if available
-rw-r--r-- | gst/alpha/gstalpha.c | 22 | ||||
-rw-r--r-- | gst/alpha/gstalpha.h | 4 |
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; |