GstElement
Abstract base class for all pipeline elements
GstElement is the base class needed to construct an element that can be
used in a GStreamer pipeline. As such, it is not a functional entity, and
cannot do anything when placed in a pipeline.
The name of a GstElement can be get with gst_element_get_name() and set with
gst_element_set_name(). For speed, GST_ELEMENT_NAME() can be used in the
core.
Do not use this in plug-ins or applications in order to retain ABI
compatibility.
All elements have pads (of the type #GstPad). These pads link to pads on
other elements. Buffers flow between these linked pads.
A GstElement has a GList of #GstPad structures for all their input (or sink)
and output (or source) pads.
Core and plug-in writers can add and remove pads with gst_element_add_pad()
and gst_element_remove_pad().
Application writers can manipulate ghost pads (copies of real pads inside a bin)
with gst_element_add_ghost_pad() and gst_element_remove_ghost_pad().
A pad of an element can be retrieved by name with gst_element_get_pad().
A GList of all pads can be retrieved with gst_element_get_pad_list().
Elements can be linked through their pads.
If the link is straightforward, use the gst_element_link()
convenience function to link two elements, or gst_element_link_many()
for more elements in a row.
Use gst_element_link_filtered() to link two elements constrained by
a specified set of #GstCaps.
For finer control, use gst_element_link_pads() and
gst_element_link_pads_filtered() to specify the pads to link on
each element by name.
Each element has a state (see #GstElementState). You can get and set the state
of an element with gst_element_get_state() and gst_element_set_state().
You can wait for an element to change it's state with gst_element_wait_state_change().
To get a string representation of a #GstElementState, use
gst_element_state_get_name().
You can get and set a #GstClock on an element using gst_element_get_clock()
and gst_element_set_clock(). You can wait for the clock to reach a given
#GstClockTime using gst_element_clock_wait().
#GstElementFactory, #GstPad
@:
@gstelement: the object which received the signal.
@:
@:
@:
@:
@gstelement: the object which received the signal.
@arg1:
@arg2:
@arg3:
@:
@:
@:
@gstelement: the object which received the signal.
@arg1:
@arg2:
@:
@:
@gstelement: the object which received the signal.
@arg1:
@:
@gstelement: the object which received the signal.
@:
@:
@gstelement: the object which received the signal.
@arg1:
@:
@:
@:
@gstelement: the object which received the signal.
@arg1:
@arg2:
The maximun number of states.
This macro returns the current state of the element.
@obj: Element to return state for.
This macro returns the currently pending state of the element.
@obj: Element to return the pending state for.
Returns the state transition this object is going through.
@obj: the Element to return the state transition for
The Element is going from the NULL state to the READY state.
The Element is going from the READY state to the PAUSED state.
The Element is going from the PAUSED state to the PLAYING state.
The Element is going from the PLAYING state to the PAUSED state.
The Element is going from the PAUSED state to the READY state.
The Element is going from the READY state to the NULL state.
Helper macro to create query type functions
@functionname: The function name
@...: list of query types.
Halper macro to create element format functions
@functionname: The function name
@...: formats
A helper macro to create a mask function
@functionname: the name of the mask function
@...: Masks
This enum defines the standard flags that an element may have.
@GST_ELEMENT_COMPLEX:
@GST_ELEMENT_DECOUPLED:
@GST_ELEMENT_THREAD_SUGGESTED:
@GST_ELEMENT_INFINITE_LOOP:
@GST_ELEMENT_NEW_LOOPFUNC:
@GST_ELEMENT_EVENT_AWARE:
@GST_ELEMENT_USE_THREADSAFE_PROPERTIES:
@GST_ELEMENT_SCHEDULER_PRIVATE1:
@GST_ELEMENT_SCHEDULER_PRIVATE2:
@GST_ELEMENT_LOCKED_STATE:
@GST_ELEMENT_IN_ERROR:
@GST_ELEMENT_FLAG_LAST:
Queries whether the Element should be placed in a thread.
@obj: a #GstElement to query
Query wether this element can handle events.
@obj: a #GstElement to query
Queries if the Element is decoupled.
@obj: a #GstElement to query
Gets the name of this element. Used in the core. Not ABI-compatible.
@obj: A #GstElement to query
Get the parent object of this element.
@obj: a #GstElement to query
Get the scheduler of this element.
@obj: a #GstElement to query
Get the clock of this element
@obj: a #GstElement to query
Get the pads of this elements.
@obj: a #GstElement to query
Utility function that elements can use in case they encountered a fatal
data processing error. The pipeline will throw an error signal and the
application will be requested to stop further media processing.
@el: the element that throws the error
@domain:
@code:
@message: the message to display
@debug:
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.
@element: The element in question.
The signature of the function to execute after this element
is scheduled.
@element: The element
The signature of the function to execute before this element
is scheduled.
@element: The element
@klass:
@templ:
@klass:
@first_name:
@Varargs:
@klass:
@details:
The default deep notify handler that prints out the property change
notifications to stdout.
@object:
@orig:
@error:
@debug:
@element:
@loop:
Gets the name of the element.
@elem:
@Returns: the name of the element.
Sets the name of the element, getting rid of the old name if there was one.
@elem: a #GstElement to set the name of.
@name: the new name of the element.
Gets the parent of an element.
@elem: a #GstElement to get the parent of.
@Returns: the #GstObject parent of the element.
Sets the parent of an element.
@elem: a #GstElement to set the parent of.
@parent: the new #GstObject parent of the object.
@element:
@first_property_name:
@Varargs:
@element:
@first_property_name:
@Varargs:
@element:
@first_property_name:
@var_args:
@element:
@first_property_name:
@var_args:
@element:
@property_name:
@value:
@element:
@property_name:
@value:
@element:
@element:
@element:
@element:
@Returns:
@element:
@Returns:
@element:
@Returns:
@element:
@clock:
@element:
@id:
@jitter:
@Returns:
@clock:
@time:
@element:
@Returns:
@element:
@timestamp:
@Returns:
@element:
@time:
@element:
@time:
@delay:
@element:
@diff:
@element:
@Returns:
@element:
@index:
@element:
@Returns:
@element:
@Returns:
@element:
@element:
@Returns:
@element:
@sched:
@element:
@Returns:
@element:
@pad:
@element:
@pad:
@element:
@pad:
@name:
@Returns:
@element:
@pad:
@element:
@name:
@Returns: GList of #GstPads
@element:
@name:
@Returns:
@element:
@name:
@Returns:
@element:
@pad:
@element:
@Returns:
@element:
@pad:
@Returns:
@element:
@pad:
@filtercaps:
@Returns:
@element_class:
@name:
@Returns:
@element_class:
@Returns:
@element:
@name:
@Returns:
@element:
@Returns:
@element:
@compattempl:
@Returns:
@src:
@dest:
@Returns:
@element_1:
@element_2:
@Varargs:
@Returns:
@src:
@dest:
@filtercaps:
@Returns:
@src:
@dest:
@element_1:
@element_2:
@Varargs:
@src:
@srcpadname:
@dest:
@destpadname:
@Returns:
@src:
@srcpadname:
@dest:
@destpadname:
@filtercaps:
@Returns:
@src:
@srcpadname:
@dest:
@destpadname:
@element:
@Returns:
@element:
@event:
@Returns:
@element:
@seek_type:
@offset:
@Returns:
@element:
@Returns:
@element:
@type:
@format:
@value:
@Returns:
@element:
@Returns:
@element:
@src_format:
@src_value:
@dest_format:
@dest_value:
@Returns:
@element:
@tag_list:
@element:
@pad:
@timestamp:
@list:
@element:
@element:
@domain:
@code:
@message:
@debug:
@file:
@function:
@line:
@element:
@Returns:
@element:
@locked_state:
@element:
@Returns:
@element:
@Returns:
@element:
@state:
@Returns:
@element:
@state:
@Returns:
@element:
@Returns:
@element:
@Returns:
@element: