Blame docs/gst/html/GstTask.html

Packit a6ee4b
Packit a6ee4b
<html>
Packit a6ee4b
<head>
Packit a6ee4b
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Packit a6ee4b
<title>GstTask: GStreamer 1.0 Core Reference Manual</title>
Packit a6ee4b
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
Packit a6ee4b
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
Packit a6ee4b
<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
Packit a6ee4b
<link rel="prev" href="GstTagSetter.html" title="GstTagsetter">
Packit a6ee4b
<link rel="next" href="GstTaskPool.html" title="GstTaskPool">
Packit a6ee4b
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
Packit a6ee4b
<link rel="stylesheet" href="style.css" type="text/css">
Packit a6ee4b
</head>
Packit a6ee4b
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Top  | 
Packit a6ee4b
                  Description  | 
Packit a6ee4b
                  Object Hierarchy
Packit a6ee4b
Packit a6ee4b
Home
Packit a6ee4b
Up
Packit a6ee4b
Prev
Packit a6ee4b
Next
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

GstTask

Packit a6ee4b

GstTask — Abstraction of GStreamer streaming threads.

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Functions

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
void
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
(*GstTaskFunction) ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
#define
Packit a6ee4b
Packit a6ee4b
GST_TASK_BROADCAST()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
#define
Packit a6ee4b
Packit a6ee4b
GST_TASK_GET_COND()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
#define
Packit a6ee4b
Packit a6ee4b
GST_TASK_GET_LOCK()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
#define
Packit a6ee4b
Packit a6ee4b
GST_TASK_SIGNAL()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
#define
Packit a6ee4b
Packit a6ee4b
GST_TASK_STATE()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
#define
Packit a6ee4b
Packit a6ee4b
GST_TASK_WAIT()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
GstTask *
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_new ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
void
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_set_lock ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
void
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_set_pool ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
GstTaskPool *
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_get_pool ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
void
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
(*GstTaskThreadFunc) ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
void
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_set_enter_callback ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
void
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_set_leave_callback ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
GstTaskState
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_get_state ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gboolean
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_set_state ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gboolean
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_pause ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gboolean
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_start ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gboolean
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_stop ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gboolean
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_join ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
void
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
gst_task_cleanup_all ()
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Types and Values

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
struct
Packit a6ee4b
GstTask
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
enum
Packit a6ee4b
GstTaskState
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Object Hierarchy

Packit a6ee4b
    GObject
Packit a6ee4b
    ╰── GInitiallyUnowned
Packit a6ee4b
        ╰── GstObject
Packit a6ee4b
            ╰── GstTask
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Includes

Packit a6ee4b
#include <gst/gst.h>
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Description

Packit a6ee4b

GstTask is used by GstElement and GstPad to provide the data passing

Packit a6ee4b
threads in a GstPipeline.

Packit a6ee4b

A GstPad will typically start a GstTask to push or pull data to/from the

Packit a6ee4b
peer pads. Most source elements start a GstTask to push data. In some cases
Packit a6ee4b
a demuxer element can start a GstTask to pull data from a peer element. This
Packit a6ee4b
is typically done when the demuxer can perform random access on the upstream
Packit a6ee4b
peer element for improved performance.

Packit a6ee4b

Although convenience functions exist on GstPad to start/pause/stop tasks, it

Packit a6ee4b
might sometimes be needed to create a GstTask manually if it is not related to
Packit a6ee4b
a GstPad.

Packit a6ee4b

Before the GstTask can be run, it needs a GRecMutex that can be set with

Packit a6ee4b
gst_task_set_lock().

Packit a6ee4b

The task can be started, paused and stopped with gst_task_start(), gst_task_pause()

Packit a6ee4b
and gst_task_stop() respectively or with the gst_task_set_state() function.

Packit a6ee4b

A GstTask will repeatedly call the GstTaskFunction with the user data

Packit a6ee4b
that was provided when creating the task with gst_task_new(). While calling
Packit a6ee4b
the function it will acquire the provided lock. The provided lock is released
Packit a6ee4b
when the task pauses or stops.

Packit a6ee4b

Stopping a task with gst_task_stop() will not immediately make sure the task is

Packit a6ee4b
not running anymore. Use gst_task_join() to make sure the task is completely
Packit a6ee4b
stopped and the thread is stopped.

Packit a6ee4b

After creating a GstTask, use gst_object_unref() to free its resources. This can

Packit a6ee4b
only be done when the task is not running anymore.

Packit a6ee4b

Task functions can send a GstMessage to send out-of-band data to the

Packit a6ee4b
application. The application can receive messages from the GstBus in its
Packit a6ee4b
mainloop.

Packit a6ee4b

For debugging purposes, the task will configure its object name as the thread

Packit a6ee4b
name on Linux. Please note that the object name should be configured before the
Packit a6ee4b
task is started; changing the object name after the task has been started, has
Packit a6ee4b
no effect on the thread name.

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Functions

Packit a6ee4b
Packit a6ee4b

GstTaskFunction ()

Packit a6ee4b
void
Packit a6ee4b
(*GstTaskFunction) (gpointer user_data);
Packit a6ee4b

A function that will repeatedly be called in the thread created by

Packit a6ee4b
a GstTask.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

user_data

Packit a6ee4b

user data passed to the function

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

GST_TASK_BROADCAST()

Packit a6ee4b
#define GST_TASK_BROADCAST(task)        g_cond_broadcast(GST_TASK_GET_COND (task))
Packit a6ee4b
Packit a6ee4b

Send a broadcast signal to all waiting task conds

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

Task to broadcast

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

GST_TASK_GET_COND()

Packit a6ee4b
#define GST_TASK_GET_COND(task)         (&GST_TASK_CAST(task)->cond)
Packit a6ee4b
Packit a6ee4b

Get access to the cond of the task.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

Task to get the cond of

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

GST_TASK_GET_LOCK()

Packit a6ee4b
#define GST_TASK_GET_LOCK(task)         (GST_TASK_CAST(task)->lock)
Packit a6ee4b
Packit a6ee4b

Get access to the task lock.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

Task to get the lock of

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

GST_TASK_SIGNAL()

Packit a6ee4b
#define GST_TASK_SIGNAL(task)           g_cond_signal(GST_TASK_GET_COND (task))
Packit a6ee4b
Packit a6ee4b

Signal the task cond

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

Task to signal

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

GST_TASK_STATE()

Packit a6ee4b
#define GST_TASK_STATE(task)            (GST_TASK_CAST(task)->state)
Packit a6ee4b
Packit a6ee4b

Get access to the state of the task.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

Task to get the state of

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

GST_TASK_WAIT()

Packit a6ee4b
#define GST_TASK_WAIT(task)             g_cond_wait(GST_TASK_GET_COND (task), GST_OBJECT_GET_LOCK (task))
Packit a6ee4b
Packit a6ee4b

Wait for the task cond to be signalled

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

Task to wait for

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_new ()

Packit a6ee4b
GstTask *
Packit a6ee4b
gst_task_new (GstTaskFunction func,
Packit a6ee4b
              gpointer user_data,
Packit a6ee4b
              GDestroyNotify notify);
Packit a6ee4b

Create a new Task that will repeatedly call the provided func

Packit a6ee4b
Packit a6ee4b
with user_data
Packit a6ee4b
 as a parameter. Typically the task will run in
Packit a6ee4b
a new thread.

Packit a6ee4b

The function cannot be changed after the task has been created. You

Packit a6ee4b
must create a new GstTask to change the function.

Packit a6ee4b

This function will not yet create and start a thread. Use gst_task_start() or

Packit a6ee4b
gst_task_pause() to create and start the GThread.

Packit a6ee4b

Before the task can be used, a GRecMutex must be configured using the

Packit a6ee4b
gst_task_set_lock() function. This lock will always be acquired while
Packit a6ee4b
func
Packit a6ee4b
 is called.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

func

Packit a6ee4b

The GstTaskFunction to use

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

user_data

Packit a6ee4b

User data to pass to func

Packit a6ee4b

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

notify

Packit a6ee4b

the function to call when user_data

Packit a6ee4b
is no longer needed.

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

A new GstTask.

Packit a6ee4b

MT safe.

Packit a6ee4b

[transfer full]

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_set_lock ()

Packit a6ee4b
void
Packit a6ee4b
gst_task_set_lock (GstTask *task,
Packit a6ee4b
                   GRecMutex *mutex);
Packit a6ee4b

Set the mutex used by the task. The mutex will be acquired before

Packit a6ee4b
calling the GstTaskFunction.

Packit a6ee4b

This function has to be called before calling gst_task_pause() or

Packit a6ee4b
gst_task_start().

Packit a6ee4b

MT safe.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

The GstTask to use

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

mutex

Packit a6ee4b

The GRecMutex to use

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_set_pool ()

Packit a6ee4b
void
Packit a6ee4b
gst_task_set_pool (GstTask *task,
Packit a6ee4b
                   GstTaskPool *pool);
Packit a6ee4b

Set pool

Packit a6ee4b
 as the new GstTaskPool for task
Packit a6ee4b
. Any new streaming threads that
Packit a6ee4b
will be created by task
Packit a6ee4b
 will now use pool
Packit a6ee4b
.

Packit a6ee4b

MT safe.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

a GstTask

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

pool

Packit a6ee4b

a GstTaskPool.

Packit a6ee4b
[transfer none]
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_get_pool ()

Packit a6ee4b
GstTaskPool *
Packit a6ee4b
gst_task_get_pool (GstTask *task);
Packit a6ee4b

Get the GstTaskPool that this task will use for its streaming

Packit a6ee4b
threads.

Packit a6ee4b

MT safe.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

a GstTask

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

the GstTaskPool used by task

Packit a6ee4b
. gst_object_unref()
Packit a6ee4b
after usage. 

Packit a6ee4b

[transfer full]

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

GstTaskThreadFunc ()

Packit a6ee4b
void
Packit a6ee4b
(*GstTaskThreadFunc) (GstTask *task,
Packit a6ee4b
                      GThread *thread,
Packit a6ee4b
                      gpointer user_data);
Packit a6ee4b

Custom GstTask thread callback functions that can be installed.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

The GstTask

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

thread

Packit a6ee4b

The GThread

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

user_data

Packit a6ee4b

user data

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_set_enter_callback ()

Packit a6ee4b
void
Packit a6ee4b
gst_task_set_enter_callback (GstTask *task,
Packit a6ee4b
                             GstTaskThreadFunc enter_func,
Packit a6ee4b
                             gpointer user_data,
Packit a6ee4b
                             GDestroyNotify notify);
Packit a6ee4b

Call enter_func

Packit a6ee4b
 when the task function of task
Packit a6ee4b
 is entered. user_data
Packit a6ee4b
 will
Packit a6ee4b
be passed to enter_func
Packit a6ee4b
 and notify
Packit a6ee4b
 will be called when user_data
Packit a6ee4b
 is no
Packit a6ee4b
longer referenced.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

The GstTask to use

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

enter_func

Packit a6ee4b

a GstTaskThreadFunc.

Packit a6ee4b
[in]
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

user_data

Packit a6ee4b

user data passed to enter_func

Packit a6ee4b

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

notify

Packit a6ee4b

called when user_data

Packit a6ee4b
is no longer referenced

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_set_leave_callback ()

Packit a6ee4b
void
Packit a6ee4b
gst_task_set_leave_callback (GstTask *task,
Packit a6ee4b
                             GstTaskThreadFunc leave_func,
Packit a6ee4b
                             gpointer user_data,
Packit a6ee4b
                             GDestroyNotify notify);
Packit a6ee4b

Call leave_func

Packit a6ee4b
 when the task function of task
Packit a6ee4b
 is left. user_data
Packit a6ee4b
 will
Packit a6ee4b
be passed to leave_func
Packit a6ee4b
 and notify
Packit a6ee4b
 will be called when user_data
Packit a6ee4b
 is no
Packit a6ee4b
longer referenced.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

The GstTask to use

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

leave_func

Packit a6ee4b

a GstTaskThreadFunc.

Packit a6ee4b
[in]
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

user_data

Packit a6ee4b

user data passed to leave_func

Packit a6ee4b

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

notify

Packit a6ee4b

called when user_data

Packit a6ee4b
is no longer referenced

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_get_state ()

Packit a6ee4b
GstTaskState
Packit a6ee4b
gst_task_get_state (GstTask *task);
Packit a6ee4b

Get the current state of the task.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

The GstTask to query

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

The GstTaskState of the task

Packit a6ee4b

MT safe.

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_set_state ()

Packit a6ee4b
gboolean
Packit a6ee4b
gst_task_set_state (GstTask *task,
Packit a6ee4b
                    GstTaskState state);
Packit a6ee4b

Sets the state of task

Packit a6ee4b
 to state
Packit a6ee4b
.

Packit a6ee4b

The task

Packit a6ee4b
 must have a lock associated with it using
Packit a6ee4b
gst_task_set_lock() when going to GST_TASK_STARTED or GST_TASK_PAUSED or
Packit a6ee4b
this function will return FALSE.

Packit a6ee4b

MT safe.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

a GstTask

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

state

Packit a6ee4b

the new task state

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

TRUE if the state could be changed.

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_pause ()

Packit a6ee4b
gboolean
Packit a6ee4b
gst_task_pause (GstTask *task);
Packit a6ee4b

Pauses task

Packit a6ee4b
. This method can also be called on a task in the
Packit a6ee4b
stopped state, in which case a thread will be started and will remain
Packit a6ee4b
in the paused state. This function does not wait for the task to complete
Packit a6ee4b
the paused state.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

The GstTask to pause

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

TRUE if the task could be paused.

Packit a6ee4b

MT safe.

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_start ()

Packit a6ee4b
gboolean
Packit a6ee4b
gst_task_start (GstTask *task);
Packit a6ee4b

Starts task

Packit a6ee4b
. The task
Packit a6ee4b
 must have a lock associated with it using
Packit a6ee4b
gst_task_set_lock() or this function will return FALSE.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

The GstTask to start

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

TRUE if the task could be started.

Packit a6ee4b

MT safe.

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_stop ()

Packit a6ee4b
gboolean
Packit a6ee4b
gst_task_stop (GstTask *task);
Packit a6ee4b

Stops task

Packit a6ee4b
. This method merely schedules the task to stop and
Packit a6ee4b
will not wait for the task to have completely stopped. Use
Packit a6ee4b
gst_task_join() to stop and wait for completion.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

The GstTask to stop

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

TRUE if the task could be stopped.

Packit a6ee4b

MT safe.

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_join ()

Packit a6ee4b
gboolean
Packit a6ee4b
gst_task_join (GstTask *task);
Packit a6ee4b

Joins task

Packit a6ee4b
. After this call, it is safe to unref the task
Packit a6ee4b
and clean up the lock set with gst_task_set_lock().

Packit a6ee4b

The task will automatically be stopped with this call.

Packit a6ee4b

This function cannot be called from within a task function as this

Packit a6ee4b
would cause a deadlock. The function will detect this and print a
Packit a6ee4b
g_warning.

Packit a6ee4b
Packit a6ee4b

Parameters

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

task

Packit a6ee4b

The GstTask to join

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Returns

Packit a6ee4b

TRUE if the task could be joined.

Packit a6ee4b

MT safe.

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

gst_task_cleanup_all ()

Packit a6ee4b
void
Packit a6ee4b
gst_task_cleanup_all (void);
Packit a6ee4b

Wait for all tasks to be stopped. This is mainly used internally

Packit a6ee4b
to ensure proper cleanup of internal data structures in test suites.

Packit a6ee4b

MT safe.

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Types and Values

Packit a6ee4b
Packit a6ee4b

struct GstTask

Packit a6ee4b
struct GstTask {
Packit a6ee4b
  GstTaskState     state;
Packit a6ee4b
  GCond            cond;
Packit a6ee4b
Packit a6ee4b
  GRecMutex       *lock;
Packit a6ee4b
Packit a6ee4b
  GstTaskFunction  func;
Packit a6ee4b
  gpointer         user_data;
Packit a6ee4b
  GDestroyNotify   notify;
Packit a6ee4b
Packit a6ee4b
  gboolean         running;
Packit a6ee4b
};
Packit a6ee4b
Packit a6ee4b

The GstTask object.

Packit a6ee4b
Packit a6ee4b

Members

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

GstTaskState state;

Packit a6ee4b

the state of the task

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

GCond cond;

Packit a6ee4b

used to pause/resume the task

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

GRecMutex *lock;

Packit a6ee4b

The lock taken when iterating the task function

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

GstTaskFunction func;

Packit a6ee4b

the function executed by this task

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

gpointer user_data;

Packit a6ee4b

user_data passed to the task function

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

GDestroyNotify notify;

Packit a6ee4b

GDestroyNotify for user_data

Packit a6ee4b

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

gboolean running;

Packit a6ee4b

a flag indicating that the task is running

Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Packit a6ee4b
Packit a6ee4b

enum GstTaskState

Packit a6ee4b

The different states a task can be in

Packit a6ee4b
Packit a6ee4b

Members

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

GST_TASK_STARTED

Packit a6ee4b
Packit a6ee4b

the task is started and running

Packit a6ee4b
Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

GST_TASK_STOPPED

Packit a6ee4b
Packit a6ee4b

the task is stopped

Packit a6ee4b
Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

GST_TASK_PAUSED

Packit a6ee4b
Packit a6ee4b

the task is paused

Packit a6ee4b
Packit a6ee4b
 
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

See Also

Packit a6ee4b

GstElement, GstPad

Packit a6ee4b
Packit a6ee4b
Packit a6ee4b
Packit a6ee4b

Generated by GTK-Doc V1.28
Packit a6ee4b
</body>
Packit a6ee4b
</html>