mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-22 15:18:21 +00:00
encoding: port to new GLib threading API
This commit is contained in:
parent
fa0464cd7a
commit
6b12cee5a8
4 changed files with 25 additions and 21 deletions
|
@ -38,10 +38,10 @@ GST_DEBUG_CATEGORY_STATIC (gst_stream_combiner_debug);
|
||||||
|
|
||||||
G_DEFINE_TYPE (GstStreamCombiner, gst_stream_combiner, GST_TYPE_ELEMENT);
|
G_DEFINE_TYPE (GstStreamCombiner, gst_stream_combiner, GST_TYPE_ELEMENT);
|
||||||
|
|
||||||
#define STREAMS_LOCK(obj) (g_mutex_lock(obj->lock))
|
#define STREAMS_LOCK(obj) (g_mutex_lock(&obj->lock))
|
||||||
#define STREAMS_UNLOCK(obj) (g_mutex_unlock(obj->lock))
|
#define STREAMS_UNLOCK(obj) (g_mutex_unlock(&obj->lock))
|
||||||
|
|
||||||
static void gst_stream_combiner_dispose (GObject * object);
|
static void gst_stream_combiner_finalize (GObject * object);
|
||||||
|
|
||||||
static GstPad *gst_stream_combiner_request_new_pad (GstElement * element,
|
static GstPad *gst_stream_combiner_request_new_pad (GstElement * element,
|
||||||
GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
|
GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
|
||||||
|
@ -57,7 +57,7 @@ gst_stream_combiner_class_init (GstStreamCombinerClass * klass)
|
||||||
gobject_klass = (GObjectClass *) klass;
|
gobject_klass = (GObjectClass *) klass;
|
||||||
gstelement_klass = (GstElementClass *) klass;
|
gstelement_klass = (GstElementClass *) klass;
|
||||||
|
|
||||||
gobject_klass->dispose = gst_stream_combiner_dispose;
|
gobject_klass->finalize = gst_stream_combiner_finalize;
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_INIT (gst_stream_combiner_debug, "streamcombiner", 0,
|
GST_DEBUG_CATEGORY_INIT (gst_stream_combiner_debug, "streamcombiner", 0,
|
||||||
"Stream Combiner");
|
"Stream Combiner");
|
||||||
|
@ -79,16 +79,13 @@ gst_stream_combiner_class_init (GstStreamCombinerClass * klass)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_stream_combiner_dispose (GObject * object)
|
gst_stream_combiner_finalize (GObject * object)
|
||||||
{
|
{
|
||||||
GstStreamCombiner *stream_combiner = (GstStreamCombiner *) object;
|
GstStreamCombiner *stream_combiner = (GstStreamCombiner *) object;
|
||||||
|
|
||||||
if (stream_combiner->lock) {
|
g_mutex_clear (&stream_combiner->lock);
|
||||||
g_mutex_free (stream_combiner->lock);
|
|
||||||
stream_combiner->lock = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (gst_stream_combiner_parent_class)->dispose (object);
|
G_OBJECT_CLASS (gst_stream_combiner_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstFlowReturn
|
static GstFlowReturn
|
||||||
|
@ -199,7 +196,7 @@ gst_stream_combiner_init (GstStreamCombiner * stream_combiner)
|
||||||
gst_stream_combiner_src_query);
|
gst_stream_combiner_src_query);
|
||||||
gst_element_add_pad (GST_ELEMENT (stream_combiner), stream_combiner->srcpad);
|
gst_element_add_pad (GST_ELEMENT (stream_combiner), stream_combiner->srcpad);
|
||||||
|
|
||||||
stream_combiner->lock = g_mutex_new ();
|
g_mutex_init (&stream_combiner->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstPad *
|
static GstPad *
|
||||||
|
|
|
@ -41,7 +41,7 @@ struct _GstStreamCombiner {
|
||||||
* * the current pad
|
* * the current pad
|
||||||
* * the list of srcpads
|
* * the list of srcpads
|
||||||
*/
|
*/
|
||||||
GMutex *lock;
|
GMutex lock;
|
||||||
/* Currently activated srcpad */
|
/* Currently activated srcpad */
|
||||||
GstPad *current;
|
GstPad *current;
|
||||||
GList *sinkpads;
|
GList *sinkpads;
|
||||||
|
|
|
@ -38,10 +38,11 @@ GST_DEBUG_CATEGORY_STATIC (gst_stream_splitter_debug);
|
||||||
|
|
||||||
G_DEFINE_TYPE (GstStreamSplitter, gst_stream_splitter, GST_TYPE_ELEMENT);
|
G_DEFINE_TYPE (GstStreamSplitter, gst_stream_splitter, GST_TYPE_ELEMENT);
|
||||||
|
|
||||||
#define STREAMS_LOCK(obj) (g_mutex_lock(obj->lock))
|
#define STREAMS_LOCK(obj) (g_mutex_lock(&obj->lock))
|
||||||
#define STREAMS_UNLOCK(obj) (g_mutex_unlock(obj->lock))
|
#define STREAMS_UNLOCK(obj) (g_mutex_unlock(&obj->lock))
|
||||||
|
|
||||||
static void gst_stream_splitter_dispose (GObject * object);
|
static void gst_stream_splitter_dispose (GObject * object);
|
||||||
|
static void gst_stream_splitter_finalize (GObject * object);
|
||||||
|
|
||||||
static gboolean gst_stream_splitter_sink_setcaps (GstPad * pad, GstCaps * caps);
|
static gboolean gst_stream_splitter_sink_setcaps (GstPad * pad, GstCaps * caps);
|
||||||
|
|
||||||
|
@ -60,6 +61,7 @@ gst_stream_splitter_class_init (GstStreamSplitterClass * klass)
|
||||||
gstelement_klass = (GstElementClass *) klass;
|
gstelement_klass = (GstElementClass *) klass;
|
||||||
|
|
||||||
gobject_klass->dispose = gst_stream_splitter_dispose;
|
gobject_klass->dispose = gst_stream_splitter_dispose;
|
||||||
|
gobject_klass->finalize = gst_stream_splitter_finalize;
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_INIT (gst_stream_splitter_debug, "streamsplitter", 0,
|
GST_DEBUG_CATEGORY_INIT (gst_stream_splitter_debug, "streamsplitter", 0,
|
||||||
"Stream Splitter");
|
"Stream Splitter");
|
||||||
|
@ -85,11 +87,6 @@ gst_stream_splitter_dispose (GObject * object)
|
||||||
{
|
{
|
||||||
GstStreamSplitter *stream_splitter = (GstStreamSplitter *) object;
|
GstStreamSplitter *stream_splitter = (GstStreamSplitter *) object;
|
||||||
|
|
||||||
if (stream_splitter->lock) {
|
|
||||||
g_mutex_free (stream_splitter->lock);
|
|
||||||
stream_splitter->lock = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_list_foreach (stream_splitter->pending_events, (GFunc) gst_event_unref,
|
g_list_foreach (stream_splitter->pending_events, (GFunc) gst_event_unref,
|
||||||
NULL);
|
NULL);
|
||||||
g_list_free (stream_splitter->pending_events);
|
g_list_free (stream_splitter->pending_events);
|
||||||
|
@ -98,6 +95,16 @@ gst_stream_splitter_dispose (GObject * object)
|
||||||
G_OBJECT_CLASS (gst_stream_splitter_parent_class)->dispose (object);
|
G_OBJECT_CLASS (gst_stream_splitter_parent_class)->dispose (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gst_stream_splitter_finalize (GObject * object)
|
||||||
|
{
|
||||||
|
GstStreamSplitter *stream_splitter = (GstStreamSplitter *) object;
|
||||||
|
|
||||||
|
g_mutex_clear (&stream_splitter->lock);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS (gst_stream_splitter_parent_class)->finalize (object);
|
||||||
|
}
|
||||||
|
|
||||||
static GstFlowReturn
|
static GstFlowReturn
|
||||||
gst_stream_splitter_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
|
gst_stream_splitter_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
|
||||||
{
|
{
|
||||||
|
@ -416,7 +423,7 @@ gst_stream_splitter_init (GstStreamSplitter * stream_splitter)
|
||||||
gst_stream_splitter_sink_query);
|
gst_stream_splitter_sink_query);
|
||||||
gst_element_add_pad (GST_ELEMENT (stream_splitter), stream_splitter->sinkpad);
|
gst_element_add_pad (GST_ELEMENT (stream_splitter), stream_splitter->sinkpad);
|
||||||
|
|
||||||
stream_splitter->lock = g_mutex_new ();
|
g_mutex_init (&stream_splitter->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstPad *
|
static GstPad *
|
||||||
|
|
|
@ -41,7 +41,7 @@ struct _GstStreamSplitter {
|
||||||
* * the current pad
|
* * the current pad
|
||||||
* * the list of srcpads
|
* * the list of srcpads
|
||||||
*/
|
*/
|
||||||
GMutex *lock;
|
GMutex lock;
|
||||||
/* Currently activated srcpad */
|
/* Currently activated srcpad */
|
||||||
GstPad *current;
|
GstPad *current;
|
||||||
GList *srcpads;
|
GList *srcpads;
|
||||||
|
|
Loading…
Reference in a new issue