Name
GstScheduler -- An abstract class for plugable schedulers.
Synopsis
#include <gst/gst.h>
#define GST_SCHEDULER_PARENT (sched)
#define GST_SCHEDULER_STATE (sched)
enum GstSchedulerState;
#define gst_scheduler_destroy (sched)
void gst_scheduler_setup (GstScheduler *sched);
void gst_scheduler_reset (GstScheduler *sched);
void gst_scheduler_add_element (GstScheduler *sched,
GstElement *element);
void gst_scheduler_remove_element (GstScheduler *sched,
GstElement *element);
GstElementStateReturn gst_scheduler_state_transition
(GstScheduler *sched,
GstElement *element,
gint transition);
void gst_scheduler_lock_element (GstScheduler *sched,
GstElement *element);
void gst_scheduler_unlock_element (GstScheduler *sched,
GstElement *element);
void gst_scheduler_yield (GstScheduler *sched,
GstElement *element);
gboolean gst_scheduler_interrupt (GstScheduler *sched,
GstElement *element);
void gst_scheduler_error (GstScheduler *sched,
GstElement *element);
void gst_scheduler_pad_connect (GstScheduler *sched,
GstPad *srcpad,
GstPad *sinkpad);
void gst_scheduler_pad_disconnect (GstScheduler *sched,
GstPad *srcpad,
GstPad *sinkpad);
GstPad* gst_scheduler_pad_select (GstScheduler *sched,
GList *padlist);
gboolean gst_scheduler_iterate (GstScheduler *sched);
void gst_scheduler_show (GstScheduler *sched);
|
Description
This is a base class for custom schedulers.
Details
GST_SCHEDULER_PARENT()
#define GST_SCHEDULER_PARENT(sched) ((sched)->parent) |
Get the parent object of this scheduler.
GST_SCHEDULER_STATE()
#define GST_SCHEDULER_STATE(sched) ((sched)->state) |
Get the state of the scheduler.
enum GstSchedulerState
typedef enum {
GST_SCHEDULER_STATE_NONE,
GST_SCHEDULER_STATE_RUNNING,
GST_SCHEDULER_STATE_STOPPED,
GST_SCHEDULER_STATE_ERROR,
} GstSchedulerState; |
gst_scheduler_destroy()
#define gst_scheduler_destroy(sched) gst_object_destroy(GST_OBJECT(sched)) |
Destroy the scheduler
gst_scheduler_setup ()
void gst_scheduler_setup (GstScheduler *sched); |
Prepare the scheduler.
gst_scheduler_reset ()
void gst_scheduler_reset (GstScheduler *sched); |
Reset the scheduler
gst_scheduler_add_element ()
void gst_scheduler_add_element (GstScheduler *sched,
GstElement *element); |
Add an element to the schedulerr.
gst_scheduler_remove_element ()
void gst_scheduler_remove_element (GstScheduler *sched,
GstElement *element); |
Remove an element from the schedulerr.
gst_scheduler_state_transition ()
Tell the scheduler that an element changed its state.
gst_scheduler_lock_element ()
void gst_scheduler_lock_element (GstScheduler *sched,
GstElement *element); |
Acquire a lock on the given element in the given scheduler.
gst_scheduler_unlock_element ()
void gst_scheduler_unlock_element (GstScheduler *sched,
GstElement *element); |
Release the lock on the given element in the given scheduler.
gst_scheduler_yield ()
void gst_scheduler_yield (GstScheduler *sched,
GstElement *element); |
Tell the scheduler to schedule another element.
gst_scheduler_interrupt ()
gboolean gst_scheduler_interrupt (GstScheduler *sched,
GstElement *element); |
Tell the scheduler to interrupt execution of this element.
gst_scheduler_error ()
void gst_scheduler_error (GstScheduler *sched,
GstElement *element); |
Tell the scheduler an element was in error
gst_scheduler_pad_connect ()
void gst_scheduler_pad_connect (GstScheduler *sched,
GstPad *srcpad,
GstPad *sinkpad); |
Connect the srcpad to the given sinkpad.
gst_scheduler_pad_disconnect ()
void gst_scheduler_pad_disconnect (GstScheduler *sched,
GstPad *srcpad,
GstPad *sinkpad); |
Disconnect the srcpad to the given sinkpad.
gst_scheduler_pad_select ()
GstPad* gst_scheduler_pad_select (GstScheduler *sched,
GList *padlist); |
register the given padlist for a select operation.
gst_scheduler_iterate ()
gboolean gst_scheduler_iterate (GstScheduler *sched); |
Perform one iteration on the schedulerr.
gst_scheduler_show ()
void gst_scheduler_show (GstScheduler *sched); |
Dump the state of the schedulerr