diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2009-09-28 22:06:11 +0200 |
---|---|---|
committer | Wim Taymans <wim@metal.(none)> | 2009-10-01 09:35:54 +0200 |
commit | a8d7e6a4901a21ebb4d1e0937e6be7309e8146ac (patch) | |
tree | f61341d00fd2e3b1a79070e9b15817e9542f0481 | |
parent | f18ed7abf96d27b61003ec0c6d31c0c2755cc82d (diff) | |
download | gstreamer-plugins-base-a8d7e6a4901a21ebb4d1e0937e6be7309e8146ac.tar.gz |
playsink: make the lock recursive for now
Fixes #583255
-rw-r--r-- | gst/playback/gstplaysink.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c index 8ffa2f4f9..fb3993514 100644 --- a/gst/playback/gstplaysink.c +++ b/gst/playback/gstplaysink.c @@ -116,15 +116,15 @@ typedef struct GstElement *sink; /* custom sink to receive subpicture buffers */ } GstPlaySubpChain; -#define GST_PLAY_SINK_GET_LOCK(playsink) (((GstPlaySink *)playsink)->lock) -#define GST_PLAY_SINK_LOCK(playsink) g_mutex_lock (GST_PLAY_SINK_GET_LOCK (playsink)) -#define GST_PLAY_SINK_UNLOCK(playsink) g_mutex_unlock (GST_PLAY_SINK_GET_LOCK (playsink)) +#define GST_PLAY_SINK_GET_LOCK(playsink) (&((GstPlaySink *)playsink)->lock) +#define GST_PLAY_SINK_LOCK(playsink) g_static_rec_mutex_lock (GST_PLAY_SINK_GET_LOCK (playsink)) +#define GST_PLAY_SINK_UNLOCK(playsink) g_static_rec_mutex_unlock (GST_PLAY_SINK_GET_LOCK (playsink)) struct _GstPlaySink { GstBin bin; - GMutex *lock; + GStaticRecMutex lock; gboolean async_pending; gboolean need_async_start; @@ -354,7 +354,7 @@ gst_play_sink_init (GstPlaySink * playsink) playsink->font_desc = NULL; playsink->flags = DEFAULT_FLAGS; - playsink->lock = g_mutex_new (); + g_static_rec_mutex_init (&playsink->lock); playsink->need_async_start = TRUE; GST_OBJECT_FLAG_SET (playsink, GST_ELEMENT_IS_SINK); } @@ -438,7 +438,7 @@ gst_play_sink_finalize (GObject * object) playsink = GST_PLAY_SINK (object); - g_mutex_free (playsink->lock); + g_static_rec_mutex_free (&playsink->lock); G_OBJECT_CLASS (gst_play_sink_parent_class)->finalize (object); } |