port to new glib thread API
authorWim Taymans <wim.taymans@collabora.co.uk>
Thu, 19 Jan 2012 08:48:38 +0000 (09:48 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Thu, 19 Jan 2012 10:36:17 +0000 (11:36 +0100)
16 files changed:
ext/alsa/gstalsamixer.c
ext/alsa/gstalsamixer.h
ext/ogg/gstoggdemux.c
gst-libs/gst/audio/gstaudiobasesink.c
gst-libs/gst/audio/gstaudiodecoder.c
gst-libs/gst/audio/gstaudiodecoder.h
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/audio/gstaudioencoder.h
gst/adder/gstadder.c
gst/playback/gstdecodebin.c
gst/playback/gstdecodebin2.c
gst/playback/gstplaybin2.c
gst/playback/gstplaysink.c
gst/playback/gststreamsynchronizer.c
gst/tcp/gstmultisocketsink.c
gst/tcp/gstmultisocketsink.h

index 182b313..cd1b056 100644 (file)
 #include "config.h"
 #endif
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #include "gstalsamixer.h"
 #include "gst/glib-compat-private.h"
 #include <errno.h>
@@ -497,7 +493,7 @@ gst_alsa_mixer_new (const char *device, GstAlsaMixerDirection dir)
     goto error;
 
   g_rec_mutex_init (&ret->rec_mutex);
-  g_static_rec_mutex_init (&ret->task_mutex);
+  g_rec_mutex_init (&ret->task_mutex);
 
   ret->task = gst_task_new (task_monitor_alsa, ret);
   gst_task_set_lock (ret->task, &ret->task_mutex);
@@ -542,7 +538,7 @@ gst_alsa_mixer_free (GstAlsaMixer * mixer)
     mixer->task = NULL;
   }
 
-  g_static_rec_mutex_free (&mixer->task_mutex);
+  g_rec_mutex_clear (&mixer->task_mutex);
 
   if (mixer->pfd[0] > 0) {
     close (mixer->pfd[0]);
index 38d6d41..b3c3ab9 100644 (file)
@@ -53,7 +53,7 @@ struct _GstAlsaMixer
   snd_mixer_t *         handle;
 
   GstTask *            task;
-  GStaticRecMutex      task_mutex;
+  GRecMutex            task_mutex;
 
   GRecMutex            rec_mutex;
 
index 3a443aa..9c378f3 100644 (file)
 #include "config.h"
 #endif
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #include <string.h>
 #include <gst/gst-i18n-plugin.h>
 #include <gst/tag/tag.h>
index 1a3ab15..693f86d 100644 (file)
@@ -34,9 +34,6 @@
 
 #include <string.h>
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
 #include "gstaudiobasesink.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_audio_base_sink_debug);
index d69a1a9..a3dcf9b 100644 (file)
 #include "config.h"
 #endif
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #include "gstaudiodecoder.h"
 #include <gst/pbutils/descriptions.h>
 
@@ -411,7 +407,7 @@ gst_audio_decoder_init (GstAudioDecoder * dec, GstAudioDecoderClass * klass)
   dec->priv->adapter_out = gst_adapter_new ();
   g_queue_init (&dec->priv->frames);
 
-  g_static_rec_mutex_init (&dec->stream_lock);
+  g_rec_mutex_init (&dec->stream_lock);
 
   /* property default */
   dec->priv->latency = DEFAULT_LATENCY;
@@ -485,7 +481,7 @@ gst_audio_decoder_finalize (GObject * object)
     g_object_unref (dec->priv->adapter_out);
   }
 
-  g_static_rec_mutex_free (&dec->stream_lock);
+  g_rec_mutex_clear (&dec->stream_lock);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
index 3da2962..77a8219 100644 (file)
@@ -79,8 +79,8 @@ G_BEGIN_DECLS
  */
 #define GST_AUDIO_DECODER_SINK_PAD(obj)        (((GstAudioDecoder *) (obj))->sinkpad)
 
-#define GST_AUDIO_DECODER_STREAM_LOCK(dec) g_static_rec_mutex_lock (&GST_AUDIO_DECODER (dec)->stream_lock)
-#define GST_AUDIO_DECODER_STREAM_UNLOCK(dec) g_static_rec_mutex_unlock (&GST_AUDIO_DECODER (dec)->stream_lock)
+#define GST_AUDIO_DECODER_STREAM_LOCK(dec)   g_rec_mutex_lock (&GST_AUDIO_DECODER (dec)->stream_lock)
+#define GST_AUDIO_DECODER_STREAM_UNLOCK(dec) g_rec_mutex_unlock (&GST_AUDIO_DECODER (dec)->stream_lock)
 
 typedef struct _GstAudioDecoder GstAudioDecoder;
 typedef struct _GstAudioDecoderClass GstAudioDecoderClass;
@@ -156,7 +156,7 @@ struct _GstAudioDecoder
   /* protects all data processing, i.e. is locked
    * in the chain function, finish_frame and when
    * processing serialized events */
-  GStaticRecMutex stream_lock;
+  GRecMutex       stream_lock;
 
   /* MT-protected (with STREAM_LOCK) */
   GstSegment      segment;
index 71af26b..a1c948a 100644 (file)
 #  include "config.h"
 #endif
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #include "gstaudioencoder.h"
 #include <gst/base/gstadapter.h>
 #include <gst/audio/audio.h>
@@ -393,7 +389,7 @@ gst_audio_encoder_init (GstAudioEncoder * enc, GstAudioEncoderClass * bclass)
 
   enc->priv->adapter = gst_adapter_new ();
 
-  g_static_rec_mutex_init (&enc->stream_lock);
+  g_rec_mutex_init (&enc->stream_lock);
 
   /* property default */
   enc->priv->granule = DEFAULT_GRANULE;
@@ -450,7 +446,7 @@ gst_audio_encoder_finalize (GObject * object)
 
   g_object_unref (enc->priv->adapter);
 
-  g_static_rec_mutex_free (&enc->stream_lock);
+  g_rec_mutex_clear (&enc->stream_lock);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
index edc3d87..0481281 100644 (file)
@@ -82,8 +82,8 @@ G_BEGIN_DECLS
  */
 #define GST_AUDIO_ENCODER_SEGMENT(obj)     (GST_AUDIO_ENCODER_CAST (obj)->segment)
 
-#define GST_AUDIO_ENCODER_STREAM_LOCK(enc) g_static_rec_mutex_lock (&GST_AUDIO_ENCODER (enc)->stream_lock)
-#define GST_AUDIO_ENCODER_STREAM_UNLOCK(enc) g_static_rec_mutex_unlock (&GST_AUDIO_ENCODER (enc)->stream_lock)
+#define GST_AUDIO_ENCODER_STREAM_LOCK(enc)   g_rec_mutex_lock (&GST_AUDIO_ENCODER (enc)->stream_lock)
+#define GST_AUDIO_ENCODER_STREAM_UNLOCK(enc) g_rec_mutex_unlock (&GST_AUDIO_ENCODER (enc)->stream_lock)
 
 typedef struct _GstAudioEncoder GstAudioEncoder;
 typedef struct _GstAudioEncoderClass GstAudioEncoderClass;
@@ -108,7 +108,7 @@ struct _GstAudioEncoder {
   /* protects all data processing, i.e. is locked
    * in the chain function, finish_frame and when
    * processing serialized events */
-  GStaticRecMutex stream_lock;
+  GRecMutex       stream_lock;
 
   /* MT-protected (with STREAM_LOCK) */
   GstSegment      segment;
index 0241404..f2b40b4 100644 (file)
  */
 /* Element-Checklist-Version: 5 */
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
index bdae732..eb3c346 100644 (file)
 #include "config.h"
 #endif
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #include <gst/gst-i18n-plugin.h>
 
 #include <string.h>
index d266d71..4916fad 100644 (file)
 #include "config.h"
 #endif
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #include <gst/gst-i18n-plugin.h>
 
 #include <string.h>
index ebdb055..d79263b 100644 (file)
 #include "config.h"
 #endif
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #include <string.h>
 #include <gst/gst.h>
 
@@ -272,7 +268,7 @@ struct _GstSourceSelect
   gulong block_id;
 };
 
-#define GST_SOURCE_GROUP_GET_LOCK(group) (((GstSourceGroup*)(group))->lock)
+#define GST_SOURCE_GROUP_GET_LOCK(group) (&((GstSourceGroup*)(group))->lock)
 #define GST_SOURCE_GROUP_LOCK(group) (g_mutex_lock (GST_SOURCE_GROUP_GET_LOCK(group)))
 #define GST_SOURCE_GROUP_UNLOCK(group) (g_mutex_unlock (GST_SOURCE_GROUP_GET_LOCK(group)))
 
@@ -290,7 +286,7 @@ struct _GstSourceGroup
 {
   GstPlayBin *playbin;
 
-  GMutex *lock;
+  GMutex lock;
 
   gboolean valid;               /* the group has valid info to start playback */
   gboolean active;              /* the group is active */
@@ -330,7 +326,7 @@ struct _GstSourceGroup
 
   gulong block_id;
 
-  GMutex *stream_changed_pending_lock;
+  GMutex stream_changed_pending_lock;
   GList *stream_changed_pending;
 
   /* selectors for different streams */
@@ -338,12 +334,12 @@ struct _GstSourceGroup
 };
 
 #define GST_PLAY_BIN_GET_LOCK(bin) (&((GstPlayBin*)(bin))->lock)
-#define GST_PLAY_BIN_LOCK(bin) (g_static_rec_mutex_lock (GST_PLAY_BIN_GET_LOCK(bin)))
-#define GST_PLAY_BIN_UNLOCK(bin) (g_static_rec_mutex_unlock (GST_PLAY_BIN_GET_LOCK(bin)))
+#define GST_PLAY_BIN_LOCK(bin) (g_rec_mutex_lock (GST_PLAY_BIN_GET_LOCK(bin)))
+#define GST_PLAY_BIN_UNLOCK(bin) (g_rec_mutex_unlock (GST_PLAY_BIN_GET_LOCK(bin)))
 
 /* lock to protect dynamic callbacks, like no-more-pads */
-#define GST_PLAY_BIN_DYN_LOCK(bin)    g_mutex_lock ((bin)->dyn_lock)
-#define GST_PLAY_BIN_DYN_UNLOCK(bin)  g_mutex_unlock ((bin)->dyn_lock)
+#define GST_PLAY_BIN_DYN_LOCK(bin)    g_mutex_lock (&(bin)->dyn_lock)
+#define GST_PLAY_BIN_DYN_UNLOCK(bin)  g_mutex_unlock (&(bin)->dyn_lock)
 
 /* lock for shutdown */
 #define GST_PLAY_BIN_SHUTDOWN_LOCK(bin,label)           \
@@ -370,7 +366,7 @@ struct _GstPlayBin
 {
   GstPipeline parent;
 
-  GStaticRecMutex lock;         /* to protect group switching */
+  GRecMutex lock;               /* to protect group switching */
 
   /* the groups, we use a double buffer to switch between current and next */
   GstSourceGroup groups[2];     /* array with group info */
@@ -393,11 +389,11 @@ struct _GstPlayBin
   GstElement *source;
 
   /* lock protecting dynamic adding/removing */
-  GMutex *dyn_lock;
+  GMutex dyn_lock;
   /* if we are shutting down or not */
   gint shutdown;
 
-  GMutex *elements_lock;
+  GMutex elements_lock;
   guint32 elements_cookie;
   GList *elements;              /* factories we can use for selecting elements */
 
@@ -1130,7 +1126,7 @@ init_group (GstPlayBin * playbin, GstSourceGroup * group)
   group->video_channels = g_ptr_array_new ();
   group->audio_channels = g_ptr_array_new ();
   group->text_channels = g_ptr_array_new ();
-  group->lock = g_mutex_new ();
+  g_mutex_init (&group->lock);
   /* init selectors. The selector is found by finding the first prefix that
    * matches the media. */
   group->playbin = playbin;
@@ -1181,7 +1177,7 @@ free_group (GstPlayBin * playbin, GstSourceGroup * group)
   g_ptr_array_free (group->audio_channels, TRUE);
   g_ptr_array_free (group->text_channels, TRUE);
 
-  g_mutex_free (group->lock);
+  g_mutex_clear (&group->lock);
   if (group->audio_sink) {
     if (group->audio_sink != playbin->audio_sink)
       gst_element_set_state (group->audio_sink, GST_STATE_NULL);
@@ -1198,9 +1194,9 @@ free_group (GstPlayBin * playbin, GstSourceGroup * group)
   g_list_free (group->stream_changed_pending);
   group->stream_changed_pending = NULL;
 
-  if (group->stream_changed_pending_lock)
-    g_mutex_free (group->stream_changed_pending_lock);
-  group->stream_changed_pending_lock = NULL;
+  if (group->stream_changed_pending_lock.p)
+    g_mutex_clear (&group->stream_changed_pending_lock);
+  group->stream_changed_pending_lock.p = NULL;
 }
 
 static void
@@ -1242,8 +1238,8 @@ gst_play_bin_update_elements_list (GstPlayBin * playbin)
 static void
 gst_play_bin_init (GstPlayBin * playbin)
 {
-  g_static_rec_mutex_init (&playbin->lock);
-  playbin->dyn_lock = g_mutex_new ();
+  g_rec_mutex_init (&playbin->lock);
+  g_mutex_init (&playbin->dyn_lock);
 
   /* assume we can create a selector */
   playbin->have_selector = TRUE;
@@ -1255,7 +1251,7 @@ gst_play_bin_init (GstPlayBin * playbin)
   init_group (playbin, &playbin->groups[1]);
 
   /* first filter out the interesting element factories */
-  playbin->elements_lock = g_mutex_new ();
+  g_mutex_init (&playbin->elements_lock);
 
   /* add sink */
   playbin->playsink = g_object_new (GST_TYPE_PLAY_SINK, NULL);
@@ -1304,9 +1300,9 @@ gst_play_bin_finalize (GObject * object)
   if (playbin->elements)
     gst_plugin_feature_list_free (playbin->elements);
 
-  g_static_rec_mutex_free (&playbin->lock);
-  g_mutex_free (playbin->dyn_lock);
-  g_mutex_free (playbin->elements_lock);
+  g_rec_mutex_clear (&playbin->lock);
+  g_mutex_clear (&playbin->dyn_lock);
+  g_mutex_clear (&playbin->elements_lock);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -2210,10 +2206,10 @@ gst_play_bin_query (GstElement * element, GstQuery * query)
     gboolean pending;
 
     GST_SOURCE_GROUP_LOCK (group);
-    if (group->stream_changed_pending_lock) {
-      g_mutex_lock (group->stream_changed_pending_lock);
+    if (group->stream_changed_pending_lock.p) {
+      g_mutex_lock (&group->stream_changed_pending_lock);
       pending = group->pending || group->stream_changed_pending;
-      g_mutex_unlock (group->stream_changed_pending_lock);
+      g_mutex_unlock (&group->stream_changed_pending_lock);
     } else {
       pending = group->pending;
     }
@@ -2288,7 +2284,7 @@ gst_play_bin_handle_message (GstBin * bin, GstMessage * msg)
       GList *l, *l_prev;
 
       group = playbin->curr_group;
-      g_mutex_lock (group->stream_changed_pending_lock);
+      g_mutex_lock (&group->stream_changed_pending_lock);
       for (l = group->stream_changed_pending; l;) {
         guint32 l_seqnum = GPOINTER_TO_UINT (l->data);
 
@@ -2306,7 +2302,7 @@ gst_play_bin_handle_message (GstBin * bin, GstMessage * msg)
           l = l->next;
         }
       }
-      g_mutex_unlock (group->stream_changed_pending_lock);
+      g_mutex_unlock (&group->stream_changed_pending_lock);
     }
   } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ASYNC_START ||
       GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ASYNC_DONE) {
@@ -2920,7 +2916,7 @@ no_more_pads_cb (GstElement * decodebin, GstSourceGroup * group)
         msg = gst_message_new_element (GST_OBJECT_CAST (playbin), s);
         seqnum = gst_message_get_seqnum (msg);
         event = gst_event_new_sink_message (msg);
-        g_mutex_lock (group->stream_changed_pending_lock);
+        g_mutex_lock (&group->stream_changed_pending_lock);
         group->stream_changed_pending =
             g_list_prepend (group->stream_changed_pending,
             GUINT_TO_POINTER (seqnum));
@@ -2942,7 +2938,7 @@ no_more_pads_cb (GstElement * decodebin, GstSourceGroup * group)
             GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM,
             stream_changed_data_probe, (gpointer) select, NULL);
 
-        g_mutex_unlock (group->stream_changed_pending_lock);
+        g_mutex_unlock (&group->stream_changed_pending_lock);
         gst_message_unref (msg);
       }
 
@@ -3059,12 +3055,12 @@ autoplug_factories_cb (GstElement * decodebin, GstPad * pad,
       group, GST_DEBUG_PAD_NAME (pad), caps);
 
   /* filter out the elements based on the caps. */
-  g_mutex_lock (playbin->elements_lock);
+  g_mutex_lock (&playbin->elements_lock);
   gst_play_bin_update_elements_list (playbin);
   mylist =
       gst_element_factory_list_filter (playbin->elements, caps, GST_PAD_SINK,
       FALSE);
-  g_mutex_unlock (playbin->elements_lock);
+  g_mutex_unlock (&playbin->elements_lock);
 
   GST_DEBUG_OBJECT (playbin, "found factories %p", mylist);
   GST_PLUGIN_FEATURE_LIST_DEBUG (mylist);
@@ -3495,8 +3491,8 @@ activate_group (GstPlayBin * playbin, GstSourceGroup * group, GstState target)
 
   g_list_free (group->stream_changed_pending);
   group->stream_changed_pending = NULL;
-  if (!group->stream_changed_pending_lock)
-    group->stream_changed_pending_lock = g_mutex_new ();
+  if (!group->stream_changed_pending_lock.p)
+    g_mutex_init (&group->stream_changed_pending_lock);
 
   if (group->uridecodebin) {
     GST_DEBUG_OBJECT (playbin, "reusing existing uridecodebin");
index abad050..836f6f5 100644 (file)
 #include "config.h"
 #endif
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #include <string.h>
 #include <gst/gst.h>
 
@@ -123,12 +119,12 @@ typedef struct
 #define GST_PLAY_SINK_GET_LOCK(playsink) (&((GstPlaySink *)playsink)->lock)
 #define GST_PLAY_SINK_LOCK(playsink)     G_STMT_START { \
   GST_LOG_OBJECT (playsink, "locking from thread %p", g_thread_self ()); \
-  g_static_rec_mutex_lock (GST_PLAY_SINK_GET_LOCK (playsink)); \
+  g_rec_mutex_lock (GST_PLAY_SINK_GET_LOCK (playsink)); \
   GST_LOG_OBJECT (playsink, "locked from thread %p", g_thread_self ()); \
 } G_STMT_END
 #define GST_PLAY_SINK_UNLOCK(playsink)   G_STMT_START { \
   GST_LOG_OBJECT (playsink, "unlocking from thread %p", g_thread_self ()); \
-  g_static_rec_mutex_unlock (GST_PLAY_SINK_GET_LOCK (playsink)); \
+  g_rec_mutex_unlock (GST_PLAY_SINK_GET_LOCK (playsink)); \
 } G_STMT_END
 
 #define PENDING_FLAG_SET(playsink, flagtype) \
@@ -148,7 +144,7 @@ struct _GstPlaySink
 {
   GstBin bin;
 
-  GStaticRecMutex lock;
+  GRecMutex lock;
 
   gboolean async_pending;
   gboolean need_async_start;
@@ -524,7 +520,7 @@ gst_play_sink_init (GstPlaySink * playsink)
   gst_bin_add (GST_BIN_CAST (playsink),
       GST_ELEMENT_CAST (playsink->stream_synchronizer));
 
-  g_static_rec_mutex_init (&playsink->lock);
+  g_rec_mutex_init (&playsink->lock);
   GST_OBJECT_FLAG_SET (playsink, GST_ELEMENT_FLAG_SINK);
 }
 
@@ -627,7 +623,7 @@ gst_play_sink_finalize (GObject * object)
 
   playsink = GST_PLAY_SINK (object);
 
-  g_static_rec_mutex_free (&playsink->lock);
+  g_rec_mutex_clear (&playsink->lock);
 
   G_OBJECT_CLASS (gst_play_sink_parent_class)->finalize (object);
 }
index a54e3d0..77bf803 100644 (file)
 #include "config.h"
 #endif
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #include "gststreamsynchronizer.h"
 #include "gst/glib-compat-private.h"
 
@@ -677,14 +673,14 @@ gst_stream_synchronizer_request_new_pad (GstElement * element,
   GST_STREAM_SYNCHRONIZER_UNLOCK (self);
 
   /* Add pads and activate unless we're going to NULL */
-  g_static_rec_mutex_lock (GST_STATE_GET_LOCK (self));
+  g_rec_mutex_lock (GST_STATE_GET_LOCK (self));
   if (GST_STATE_TARGET (self) != GST_STATE_NULL) {
     gst_pad_set_active (stream->srcpad, TRUE);
     gst_pad_set_active (stream->sinkpad, TRUE);
   }
   gst_element_add_pad (GST_ELEMENT_CAST (self), stream->srcpad);
   gst_element_add_pad (GST_ELEMENT_CAST (self), stream->sinkpad);
-  g_static_rec_mutex_unlock (GST_STATE_GET_LOCK (self));
+  g_rec_mutex_unlock (GST_STATE_GET_LOCK (self));
 
   return stream->sinkpad;
 }
index 08b22de..aa328e2 100644 (file)
 #include "config.h"
 #endif
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #include <gst/gst-i18n-plugin.h>
 
 #include "gstmultisocketsink.h"
@@ -666,7 +662,7 @@ gst_multi_socket_sink_finalize (GObject * object)
 
   this = GST_MULTI_SOCKET_SINK (object);
 
-  CLIENTS_LOCK_FREE (this);
+  CLIENTS_LOCK_CLEAR (this);
   g_hash_table_destroy (this->socket_hash);
   g_array_free (this->bufqueue, TRUE);
 
index f373d90..746777a 100644 (file)
@@ -161,10 +161,10 @@ typedef struct {
   guint64 last_buffer_ts;
 } GstSocketClient;
 
-#define CLIENTS_LOCK_INIT(socketsink)       (g_static_rec_mutex_init(&socketsink->clientslock))
-#define CLIENTS_LOCK_FREE(socketsink)       (g_static_rec_mutex_free(&socketsink->clientslock))
-#define CLIENTS_LOCK(socketsink)            (g_static_rec_mutex_lock(&socketsink->clientslock))
-#define CLIENTS_UNLOCK(socketsink)          (g_static_rec_mutex_unlock(&socketsink->clientslock))
+#define CLIENTS_LOCK_INIT(socketsink)       (g_rec_mutex_init(&socketsink->clientslock))
+#define CLIENTS_LOCK_CLEAR(socketsink)      (g_rec_mutex_clear(&socketsink->clientslock))
+#define CLIENTS_LOCK(socketsink)            (g_rec_mutex_lock(&socketsink->clientslock))
+#define CLIENTS_UNLOCK(socketsink)          (g_rec_mutex_unlock(&socketsink->clientslock))
 
 /**
  * GstMultiSocketSink:
@@ -178,7 +178,7 @@ struct _GstMultiSocketSink {
   guint64 bytes_to_serve; /* how much bytes we must serve */
   guint64 bytes_served; /* how much bytes have we served */
 
-  GStaticRecMutex clientslock;  /* lock to protect the clients list */
+  GRecMutex clientslock;  /* lock to protect the clients list */
   GList *clients;       /* list of clients we are serving */
   GHashTable *socket_hash;  /* index on socket to client */
   guint clients_cookie; /* Cookie to detect changes to the clients list */