Details
enum GstElementState
typedef enum {
GST_STATE_NONE_PENDING = 0,
GST_STATE_NULL = (1 << 0),
GST_STATE_READY = (1 << 1),
GST_STATE_PLAYING = (1 << 2),
GST_STATE_PAUSED = (1 << 3),
} GstElementState; |
This enum defines the standard states an element may be in. You will normally
use gst_element_set_state() to change the state of an element.
enum GstElementStateReturn
typedef enum {
GST_STATE_FAILURE = 0,
GST_STATE_SUCCESS = 1,
GST_STATE_ASYNC = 2,
} GstElementStateReturn; |
This enum defines the standard return values that an element
can return after a state change.
GST_STATE()
#define GST_STATE(obj) (GST_ELEMENT(obj)->current_state) |
This macro returns the current state of the element.
GST_STATE_PENDING()
#define GST_STATE_PENDING(obj) (GST_ELEMENT(obj)->pending_state) |
This macro returns the currently pending state of the element.
GST_STATE_TRANSITION()
#define GST_STATE_TRANSITION(obj) ((GST_STATE(obj)<<8) | GST_STATE_PENDING(obj)) |
Returns the state transition this object is going through.
GST_STATE_NULL_TO_READY
#define GST_STATE_NULL_TO_READY ((GST_STATE_NULL<<8) | GST_STATE_READY) |
The Element is going from the NULL state to the READY state.
GST_STATE_READY_TO_PLAYING
#define GST_STATE_READY_TO_PLAYING ((GST_STATE_READY<<8) | GST_STATE_PLAYING) |
The Element is going from the READY state to the PLAYING state.
GST_STATE_PLAYING_TO_PAUSED
#define GST_STATE_PLAYING_TO_PAUSED ((GST_STATE_PLAYING<<8) | GST_STATE_PAUSED) |
The Element is going from the PLAYING state to the PAUSED state.
GST_STATE_PAUSED_TO_PLAYING
#define GST_STATE_PAUSED_TO_PLAYING ((GST_STATE_PAUSED<<8) | GST_STATE_PLAYING) |
The Element is going from the PAUSED state to the PLAYING state.
GST_STATE_PLAYING_TO_READY
#define GST_STATE_PLAYING_TO_READY ((GST_STATE_PLAYING<<8) | GST_STATE_READY) |
The Element is going from the PLAYING state to the READY state.
GST_STATE_READY_TO_NULL
#define GST_STATE_READY_TO_NULL ((GST_STATE_READY<<8) | GST_STATE_NULL) |
The Element is going from the READY state to the NULL state.
enum GstElementFlags
typedef enum {
/* element is complex (for some def.) and generally require a cothread */
GST_ELEMENT_COMPLEX = GST_OBJECT_FLAG_LAST,
/* input and output pads aren't directly coupled to each other
examples: queues, multi-output async readers, etc. */
GST_ELEMENT_DECOUPLED,
/* this element should be placed in a thread if at all possible */
GST_ELEMENT_THREAD_SUGGESTED,
/* this element is incable of seeking (FIXME: does this apply to filters?) */
GST_ELEMENT_NO_SEEK,
/* there is a new loopfunction ready for placement */
GST_ELEMENT_NEW_LOOPFUNC,
/* the cothread holding this element needs to be stopped */
GST_ELEMENT_COTHREAD_STOPPING,
/* the element has to be scheduled as a cothread for any sanity */
GST_ELEMENT_USE_COTHREAD,
/* if this element is in EOS */
GST_ELEMENT_EOS,
/* use some padding for future expansion */
GST_ELEMENT_FLAG_LAST = GST_OBJECT_FLAG_LAST + 8,
} GstElementFlags; |
This enum defines the standard flags that an element may have.
GST_ELEMENT_IS_THREAD_SUGGESTED()
#define GST_ELEMENT_IS_THREAD_SUGGESTED(obj) (GST_FLAG_IS_SET(obj,GST_ELEMENT_THREAD_SUGGESTED)) |
Queries whether the Element should be placed in a thread.
GST_ELEMENT_IS_COTHREAD_STOPPING()
#define GST_ELEMENT_IS_COTHREAD_STOPPING(obj) (GST_FLAG_IS_SET(obj,GST_ELEMENT_COTHREAD_STOPPING)) |
Queries whether the cothread holding this element needs to be stopped.
GST_ELEMENT_IS_EOS()
#define GST_ELEMENT_IS_EOS(obj) (GST_FLAG_IS_SET(obj,GST_ELEMENT_EOS)) |
Query wether this element is in the End Of Stream state.
GST_ELEMENT_PARENT()
#define GST_ELEMENT_PARENT(obj) (GST_OBJECT_PARENT(obj)) |
Get the parent object of this element.
GST_ELEMENT_NAME()
#define GST_ELEMENT_NAME(obj) (GST_OBJECT_NAME(obj)) |
Get the name of this element.
struct GstElementDetails
struct GstElementDetails {
gchar *longname; /* long, english name */
gchar *klass; /* type of element, as hierarchy */
gchar *description; /* insights of one form or another */
gchar *version; /* version of the element */
gchar *author; /* who wrote this thing? */
gchar *copyright; /* copyright details (year, etc.) */
}; |
This struct is used to define public information about the element. It
describes the element, mostly for the benefit of editors.
struct GstElementFactory
struct GstElementFactory {
gchar *name; /* name of element */
GtkType type; /* unique GtkType of element */
GstElementDetails *details; /* pointer to details struct */
GList *padtemplates;
guint16 numpadtemplates;
}; |
This factory is used when registering the element, and contains the name
of the element, the GtkType value for it, as well as a pointer to the
GstElementDetails struct for the element.
GstElementLoopFunction ()
void (*GstElementLoopFunction) (GstElement *element); |
This function type is used to specify a loop function for the element. It
is passed the element in question, and is expect to return only in error
circumstances.
gst_element_new ()
Create a new element. Should never be used, as it does no good.
gst_element_destroy()
#define gst_element_destroy(element) gst_object_destroy (GST_OBJECT (element)) |
gst_element_set_loop_function ()
This sets the loop function for the element. The function pointed to
can deviate from the GstElementLoopFunction definition in type of
pointer only.
NOTE: in order for this to take effect, the current loop function *must*
exit. Assuming the loop function itself is the only one who will cause
a new loopfunc to be assigned, this should be no problem.
gst_element_set_name ()
void gst_element_set_name (GstElement *element,
const gchar *name); |
Set the name of the element, getting rid of the old name if there was
one.
gst_element_get_name ()
const gchar* gst_element_get_name (GstElement *element); |
Get the name of the element.
gst_element_set_manager ()
Sets the manager of the element. For internal use only, unless you're
writing a new bin subclass.
gst_element_get_manager ()
Returns the manager of the element.
gst_element_set_parent ()
Set the parent of the element.
gst_element_get_parent ()
Get the parent of the element.
gst_element_add_pad ()
Add a pad (connection point) to the element, setting the parent of the
pad to the element (and thus adding a reference).
gst_element_get_pad ()
Retrieve a pad from the element by name.
gst_element_get_pad_list ()
GList* gst_element_get_pad_list (GstElement *element); |
Retrieve a list of the pads associated with the element.
gst_element_get_padtemplate_list ()
GList* gst_element_get_padtemplate_list
(GstElement *element); |
Retrieve a list of the padtemplates associated with the element.
gst_element_get_padtemplate_by_name ()
Retrieve a padtemplate from this element with the
given name.
gst_element_add_ghost_pad ()
Create a ghost pad from the given pad, and add it to the list of pads
for this element.
gst_element_remove_ghost_pad ()
removes a ghost pad from an element
gst_element_request_compatible_pad ()
Request a new pad from the element. The template will
be used to decide what type of pad to create. This function
is typically used for elements with a padtemplate with presence
GST_PAD_REQUEST.
gst_element_request_pad_by_name ()
GstPad* gst_element_request_pad_by_name (GstElement *element,
const gchar *name); |
Request a new pad from the element. The name argument will
be used to decide what padtemplate to use. This function
is typically used for elements with a padtemplate with presence
GST_PAD_REQUEST.
gst_element_connect ()
void gst_element_connect (GstElement *src,
const gchar *srcpadname,
GstElement *dest,
const gchar *destpadname); |
Connect the two named pads of the source and destination elements.
Side effect is that if one of the pads has no parent, it becomes a
child of the parent of the other element. If they have different
parents, the connection fails.
gst_element_disconnect ()
void gst_element_disconnect (GstElement *src,
const gchar *srcpadname,
GstElement *dest,
const gchar *destpadname); |
Disconnect the two named pads of the source and destination elements.
gst_element_set_state ()
Sets the state of the element. This function will only set
the elements pending state.
gst_element_error ()
void gst_element_error (GstElement *element,
const gchar *error); |
This function is used internally by elements to signal an error
condition. It results in the "error" signal.
gst_element_get_factory ()
Retrieves the factory that was used to create this element
gst_element_signal_eos ()
void gst_element_signal_eos (GstElement *element); |
Throws the eos signal to indicate that the end of the stream is reached.
gst_element_load_thyself ()
Load the element from the XML description
gst_elementfactory_new ()
Create a new elementfactory capable of insantiating objects of the
given type.
gst_elementfactory_destroy ()
Removes the elementfactory from the global list.
gst_elementfactory_add_padtemplate ()
Add the given padtemplate to this elementfactory.
gst_elementfactory_find ()
Search for an elementfactory of the given name.
gst_elementfactory_get_list ()
GList* gst_elementfactory_get_list (void); |
Get the global list of elementfactories.
gst_elementfactory_can_src_caps ()
Checks if the factory can src the given capability.
gst_elementfactory_can_sink_caps ()
Checks if the factory can sink the given capability.
gst_elementfactory_can_src_caps_list ()
gboolean gst_elementfactory_can_src_caps_list
(GstElementFactory *factory,
GList *caps); |
Checks if the factory can source the given capability list.
gst_elementfactory_can_sink_caps_list ()
gboolean gst_elementfactory_can_sink_caps_list
(GstElementFactory *factory,
GList *caps); |
Checks if the factory can sink the given capability list.
gst_elementfactory_create ()
Create a new element of the type defined by the given elementfactory.
It wll be given the name supplied, since all elements require a name as
their first argument.
gst_elementfactory_make ()
GstElement* gst_elementfactory_make (const gchar *factoryname,
const gchar *name); |
Create a new element of the type defined by the given elementfactory.
It wll be given the name supplied, since all elements require a name as
their first argument.
gst_elementfactory_save_thyself ()
xmlNodePtr gst_elementfactory_save_thyself (GstElementFactory *factory,
xmlNodePtr parent); |
Saves the factory into an XML tree.
gst_elementfactory_load_thyself ()
Creates a new factory from an xmlNodePtr.