mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 17:20:36 +00:00
GstTask: add methods for configuring the pool
Add getter and setter for configuring the GstTaskPool to use for a GstTask.
This commit is contained in:
parent
a8d2516fa6
commit
02250179d9
3 changed files with 73 additions and 0 deletions
|
@ -2210,6 +2210,9 @@ gst_task_create
|
||||||
gst_task_set_lock
|
gst_task_set_lock
|
||||||
gst_task_set_priority
|
gst_task_set_priority
|
||||||
|
|
||||||
|
gst_task_set_pool
|
||||||
|
gst_task_get_pool
|
||||||
|
|
||||||
GstTaskThreadCallbacks
|
GstTaskThreadCallbacks
|
||||||
gst_task_set_thread_callbacks
|
gst_task_set_thread_callbacks
|
||||||
|
|
||||||
|
|
|
@ -400,6 +400,73 @@ gst_task_set_priority (GstTask * task, GThreadPriority priority)
|
||||||
GST_OBJECT_UNLOCK (task);
|
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:
|
* gst_task_set_thread_callbacks:
|
||||||
* @task: The #GstTask to use
|
* @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_lock (GstTask *task, GStaticRecMutex *mutex);
|
||||||
void gst_task_set_priority (GstTask *task, GThreadPriority priority);
|
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,
|
void gst_task_set_thread_callbacks (GstTask *task,
|
||||||
GstTaskThreadCallbacks *callbacks,
|
GstTaskThreadCallbacks *callbacks,
|
||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
|
|
Loading…
Reference in a new issue