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 #GstState). 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 #GstState, 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
@state_lock:
@state_cond:
@current_state:
@pending_state:
@final_state:
@state_error:
@no_preroll:
@bus:
@clock:
@base_time:
@numpads:
@pads:
@numsrcpads:
@srcpads:
@numsinkpads:
@sinkpads:
@pads_cookie:
@gstelement: the object which received the signal.
@gstelement: the object which received the signal.
@arg1:
@gstelement: the object which received the signal.
@arg1:
@gstelement: the object which received the signal.
@arg1:
@arg2:
@parent_class:
@details:
@elementfactory:
@padtemplates:
@numpadtemplates:
@pad_templ_cookie:
@request_new_pad:
@release_pad:
@get_state:
@change_state:
@set_bus:
@get_clock:
@set_clock:
@get_index:
@set_index:
@send_event:
@get_query_types:
@query:
This enum defines the standard flags that an element may have.
@GST_ELEMENT_LOCKED_STATE:
@GST_ELEMENT_IS_SINK:
@GST_ELEMENT_UNPARENTING:
@GST_ELEMENT_FLAG_LAST:
@GST_STATE_VOID_PENDING:
@GST_STATE_NULL:
@GST_STATE_READY:
@GST_STATE_PAUSED:
@GST_STATE_PLAYING:
@GST_STATE_CHANGE_NULL_TO_READY:
@GST_STATE_CHANGE_READY_TO_PAUSED:
@GST_STATE_CHANGE_PAUSED_TO_PLAYING:
@GST_STATE_CHANGE_PLAYING_TO_PAUSED:
@GST_STATE_CHANGE_PAUSED_TO_READY:
@GST_STATE_CHANGE_READY_TO_NULL:
@GST_STATE_CHANGE_FAILURE:
@GST_STATE_CHANGE_SUCCESS:
@GST_STATE_CHANGE_ASYNC:
@GST_STATE_CHANGE_NO_PREROLL:
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.
@obj:
@elem:
@obj:
@obj:
@elem:
@elem:
@elem:
@obj:
@elem:
@elem:
@timeval:
@elem:
@elem:
@elem:
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 clock of this element
@obj: a #GstElement to query
Get the pads of this elements.
@obj: a #GstElement to query
@el:
@domain:
@code:
@text:
@debug:
@message:
@obj:
@el:
@domain:
@code:
@text:
@debug:
@obj:
@element:
@Returns:
@element:
@element:
@pad:
@Returns:
@klass:
@templ:
@element_class:
@name:
@Returns:
@element_class:
@Returns:
@klass:
@first_name:
@Varargs:
@klass:
@details:
@element:
@element:
@factory:
@caps:
@Returns:
@factory:
@caps:
@Returns:
@factory:
@Returns:
@element:
@pad:
@Returns:
@element:
@list:
@element:
@pad:
@list:
@element:
@Returns:
@element:
@Returns:
@element:
@Returns:
@element:
@pad:
@caps:
@Returns:
@element:
@compattempl:
@Returns:
@element:
@Returns:
@element:
@Returns:
Gets the name of the element.
@elem:
@Returns: the name of the element.
@element:
@name:
@Returns: GList of #GstPads
Gets the parent of an element.
@elem: a #GstElement to get the parent of.
@Returns: the #GstObject parent of the element.
@element:
@Returns:
@element:
@name:
@Returns:
@element:
@state:
@pending:
@timeout:
@Returns:
@element:
@name:
@Returns:
@element:
@Returns:
@element:
@Returns:
@element:
@Returns:
@element:
@Returns:
@element:
@Returns:
@src:
@dest:
@Returns:
@element_1:
@element_2:
@Varargs:
@Returns:
@src:
@dest:
@filter:
@Returns:
@src:
@srcpadname:
@dest:
@destpadname:
@Returns:
@src:
@srcpadname:
@dest:
@destpadname:
@filter:
@Returns:
@element:
@element:
@type:
@domain:
@code:
@text:
@debug:
@file:
@function:
@line:
@element:
@element:
@message:
@Returns:
@element:
@Returns:
@element:
@query:
@Returns:
@type:
@format:
@value:
@element:
@src_format:
@src_val:
@dest_fmt:
@dest_val:
@Returns:
@element:
@format:
@cur:
@end:
@Returns:
@element:
@pad:
@element:
@pad:
@Returns:
@element:
@Returns:
@element:
@rate:
@format:
@flags:
@cur_type:
@cur:
@stop_type:
@stop:
@Returns:
@seek_type:
@offset:
@element:
@event:
@Returns:
@element:
@time:
@element:
@bus:
@element:
@clock:
@element:
@index:
@element:
@locked_state:
@Returns:
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.
Sets the parent of an element.
@elem: a #GstElement to set the parent of.
@parent: the new #GstObject parent of the object.
@element:
@state:
@Returns:
@element:
@state:
@Returns:
@state:
@Returns:
@element:
@Returns:
@src:
@dest:
@element_1:
@element_2:
@Varargs:
@src:
@srcpadname:
@dest:
@destpadname: