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 @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: 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. @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: @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: @state: @Returns: @element: @Returns: @src: @dest: @element_1: @element_2: @Varargs: @src: @srcpadname: @dest: @destpadname: