GstElement 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 connect to pads on other elements. Buffers flow between these connected 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 connected through their pads. If the connection is straightforward, use the gst_element_connect() convenience function to connect two elements, or gst_element_connect_many() for more elements in a row. Use gst_element_connect_filtered() to connect two elements constrained by a specified set of #GstCaps. For finer control, use gst_element_connect_pads() and gst_element_connect_pads_filtered() to specify the pads to connect 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_statename(), which is a really bad name for what it does and should probably be renamed to gst_element_state_get_name if we can be bothered to do that. 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 Destroys the element (without taking the refcount into account). An application programmer should use #gst_object_unref instead to dispose of an element he doesn't need anymore. @element: a #GstElement to destroy @element: @Returns: @element: @name: @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: @Returns: @element: @Returns: @klass: @templ: @element: @src: @dest: @Returns: @element_1: @element_2: @Varargs: @Returns: @src: @dest: @filtercaps: @Returns: @src: @srcpadname: @dest: @destpadname: @Returns: @src: @srcpadname: @dest: @destpadname: @filtercaps: @Returns: @src: @dest: @srcpadname: @destpadname: @element_1: @element_2: @Varargs: @src: @srcpadname: @dest: @destpadname: @element: @pad: @Returns: @element: @pad: @filtercaps: @Returns: @element: @state: @Returns: @element: @Returns: @elem: @state: @Returns: @element: @element: @error: @Varargs: @element: @element: @Returns: @element: @element: @Returns: @element: @clock: @element: @clock: @time: @Returns: The function to get the clock from a clock providing element @element: The element to get the clock of @Returns: The clock provided by the element The function to set the clock on a clock receiving element. @element: The element to set the clock on @clock: The clock to set on the element @element: @loop: 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. @element: @Returns: @element: @sched: @element: @Returns: @element: @parent: @element: @Returns: 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. @GST_STATE_VOID_PENDING: @GST_STATE_NULL: Reset the state of an element. @GST_STATE_READY: will make the element ready to start processing data. some elements might have a non trivial way to initialize themselves. @GST_STATE_PAUSED: means there really is data flowing temporary stops the data flow. @GST_STATE_PLAYING: means there really is data flowing through the graph. This enum defines the standard return values that an element can return after a state change. @GST_STATE_FAILURE: the element could not perform the state change @GST_STATE_SUCCESS: the element successfully changed its state @GST_STATE_ASYNC: the element will asynchronously change its state as soon as possible 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 READY state. The Element is going from the PLAYING state to the PAUSED state. The Element is going from the PAUSED state to the PLAYING state. The Element is going from the READY state to the NULL state. This enum defines the standard flags that an element may have. @GST_ELEMENT_COMPLEX: @GST_ELEMENT_DECOUPLED: @GST_ELEMENT_THREAD_SUGGESTED: @GST_ELEMENT_NO_SEEK: @GST_ELEMENT_INFINITE_LOOP: @GST_ELEMENT_SCHEDULER_PRIVATE1: @GST_ELEMENT_SCHEDULER_PRIVATE2: @GST_ELEMENT_NEW_LOOPFUNC: @GST_ELEMENT_EVENT_AWARE: @GST_ELEMENT_FLAG_LAST: Queries whether the Element should be placed in a thread. @obj: a #GstElement to query Queries if the Element is decoupled. @obj: a #GstElement to query Query wether this element is in the End Of Stream state. @obj: a #GstElement to query Query wether this element can handle events. @obj: a #GstElement to query Get the parent object of this element. @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 pads of this elements. @obj: a #GstElement to query Get the scheduler of this element. @obj: a #GstElement to query Get the manager of this element. @obj: a #GstElement to query Get the clock of this element @obj: a #GstElement to query @gstelement: the object which received the signal. Is trigered whenever an error occured @gstelement: the object which received the signal. @arg1: the error message @arg2: Is trigered whenever a new pad is added to an element @gstelement: the object which received the signal. @arg1: the new pad that was added @gstelement: the object which received the signal. @arg1: The pad that was removed. Is trigered whenever the state of an element changes @gstelement: the object which received the signal. @arg1: the new state of the object @arg2: