X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgsttask.c;h=30f25fef8f7799f822af55e783144411f5822010;hb=ce43de86902c4e9c8ed4e9682602664cb9bce2ee;hp=190c4d61b430666acc9bd83ba4aa4ce496f80fed;hpb=a837ff6581ba16180e89352a753296cd74a85a72;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gsttask.c b/gst/gsttask.c index 190c4d6..30f25fe 100644 --- a/gst/gsttask.c +++ b/gst/gsttask.c @@ -22,6 +22,7 @@ /** * SECTION:gsttask + * @title: GstTask * @short_description: Abstraction of GStreamer streaming threads. * @see_also: #GstElement, #GstPad * @@ -88,9 +89,6 @@ GST_DEBUG_CATEGORY_STATIC (task_debug); #define SET_TASK_STATE(t,s) (g_atomic_int_set (&GST_TASK_STATE(t), (s))) #define GET_TASK_STATE(t) ((GstTaskState) g_atomic_int_get (&GST_TASK_STATE(t))) -#define GST_TASK_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_TASK, GstTaskPrivate)) - struct _GstTaskPrivate { /* callbacks for managing the thread of this task */ @@ -152,7 +150,8 @@ static GMutex pool_lock; GST_DEBUG_CATEGORY_INIT (task_debug, "task", 0, "Processing tasks"); \ } -G_DEFINE_TYPE_WITH_CODE (GstTask, gst_task, GST_TYPE_OBJECT, _do_init); +G_DEFINE_TYPE_WITH_CODE (GstTask, gst_task, GST_TYPE_OBJECT, + G_ADD_PRIVATE (GstTask) _do_init); static void init_klass_pool (GstTaskClass * klass) @@ -176,8 +175,6 @@ gst_task_class_init (GstTaskClass * klass) gobject_class = (GObjectClass *) klass; - g_type_class_add_private (klass, sizeof (GstTaskPrivate)); - gobject_class->finalize = gst_task_finalize; init_klass_pool (klass); @@ -190,7 +187,7 @@ gst_task_init (GstTask * task) klass = GST_TASK_GET_CLASS (task); - task->priv = GST_TASK_GET_PRIVATE (task); + task->priv = gst_task_get_instance_private (task); task->running = FALSE; task->thread = NULL; task->lock = NULL; @@ -202,9 +199,6 @@ gst_task_init (GstTask * task) g_mutex_lock (&pool_lock); task->priv->pool = gst_object_ref (klass->pool); g_mutex_unlock (&pool_lock); - - /* clear floating flag */ - gst_object_ref_sink (task); } static void @@ -422,13 +416,16 @@ gst_task_new (GstTaskFunction func, gpointer user_data, GDestroyNotify notify) g_return_val_if_fail (func != NULL, NULL); - task = g_object_newv (GST_TYPE_TASK, 0, NULL); + task = g_object_new (GST_TYPE_TASK, NULL); task->func = func; task->user_data = user_data; task->notify = notify; GST_DEBUG ("Created task %p", task); + /* clear floating flag */ + gst_object_ref_sink (task); + return task; }