the 'brown paper bag' commit. sorry for the email spam on this one, but it will be...
[platform/upstream/gstreamer.git] / docs / gst / tmpl / gstelement.sgml
1 <!-- ##### SECTION Title ##### -->
2 GstElement
3
4 <!-- ##### SECTION Short_Description ##### -->
5 Base class for all pipeline elements
6
7 <!-- ##### SECTION Long_Description ##### -->
8 <para>
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.
12 </para>
13
14 <para>
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().
19 </para>
20
21 <para>
22 gst_element_connect() is a convenience function provided to make it
23 simpler to connect pads of two elements together.
24 </para>
25
26 <!-- ##### SECTION See_Also ##### -->
27 <para>
28 #GstElementFactory
29 </para>
30
31 <!-- ##### ENUM GstElementState ##### -->
32 <para>
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.
35
36 </para>
37
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.
44
45 <!-- ##### ENUM GstElementStateReturn ##### -->
46 <para>
47 This enum defines the standard return values that an element
48 can return after a state change.
49
50 </para>
51
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
55
56 <!-- ##### MACRO GST_NUM_STATES ##### -->
57 <para>
58 The maximun number of states.
59 </para>
60
61
62
63 <!-- ##### MACRO GST_STATE ##### -->
64 <para>
65 This macro returns the current state of the element.
66 </para>
67
68 @obj: Element to return state for.
69
70
71 <!-- ##### MACRO GST_STATE_PENDING ##### -->
72 <para>
73 This macro returns the currently pending state of the element.
74 </para>
75
76 @obj: Element to return the pending state for.
77
78
79 <!-- ##### MACRO GST_STATE_TRANSITION ##### -->
80 <para>
81 Returns the state transition this object is going through.
82 </para>
83
84 @obj: the Element to return the state transition for
85
86
87 <!-- ##### MACRO GST_STATE_NULL_TO_READY ##### -->
88 <para>
89 The Element is going from the NULL state to the READY state.
90 </para>
91
92
93
94 <!-- ##### MACRO GST_STATE_READY_TO_PAUSED ##### -->
95 <para>
96 The Element is going from the READY state to the PAUSED state.
97 </para>
98
99
100
101 <!-- ##### MACRO GST_STATE_PAUSED_TO_READY ##### -->
102 <para>
103 The Element is going from the PAUSED state to the READY state.
104 </para>
105
106
107
108 <!-- ##### MACRO GST_STATE_PLAYING_TO_PAUSED ##### -->
109 <para>
110 The Element is going from the PLAYING state to the PAUSED state.
111 </para>
112
113
114
115 <!-- ##### MACRO GST_STATE_PAUSED_TO_PLAYING ##### -->
116 <para>
117 The Element is going from the PAUSED state to the PLAYING state.
118 </para>
119
120
121
122 <!-- ##### MACRO GST_STATE_READY_TO_NULL ##### -->
123 <para>
124 The Element is going from the READY state to the NULL state.
125 </para>
126
127
128
129 <!-- ##### ENUM GstElementFlags ##### -->
130 <para>
131 This enum defines the standard flags that an element may have.
132 </para>
133
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: 
144
145 <!-- ##### MACRO GST_ELEMENT_IS_THREAD_SUGGESTED ##### -->
146 <para>
147 Queries whether the Element should be placed in a thread.
148 </para>
149
150 @obj: The element to query
151
152
153 <!-- ##### MACRO GST_ELEMENT_IS_DECOUPLED ##### -->
154 <para>
155 Queries if the Element is decoupled.
156 </para>
157
158 @obj: The element to query
159
160
161 <!-- ##### MACRO GST_ELEMENT_IS_EOS ##### -->
162 <para>
163 Query wether this element is in the End Of Stream state.
164 </para>
165
166 @obj: The element to query
167
168
169 <!-- ##### MACRO GST_ELEMENT_IS_EVENT_AWARE ##### -->
170 <para>
171 Query wether this element can handle events.
172 </para>
173
174 @obj: The element to query
175
176
177 <!-- ##### MACRO GST_ELEMENT_PARENT ##### -->
178 <para>
179 Get the parent object of this element.
180 </para>
181
182 @obj: The element to query
183
184
185 <!-- ##### MACRO GST_ELEMENT_NAME ##### -->
186 <para>
187 Get the name of this element.
188 </para>
189
190 @obj: The element to query
191
192
193 <!-- ##### MACRO GST_ELEMENT_PADS ##### -->
194 <para>
195 Get the pads of this elements.
196 </para>
197
198 @obj: The element to query
199
200
201 <!-- ##### MACRO GST_ELEMENT_SCHED ##### -->
202 <para>
203 Get the scheduler of this element.
204 </para>
205
206 @obj: The element to query
207
208
209 <!-- ##### MACRO GST_ELEMENT_MANAGER ##### -->
210 <para>
211 Get the manager of this element.
212 </para>
213
214 @obj: The element to query
215
216
217 <!-- ##### STRUCT GstElement ##### -->
218 <para>
219
220 </para>
221
222
223 <!-- ##### USER_FUNCTION GstElementLoopFunction ##### -->
224 <para>
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
227 circumstances.
228 </para>
229
230 @element: The element in question.
231
232
233 <!-- ##### FUNCTION gst_element_class_add_padtemplate ##### -->
234 <para>
235
236 </para>
237
238 @klass: 
239 @templ: 
240 <!-- # Unused Parameters # -->
241 @element: 
242
243
244 <!-- ##### MACRO gst_element_destroy ##### -->
245 <para>
246 Destroy the element. This is potentially dangerous, use gst_object_unref
247 instead.
248 </para>
249
250 @element: the element to destroy
251
252
253 <!-- ##### FUNCTION gst_element_set_loop_function ##### -->
254 <para>
255
256 </para>
257
258 @element: 
259 @loop: 
260
261
262 <!-- ##### FUNCTION gst_element_set_name ##### -->
263 <para>
264
265 </para>
266
267 @element: 
268 @name: 
269
270
271 <!-- ##### FUNCTION gst_element_get_name ##### -->
272 <para>
273
274 </para>
275
276 @element: 
277 @Returns: 
278
279
280 <!-- ##### FUNCTION gst_element_get_sched ##### -->
281 <para>
282
283 </para>
284
285 @element: 
286 @Returns: 
287
288
289 <!-- ##### FUNCTION gst_element_set_sched ##### -->
290 <para>
291
292 </para>
293
294 @element: 
295 @sched: 
296
297
298 <!-- ##### FUNCTION gst_element_set_parent ##### -->
299 <para>
300
301 </para>
302
303 @element: 
304 @parent: 
305
306
307 <!-- ##### FUNCTION gst_element_get_parent ##### -->
308 <para>
309
310 </para>
311
312 @element: 
313 @Returns: 
314
315
316 <!-- ##### FUNCTION gst_element_add_pad ##### -->
317 <para>
318
319 </para>
320
321 @element: 
322 @pad: 
323
324
325 <!-- ##### FUNCTION gst_element_remove_pad ##### -->
326 <para>
327
328 </para>
329
330 @element: 
331 @pad: 
332
333
334 <!-- ##### FUNCTION gst_element_get_pad ##### -->
335 <para>
336
337 </para>
338
339 @element: 
340 @name: 
341 @Returns: GList of pads
342
343
344 <!-- ##### FUNCTION gst_element_get_pad_list ##### -->
345 <para>
346
347 </para>
348
349 @element: 
350 @Returns: 
351
352
353 <!-- ##### FUNCTION gst_element_get_padtemplate_list ##### -->
354 <para>
355
356 </para>
357
358 @element: 
359 @Returns: 
360
361
362 <!-- ##### FUNCTION gst_element_get_padtemplate_by_name ##### -->
363 <para>
364
365 </para>
366
367 @element: 
368 @name: 
369 @Returns: 
370
371
372 <!-- ##### FUNCTION gst_element_add_ghost_pad ##### -->
373 <para>
374
375 </para>
376
377 @element: 
378 @pad: 
379 @name: 
380
381
382 <!-- ##### FUNCTION gst_element_remove_ghost_pad ##### -->
383 <para>
384
385 </para>
386
387 @element: 
388 @pad: 
389
390
391 <!-- ##### FUNCTION gst_element_request_compatible_pad ##### -->
392 <para>
393
394 </para>
395
396 @element: 
397 @templ: 
398 @Returns: 
399
400
401 <!-- ##### FUNCTION gst_element_request_pad_by_name ##### -->
402 <para>
403
404 </para>
405
406 @element: 
407 @name: 
408 @Returns: 
409
410
411 <!-- ##### FUNCTION gst_element_connect ##### -->
412 <para>
413
414 </para>
415
416 @src: 
417 @srcpadname: 
418 @dest: 
419 @destpadname: 
420 @Returns: 
421
422
423 <!-- ##### FUNCTION gst_element_connect_filtered ##### -->
424 <para>
425
426 </para>
427
428 @src: 
429 @srcpadname: 
430 @dest: 
431 @destpadname: 
432 @filtercaps: 
433 @Returns: 
434
435
436 <!-- ##### FUNCTION gst_element_disconnect ##### -->
437 <para>
438
439 </para>
440
441 @src: 
442 @srcpadname: 
443 @dest: 
444 @destpadname: 
445
446
447 <!-- ##### FUNCTION gst_element_set_state ##### -->
448 <para>
449
450 </para>
451
452 @element: 
453 @state: 
454 @Returns: 
455
456
457 <!-- ##### FUNCTION gst_element_get_state ##### -->
458 <para>
459
460 </para>
461
462 @element: 
463 @Returns: 
464 <!-- # Unused Parameters # -->
465 @elem: 
466
467
468 <!-- ##### FUNCTION gst_element_wait_state_change ##### -->
469 <para>
470
471 </para>
472
473 @element: 
474
475
476 <!-- ##### FUNCTION gst_element_statename ##### -->
477 <para>
478
479 </para>
480
481 @state: 
482 @Returns: 
483
484
485 <!-- ##### FUNCTION gst_element_info ##### -->
486 <para>
487
488 </para>
489
490 @element: 
491 @info: 
492 @Varargs: 
493
494
495 <!-- ##### FUNCTION gst_element_error ##### -->
496 <para>
497
498 </para>
499
500 @element: 
501 @error: 
502 @Varargs: 
503
504
505 <!-- ##### FUNCTION gst_element_get_factory ##### -->
506 <para>
507
508 </para>
509
510 @element: 
511 @Returns: 
512
513
514 <!-- ##### FUNCTION gst_element_set_eos ##### -->
515 <para>
516
517 </para>
518
519 @element: 
520
521
522 <!-- ##### FUNCTION gst_element_install_std_props ##### -->
523 <para>
524
525 </para>
526
527 @klass: 
528 @first_name: 
529 @Varargs: 
530
531
532 <!-- ##### FUNCTION gst_element_send_event ##### -->
533 <para>
534
535 </para>
536
537 @element: 
538 @event: 
539
540
541 <!-- ##### FUNCTION gst_element_interrupt ##### -->
542 <para>
543
544 </para>
545
546 @element: 
547 @Returns: 
548
549
550 <!-- ##### FUNCTION gst_element_yield ##### -->
551 <para>
552
553 </para>
554
555 @element: 
556
557
558 <!-- ##### SIGNAL GstElement::eos ##### -->
559 <para>
560
561 </para>
562
563 @gstelement: the object which received the signal.
564
565 <!-- ##### SIGNAL GstElement::error ##### -->
566 <para>
567 Is trigered whenever an error occured
568
569 </para>
570
571 @gstelement: the object which received the signal.
572 @arg1: the error message
573
574 <!-- ##### SIGNAL GstElement::event ##### -->
575 <para>
576
577 </para>
578
579 @gstelement: the object which received the signal.
580 @arg1: 
581
582 <!-- ##### SIGNAL GstElement::new-pad ##### -->
583 <para>
584 Is trigered whenever a new pad is added to an element
585 </para>
586
587 @gstelement: the object which received the signal.
588 @arg1: the new pad that was added
589
590 <!-- ##### SIGNAL GstElement::pad-removed ##### -->
591 <para>
592
593 </para>
594
595 @gstelement: the object which received the signal.
596 @arg1: The pad that was removed.
597
598 <!-- ##### SIGNAL GstElement::state-change ##### -->
599 <para>
600 Is trigered whenever the state of an element changes
601 </para>
602
603 @gstelement: the object which received the signal.
604 @arg1: the new state of the object
605 @arg2: 
606