<!-- ##### SECTION Title ##### -->
GstElement

<!-- ##### SECTION Short_Description ##### -->


<!-- ##### SECTION Long_Description ##### -->
<para>

</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### STRUCT GstElementDetails ##### -->
<para>
This struct is used to define public information about the element.  It
describes the element, mostly for the benefit of editors.
</para>

@longname: 
@klass: 
@description: 
@author: 
@_gst_reserved: 

<!-- ##### MACRO GST_ELEMENT_DETAILS ##### -->
<para>

</para>

@longname: 
@klass: 
@description: 
@author: 


<!-- ##### MACRO GST_IS_ELEMENT_DETAILS ##### -->
<para>

</para>

@details: 


<!-- ##### MACRO GST_NUM_STATES ##### -->
<para>
The maximun number of states.
</para>



<!-- ##### MACRO GST_STATE ##### -->
<para>
This macro returns the current state of the element.
</para>

@obj: Element to return state for.


<!-- ##### MACRO GST_STATE_PENDING ##### -->
<para>
This macro returns the currently pending state of the element.
</para>

@obj: Element to return the pending state for.


<!-- ##### MACRO GST_STATE_TRANSITION ##### -->
<para>
Returns the state transition this object is going through.
</para>

@obj: the Element to return the state transition for


<!-- ##### MACRO GST_STATE_NULL_TO_READY ##### -->
<para>
The Element is going from the NULL state to the READY state.
</para>



<!-- ##### MACRO GST_STATE_READY_TO_PAUSED ##### -->
<para>
The Element is going from the READY state to the PAUSED state.
</para>



<!-- ##### MACRO GST_STATE_PAUSED_TO_PLAYING ##### -->
<para>
The Element is going from the PAUSED state to the PLAYING state.
</para>



<!-- ##### MACRO GST_STATE_PLAYING_TO_PAUSED ##### -->
<para>
The Element is going from the PLAYING state to the PAUSED state.
</para>



<!-- ##### MACRO GST_STATE_PAUSED_TO_READY ##### -->
<para>
The Element is going from the PAUSED state to the READY state.
</para>



<!-- ##### MACRO GST_STATE_READY_TO_NULL ##### -->
<para>
The Element is going from the READY state to the NULL state.
</para>



<!-- ##### MACRO GST_ELEMENT_CLASS ##### -->
<para>

</para>

@klass: 


<!-- ##### MACRO GST_ELEMENT_QUERY_TYPE_FUNCTION ##### -->
<para>
Helper macro to create query type functions
</para>

@functionname: The function name
@...: list of query types.


<!-- ##### MACRO GST_ELEMENT_FORMATS_FUNCTION ##### -->
<para>
Halper macro to create element format functions
</para>

@functionname: The function name
@...: formats


<!-- ##### MACRO GST_ELEMENT_EVENT_MASK_FUNCTION ##### -->
<para>
A helper macro to create a mask function
</para>

@functionname: the name of the mask function
@...: Masks


<!-- ##### ENUM GstElementFlags ##### -->
<para>
This enum defines the standard flags that an element may have.
</para>

@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: 

<!-- ##### MACRO GST_ELEMENT_IS_THREAD_SUGGESTED ##### -->
<para>
Queries whether the Element should be placed in a thread.
</para>

@obj: a #GstElement to query


<!-- ##### MACRO GST_ELEMENT_IS_EVENT_AWARE ##### -->
<para>
Query wether this element can handle events.
</para>

@obj: a #GstElement to query


<!-- ##### MACRO GST_ELEMENT_IS_DECOUPLED ##### -->
<para>
Queries if the Element is decoupled.
</para>

@obj: a #GstElement to query


<!-- ##### MACRO GST_ELEMENT_NAME ##### -->
<para>
Gets the name of this element.  Used in the core.  Not ABI-compatible.
</para>

@obj: A #GstElement to query


<!-- ##### MACRO GST_ELEMENT_PARENT ##### -->
<para>
Get the parent object of this element.
</para>

@obj: a #GstElement to query


<!-- ##### MACRO GST_ELEMENT_MANAGER ##### -->
<para>
Get the manager of this element.
</para>

@obj: a #GstElement to query


<!-- ##### MACRO GST_ELEMENT_SCHED ##### -->
<para>
Get the scheduler of this element.
</para>

@obj: a #GstElement to query


<!-- ##### MACRO GST_ELEMENT_CLOCK ##### -->
<para>
Get the clock of this element
</para>

@obj: a #GstElement to query


<!-- ##### MACRO GST_ELEMENT_PADS ##### -->
<para>
Get the pads of this elements.
</para>

@obj: a #GstElement to query


<!-- ##### MACRO GST_ELEMENT_ERROR ##### -->
<para>

</para>

@el: 
@domain: 
@code: 
@message: 
@debug: 


<!-- ##### USER_FUNCTION GstElementLoopFunction ##### -->
<para>
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.
</para>

@element: The element in question.


<!-- ##### USER_FUNCTION GstElementPreRunFunction ##### -->
<para>
The signature of the function to execute after this element
is scheduled.
</para>

@element: The element


<!-- ##### USER_FUNCTION GstElementPostRunFunction ##### -->
<para>
The signature of the function to execute before this element
is scheduled.
</para>

@element: The element


<!-- ##### FUNCTION gst_element_class_add_pad_template ##### -->
<para>

</para>

@klass: 
@templ: 


<!-- ##### FUNCTION gst_element_class_install_std_props ##### -->
<para>

</para>

@klass: 
@first_name: 
@Varargs: 


<!-- ##### FUNCTION gst_element_class_set_details ##### -->
<para>

</para>

@klass: 
@details: 


<!-- ##### MACRO gst_element_default_deep_notify ##### -->
<para>
The default deep notify handler that prints out the property change
notifications to stdout.
</para>



<!-- ##### FUNCTION gst_element_default_error ##### -->
<para>

</para>

@object: 
@orig: 
@error: 
@debug: 


<!-- ##### FUNCTION gst_element_set_loop_function ##### -->
<para>

</para>

@element: 
@loop: 


<!-- ##### MACRO gst_element_get_name ##### -->
<para>
Gets the name of the element.
</para>

@elem: 
@Returns: the name of the element.


<!-- link -->


<!-- ##### MACRO gst_element_set_name ##### -->
<para>
Sets the name of the element, getting rid of the old name if there was one.
</para>

@elem: a #GstElement to set the name of.
@name: the new name of the element.


<!-- ##### MACRO gst_element_get_parent ##### -->
<para>
Gets the parent of an element.
</para>

@elem: a #GstElement to get the parent of.
@Returns: the #GstObject parent of the element.


<!-- ##### MACRO gst_element_set_parent ##### -->
<para>
Sets the parent of an element.
</para>

@elem: a #GstElement to set the parent of.
@parent:  the new #GstObject parent of the object.


<!-- ##### FUNCTION gst_element_set ##### -->
<para>

</para>

@element: 
@first_property_name: 
@Varargs: 


<!-- ##### FUNCTION gst_element_get ##### -->
<para>

</para>

@element: 
@first_property_name: 
@Varargs: 


<!-- ##### FUNCTION gst_element_set_valist ##### -->
<para>

</para>

@element: 
@first_property_name: 
@var_args: 


<!-- ##### FUNCTION gst_element_get_valist ##### -->
<para>

</para>

@element: 
@first_property_name: 
@var_args: 


<!-- ##### FUNCTION gst_element_set_property ##### -->
<para>

</para>

@element: 
@property_name: 
@value: 


<!-- ##### FUNCTION gst_element_get_property ##### -->
<para>

</para>

@element: 
@property_name: 
@value: 


<!-- ##### FUNCTION gst_element_enable_threadsafe_properties ##### -->
<para>

</para>

@element: 


<!-- ##### FUNCTION gst_element_disable_threadsafe_properties ##### -->
<para>

</para>

@element: 


<!-- ##### FUNCTION gst_element_set_pending_properties ##### -->
<para>

</para>

@element: 


<!-- ##### FUNCTION gst_element_requires_clock ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_provides_clock ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_clock ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_set_clock ##### -->
<para>

</para>

@element: 
@clock: 


<!-- ##### FUNCTION gst_element_clock_wait ##### -->
<para>

</para>

@element: 
@id: 
@jitter: 
@Returns: 
<!-- # Unused Parameters # -->
@clock: 
@time: 


<!-- ##### FUNCTION gst_element_get_time ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_wait ##### -->
<para>

</para>

@element: 
@timestamp: 
@Returns: 


<!-- ##### FUNCTION gst_element_set_time ##### -->
<para>

</para>

@element: 
@time: 


<!-- ##### FUNCTION gst_element_adjust_time ##### -->
<para>

</para>

@element: 
@diff: 


<!-- ##### FUNCTION gst_element_is_indexable ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_set_index ##### -->
<para>

</para>

@element: 
@index: 


<!-- ##### FUNCTION gst_element_get_index ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_release_locks ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_yield ##### -->
<para>

</para>

@element: 


<!-- ##### FUNCTION gst_element_interrupt ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_set_scheduler ##### -->
<para>

</para>

@element: 
@sched: 


<!-- ##### FUNCTION gst_element_get_scheduler ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_add_pad ##### -->
<para>

</para>

@element: 
@pad: 


<!-- ##### FUNCTION gst_element_remove_pad ##### -->
<para>

</para>

@element: 
@pad: 


<!-- ##### FUNCTION gst_element_add_ghost_pad ##### -->
<para>

</para>

@element: 
@pad: 
@name: 
@Returns: 


<!-- ##### FUNCTION gst_element_remove_ghost_pad ##### -->
<para>

</para>

@element: 
@pad: 


<!-- pad template manipulation -->


<!-- ##### FUNCTION gst_element_get_pad ##### -->
<para>

</para>

@element: 
@name: 
@Returns: GList of #GstPads


<!-- ##### FUNCTION gst_element_get_static_pad ##### -->
<para>

</para>

@element: 
@name: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_request_pad ##### -->
<para>

</para>

@element: 
@name: 
@Returns: 


<!-- ##### FUNCTION gst_element_release_request_pad ##### -->
<para>

</para>

@element: 
@pad: 


<!-- ##### FUNCTION gst_element_get_pad_list ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_compatible_pad ##### -->
<para>

</para>

@element: 
@pad: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_compatible_pad_filtered ##### -->
<para>

</para>

@element: 
@pad: 
@filtercaps: 
@Returns: 


<!-- ##### FUNCTION gst_element_class_get_pad_template ##### -->
<para>

</para>

@element_class: 
@name: 
@Returns: 


<!-- ##### FUNCTION gst_element_class_get_pad_template_list ##### -->
<para>

</para>

@element_class: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_pad_template ##### -->
<para>

</para>

@element: 
@name: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_pad_template_list ##### -->
<para>

</para>

@element: 
@Returns: 



<!-- scheduling -->


<!-- ##### FUNCTION gst_element_get_compatible_pad_template ##### -->
<para>

</para>

@element: 
@compattempl: 
@Returns: 


<!-- ##### FUNCTION gst_element_link ##### -->
<para>

</para>

@src: 
@dest: 
@Returns: 


<!-- ##### FUNCTION gst_element_link_many ##### -->
<para>

</para>

@element_1: 
@element_2: 
@Varargs: 
@Returns: 


<!-- ##### FUNCTION gst_element_link_filtered ##### -->
<para>

</para>

@src: 
@dest: 
@filtercaps: 
@Returns: 


<!-- ##### FUNCTION gst_element_unlink ##### -->
<para>

</para>

@src: 
@dest: 


<!-- ##### FUNCTION gst_element_unlink_many ##### -->
<para>

</para>

@element_1: 
@element_2: 
@Varargs: 


<!-- ##### FUNCTION gst_element_link_pads ##### -->
<para>

</para>

@src: 
@srcpadname: 
@dest: 
@destpadname: 
@Returns: 


<!-- ##### FUNCTION gst_element_link_pads_filtered ##### -->
<para>

</para>

@src: 
@srcpadname: 
@dest: 
@destpadname: 
@filtercaps: 
@Returns: 


<!-- ##### FUNCTION gst_element_unlink_pads ##### -->
<para>

</para>

@src: 
@srcpadname: 
@dest: 
@destpadname: 


<!-- pad manipulation -->


<!-- ##### FUNCTION gst_element_get_event_masks ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_send_event ##### -->
<para>

</para>

@element: 
@event: 
@Returns: 


<!-- ##### FUNCTION gst_element_seek ##### -->
<para>

</para>

@element: 
@seek_type: 
@offset: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_query_types ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_query ##### -->
<para>

</para>

@element: 
@type: 
@format: 
@value: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_formats ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_convert ##### -->
<para>

</para>

@element: 
@src_format: 
@src_value: 
@dest_format: 
@dest_value: 
@Returns: 


<!-- ##### FUNCTION gst_element_found_tags ##### -->
<para>

</para>

@element: 
@tag_list: 


<!-- ##### FUNCTION gst_element_found_tags_for_pad ##### -->
<para>

</para>

@element: 
@pad: 
@timestamp: 
@list: 


<!-- ##### FUNCTION gst_element_set_eos ##### -->
<para>

</para>

@element: 


<!-- ##### FUNCTION gst_element_error_full ##### -->
<para>

</para>

@element: 
@domain: 
@code: 
@message: 
@debug: 
@file: 
@function: 
@line: 


<!-- ##### FUNCTION gst_element_is_locked_state ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_set_locked_state ##### -->
<para>

</para>

@element: 
@locked_state: 


<!-- ##### FUNCTION gst_element_sync_state_with_parent ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_state ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_set_state ##### -->
<para>

</para>

@element: 
@state: 
@Returns: 


<!-- ##### FUNCTION gst_element_wait_state_change ##### -->
<para>

</para>

@element: 


<!-- ##### FUNCTION gst_element_state_get_name ##### -->
<para>

</para>

@state: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_factory ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION gst_element_get_managing_bin ##### -->
<para>

</para>

@element: 
@Returns: 

<!-- clocking -->


<!-- ##### MACRO GST_TYPE_ELEMENT_FACTORY ##### -->
<para>

</para>



<!-- ##### MACRO GST_ELEMENT_FACTORY ##### -->
<para>

</para>

@obj: 


<!-- ##### MACRO GST_ELEMENT_FACTORY_CLASS ##### -->
<para>

</para>

@klass: 


<!-- ##### MACRO GST_IS_ELEMENT_FACTORY ##### -->
<para>

</para>

@obj: 


<!-- ##### MACRO GST_IS_ELEMENT_FACTORY_CLASS ##### -->
<para>

</para>

@klass: 


<!-- ##### FUNCTION gst_element_factory_get_type ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION gst_element_register ##### -->
<para>

</para>

@plugin: 
@elementname: 
@rank: 
@type: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_find ##### -->
<para>

</para>

@name: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_get_element_type ##### -->
<para>

</para>

@factory: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_get_longname ##### -->
<para>

</para>

@factory: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_get_klass ##### -->
<para>

</para>

@factory: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_get_description ##### -->
<para>

</para>

@factory: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_get_author ##### -->
<para>

</para>

@factory: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_get_num_pad_templates ##### -->
<para>

</para>

@factory: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_get_pad_templates ##### -->
<para>

</para>

@factory: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_get_uri_type ##### -->
<para>

</para>

@factory: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_get_uri_protocols ##### -->
<para>

</para>

@factory: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_create ##### -->
<para>

</para>

@factory: 
@name: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_make ##### -->
<para>

</para>

@factoryname: 
@name: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_can_src_caps ##### -->
<para>

</para>

@factory: 
@caps: 
@Returns: 


<!-- ##### FUNCTION gst_element_factory_can_sink_caps ##### -->
<para>

</para>

@factory: 
@caps: 
@Returns: 


<!-- ##### SIGNAL GstElement::eos ##### -->
<para>
Signal emited when the element goes to PAUSED due to an end-of-stream
condition.
</para>

@gstelement: the object which received the signal.

<!-- ##### SIGNAL GstElement::error ##### -->
<para>
This signal is emitted when an element has encountered an error that caused
it to fail performing its function.
</para>

@gstelement: the object which received the signal.
@arg1: the original #GstElement that generated the error.
@arg2: a #GError containing the translated error message.
@arg3: a debug string providing additional untranslated debug information, or NULL.

<!-- ##### SIGNAL GstElement::found-tag ##### -->
<para>

</para>

@gstelement: the object which received the signal.
@arg1: 
@arg2: 

<!-- ##### SIGNAL GstElement::new-pad ##### -->
<para>
Is triggered whenever a new pad is added to an element.
</para>

@gstelement: the object which received the signal.
@arg1: the new pad that was added

<!-- ##### SIGNAL GstElement::pad-removed ##### -->
<para>
Is triggered whenever a pad has been removed from the element.
</para>

@gstelement: the object which received the signal.
@arg1: The pad that was removed.

<!-- ##### SIGNAL GstElement::state-change ##### -->
<para>
Is triggered whenever the state of an element changes.
</para>

@gstelement: the object which received the signal.
@arg1: the new state of the object
@arg2: