1 <!-- ##### SECTION Title ##### -->
4 <!-- ##### SECTION Short_Description ##### -->
5 Base class for all pipeline elements
7 <!-- ##### SECTION Long_Description ##### -->
9 GstElement is the base class needed to construct an element that can be
10 used in a GST pipeline. As such, it is not a functional entity, and
11 cannot do anything when placed in a pipeline.
15 All GstElements have a list containing the #GstPad structure for all their
16 inputs and outputs. These can be added with gst_element_add_pad() or
17 gst_element_add_ghost_pad(), and retrieved by name with
18 gst_element_get_pad(), or in a list form by gst_element_get_pad_list().
22 gst_element_connect() is a convenience function provided to make it
23 simpler to connect pads of two elements together.
26 <!-- ##### SECTION See_Also ##### -->
31 <!-- ##### ENUM GstElementState ##### -->
33 This enum defines the standard states an element may be in. You will normally
34 use gst_element_set_state() to change the state of an element.
38 @GST_STATE_VOID_PENDING:
39 @GST_STATE_NULL: Reset the state of an element.
40 @GST_STATE_READY: will make the element ready to start processing data. some
41 elements might have a non trivial way to initialize themselves.
42 @GST_STATE_PAUSED: means there really is data flowing temporary stops the data flow.
43 @GST_STATE_PLAYING: means there really is data flowing through the graph.
45 <!-- ##### ENUM GstElementStateReturn ##### -->
47 This enum defines the standard return values that an element
48 can return after a state change.
52 @GST_STATE_FAILURE: the element could not perform the state change
53 @GST_STATE_SUCCESS: the element successfully changed its state
54 @GST_STATE_ASYNC: the element will asynchronously change its state as soon as possible
56 <!-- ##### MACRO GST_NUM_STATES ##### -->
58 The maximun number of states.
63 <!-- ##### MACRO GST_STATE ##### -->
65 This macro returns the current state of the element.
68 @obj: Element to return state for.
71 <!-- ##### MACRO GST_STATE_PENDING ##### -->
73 This macro returns the currently pending state of the element.
76 @obj: Element to return the pending state for.
79 <!-- ##### MACRO GST_STATE_TRANSITION ##### -->
81 Returns the state transition this object is going through.
84 @obj: the Element to return the state transition for
87 <!-- ##### MACRO GST_STATE_NULL_TO_READY ##### -->
89 The Element is going from the NULL state to the READY state.
94 <!-- ##### MACRO GST_STATE_READY_TO_PAUSED ##### -->
96 The Element is going from the READY state to the PAUSED state.
101 <!-- ##### MACRO GST_STATE_PAUSED_TO_READY ##### -->
103 The Element is going from the PAUSED state to the READY state.
108 <!-- ##### MACRO GST_STATE_PLAYING_TO_PAUSED ##### -->
110 The Element is going from the PLAYING state to the PAUSED state.
115 <!-- ##### MACRO GST_STATE_PAUSED_TO_PLAYING ##### -->
117 The Element is going from the PAUSED state to the PLAYING state.
122 <!-- ##### MACRO GST_STATE_READY_TO_NULL ##### -->
124 The Element is going from the READY state to the NULL state.
129 <!-- ##### ENUM GstElementFlags ##### -->
131 This enum defines the standard flags that an element may have.
134 @GST_ELEMENT_COMPLEX:
135 @GST_ELEMENT_DECOUPLED:
136 @GST_ELEMENT_THREAD_SUGGESTED:
137 @GST_ELEMENT_NO_SEEK:
138 @GST_ELEMENT_INFINITE_LOOP:
139 @GST_ELEMENT_SCHEDULER_PRIVATE1:
140 @GST_ELEMENT_SCHEDULER_PRIVATE2:
141 @GST_ELEMENT_NEW_LOOPFUNC:
142 @GST_ELEMENT_EVENT_AWARE:
143 @GST_ELEMENT_FLAG_LAST:
145 <!-- ##### MACRO GST_ELEMENT_IS_THREAD_SUGGESTED ##### -->
147 Queries whether the Element should be placed in a thread.
150 @obj: The element to query
153 <!-- ##### MACRO GST_ELEMENT_IS_DECOUPLED ##### -->
155 Queries if the Element is decoupled.
158 @obj: The element to query
161 <!-- ##### MACRO GST_ELEMENT_IS_EOS ##### -->
163 Query wether this element is in the End Of Stream state.
166 @obj: The element to query
169 <!-- ##### MACRO GST_ELEMENT_IS_EVENT_AWARE ##### -->
171 Query wether this element can handle events.
174 @obj: The element to query
177 <!-- ##### MACRO GST_ELEMENT_PARENT ##### -->
179 Get the parent object of this element.
182 @obj: The element to query
185 <!-- ##### MACRO GST_ELEMENT_NAME ##### -->
187 Get the name of this element.
190 @obj: The element to query
193 <!-- ##### MACRO GST_ELEMENT_PADS ##### -->
195 Get the pads of this elements.
198 @obj: The element to query
201 <!-- ##### MACRO GST_ELEMENT_SCHED ##### -->
203 Get the scheduler of this element.
206 @obj: The element to query
209 <!-- ##### MACRO GST_ELEMENT_MANAGER ##### -->
211 Get the manager of this element.
214 @obj: The element to query
217 <!-- ##### STRUCT GstElement ##### -->
223 <!-- ##### USER_FUNCTION GstElementLoopFunction ##### -->
225 This function type is used to specify a loop function for the element. It
226 is passed the element in question, and is expect to return only in error
230 @element: The element in question.
233 <!-- ##### FUNCTION gst_element_class_add_padtemplate ##### -->
240 <!-- # Unused Parameters # -->
244 <!-- ##### MACRO gst_element_destroy ##### -->
246 Destroy the element. This is potentially dangerous, use gst_object_unref
250 @element: the element to destroy
253 <!-- ##### FUNCTION gst_element_set_loop_function ##### -->
262 <!-- ##### FUNCTION gst_element_set_name ##### -->
271 <!-- ##### FUNCTION gst_element_get_name ##### -->
280 <!-- ##### FUNCTION gst_element_get_sched ##### -->
289 <!-- ##### FUNCTION gst_element_set_sched ##### -->
298 <!-- ##### FUNCTION gst_element_set_parent ##### -->
307 <!-- ##### FUNCTION gst_element_get_parent ##### -->
316 <!-- ##### FUNCTION gst_element_add_pad ##### -->
325 <!-- ##### FUNCTION gst_element_remove_pad ##### -->
334 <!-- ##### FUNCTION gst_element_get_pad ##### -->
341 @Returns: GList of pads
344 <!-- ##### FUNCTION gst_element_get_pad_list ##### -->
353 <!-- ##### FUNCTION gst_element_get_padtemplate_list ##### -->
362 <!-- ##### FUNCTION gst_element_get_padtemplate_by_name ##### -->
372 <!-- ##### FUNCTION gst_element_add_ghost_pad ##### -->
382 <!-- ##### FUNCTION gst_element_remove_ghost_pad ##### -->
391 <!-- ##### FUNCTION gst_element_request_compatible_pad ##### -->
401 <!-- ##### FUNCTION gst_element_request_pad_by_name ##### -->
411 <!-- ##### FUNCTION gst_element_connect ##### -->
423 <!-- ##### FUNCTION gst_element_connect_filtered ##### -->
436 <!-- ##### FUNCTION gst_element_disconnect ##### -->
447 <!-- ##### FUNCTION gst_element_set_state ##### -->
457 <!-- ##### FUNCTION gst_element_get_state ##### -->
464 <!-- # Unused Parameters # -->
468 <!-- ##### FUNCTION gst_element_wait_state_change ##### -->
476 <!-- ##### FUNCTION gst_element_statename ##### -->
485 <!-- ##### FUNCTION gst_element_info ##### -->
495 <!-- ##### FUNCTION gst_element_error ##### -->
505 <!-- ##### FUNCTION gst_element_get_factory ##### -->
514 <!-- ##### FUNCTION gst_element_set_eos ##### -->
522 <!-- ##### FUNCTION gst_element_install_std_props ##### -->
532 <!-- ##### FUNCTION gst_element_send_event ##### -->
541 <!-- ##### FUNCTION gst_element_interrupt ##### -->
550 <!-- ##### FUNCTION gst_element_yield ##### -->
558 <!-- ##### SIGNAL GstElement::eos ##### -->
563 @gstelement: the object which received the signal.
565 <!-- ##### SIGNAL GstElement::error ##### -->
567 Is trigered whenever an error occured
571 @gstelement: the object which received the signal.
572 @arg1: the error message
574 <!-- ##### SIGNAL GstElement::event ##### -->
579 @gstelement: the object which received the signal.
582 <!-- ##### SIGNAL GstElement::new-pad ##### -->
584 Is trigered whenever a new pad is added to an element
587 @gstelement: the object which received the signal.
588 @arg1: the new pad that was added
590 <!-- ##### SIGNAL GstElement::pad-removed ##### -->
595 @gstelement: the object which received the signal.
596 @arg1: The pad that was removed.
598 <!-- ##### SIGNAL GstElement::state-change ##### -->
600 Is trigered whenever the state of an element changes
603 @gstelement: the object which received the signal.
604 @arg1: the new state of the object