Commit 02250179 authored by Wim Taymans's avatar Wim Taymans Committed by Wim Taymans
Browse files

GstTask: add methods for configuring the pool

Add getter and setter for configuring the GstTaskPool to use for a GstTask.
parent a8d2516f
......@@ -2210,6 +2210,9 @@ gst_task_create
gst_task_set_lock
gst_task_set_priority
gst_task_set_pool
gst_task_get_pool
GstTaskThreadCallbacks
gst_task_set_thread_callbacks
......
......@@ -400,6 +400,73 @@ gst_task_set_priority (GstTask * task, GThreadPriority priority)
GST_OBJECT_UNLOCK (task);
}
/**
* gst_task_get_pool:
* @task: a #GstTask
*
* Get the #GstTaskPool that this task will use for its streaming
* threads.
*
* MT safe.
*
* Returns: the #GstTaskPool used by @task. gst_object_unref()
* after usage.
*
* Since: 0.10.24
*/
GstTaskPool *
gst_task_get_pool (GstTask * task)
{
GstTaskPool *result;
GstTaskPrivate *priv;
g_return_val_if_fail (GST_IS_TASK (task), NULL);
priv = task->priv;
GST_OBJECT_LOCK (task);
result = gst_object_ref (priv->pool);
GST_OBJECT_UNLOCK (task);
return result;
}
/**
* gst_task_set_pool:
* @task: a #GstTask
* @pool: a #GstTaskPool
*
* Set @pool as the new GstTaskPool for @task. Any new streaming threads that
* will be created by @task will now use @pool.
*
* MT safe.
*
* Since: 0.10.24
*/
void
gst_task_set_pool (GstTask * task, GstTaskPool * pool)
{
GstTaskPool *old;
GstTaskPrivate *priv;
g_return_if_fail (GST_IS_TASK (task));
g_return_if_fail (GST_IS_TASK_POOL (pool));
priv = task->priv;
GST_OBJECT_LOCK (task);
if (priv->pool != pool) {
old = priv->pool;
priv->pool = gst_object_ref (pool);
} else
old = NULL;
GST_OBJECT_UNLOCK (task);
if (old)
gst_object_unref (old);
}
/**
* gst_task_set_thread_callbacks:
* @task: The #GstTask to use
......
......@@ -183,6 +183,9 @@ GstTask* gst_task_create (GstTaskFunction func, gpointer data);
void gst_task_set_lock (GstTask *task, GStaticRecMutex *mutex);
void gst_task_set_priority (GstTask *task, GThreadPriority priority);
GstTaskPool * gst_task_get_pool (GstTask *task);
void gst_task_set_pool (GstTask *task, GstTaskPool *pool);
void gst_task_set_thread_callbacks (GstTask *task,
GstTaskThreadCallbacks *callbacks,
gpointer user_data,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment