Imported Upstream version 0.10.36
[profile/ivi/gstreamer.git] / docs / gst / html / GstElement.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GstElement</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GStreamer 0.10 Core Reference Manual">
8 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
9 <link rel="prev" href="gstreamer-GstDateTime.html" title="GstDateTime">
10 <link rel="next" href="GstElementFactory.html" title="GstElementFactory">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="gstreamer-GstDateTime.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GStreamer 0.10 Core Reference Manual</th>
21 <td><a accesskey="n" href="GstElementFactory.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#GstElement.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#GstElement.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#GstElement.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#GstElement.derived-interfaces" class="shortcut">Known Derived Interfaces</a>
31                    | 
32                   <a href="#GstElement.signals" class="shortcut">Signals</a>
33 </td></tr>
34 </table>
35 <div class="refentry">
36 <a name="GstElement"></a><div class="titlepage"></div>
37 <div class="refnamediv"><table width="100%"><tr>
38 <td valign="top">
39 <h2><span class="refentrytitle"><a name="GstElement.top_of_page"></a>GstElement</span></h2>
40 <p>GstElement — Abstract base class for all pipeline elements</p>
41 </td>
42 <td valign="top" align="right"></td>
43 </tr></table></div>
44 <div class="refsynopsisdiv">
45 <a name="GstElement.synopsis"></a><h2>Synopsis</h2>
46 <pre class="synopsis">
47 #include &lt;gst/gst.h&gt;
48
49 struct              <a class="link" href="GstElement.html#GstElement-struct" title="struct GstElement">GstElement</a>;
50 struct              <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass">GstElementClass</a>;
51 enum                <a class="link" href="GstElement.html#GstElementFlags" title="enum GstElementFlags">GstElementFlags</a>;
52 enum                <a class="link" href="GstElement.html#GstState" title="enum GstState">GstState</a>;
53 enum                <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange">GstStateChange</a>;
54 enum                <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn">GstStateChangeReturn</a>;
55 #define             <a class="link" href="GstElement.html#GST-STATE:CAPS" title="GST_STATE()">GST_STATE</a>                           (elem)
56 #define             <a class="link" href="GstElement.html#GST-STATE-GET-NEXT:CAPS" title="GST_STATE_GET_NEXT()">GST_STATE_GET_NEXT</a>                  (cur,
57                                                          pending)
58 #define             <a class="link" href="GstElement.html#GST-STATE-NEXT:CAPS" title="GST_STATE_NEXT()">GST_STATE_NEXT</a>                      (elem)
59 #define             <a class="link" href="GstElement.html#GST-STATE-PENDING:CAPS" title="GST_STATE_PENDING()">GST_STATE_PENDING</a>                   (elem)
60 #define             <a class="link" href="GstElement.html#GST-STATE-RETURN:CAPS" title="GST_STATE_RETURN()">GST_STATE_RETURN</a>                    (elem)
61 #define             <a class="link" href="GstElement.html#GST-STATE-TARGET:CAPS" title="GST_STATE_TARGET()">GST_STATE_TARGET</a>                    (elem)
62 #define             <a class="link" href="GstElement.html#GST-STATE-TRANSITION:CAPS" title="GST_STATE_TRANSITION()">GST_STATE_TRANSITION</a>                (cur,
63                                                          next)
64 #define             <a class="link" href="GstElement.html#GST-STATE-TRANSITION-CURRENT:CAPS" title="GST_STATE_TRANSITION_CURRENT()">GST_STATE_TRANSITION_CURRENT</a>        (trans)
65 #define             <a class="link" href="GstElement.html#GST-STATE-TRANSITION-NEXT:CAPS" title="GST_STATE_TRANSITION_NEXT()">GST_STATE_TRANSITION_NEXT</a>           (trans)
66 #define             <a class="link" href="GstElement.html#GST-STATE-GET-LOCK:CAPS" title="GST_STATE_GET_LOCK()">GST_STATE_GET_LOCK</a>                  (elem)
67 #define             <a class="link" href="GstElement.html#GST-STATE-GET-COND:CAPS" title="GST_STATE_GET_COND()">GST_STATE_GET_COND</a>                  (elem)
68 #define             <a class="link" href="GstElement.html#GST-ELEMENT-NAME:CAPS" title="GST_ELEMENT_NAME()">GST_ELEMENT_NAME</a>                    (elem)
69 #define             <a class="link" href="GstElement.html#GST-ELEMENT-PARENT:CAPS" title="GST_ELEMENT_PARENT()">GST_ELEMENT_PARENT</a>                  (elem)
70 #define             <a class="link" href="GstElement.html#GST-ELEMENT-BUS:CAPS" title="GST_ELEMENT_BUS()">GST_ELEMENT_BUS</a>                     (elem)
71 #define             <a class="link" href="GstElement.html#GST-ELEMENT-CLOCK:CAPS" title="GST_ELEMENT_CLOCK()">GST_ELEMENT_CLOCK</a>                   (elem)
72 #define             <a class="link" href="GstElement.html#GST-ELEMENT-PADS:CAPS" title="GST_ELEMENT_PADS()">GST_ELEMENT_PADS</a>                    (elem)
73 #define             <a class="link" href="GstElement.html#GST-ELEMENT-START-TIME:CAPS" title="GST_ELEMENT_START_TIME()">GST_ELEMENT_START_TIME</a>              (elem)
74 #define             <a class="link" href="GstElement.html#GST-ELEMENT-ERROR:CAPS" title="GST_ELEMENT_ERROR()">GST_ELEMENT_ERROR</a>                   (el,
75                                                          domain,
76                                                          code,
77                                                          text,
78                                                          debug)
79 #define             <a class="link" href="GstElement.html#GST-ELEMENT-WARNING:CAPS" title="GST_ELEMENT_WARNING()">GST_ELEMENT_WARNING</a>                 (el,
80                                                          domain,
81                                                          code,
82                                                          text,
83                                                          debug)
84 #define             <a class="link" href="GstElement.html#GST-ELEMENT-INFO:CAPS" title="GST_ELEMENT_INFO()">GST_ELEMENT_INFO</a>                    (el,
85                                                          domain,
86                                                          code,
87                                                          text,
88                                                          debug)
89 #define             <a class="link" href="GstElement.html#GST-ELEMENT-IS-LOCKED-STATE:CAPS" title="GST_ELEMENT_IS_LOCKED_STATE()">GST_ELEMENT_IS_LOCKED_STATE</a>         (elem)
90
91 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-add-pad-template" title="gst_element_class_add_pad_template ()">gst_element_class_add_pad_template</a>  (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
92                                                          <em class="parameter"><code><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> *templ</code></em>);
93 <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="returnvalue">GstPadTemplate</span></a> *    <a class="link" href="GstElement.html#gst-element-class-get-pad-template" title="gst_element_class_get_pad_template ()">gst_element_class_get_pad_template</a>  (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *element_class</code></em>,
94                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
95 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GstElement.html#gst-element-class-get-pad-template-list" title="gst_element_class_get_pad_template_list ()">gst_element_class_get_pad_template_list</a>
96                                                         (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *element_class</code></em>);
97 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-install-std-props" title="gst_element_class_install_std_props ()">gst_element_class_install_std_props</a> (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
98                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_name</code></em>,
99                                                          <em class="parameter"><code>...</code></em>);
100 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-set-details" title="gst_element_class_set_details ()">gst_element_class_set_details</a>       (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
101                                                          <em class="parameter"><code>const <a class="link" href="GstElementFactory.html#GstElementDetails" title="struct GstElementDetails"><span class="type">GstElementDetails</span></a> *details</code></em>);
102 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-set-details-simple" title="gst_element_class_set_details_simple ()">gst_element_class_set_details_simple</a>
103                                                         (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
104                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
105                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
106                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
107                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);
108 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-set-documentation-uri" title="gst_element_class_set_documentation_uri ()">gst_element_class_set_documentation_uri</a>
109                                                         (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
110                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);
111 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-set-icon-name" title="gst_element_class_set_icon_name ()">gst_element_class_set_icon_name</a>     (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
112                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
113
114 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-add-pad" title="gst_element_add_pad ()">gst_element_add_pad</a>                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
115                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
116 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstElement.html#gst-element-get-pad" title="gst_element_get_pad ()">gst_element_get_pad</a>                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
117                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
118 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-create-all-pads" title="gst_element_create_all_pads ()">gst_element_create_all_pads</a>         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
119 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstElement.html#gst-element-get-compatible-pad" title="gst_element_get_compatible_pad ()">gst_element_get_compatible_pad</a>      (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
120                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
121                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
122 <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="returnvalue">GstPadTemplate</span></a> *    <a class="link" href="GstElement.html#gst-element-get-compatible-pad-template" title="gst_element_get_compatible_pad_template ()">gst_element_get_compatible_pad_template</a>
123                                                         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
124                                                          <em class="parameter"><code><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> *compattempl</code></em>);
125 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()">gst_element_get_request_pad</a>         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
126                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
127 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstElement.html#gst-element-get-static-pad" title="gst_element_get_static_pad ()">gst_element_get_static_pad</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
128                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
129 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstElement.html#gst-element-request-pad" title="gst_element_request_pad ()">gst_element_request_pad</a>             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
130                                                          <em class="parameter"><code><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> *templ</code></em>,
131                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
132                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
133 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-no-more-pads" title="gst_element_no_more_pads ()">gst_element_no_more_pads</a>            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
134 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()">gst_element_release_request_pad</a>     (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
135                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
136 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-remove-pad" title="gst_element_remove_pad ()">gst_element_remove_pad</a>              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
137                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
138 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstElement.html#gst-element-iterate-pads" title="gst_element_iterate_pads ()">gst_element_iterate_pads</a>            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
139 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstElement.html#gst-element-iterate-sink-pads" title="gst_element_iterate_sink_pads ()">gst_element_iterate_sink_pads</a>       (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
140 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstElement.html#gst-element-iterate-src-pads" title="gst_element_iterate_src_pads ()">gst_element_iterate_src_pads</a>        (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
141
142 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-link" title="gst_element_link ()">gst_element_link</a>                    (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
143                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>);
144 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-unlink" title="gst_element_unlink ()">gst_element_unlink</a>                  (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
145                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>);
146 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-link-many" title="gst_element_link_many ()">gst_element_link_many</a>               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_1</code></em>,
147                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_2</code></em>,
148                                                          <em class="parameter"><code>...</code></em>);
149 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-unlink-many" title="gst_element_unlink_many ()">gst_element_unlink_many</a>             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_1</code></em>,
150                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_2</code></em>,
151                                                          <em class="parameter"><code>...</code></em>);
152 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-link-pads" title="gst_element_link_pads ()">gst_element_link_pads</a>               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
153                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *srcpadname</code></em>,
154                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>,
155                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *destpadname</code></em>);
156 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-link-pads-full" title="gst_element_link_pads_full ()">gst_element_link_pads_full</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
157                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *srcpadname</code></em>,
158                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>,
159                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *destpadname</code></em>,
160                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadLinkCheck" title="enum GstPadLinkCheck"><span class="type">GstPadLinkCheck</span></a> flags</code></em>);
161 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-unlink-pads" title="gst_element_unlink_pads ()">gst_element_unlink_pads</a>             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
162                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *srcpadname</code></em>,
163                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>,
164                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *destpadname</code></em>);
165 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-link-pads-filtered" title="gst_element_link_pads_filtered ()">gst_element_link_pads_filtered</a>      (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
166                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *srcpadname</code></em>,
167                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>,
168                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *destpadname</code></em>,
169                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
170 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-link-filtered" title="gst_element_link_filtered ()">gst_element_link_filtered</a>           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
171                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>,
172                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
173
174 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-set-base-time" title="gst_element_set_base_time ()">gst_element_set_base_time</a>           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
175                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>);
176 <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstElement.html#gst-element-get-base-time" title="gst_element_get_base_time ()">gst_element_get_base_time</a>           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
177 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-set-start-time" title="gst_element_set_start_time ()">gst_element_set_start_time</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
178                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>);
179 <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstElement.html#gst-element-get-start-time" title="gst_element_get_start_time ()">gst_element_get_start_time</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
180 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-set-bus" title="gst_element_set_bus ()">gst_element_set_bus</a>                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
181                                                          <em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>);
182 <a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *            <a class="link" href="GstElement.html#gst-element-get-bus" title="gst_element_get_bus ()">gst_element_get_bus</a>                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
183 <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="returnvalue">GstElementFactory</span></a> * <a class="link" href="GstElement.html#gst-element-get-factory" title="gst_element_get_factory ()">gst_element_get_factory</a>             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
184 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-set-index" title="gst_element_set_index ()">gst_element_set_index</a>               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
185                                                          <em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>);
186 <a class="link" href="GstIndex.html" title="GstIndex"><span class="returnvalue">GstIndex</span></a> *          <a class="link" href="GstElement.html#gst-element-get-index" title="gst_element_get_index ()">gst_element_get_index</a>               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
187 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-is-indexable" title="gst_element_is_indexable ()">gst_element_is_indexable</a>            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
188 #define             <a class="link" href="GstElement.html#gst-element-set-name" title="gst_element_set_name()">gst_element_set_name</a>                (elem,
189                                                          name)
190 #define             <a class="link" href="GstElement.html#gst-element-get-name" title="gst_element_get_name()">gst_element_get_name</a>                (elem)
191 #define             <a class="link" href="GstElement.html#gst-element-set-parent" title="gst_element_set_parent()">gst_element_set_parent</a>              (elem,
192                                                          parent)
193 #define             <a class="link" href="GstElement.html#gst-element-get-parent" title="gst_element_get_parent()">gst_element_get_parent</a>              (elem)
194
195 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-requires-clock" title="gst_element_requires_clock ()">gst_element_requires_clock</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
196 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()">gst_element_set_clock</a>               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
197                                                          <em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>);
198 <a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *          <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()">gst_element_get_clock</a>               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
199 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-provides-clock" title="gst_element_provides_clock ()">gst_element_provides_clock</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
200 <a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *          <a class="link" href="GstElement.html#gst-element-provide-clock" title="gst_element_provide_clock ()">gst_element_provide_clock</a>           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
201
202 <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a> <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()">gst_element_set_state</a>              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
203                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> state</code></em>);
204 <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a> <a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()">gst_element_get_state</a>              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
205                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> *state</code></em>,
206                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> *pending</code></em>,
207                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>);
208 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-set-locked-state" title="gst_element_set_locked_state ()">gst_element_set_locked_state</a>        (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
209                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> locked_state</code></em>);
210 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-is-locked-state" title="gst_element_is_locked_state ()">gst_element_is_locked_state</a>         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
211 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-abort-state" title="gst_element_abort_state ()">gst_element_abort_state</a>             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
212 <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a> <a class="link" href="GstElement.html#gst-element-continue-state" title="gst_element_continue_state ()">gst_element_continue_state</a>         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
213                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a> ret</code></em>);
214 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-lost-state" title="gst_element_lost_state ()">gst_element_lost_state</a>              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
215 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-lost-state-full" title="gst_element_lost_state_full ()">gst_element_lost_state_full</a>         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
216                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> new_base_time</code></em>);
217 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="GstElement.html#gst-element-state-get-name" title="gst_element_state_get_name ()">gst_element_state_get_name</a>          (<em class="parameter"><code><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> state</code></em>);
218 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="GstElement.html#gst-element-state-change-return-get-name" title="gst_element_state_change_return_get_name ()">gst_element_state_change_return_get_name</a>
219                                                         (<em class="parameter"><code><a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a> state_ret</code></em>);
220 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-sync-state-with-parent" title="gst_element_sync_state_with_parent ()">gst_element_sync_state_with_parent</a>  (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
221 <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a> <a class="link" href="GstElement.html#gst-element-change-state" title="gst_element_change_state ()">gst_element_change_state</a>           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
222                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a> transition</code></em>);
223
224 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-found-tags" title="gst_element_found_tags ()">gst_element_found_tags</a>              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
225                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
226 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-found-tags-for-pad" title="gst_element_found_tags_for_pad ()">gst_element_found_tags_for_pad</a>      (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
227                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
228                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
229
230 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-message-full" title="gst_element_message_full ()">gst_element_message_full</a>            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
231                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
232                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> domain</code></em>,
233                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> code</code></em>,
234                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *text</code></em>,
235                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *debug</code></em>,
236                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *file</code></em>,
237                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *function</code></em>,
238                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> line</code></em>);
239 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-post-message" title="gst_element_post_message ()">gst_element_post_message</a>            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
240                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
241
242 const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * <a class="link" href="GstElement.html#gst-element-get-query-types" title="gst_element_get_query_types ()">gst_element_get_query_types</a>        (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
243 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-query" title="gst_element_query ()">gst_element_query</a>                   (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
244                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
245 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-query-convert" title="gst_element_query_convert ()">gst_element_query_convert</a>           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
246                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
247                                                          <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
248                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *dest_format</code></em>,
249                                                          <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);
250 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-query-position" title="gst_element_query_position ()">gst_element_query_position</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
251                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
252                                                          <em class="parameter"><code><span class="type">gint64</span> *cur</code></em>);
253 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-query-duration" title="gst_element_query_duration ()">gst_element_query_duration</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
254                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
255                                                          <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);
256
257 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-send-event" title="gst_element_send_event ()">gst_element_send_event</a>              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
258                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
259 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-seek-simple" title="gst_element_seek_simple ()">gst_element_seek_simple</a>             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
260                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
261                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> seek_flags</code></em>,
262                                                          <em class="parameter"><code><span class="type">gint64</span> seek_pos</code></em>);
263 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-seek" title="gst_element_seek ()">gst_element_seek</a>                    (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
264                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
265                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
266                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
267                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> cur_type</code></em>,
268                                                          <em class="parameter"><code><span class="type">gint64</span> cur</code></em>,
269                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
270                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);
271 </pre>
272 </div>
273 <div class="refsect1">
274 <a name="GstElement.object-hierarchy"></a><h2>Object Hierarchy</h2>
275 <pre class="synopsis">
276   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
277    +----<a class="link" href="GstObject.html" title="GstObject">GstObject</a>
278          +----GstElement
279                +----<a class="link" href="GstBin.html" title="GstBin">GstBin</a>
280 </pre>
281 </div>
282 <div class="refsect1">
283 <a name="GstElement.derived-interfaces"></a><h2>Known Derived Interfaces</h2>
284 <p>
285 GstElement is required by
286  <a class="link" href="GstImplementsInterface.html" title="GstImplementsInterface">GstImplementsInterface</a> and  <a class="link" href="GstTagSetter.html" title="GstTagSetter">GstTagSetter</a>.</p>
287 </div>
288 <div class="refsect1">
289 <a name="GstElement.signals"></a><h2>Signals</h2>
290 <pre class="synopsis">
291   "<a class="link" href="GstElement.html#GstElement-no-more-pads" title='The "no-more-pads" signal'>no-more-pads</a>"                                   : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
292   "<a class="link" href="GstElement.html#GstElement-pad-added" title='The "pad-added" signal'>pad-added</a>"                                      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
293   "<a class="link" href="GstElement.html#GstElement-pad-removed" title='The "pad-removed" signal'>pad-removed</a>"                                    : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
294 </pre>
295 </div>
296 <div class="refsect1">
297 <a name="GstElement.description"></a><h2>Description</h2>
298 <p>
299 GstElement is the abstract base class needed to construct an element that
300 can be used in a GStreamer pipeline. Please refer to the plugin writers
301 guide for more information on creating <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> subclasses.
302 </p>
303 <p>
304 The name of a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> can be get with <a class="link" href="GstElement.html#gst-element-get-name" title="gst_element_get_name()"><code class="function">gst_element_get_name()</code></a> and set with
305 <a class="link" href="GstElement.html#gst-element-set-name" title="gst_element_set_name()"><code class="function">gst_element_set_name()</code></a>.  For speed, <a class="link" href="GstElement.html#GST-ELEMENT-NAME:CAPS" title="GST_ELEMENT_NAME()"><code class="function">GST_ELEMENT_NAME()</code></a> can be used in the
306 core when using the appropriate locking. Do not use this in plug-ins or
307 applications in order to retain ABI compatibility.
308 </p>
309 <p>
310 All elements have pads (of the type <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>).  These pads link to pads on
311 other elements.  <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> flow between these linked pads.
312 A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> has a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> structures for all their input (or sink)
313 and output (or source) pads.
314 Core and plug-in writers can add and remove pads with <a class="link" href="GstElement.html#gst-element-add-pad" title="gst_element_add_pad ()"><code class="function">gst_element_add_pad()</code></a>
315 and <a class="link" href="GstElement.html#gst-element-remove-pad" title="gst_element_remove_pad ()"><code class="function">gst_element_remove_pad()</code></a>.
316 </p>
317 <p>
318 An existing pad of an element can be retrieved by name with
319 <a class="link" href="GstElement.html#gst-element-get-static-pad" title="gst_element_get_static_pad ()"><code class="function">gst_element_get_static_pad()</code></a>. A new dynamic pad can be created using
320 <a class="link" href="GstElement.html#gst-element-request-pad" title="gst_element_request_pad ()"><code class="function">gst_element_request_pad()</code></a> with a <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> or 
321 <a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()"><code class="function">gst_element_get_request_pad()</code></a> with the template name such as "src_%d".
322 An iterator of all pads can be retrieved with <a class="link" href="GstElement.html#gst-element-iterate-pads" title="gst_element_iterate_pads ()"><code class="function">gst_element_iterate_pads()</code></a>.
323 </p>
324 <p>
325 Elements can be linked through their pads.
326 If the link is straightforward, use the <a class="link" href="GstElement.html#gst-element-link" title="gst_element_link ()"><code class="function">gst_element_link()</code></a>
327 convenience function to link two elements, or <a class="link" href="GstElement.html#gst-element-link-many" title="gst_element_link_many ()"><code class="function">gst_element_link_many()</code></a>
328 for more elements in a row.
329 Use <a class="link" href="GstElement.html#gst-element-link-filtered" title="gst_element_link_filtered ()"><code class="function">gst_element_link_filtered()</code></a> to link two elements constrained by
330 a specified set of <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.
331 For finer control, use <a class="link" href="GstElement.html#gst-element-link-pads" title="gst_element_link_pads ()"><code class="function">gst_element_link_pads()</code></a> and
332 <a class="link" href="GstElement.html#gst-element-link-pads-filtered" title="gst_element_link_pads_filtered ()"><code class="function">gst_element_link_pads_filtered()</code></a> to specify the pads to link on
333 each element by name.
334 </p>
335 <p>
336 Each element has a state (see <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>).  You can get and set the state
337 of an element with <a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()"><code class="function">gst_element_get_state()</code></a> and <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a>.
338 Setting a state triggers a <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a>. To get a string representation
339 of a <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>, use <a class="link" href="GstElement.html#gst-element-state-get-name" title="gst_element_state_get_name ()"><code class="function">gst_element_state_get_name()</code></a>.
340 </p>
341 <p>
342 You can get and set a <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> on an element using <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()"><code class="function">gst_element_get_clock()</code></a>
343 and <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()"><code class="function">gst_element_set_clock()</code></a>.
344 Some elements can provide a clock for the pipeline if
345 <a class="link" href="GstElement.html#gst-element-provides-clock" title="gst_element_provides_clock ()"><code class="function">gst_element_provides_clock()</code></a> returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. With the
346 <a class="link" href="GstElement.html#gst-element-provide-clock" title="gst_element_provide_clock ()"><code class="function">gst_element_provide_clock()</code></a> method one can retrieve the clock provided by
347 such an element.
348 Not all elements require a clock to operate correctly. If
349 <a class="link" href="GstElement.html#gst-element-requires-clock" title="gst_element_requires_clock ()"><code class="function">gst_element_requires_clock()</code></a> returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, a clock should be set on the
350 element with <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()"><code class="function">gst_element_set_clock()</code></a>.
351 </p>
352 <p>
353 Note that clock slection and distribution is normally handled by the
354 toplevel <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> so the clock functions are only to be used in very
355 specific situations.
356 </p>
357 <p>
358 Last reviewed on 2009-05-29 (0.10.24)
359 </p>
360 </div>
361 <div class="refsect1">
362 <a name="GstElement.details"></a><h2>Details</h2>
363 <div class="refsect2">
364 <a name="GstElement-struct"></a><h3>struct GstElement</h3>
365 <pre class="programlisting">struct GstElement {
366   GStaticRecMutex      *state_lock;
367
368   /* element state */
369   GCond                *state_cond;
370   guint32               state_cookie;
371   GstState              current_state;
372   GstState              next_state;
373   GstState              pending_state;
374   GstStateChangeReturn  last_return;
375
376   GstBus               *bus;
377
378   /* allocated clock */
379   GstClock             *clock;
380   GstClockTimeDiff      base_time; /* NULL/READY: 0 - PAUSED: current time - PLAYING: difference to clock */
381
382   /* element pads, these lists can only be iterated while holding
383    * the LOCK or checking the cookie after each LOCK. */
384   guint16               numpads;
385   GList                *pads;
386   guint16               numsrcpads;
387   GList                *srcpads;
388   guint16               numsinkpads;
389   GList                *sinkpads;
390   guint32               pads_cookie;
391 };
392 </pre>
393 <p>
394 GStreamer element abstract base class.
395 </p>
396 <div class="variablelist"><table border="0">
397 <col align="left" valign="top">
398 <tbody>
399 <tr>
400 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> *<em class="structfield"><code><a name="GstElement-struct.state-lock"></a>state_lock</code></em>;</span></p></td>
401 <td>Used to serialize execution of <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a>
402 </td>
403 </tr>
404 <tr>
405 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> *<em class="structfield"><code><a name="GstElement-struct.state-cond"></a>state_cond</code></em>;</span></p></td>
406 <td>Used to signal completion of a state change</td>
407 </tr>
408 <tr>
409 <td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstElement-struct.state-cookie"></a>state_cookie</code></em>;</span></p></td>
410 <td>Used to detect concurrent execution of
411 <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a> and <a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()"><code class="function">gst_element_get_state()</code></a>
412 </td>
413 </tr>
414 <tr>
415 <td><p><span class="term"><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> <em class="structfield"><code><a name="GstElement-struct.current-state"></a>current_state</code></em>;</span></p></td>
416 <td>the current state of an element</td>
417 </tr>
418 <tr>
419 <td><p><span class="term"><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> <em class="structfield"><code><a name="GstElement-struct.next-state"></a>next_state</code></em>;</span></p></td>
420 <td>the next state of an element, can be <a class="link" href="GstElement.html#GST-STATE-VOID-PENDING:CAPS"><span class="type">GST_STATE_VOID_PENDING</span></a> if
421 the element is in the correct state.</td>
422 </tr>
423 <tr>
424 <td><p><span class="term"><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> <em class="structfield"><code><a name="GstElement-struct.pending-state"></a>pending_state</code></em>;</span></p></td>
425 <td>the final state the element should go to, can be
426 <a class="link" href="GstElement.html#GST-STATE-VOID-PENDING:CAPS"><span class="type">GST_STATE_VOID_PENDING</span></a> if the element is in the correct state</td>
427 </tr>
428 <tr>
429 <td><p><span class="term"><a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a> <em class="structfield"><code><a name="GstElement-struct.last-return"></a>last_return</code></em>;</span></p></td>
430 <td>the last return value of an element state change</td>
431 </tr>
432 <tr>
433 <td><p><span class="term"><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *<em class="structfield"><code><a name="GstElement-struct.bus"></a>bus</code></em>;</span></p></td>
434 <td>the bus of the element. This bus is provided to the element by the
435 parent element or the application. A <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> has a bus of its own.</td>
436 </tr>
437 <tr>
438 <td><p><span class="term"><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *<em class="structfield"><code><a name="GstElement-struct.clock"></a>clock</code></em>;</span></p></td>
439 <td>the clock of the element. This clock is usually provided to the
440 element by the toplevel <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a>.</td>
441 </tr>
442 <tr>
443 <td><p><span class="term"><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> <em class="structfield"><code><a name="GstElement-struct.base-time"></a>base_time</code></em>;</span></p></td>
444 <td>the time of the clock right before the element is set to
445 PLAYING. Subtracting <em class="parameter"><code>base_time</code></em> from the current clock time in the PLAYING
446 state will yield the running_time against the clock.</td>
447 </tr>
448 <tr>
449 <td><p><span class="term"><span class="type">guint16</span> <em class="structfield"><code><a name="GstElement-struct.numpads"></a>numpads</code></em>;</span></p></td>
450 <td>number of pads of the element, includes both source and sink pads.</td>
451 </tr>
452 <tr>
453 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstElement-struct.pads"></a>pads</code></em>;</span></p></td>
454 <td>list of pads</td>
455 </tr>
456 <tr>
457 <td><p><span class="term"><span class="type">guint16</span> <em class="structfield"><code><a name="GstElement-struct.numsrcpads"></a>numsrcpads</code></em>;</span></p></td>
458 <td>number of source pads of the element.</td>
459 </tr>
460 <tr>
461 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstElement-struct.srcpads"></a>srcpads</code></em>;</span></p></td>
462 <td>list of source pads</td>
463 </tr>
464 <tr>
465 <td><p><span class="term"><span class="type">guint16</span> <em class="structfield"><code><a name="GstElement-struct.numsinkpads"></a>numsinkpads</code></em>;</span></p></td>
466 <td>number of sink pads of the element.</td>
467 </tr>
468 <tr>
469 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstElement-struct.sinkpads"></a>sinkpads</code></em>;</span></p></td>
470 <td>list of sink pads</td>
471 </tr>
472 <tr>
473 <td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstElement-struct.pads-cookie"></a>pads_cookie</code></em>;</span></p></td>
474 <td>updated whenever the a pad is added or removed</td>
475 </tr>
476 </tbody>
477 </table></div>
478 </div>
479 <hr>
480 <div class="refsect2">
481 <a name="GstElementClass"></a><h3>struct GstElementClass</h3>
482 <pre class="programlisting">struct GstElementClass {
483   GstObjectClass         parent_class;
484
485   /* the element details */
486   /* FIXME-0.11: deprecate this in favour of meta_data */
487   GstElementDetails      details;
488
489   /* factory that the element was created from */
490   GstElementFactory     *elementfactory;
491
492   /* templates for our pads */
493   GList                 *padtemplates;
494   gint                   numpadtemplates;
495   guint32                pad_templ_cookie;
496
497   /* virtual methods for subclasses */
498
499   /* request/release pads */
500   GstPad*               (*request_new_pad)      (GstElement *element, GstPadTemplate *templ, const gchar* name);
501   void                  (*release_pad)          (GstElement *element, GstPad *pad);
502
503   /* state changes */
504   GstStateChangeReturn (*get_state)             (GstElement * element, GstState * state,
505                                                  GstState * pending, GstClockTime timeout);
506   GstStateChangeReturn (*set_state)             (GstElement *element, GstState state);
507   GstStateChangeReturn (*change_state)          (GstElement *element, GstStateChange transition);
508
509   /* bus */
510   void                  (*set_bus)              (GstElement * element, GstBus * bus);
511
512   /* set/get clocks */
513   GstClock*             (*provide_clock)        (GstElement *element);
514   gboolean              (*set_clock)            (GstElement *element, GstClock *clock);
515
516   /* index */
517   GstIndex*             (*get_index)            (GstElement *element);
518   void                  (*set_index)            (GstElement *element, GstIndex *index);
519
520   /* query functions */
521   gboolean              (*send_event)           (GstElement *element, GstEvent *event);
522
523   const GstQueryType*   (*get_query_types)      (GstElement *element);
524   gboolean              (*query)                (GstElement *element, GstQuery *query);
525
526   /* Virtual method for subclasses (additions) */
527   /* FIXME-0.11 Make this the default behaviour */
528   GstPad*               (*request_new_pad_full) (GstElement *element, GstPadTemplate *templ,
529                                                  const gchar* name, const GstCaps *caps);
530
531   void                  (*state_changed)        (GstElement *element, GstState oldstate,
532                                                  GstState newstate, GstState pending);
533 };
534 </pre>
535 <p>
536 GStreamer element class. Override the vmethods to implement the element
537 functionality.
538 </p>
539 <div class="variablelist"><table border="0">
540 <col align="left" valign="top">
541 <tbody>
542 <tr>
543 <td><p><span class="term"><a class="link" href="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> <em class="structfield"><code><a name="GstElementClass.parent-class"></a>parent_class</code></em>;</span></p></td>
544 <td>the parent class structure</td>
545 </tr>
546 <tr>
547 <td><p><span class="term"><a class="link" href="GstElementFactory.html#GstElementDetails" title="struct GstElementDetails"><span class="type">GstElementDetails</span></a> <em class="structfield"><code><a name="GstElementClass.details"></a>details</code></em>;</span></p></td>
548 <td>
549 <a class="link" href="GstElementFactory.html#GstElementDetails" title="struct GstElementDetails"><span class="type">GstElementDetails</span></a> for elements of this class</td>
550 </tr>
551 <tr>
552 <td><p><span class="term"><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *<em class="structfield"><code><a name="GstElementClass.elementfactory"></a>elementfactory</code></em>;</span></p></td>
553 <td>the <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> that creates these elements</td>
554 </tr>
555 <tr>
556 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstElementClass.padtemplates"></a>padtemplates</code></em>;</span></p></td>
557 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>
558 </td>
559 </tr>
560 <tr>
561 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstElementClass.numpadtemplates"></a>numpadtemplates</code></em>;</span></p></td>
562 <td>the number of padtemplates</td>
563 </tr>
564 <tr>
565 <td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstElementClass.pad-templ-cookie"></a>pad_templ_cookie</code></em>;</span></p></td>
566 <td>changed whenever the padtemplates change</td>
567 </tr>
568 <tr>
569 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.request-new-pad"></a>request_new_pad</code></em> ()</span></p></td>
570 <td>called when a new pad is requested</td>
571 </tr>
572 <tr>
573 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.release-pad"></a>release_pad</code></em> ()</span></p></td>
574 <td>called when a request pad is to be released</td>
575 </tr>
576 <tr>
577 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.get-state"></a>get_state</code></em> ()</span></p></td>
578 <td>get the state of the element</td>
579 </tr>
580 <tr>
581 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.set-state"></a>set_state</code></em> ()</span></p></td>
582 <td>set a new state on the element</td>
583 </tr>
584 <tr>
585 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.change-state"></a>change_state</code></em> ()</span></p></td>
586 <td>called by <em class="parameter"><code>set_state</code></em> to perform an incremental state change</td>
587 </tr>
588 <tr>
589 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.set-bus"></a>set_bus</code></em> ()</span></p></td>
590 <td>set a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> on the element</td>
591 </tr>
592 <tr>
593 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.provide-clock"></a>provide_clock</code></em> ()</span></p></td>
594 <td>gets the <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> provided by the element</td>
595 </tr>
596 <tr>
597 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.set-clock"></a>set_clock</code></em> ()</span></p></td>
598 <td>set the <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> on the element</td>
599 </tr>
600 <tr>
601 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.get-index"></a>get_index</code></em> ()</span></p></td>
602 <td>set a <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> on the element</td>
603 </tr>
604 <tr>
605 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.set-index"></a>set_index</code></em> ()</span></p></td>
606 <td>get the <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> of an element</td>
607 </tr>
608 <tr>
609 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.send-event"></a>send_event</code></em> ()</span></p></td>
610 <td>send a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> to the element</td>
611 </tr>
612 <tr>
613 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.get-query-types"></a>get_query_types</code></em> ()</span></p></td>
614 <td>get the supported <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> of this element</td>
615 </tr>
616 <tr>
617 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.query"></a>query</code></em> ()</span></p></td>
618 <td>perform a <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> on the element</td>
619 </tr>
620 <tr>
621 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.request-new-pad-full"></a>request_new_pad_full</code></em> ()</span></p></td>
622 <td>called when a new pad is requested. Since: 0.10.32.</td>
623 </tr>
624 <tr>
625 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.state-changed"></a>state_changed</code></em> ()</span></p></td>
626 <td>called immediately after a new state was set. Since: 0.10.36.</td>
627 </tr>
628 </tbody>
629 </table></div>
630 </div>
631 <hr>
632 <div class="refsect2">
633 <a name="GstElementFlags"></a><h3>enum GstElementFlags</h3>
634 <pre class="programlisting">typedef enum {
635   GST_ELEMENT_LOCKED_STATE      = (GST_OBJECT_FLAG_LAST &lt;&lt; 0),
636   GST_ELEMENT_IS_SINK           = (GST_OBJECT_FLAG_LAST &lt;&lt; 1),
637   GST_ELEMENT_UNPARENTING       = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
638   GST_ELEMENT_IS_SOURCE         = (GST_OBJECT_FLAG_LAST &lt;&lt; 3),
639   /* padding */
640   GST_ELEMENT_FLAG_LAST         = (GST_OBJECT_FLAG_LAST &lt;&lt; 16)
641 } GstElementFlags;
642 </pre>
643 <p>
644 The standard flags that an element may have.
645 </p>
646 <div class="variablelist"><table border="0">
647 <col align="left" valign="top">
648 <tbody>
649 <tr>
650 <td><p><a name="GST-ELEMENT-LOCKED-STATE:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_LOCKED_STATE</code></span></p></td>
651 <td>ignore state changes from parent
652 </td>
653 </tr>
654 <tr>
655 <td><p><a name="GST-ELEMENT-IS-SINK:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_IS_SINK</code></span></p></td>
656 <td>the element is a sink
657 </td>
658 </tr>
659 <tr>
660 <td><p><a name="GST-ELEMENT-UNPARENTING:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_UNPARENTING</code></span></p></td>
661 <td>Child is being removed from the parent bin.
662  <a class="link" href="GstBin.html#gst-bin-remove" title="gst_bin_remove ()"><code class="function">gst_bin_remove()</code></a> on a child already being removed immediately returns FALSE
663 </td>
664 </tr>
665 <tr>
666 <td><p><a name="GST-ELEMENT-IS-SOURCE:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_IS_SOURCE</code></span></p></td>
667 <td>the element is a source. Since 0.10.31
668 </td>
669 </tr>
670 <tr>
671 <td><p><a name="GST-ELEMENT-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_LAST</code></span></p></td>
672 <td>offset to define more flags
673 </td>
674 </tr>
675 </tbody>
676 </table></div>
677 </div>
678 <hr>
679 <div class="refsect2">
680 <a name="GstState"></a><h3>enum GstState</h3>
681 <pre class="programlisting">typedef enum {
682   GST_STATE_VOID_PENDING        = 0,
683   GST_STATE_NULL                = 1,
684   GST_STATE_READY               = 2,
685   GST_STATE_PAUSED              = 3,
686   GST_STATE_PLAYING             = 4
687 } GstState;
688 </pre>
689 <p>
690 The possible states an element can be in. States can be changed using
691 <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a> and checked using <a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()"><code class="function">gst_element_get_state()</code></a>.
692 </p>
693 <div class="variablelist"><table border="0">
694 <col align="left" valign="top">
695 <tbody>
696 <tr>
697 <td><p><a name="GST-STATE-VOID-PENDING:CAPS"></a><span class="term"><code class="literal">GST_STATE_VOID_PENDING</code></span></p></td>
698 <td>no pending state.
699 </td>
700 </tr>
701 <tr>
702 <td><p><a name="GST-STATE-NULL:CAPS"></a><span class="term"><code class="literal">GST_STATE_NULL</code></span></p></td>
703 <td>the NULL state or initial state of an element.
704 </td>
705 </tr>
706 <tr>
707 <td><p><a name="GST-STATE-READY:CAPS"></a><span class="term"><code class="literal">GST_STATE_READY</code></span></p></td>
708 <td>the element is ready to go to PAUSED.
709 </td>
710 </tr>
711 <tr>
712 <td><p><a name="GST-STATE-PAUSED:CAPS"></a><span class="term"><code class="literal">GST_STATE_PAUSED</code></span></p></td>
713 <td>the element is PAUSED, it is ready to accept and
714                          process data. Sink elements however only accept one
715                          buffer and then block.
716 </td>
717 </tr>
718 <tr>
719 <td><p><a name="GST-STATE-PLAYING:CAPS"></a><span class="term"><code class="literal">GST_STATE_PLAYING</code></span></p></td>
720 <td>the element is PLAYING, the <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> is running and
721                          the data is flowing.
722 </td>
723 </tr>
724 </tbody>
725 </table></div>
726 </div>
727 <hr>
728 <div class="refsect2">
729 <a name="GstStateChange"></a><h3>enum GstStateChange</h3>
730 <pre class="programlisting">typedef enum {
731   GST_STATE_CHANGE_NULL_TO_READY        = (GST_STATE_NULL&lt;&lt;3) | GST_STATE_READY,
732   GST_STATE_CHANGE_READY_TO_PAUSED      = (GST_STATE_READY&lt;&lt;3) | GST_STATE_PAUSED,
733   GST_STATE_CHANGE_PAUSED_TO_PLAYING    = (GST_STATE_PAUSED&lt;&lt;3) | GST_STATE_PLAYING,
734   GST_STATE_CHANGE_PLAYING_TO_PAUSED    = (GST_STATE_PLAYING&lt;&lt;3) | GST_STATE_PAUSED,
735   GST_STATE_CHANGE_PAUSED_TO_READY      = (GST_STATE_PAUSED&lt;&lt;3) | GST_STATE_READY,
736   GST_STATE_CHANGE_READY_TO_NULL        = (GST_STATE_READY&lt;&lt;3) | GST_STATE_NULL
737 } GstStateChange;
738 </pre>
739 <p>
740 These are the different state changes an element goes through.
741 <a class="link" href="GstElement.html#GST-STATE-NULL:CAPS"><code class="literal">GST_STATE_NULL</code></a> ⇒ <a class="link" href="GstElement.html#GST-STATE-PLAYING:CAPS"><code class="literal">GST_STATE_PLAYING</code></a> is called an upwards state change
742 and <a class="link" href="GstElement.html#GST-STATE-PLAYING:CAPS"><code class="literal">GST_STATE_PLAYING</code></a> ⇒ <a class="link" href="GstElement.html#GST-STATE-NULL:CAPS"><code class="literal">GST_STATE_NULL</code></a> a downwards state change.
743 </p>
744 <div class="variablelist"><table border="0">
745 <col align="left" valign="top">
746 <tbody>
747 <tr>
748 <td><p><a name="GST-STATE-CHANGE-NULL-TO-READY:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_NULL_TO_READY</code></span></p></td>
749 <td>state change from NULL to READY.
750 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
751 <li class="listitem"><p>
752     The element must check if the resources it needs are available. Device
753     sinks and -sources typically try to probe the device to constrain their
754     caps.
755   </p></li>
756 <li class="listitem"><p>
757     The element opens the device (in case feature need to be probed).
758   </p></li>
759 </ul></div>
760 </td>
761 </tr>
762 <tr>
763 <td><p><a name="GST-STATE-CHANGE-READY-TO-PAUSED:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_READY_TO_PAUSED</code></span></p></td>
764 <td>state change from READY to PAUSED.
765 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
766 <li class="listitem"><p>
767     The element pads are activated in order to receive data in PAUSED.
768     Streaming threads are started.
769   </p></li>
770 <li class="listitem"><p>
771     Some elements might need to return <a class="link" href="GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><code class="literal">GST_STATE_CHANGE_ASYNC</code></a> and complete
772     the state change when they have enough information. It is a requirement
773     for sinks to return <a class="link" href="GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><code class="literal">GST_STATE_CHANGE_ASYNC</code></a> and complete the state change
774     when they receive the first buffer or <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-EOS:CAPS"><code class="literal">GST_EVENT_EOS</code></a> (preroll).
775     Sinks also block the dataflow when in PAUSED.
776   </p></li>
777 <li class="listitem"><p>
778     A pipeline resets the running_time to 0.
779   </p></li>
780 <li class="listitem"><p>
781     Live sources return <a class="link" href="GstElement.html#GST-STATE-CHANGE-NO-PREROLL:CAPS"><code class="literal">GST_STATE_CHANGE_NO_PREROLL</code></a> and don't generate data.
782   </p></li>
783 </ul></div>
784 </td>
785 </tr>
786 <tr>
787 <td><p><a name="GST-STATE-CHANGE-PAUSED-TO-PLAYING:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_PAUSED_TO_PLAYING</code></span></p></td>
788 <td>state change from PAUSED to PLAYING.
789 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
790 <li class="listitem"><p>
791     Most elements ignore this state change.
792   </p></li>
793 <li class="listitem"><p>
794     The pipeline selects a <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> and distributes this to all the children
795     before setting them to PLAYING. This means that it is only alowed to
796     synchronize on the <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> in the PLAYING state.
797   </p></li>
798 <li class="listitem"><p>
799     The pipeline uses the <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> and the running_time to calculate the
800     base_time. The base_time is distributed to all children when performing
801     the state change.
802   </p></li>
803 <li class="listitem"><p>
804     Sink elements stop blocking on the preroll buffer or event and start
805     rendering the data.
806   </p></li>
807 <li class="listitem"><p>
808     Sinks can post <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-EOS:CAPS"><code class="literal">GST_MESSAGE_EOS</code></a> in the PLAYING state. It is not allowed
809     to post <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-EOS:CAPS"><code class="literal">GST_MESSAGE_EOS</code></a> when not in the PLAYING state.
810   </p></li>
811 <li class="listitem"><p>
812     While streaming in PAUSED or PLAYING elements can create and remove
813     sometimes pads.
814   </p></li>
815 <li class="listitem"><p>
816     Live sources start generating data and return <a class="link" href="GstElement.html#GST-STATE-CHANGE-SUCCESS:CAPS"><code class="literal">GST_STATE_CHANGE_SUCCESS</code></a>.
817   </p></li>
818 </ul></div>
819 </td>
820 </tr>
821 <tr>
822 <td><p><a name="GST-STATE-CHANGE-PLAYING-TO-PAUSED:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_PLAYING_TO_PAUSED</code></span></p></td>
823 <td>state change from PLAYING to PAUSED.
824 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
825 <li class="listitem"><p>
826     Most elements ignore this state change.
827   </p></li>
828 <li class="listitem"><p>
829     The pipeline calculates the running_time based on the last selected
830     <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> and the base_time. It stores this information to continue
831     playback when going back to the PLAYING state.
832   </p></li>
833 <li class="listitem"><p>
834     Sinks unblock any <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> wait calls.
835   </p></li>
836 <li class="listitem"><p>
837     When a sink does not have a pending buffer to play, it returns 
838     <a class="link" href="GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><code class="literal">GST_STATE_CHANGE_ASYNC</code></a> from this state change and completes the state
839     change when it receives a new buffer or an <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-EOS:CAPS"><code class="literal">GST_EVENT_EOS</code></a>.
840   </p></li>
841 <li class="listitem"><p>
842     Any queued <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-EOS:CAPS"><code class="literal">GST_MESSAGE_EOS</code></a> items are removed since they will be reposted
843     when going back to the PLAYING state. The EOS messages are queued in
844     <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> containers.
845   </p></li>
846 <li class="listitem"><p>
847     Live sources stop generating data and return <a class="link" href="GstElement.html#GST-STATE-CHANGE-NO-PREROLL:CAPS"><code class="literal">GST_STATE_CHANGE_NO_PREROLL</code></a>.
848   </p></li>
849 </ul></div>
850 </td>
851 </tr>
852 <tr>
853 <td><p><a name="GST-STATE-CHANGE-PAUSED-TO-READY:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_PAUSED_TO_READY</code></span></p></td>
854 <td>state change from PAUSED to READY.
855 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
856 <li class="listitem"><p>
857     Sinks unblock any waits in the preroll.
858   </p></li>
859 <li class="listitem"><p>
860     Elements unblock any waits on devices
861   </p></li>
862 <li class="listitem"><p>
863     Chain or get_range functions return <a class="link" href="GstPad.html#GST-FLOW-WRONG-STATE:CAPS"><code class="literal">GST_FLOW_WRONG_STATE</code></a>.
864   </p></li>
865 <li class="listitem"><p>
866     The element pads are deactivated so that streaming becomes impossible and
867     all streaming threads are stopped.
868   </p></li>
869 <li class="listitem"><p>
870     The sink forgets all negotiated formats
871   </p></li>
872 <li class="listitem"><p>
873     Elements remove all sometimes pads
874   </p></li>
875 </ul></div>
876 </td>
877 </tr>
878 <tr>
879 <td><p><a name="GST-STATE-CHANGE-READY-TO-NULL:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_READY_TO_NULL</code></span></p></td>
880 <td>state change from READY to NULL.
881 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
882 <li class="listitem"><p>
883     Elements close devices
884   </p></li>
885 <li class="listitem"><p>
886     Elements reset any internal state.
887   </p></li>
888 </ul></div>
889 </td>
890 </tr>
891 </tbody>
892 </table></div>
893 </div>
894 <hr>
895 <div class="refsect2">
896 <a name="GstStateChangeReturn"></a><h3>enum GstStateChangeReturn</h3>
897 <pre class="programlisting">typedef enum {
898   GST_STATE_CHANGE_FAILURE             = 0,
899   GST_STATE_CHANGE_SUCCESS             = 1,
900   GST_STATE_CHANGE_ASYNC               = 2,
901   GST_STATE_CHANGE_NO_PREROLL          = 3
902 } GstStateChangeReturn;
903 </pre>
904 <p>
905 The possible return values from a state change function such as 
906 <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a>. Only <em class="parameter"><code>GST_STATE_CHANGE_FAILURE</code></em> is a real failure.
907 </p>
908 <div class="variablelist"><table border="0">
909 <col align="left" valign="top">
910 <tbody>
911 <tr>
912 <td><p><a name="GST-STATE-CHANGE-FAILURE:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_FAILURE</code></span></p></td>
913 <td>the state change failed
914 </td>
915 </tr>
916 <tr>
917 <td><p><a name="GST-STATE-CHANGE-SUCCESS:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_SUCCESS</code></span></p></td>
918 <td>the state change succeeded
919 </td>
920 </tr>
921 <tr>
922 <td><p><a name="GST-STATE-CHANGE-ASYNC:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_ASYNC</code></span></p></td>
923 <td>the state change will happen asynchronously
924 </td>
925 </tr>
926 <tr>
927 <td><p><a name="GST-STATE-CHANGE-NO-PREROLL:CAPS"></a><span class="term"><code class="literal">GST_STATE_CHANGE_NO_PREROLL</code></span></p></td>
928 <td>the state change succeeded but the element
929                               cannot produce data in <a class="link" href="GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a>.
930                               This typically happens with live sources.
931 </td>
932 </tr>
933 </tbody>
934 </table></div>
935 </div>
936 <hr>
937 <div class="refsect2">
938 <a name="GST-STATE:CAPS"></a><h3>GST_STATE()</h3>
939 <pre class="programlisting">#define GST_STATE(elem)                 (GST_ELEMENT_CAST(elem)-&gt;current_state)
940 </pre>
941 <p>
942 This macro returns the current <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.
943 </p>
944 <div class="variablelist"><table border="0">
945 <col align="left" valign="top">
946 <tbody><tr>
947 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
948 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return state for.</td>
949 </tr></tbody>
950 </table></div>
951 </div>
952 <hr>
953 <div class="refsect2">
954 <a name="GST-STATE-GET-NEXT:CAPS"></a><h3>GST_STATE_GET_NEXT()</h3>
955 <pre class="programlisting">#define GST_STATE_GET_NEXT(cur,pending)         ((GstState)((cur) + __GST_SIGN ((gint)(pending) - (gint)(cur))))
956 </pre>
957 <p>
958 Given a current state <em class="parameter"><code>cur</code></em> and a target state <em class="parameter"><code>pending</code></em>, calculate the next (intermediate)
959 <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>.
960 </p>
961 <div class="variablelist"><table border="0">
962 <col align="left" valign="top">
963 <tbody>
964 <tr>
965 <td><p><span class="term"><em class="parameter"><code>cur</code></em> :</span></p></td>
966 <td>A starting <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>
967 </td>
968 </tr>
969 <tr>
970 <td><p><span class="term"><em class="parameter"><code>pending</code></em> :</span></p></td>
971 <td>A target <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>
972 </td>
973 </tr>
974 </tbody>
975 </table></div>
976 </div>
977 <hr>
978 <div class="refsect2">
979 <a name="GST-STATE-NEXT:CAPS"></a><h3>GST_STATE_NEXT()</h3>
980 <pre class="programlisting">#define GST_STATE_NEXT(elem)            (GST_ELEMENT_CAST(elem)-&gt;next_state)
981 </pre>
982 <p>
983 This macro returns the next <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.
984 </p>
985 <div class="variablelist"><table border="0">
986 <col align="left" valign="top">
987 <tbody><tr>
988 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
989 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the next state for.</td>
990 </tr></tbody>
991 </table></div>
992 </div>
993 <hr>
994 <div class="refsect2">
995 <a name="GST-STATE-PENDING:CAPS"></a><h3>GST_STATE_PENDING()</h3>
996 <pre class="programlisting">#define GST_STATE_PENDING(elem)         (GST_ELEMENT_CAST(elem)-&gt;pending_state)
997 </pre>
998 <p>
999 This macro returns the currently pending <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.
1000 </p>
1001 <div class="variablelist"><table border="0">
1002 <col align="left" valign="top">
1003 <tbody><tr>
1004 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1005 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the pending state for.</td>
1006 </tr></tbody>
1007 </table></div>
1008 </div>
1009 <hr>
1010 <div class="refsect2">
1011 <a name="GST-STATE-RETURN:CAPS"></a><h3>GST_STATE_RETURN()</h3>
1012 <pre class="programlisting">#define GST_STATE_RETURN(elem)          (GST_ELEMENT_CAST(elem)-&gt;last_return)
1013 </pre>
1014 <p>
1015 This macro returns the last <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a> value.
1016 </p>
1017 <div class="variablelist"><table border="0">
1018 <col align="left" valign="top">
1019 <tbody><tr>
1020 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1021 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the last state result for.</td>
1022 </tr></tbody>
1023 </table></div>
1024 </div>
1025 <hr>
1026 <div class="refsect2">
1027 <a name="GST-STATE-TARGET:CAPS"></a><h3>GST_STATE_TARGET()</h3>
1028 <pre class="programlisting">#define GST_STATE_TARGET(elem)          (GST_ELEMENT_CAST(elem)-&gt;abidata.ABI.target_state)
1029 </pre>
1030 <p>
1031 This macro returns the target <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> of the element.
1032 </p>
1033 <div class="variablelist"><table border="0">
1034 <col align="left" valign="top">
1035 <tbody><tr>
1036 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1037 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the target state for.</td>
1038 </tr></tbody>
1039 </table></div>
1040 <p class="since">Since 0.10.13</p>
1041 </div>
1042 <hr>
1043 <div class="refsect2">
1044 <a name="GST-STATE-TRANSITION:CAPS"></a><h3>GST_STATE_TRANSITION()</h3>
1045 <pre class="programlisting">#define GST_STATE_TRANSITION(cur,next)          ((GstStateChange)(((cur)&lt;&lt;3)|(next)))
1046 </pre>
1047 <p>
1048 Given a current state <em class="parameter"><code>cur</code></em> and a next state <em class="parameter"><code>next</code></em>, calculate the associated
1049 <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a> transition.
1050 </p>
1051 <div class="variablelist"><table border="0">
1052 <col align="left" valign="top">
1053 <tbody>
1054 <tr>
1055 <td><p><span class="term"><em class="parameter"><code>cur</code></em> :</span></p></td>
1056 <td>A current state</td>
1057 </tr>
1058 <tr>
1059 <td><p><span class="term"><em class="parameter"><code>next</code></em> :</span></p></td>
1060 <td>A next state</td>
1061 </tr>
1062 </tbody>
1063 </table></div>
1064 </div>
1065 <hr>
1066 <div class="refsect2">
1067 <a name="GST-STATE-TRANSITION-CURRENT:CAPS"></a><h3>GST_STATE_TRANSITION_CURRENT()</h3>
1068 <pre class="programlisting">#define GST_STATE_TRANSITION_CURRENT(trans)     ((GstState)((trans)&gt;&gt;3))
1069 </pre>
1070 <p>
1071 Given a state transition <em class="parameter"><code>trans</code></em>, extract the current <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>.
1072 </p>
1073 <div class="variablelist"><table border="0">
1074 <col align="left" valign="top">
1075 <tbody><tr>
1076 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
1077 <td>A <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a>
1078 </td>
1079 </tr></tbody>
1080 </table></div>
1081 </div>
1082 <hr>
1083 <div class="refsect2">
1084 <a name="GST-STATE-TRANSITION-NEXT:CAPS"></a><h3>GST_STATE_TRANSITION_NEXT()</h3>
1085 <pre class="programlisting">#define GST_STATE_TRANSITION_NEXT(trans)        ((GstState)((trans)&amp;0x7))
1086 </pre>
1087 <p>
1088 Given a state transition <em class="parameter"><code>trans</code></em>, extract the next <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>.
1089 </p>
1090 <div class="variablelist"><table border="0">
1091 <col align="left" valign="top">
1092 <tbody><tr>
1093 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
1094 <td>A <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a>
1095 </td>
1096 </tr></tbody>
1097 </table></div>
1098 </div>
1099 <hr>
1100 <div class="refsect2">
1101 <a name="GST-STATE-GET-LOCK:CAPS"></a><h3>GST_STATE_GET_LOCK()</h3>
1102 <pre class="programlisting">#define GST_STATE_GET_LOCK(elem)               (GST_ELEMENT_CAST(elem)-&gt;state_lock)
1103 </pre>
1104 <p>
1105 Get a reference to the state lock of <em class="parameter"><code>elem</code></em>.
1106 This lock is used by the core.  It is taken while getting or setting
1107 the state, during state changes, and while finalizing.
1108 </p>
1109 <div class="variablelist"><table border="0">
1110 <col align="left" valign="top">
1111 <tbody><tr>
1112 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1113 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
1114 </td>
1115 </tr></tbody>
1116 </table></div>
1117 </div>
1118 <hr>
1119 <div class="refsect2">
1120 <a name="GST-STATE-GET-COND:CAPS"></a><h3>GST_STATE_GET_COND()</h3>
1121 <pre class="programlisting">#define GST_STATE_GET_COND(elem)               (GST_ELEMENT_CAST(elem)-&gt;state_cond)
1122 </pre>
1123 <p>
1124 Get the conditional used to signal the completion of a state change.
1125 </p>
1126 <div class="variablelist"><table border="0">
1127 <col align="left" valign="top">
1128 <tbody><tr>
1129 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1130 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
1131 </td>
1132 </tr></tbody>
1133 </table></div>
1134 </div>
1135 <hr>
1136 <div class="refsect2">
1137 <a name="GST-ELEMENT-NAME:CAPS"></a><h3>GST_ELEMENT_NAME()</h3>
1138 <pre class="programlisting">#define GST_ELEMENT_NAME(elem)                  (GST_OBJECT_NAME(elem))
1139 </pre>
1140 <p>
1141 Gets the name of this element. Use only in core as this is not
1142 ABI-compatible. Others use <a class="link" href="GstElement.html#gst-element-get-name" title="gst_element_get_name()"><code class="function">gst_element_get_name()</code></a>
1143 </p>
1144 <div class="variablelist"><table border="0">
1145 <col align="left" valign="top">
1146 <tbody><tr>
1147 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1148 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
1149 </tr></tbody>
1150 </table></div>
1151 </div>
1152 <hr>
1153 <div class="refsect2">
1154 <a name="GST-ELEMENT-PARENT:CAPS"></a><h3>GST_ELEMENT_PARENT()</h3>
1155 <pre class="programlisting">#define GST_ELEMENT_PARENT(elem)                (GST_ELEMENT_CAST(GST_OBJECT_PARENT(elem)))
1156 </pre>
1157 <p>
1158 Get the parent object of this element.
1159 </p>
1160 <div class="variablelist"><table border="0">
1161 <col align="left" valign="top">
1162 <tbody><tr>
1163 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1164 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
1165 </tr></tbody>
1166 </table></div>
1167 </div>
1168 <hr>
1169 <div class="refsect2">
1170 <a name="GST-ELEMENT-BUS:CAPS"></a><h3>GST_ELEMENT_BUS()</h3>
1171 <pre class="programlisting">#define GST_ELEMENT_BUS(elem)                   (GST_ELEMENT_CAST(elem)-&gt;bus)
1172 </pre>
1173 <p>
1174 Get the message bus of this element.
1175 </p>
1176 <div class="variablelist"><table border="0">
1177 <col align="left" valign="top">
1178 <tbody><tr>
1179 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1180 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
1181 </tr></tbody>
1182 </table></div>
1183 </div>
1184 <hr>
1185 <div class="refsect2">
1186 <a name="GST-ELEMENT-CLOCK:CAPS"></a><h3>GST_ELEMENT_CLOCK()</h3>
1187 <pre class="programlisting">#define GST_ELEMENT_CLOCK(elem)                 (GST_ELEMENT_CAST(elem)-&gt;clock)
1188 </pre>
1189 <p>
1190 Get the clock of this element
1191 </p>
1192 <div class="variablelist"><table border="0">
1193 <col align="left" valign="top">
1194 <tbody><tr>
1195 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1196 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
1197 </tr></tbody>
1198 </table></div>
1199 </div>
1200 <hr>
1201 <div class="refsect2">
1202 <a name="GST-ELEMENT-PADS:CAPS"></a><h3>GST_ELEMENT_PADS()</h3>
1203 <pre class="programlisting">#define GST_ELEMENT_PADS(elem)                  (GST_ELEMENT_CAST(elem)-&gt;pads)
1204 </pre>
1205 <p>
1206 Get the pads of this elements.
1207 </p>
1208 <div class="variablelist"><table border="0">
1209 <col align="left" valign="top">
1210 <tbody><tr>
1211 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1212 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
1213 </tr></tbody>
1214 </table></div>
1215 </div>
1216 <hr>
1217 <div class="refsect2">
1218 <a name="GST-ELEMENT-START-TIME:CAPS"></a><h3>GST_ELEMENT_START_TIME()</h3>
1219 <pre class="programlisting">#define GST_ELEMENT_START_TIME(elem)            (GST_ELEMENT_CAST(elem)-&gt;abidata.ABI.start_time)
1220 </pre>
1221 <p>
1222 This macro returns the start_time of the <em class="parameter"><code>elem</code></em>. The start_time is the
1223 running_time of the pipeline when the element went to PAUSED.
1224 </p>
1225 <div class="variablelist"><table border="0">
1226 <col align="left" valign="top">
1227 <tbody><tr>
1228 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1229 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the start time for.</td>
1230 </tr></tbody>
1231 </table></div>
1232 <p class="since">Since 0.10.24</p>
1233 </div>
1234 <hr>
1235 <div class="refsect2">
1236 <a name="GST-ELEMENT-ERROR:CAPS"></a><h3>GST_ELEMENT_ERROR()</h3>
1237 <pre class="programlisting">#define             GST_ELEMENT_ERROR(el, domain, code, text, debug)</pre>
1238 <p>
1239 Utility function that elements can use in case they encountered a fatal
1240 data processing error. The pipeline will post an error message and the
1241 application will be requested to stop further media processing.
1242 </p>
1243 <div class="variablelist"><table border="0">
1244 <col align="left" valign="top">
1245 <tbody>
1246 <tr>
1247 <td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
1248 <td>the element that generates the error</td>
1249 </tr>
1250 <tr>
1251 <td><p><span class="term"><em class="parameter"><code>domain</code></em> :</span></p></td>
1252 <td>like CORE, LIBRARY, RESOURCE or STREAM (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</td>
1253 </tr>
1254 <tr>
1255 <td><p><span class="term"><em class="parameter"><code>code</code></em> :</span></p></td>
1256 <td>error code defined for that domain (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</td>
1257 </tr>
1258 <tr>
1259 <td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
1260 <td>the message to display (format string and args enclosed in
1261 parentheses)</td>
1262 </tr>
1263 <tr>
1264 <td><p><span class="term"><em class="parameter"><code>debug</code></em> :</span></p></td>
1265 <td>debugging information for the message (format string and args
1266 enclosed in parentheses)</td>
1267 </tr>
1268 </tbody>
1269 </table></div>
1270 </div>
1271 <hr>
1272 <div class="refsect2">
1273 <a name="GST-ELEMENT-WARNING:CAPS"></a><h3>GST_ELEMENT_WARNING()</h3>
1274 <pre class="programlisting">#define             GST_ELEMENT_WARNING(el, domain, code, text, debug)</pre>
1275 <p>
1276 Utility function that elements can use in case they encountered a non-fatal
1277 data processing problem. The pipeline will post a warning message and the
1278 application will be informed.
1279 </p>
1280 <div class="variablelist"><table border="0">
1281 <col align="left" valign="top">
1282 <tbody>
1283 <tr>
1284 <td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
1285 <td>the element that generates the warning</td>
1286 </tr>
1287 <tr>
1288 <td><p><span class="term"><em class="parameter"><code>domain</code></em> :</span></p></td>
1289 <td>like CORE, LIBRARY, RESOURCE or STREAM (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</td>
1290 </tr>
1291 <tr>
1292 <td><p><span class="term"><em class="parameter"><code>code</code></em> :</span></p></td>
1293 <td>error code defined for that domain (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</td>
1294 </tr>
1295 <tr>
1296 <td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
1297 <td>the message to display (format string and args enclosed in
1298 parentheses)</td>
1299 </tr>
1300 <tr>
1301 <td><p><span class="term"><em class="parameter"><code>debug</code></em> :</span></p></td>
1302 <td>debugging information for the message (format string and args
1303 enclosed in parentheses)</td>
1304 </tr>
1305 </tbody>
1306 </table></div>
1307 </div>
1308 <hr>
1309 <div class="refsect2">
1310 <a name="GST-ELEMENT-INFO:CAPS"></a><h3>GST_ELEMENT_INFO()</h3>
1311 <pre class="programlisting">#define             GST_ELEMENT_INFO(el, domain, code, text, debug)</pre>
1312 <p>
1313 Utility function that elements can use in case they want to inform
1314 the application of something noteworthy that is not an error.
1315 The pipeline will post a info message and the
1316 application will be informed.
1317 </p>
1318 <div class="variablelist"><table border="0">
1319 <col align="left" valign="top">
1320 <tbody>
1321 <tr>
1322 <td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
1323 <td>the element that generates the information</td>
1324 </tr>
1325 <tr>
1326 <td><p><span class="term"><em class="parameter"><code>domain</code></em> :</span></p></td>
1327 <td>like CORE, LIBRARY, RESOURCE or STREAM (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</td>
1328 </tr>
1329 <tr>
1330 <td><p><span class="term"><em class="parameter"><code>code</code></em> :</span></p></td>
1331 <td>error code defined for that domain (see <a class="link" href="gstreamer-GstGError.html" title="GstGError"><span class="type">gstreamer-GstGError</span></a>)</td>
1332 </tr>
1333 <tr>
1334 <td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
1335 <td>the message to display (format string and args enclosed in
1336 parentheses)</td>
1337 </tr>
1338 <tr>
1339 <td><p><span class="term"><em class="parameter"><code>debug</code></em> :</span></p></td>
1340 <td>debugging information for the message (format string and args
1341 enclosed in parentheses)</td>
1342 </tr>
1343 </tbody>
1344 </table></div>
1345 <p class="since">Since 0.10.12</p>
1346 </div>
1347 <hr>
1348 <div class="refsect2">
1349 <a name="GST-ELEMENT-IS-LOCKED-STATE:CAPS"></a><h3>GST_ELEMENT_IS_LOCKED_STATE()</h3>
1350 <pre class="programlisting">#define GST_ELEMENT_IS_LOCKED_STATE(elem)        (GST_OBJECT_FLAG_IS_SET(elem,GST_ELEMENT_LOCKED_STATE))
1351 </pre>
1352 <p>
1353 Check if the element is in the locked state and therefore will ignore state
1354 changes from its parent object.
1355 </p>
1356 <div class="variablelist"><table border="0">
1357 <col align="left" valign="top">
1358 <tbody><tr>
1359 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
1360 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
1361 </tr></tbody>
1362 </table></div>
1363 </div>
1364 <hr>
1365 <div class="refsect2">
1366 <a name="gst-element-class-add-pad-template"></a><h3>gst_element_class_add_pad_template ()</h3>
1367 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_add_pad_template  (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
1368                                                          <em class="parameter"><code><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> *templ</code></em>);</pre>
1369 <p>
1370 Adds a padtemplate to an element class. This is mainly used in the _base_init
1371 functions of classes.
1372 </p>
1373 <div class="variablelist"><table border="0">
1374 <col align="left" valign="top">
1375 <tbody>
1376 <tr>
1377 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
1378 <td>the <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> to add the pad template to.</td>
1379 </tr>
1380 <tr>
1381 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
1382 <td>a <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> to add to the element class. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1383 </td>
1384 </tr>
1385 </tbody>
1386 </table></div>
1387 </div>
1388 <hr>
1389 <div class="refsect2">
1390 <a name="gst-element-class-get-pad-template"></a><h3>gst_element_class_get_pad_template ()</h3>
1391 <pre class="programlisting"><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="returnvalue">GstPadTemplate</span></a> *    gst_element_class_get_pad_template  (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *element_class</code></em>,
1392                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
1393 <p>
1394 Retrieves a padtemplate from <em class="parameter"><code>element_class</code></em> with the given name.
1395 </p>
1396 <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
1397 <h3 class="title">Note</h3>If you use this function in the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> of an object class
1398 that has subclasses, make sure to pass the g_class parameter of the
1399 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> here.</div>
1400 <p>
1401 </p>
1402 <div class="variablelist"><table border="0">
1403 <col align="left" valign="top">
1404 <tbody>
1405 <tr>
1406 <td><p><span class="term"><em class="parameter"><code>element_class</code></em> :</span></p></td>
1407 <td>a <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> to get the pad template of.</td>
1408 </tr>
1409 <tr>
1410 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
1411 <td>the name of the <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> to get.</td>
1412 </tr>
1413 <tr>
1414 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1415 <td>the <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> with the given name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
1416 if none was found. No unreferencing is necessary. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1417 </td>
1418 </tr>
1419 </tbody>
1420 </table></div>
1421 </div>
1422 <hr>
1423 <div class="refsect2">
1424 <a name="gst-element-class-get-pad-template-list"></a><h3>gst_element_class_get_pad_template_list ()</h3>
1425 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_element_class_get_pad_template_list
1426                                                         (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *element_class</code></em>);</pre>
1427 <p>
1428 Retrieves a list of the pad templates associated with <em class="parameter"><code>element_class</code></em>. The
1429 list must not be modified by the calling code.
1430 </p>
1431 <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
1432 <h3 class="title">Note</h3>If you use this function in the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> of an object class
1433 that has subclasses, make sure to pass the g_class parameter of the
1434 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> here.</div>
1435 <p>
1436 </p>
1437 <div class="variablelist"><table border="0">
1438 <col align="left" valign="top">
1439 <tbody>
1440 <tr>
1441 <td><p><span class="term"><em class="parameter"><code>element_class</code></em> :</span></p></td>
1442 <td>a <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> to get pad templates of.</td>
1443 </tr>
1444 <tr>
1445 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1446 <td>the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
1447 pad templates. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.PadTemplate]</span>
1448 </td>
1449 </tr>
1450 </tbody>
1451 </table></div>
1452 </div>
1453 <hr>
1454 <div class="refsect2">
1455 <a name="gst-element-class-install-std-props"></a><h3>gst_element_class_install_std_props ()</h3>
1456 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_install_std_props (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
1457                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_name</code></em>,
1458                                                          <em class="parameter"><code>...</code></em>);</pre>
1459 <p>
1460 Adds a list of standardized properties with types to the <em class="parameter"><code>klass</code></em>.
1461 the id is for the property switch in your get_prop method, and
1462 the flags determine readability / writeability.
1463 </p>
1464 <div class="variablelist"><table border="0">
1465 <col align="left" valign="top">
1466 <tbody>
1467 <tr>
1468 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
1469 <td>the <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> to add the properties to.</td>
1470 </tr>
1471 <tr>
1472 <td><p><span class="term"><em class="parameter"><code>first_name</code></em> :</span></p></td>
1473 <td>the name of the first property.
1474 in a NULL terminated</td>
1475 </tr>
1476 <tr>
1477 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
1478 <td>the id and flags of the first property, followed by
1479 further 'name', 'id', 'flags' triplets and terminated by NULL.</td>
1480 </tr>
1481 </tbody>
1482 </table></div>
1483 </div>
1484 <hr>
1485 <div class="refsect2">
1486 <a name="gst-element-class-set-details"></a><h3>gst_element_class_set_details ()</h3>
1487 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_set_details       (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
1488                                                          <em class="parameter"><code>const <a class="link" href="GstElementFactory.html#GstElementDetails" title="struct GstElementDetails"><span class="type">GstElementDetails</span></a> *details</code></em>);</pre>
1489 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1490 <h3 class="title">Warning</h3>
1491 <p><code class="literal">gst_element_class_set_details</code> is deprecated and should not be used in newly-written code. Use <a class="link" href="GstElement.html#gst-element-class-set-details-simple" title="gst_element_class_set_details_simple ()"><code class="function">gst_element_class_set_details_simple()</code></a> instead.</p>
1492 </div>
1493 <p>
1494 Sets the detailed information for a <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a>.
1495 </p>
1496 <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
1497 <h3 class="title">Note</h3>This function is for use in _base_init functions only.</div>
1498 <p>
1499 </p>
1500 <p>
1501 The <em class="parameter"><code>details</code></em> are copied.
1502 </p>
1503 <div class="variablelist"><table border="0">
1504 <col align="left" valign="top">
1505 <tbody>
1506 <tr>
1507 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
1508 <td>class to set details for</td>
1509 </tr>
1510 <tr>
1511 <td><p><span class="term"><em class="parameter"><code>details</code></em> :</span></p></td>
1512 <td>details to set</td>
1513 </tr>
1514 </tbody>
1515 </table></div>
1516 </div>
1517 <hr>
1518 <div class="refsect2">
1519 <a name="gst-element-class-set-details-simple"></a><h3>gst_element_class_set_details_simple ()</h3>
1520 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_set_details_simple
1521                                                         (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
1522                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
1523                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
1524                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
1525                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);</pre>
1526 <p>
1527 Sets the detailed information for a <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a>. Simpler version of
1528 <a class="link" href="GstElement.html#gst-element-class-set-details" title="gst_element_class_set_details ()"><code class="function">gst_element_class_set_details()</code></a> that generates less linker overhead.
1529 </p>
1530 <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
1531 <h3 class="title">Note</h3>This function is for use in _base_init functions only.</div>
1532 <p>
1533 </p>
1534 <p>
1535 The detail parameter strings are copied into the <a class="link" href="GstElementFactory.html#GstElementDetails" title="struct GstElementDetails"><span class="type">GstElementDetails</span></a> for
1536 the element class.
1537 </p>
1538 <div class="variablelist"><table border="0">
1539 <col align="left" valign="top">
1540 <tbody>
1541 <tr>
1542 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
1543 <td>class to set details for</td>
1544 </tr>
1545 <tr>
1546 <td><p><span class="term"><em class="parameter"><code>longname</code></em> :</span></p></td>
1547 <td>The long English name of the element. E.g. "File Sink"</td>
1548 </tr>
1549 <tr>
1550 <td><p><span class="term"><em class="parameter"><code>classification</code></em> :</span></p></td>
1551 <td>String describing the type of element, as an unordered list
1552 separated with slashes ('/'). See draft-klass.txt of the design docs
1553 for more details and common types. E.g: "Sink/File"</td>
1554 </tr>
1555 <tr>
1556 <td><p><span class="term"><em class="parameter"><code>description</code></em> :</span></p></td>
1557 <td>Sentence describing the purpose of the element.
1558 E.g: "Write stream to a file"</td>
1559 </tr>
1560 <tr>
1561 <td><p><span class="term"><em class="parameter"><code>author</code></em> :</span></p></td>
1562 <td>Name and contact details of the author(s). Use \n to separate
1563 multiple author details. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</td>
1564 </tr>
1565 </tbody>
1566 </table></div>
1567 <p class="since">Since 0.10.14</p>
1568 </div>
1569 <hr>
1570 <div class="refsect2">
1571 <a name="gst-element-class-set-documentation-uri"></a><h3>gst_element_class_set_documentation_uri ()</h3>
1572 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_set_documentation_uri
1573                                                         (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
1574                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
1575 <p>
1576 Set uri pointing to user documentation. Applications can use this to show
1577 help for e.g. effects to users.
1578 </p>
1579 <div class="variablelist"><table border="0">
1580 <col align="left" valign="top">
1581 <tbody>
1582 <tr>
1583 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
1584 <td>class to set details for</td>
1585 </tr>
1586 <tr>
1587 <td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
1588 <td>uri of element documentation</td>
1589 </tr>
1590 </tbody>
1591 </table></div>
1592 <p class="since">Since 0.10.31</p>
1593 </div>
1594 <hr>
1595 <div class="refsect2">
1596 <a name="gst-element-class-set-icon-name"></a><h3>gst_element_class_set_icon_name ()</h3>
1597 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_set_icon_name     (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
1598                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
1599 <p>
1600 Elements that bridge to certain other products can include an icon of that
1601 used product. Application can show the icon in menus/selectors to help
1602 identifying specific elements.
1603 </p>
1604 <div class="variablelist"><table border="0">
1605 <col align="left" valign="top">
1606 <tbody>
1607 <tr>
1608 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
1609 <td>class to set details for</td>
1610 </tr>
1611 <tr>
1612 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
1613 <td>name of an icon</td>
1614 </tr>
1615 </tbody>
1616 </table></div>
1617 <p class="since">Since 0.10.31</p>
1618 </div>
1619 <hr>
1620 <div class="refsect2">
1621 <a name="gst-element-add-pad"></a><h3>gst_element_add_pad ()</h3>
1622 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_add_pad                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
1623                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
1624 <p>
1625 Adds a pad (link point) to <em class="parameter"><code>element</code></em>. <em class="parameter"><code>pad</code></em>'s parent will be set to <em class="parameter"><code>element</code></em>;
1626 see <a class="link" href="GstObject.html#gst-object-set-parent" title="gst_object_set_parent ()"><code class="function">gst_object_set_parent()</code></a> for refcounting information.
1627 </p>
1628 <p>
1629 Pads are not automatically activated so elements should perform the needed
1630 steps to activate the pad in case this pad is added in the PAUSED or PLAYING
1631 state. See <a class="link" href="GstPad.html#gst-pad-set-active" title="gst_pad_set_active ()"><code class="function">gst_pad_set_active()</code></a> for more information about activating pads.
1632 </p>
1633 <p>
1634 The pad and the element should be unlocked when calling this function.
1635 </p>
1636 <p>
1637 This function will emit the <a class="link" href="GstElement.html#GstElement-pad-added" title='The "pad-added" signal'><span class="type">"pad-added"</span></a> signal on the element.
1638 </p>
1639 <div class="variablelist"><table border="0">
1640 <col align="left" valign="top">
1641 <tbody>
1642 <tr>
1643 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1644 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to add the pad to.</td>
1645 </tr>
1646 <tr>
1647 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
1648 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to add to the element. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1649 </td>
1650 </tr>
1651 <tr>
1652 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1653 <td>
1654 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the pad could be added. This function can fail when
1655 a pad with the same name already existed or the pad already had another
1656 parent.
1657 MT safe.</td>
1658 </tr>
1659 </tbody>
1660 </table></div>
1661 </div>
1662 <hr>
1663 <div class="refsect2">
1664 <a name="gst-element-get-pad"></a><h3>gst_element_get_pad ()</h3>
1665 <pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            gst_element_get_pad                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
1666                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
1667 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1668 <h3 class="title">Warning</h3>
1669 <p><code class="literal">gst_element_get_pad</code> is deprecated and should not be used in newly-written code. This function is deprecated as it's unclear if the reference
1670 to the result pad should be released with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> in case of a static pad
1671 or <a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()"><code class="function">gst_element_release_request_pad()</code></a> in case of a request pad.
1672 Use <a class="link" href="GstElement.html#gst-element-get-static-pad" title="gst_element_get_static_pad ()"><code class="function">gst_element_get_static_pad()</code></a> or <a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()"><code class="function">gst_element_get_request_pad()</code></a> instead.</p>
1673 </div>
1674 <p>
1675 Retrieves a pad from <em class="parameter"><code>element</code></em> by name. Tries <a class="link" href="GstElement.html#gst-element-get-static-pad" title="gst_element_get_static_pad ()"><code class="function">gst_element_get_static_pad()</code></a>
1676 first, then <a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()"><code class="function">gst_element_get_request_pad()</code></a>.
1677 </p>
1678 <div class="variablelist"><table border="0">
1679 <col align="left" valign="top">
1680 <tbody>
1681 <tr>
1682 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1683 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
1684 </tr>
1685 <tr>
1686 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
1687 <td>the name of the pad to retrieve.</td>
1688 </tr>
1689 <tr>
1690 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1691 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if found, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref or Release after usage,
1692 depending on the type of the pad. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1693 </td>
1694 </tr>
1695 </tbody>
1696 </table></div>
1697 </div>
1698 <hr>
1699 <div class="refsect2">
1700 <a name="gst-element-create-all-pads"></a><h3>gst_element_create_all_pads ()</h3>
1701 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_create_all_pads         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
1702 <p>
1703 Creates a pad for each pad template that is always available.
1704 This function is only useful during object initialization of
1705 subclasses of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.
1706 </p>
1707 <div class="variablelist"><table border="0">
1708 <col align="left" valign="top">
1709 <tbody><tr>
1710 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1711 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to create pads for. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1712 </td>
1713 </tr></tbody>
1714 </table></div>
1715 </div>
1716 <hr>
1717 <div class="refsect2">
1718 <a name="gst-element-get-compatible-pad"></a><h3>gst_element_get_compatible_pad ()</h3>
1719 <pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            gst_element_get_compatible_pad      (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
1720                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
1721                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
1722 <p>
1723 Looks for an unlinked pad to which the given pad can link. It is not
1724 guaranteed that linking the pads will work, though it should work in most
1725 cases.
1726 </p>
1727 <p>
1728 This function will first attempt to find a compatible unlinked ALWAYS pad,
1729 and if none can be found, it will request a compatible REQUEST pad by looking
1730 at the templates of <em class="parameter"><code>element</code></em>.
1731 </p>
1732 <div class="variablelist"><table border="0">
1733 <col align="left" valign="top">
1734 <tbody>
1735 <tr>
1736 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1737 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> in which the pad should be found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1738 </td>
1739 </tr>
1740 <tr>
1741 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
1742 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to find a compatible one for. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1743 </td>
1744 </tr>
1745 <tr>
1746 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
1747 <td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to use as a filter.</td>
1748 </tr>
1749 <tr>
1750 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1751 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to which a link can be made, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
1752 if one cannot be found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1753 </td>
1754 </tr>
1755 </tbody>
1756 </table></div>
1757 </div>
1758 <hr>
1759 <div class="refsect2">
1760 <a name="gst-element-get-compatible-pad-template"></a><h3>gst_element_get_compatible_pad_template ()</h3>
1761 <pre class="programlisting"><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="returnvalue">GstPadTemplate</span></a> *    gst_element_get_compatible_pad_template
1762                                                         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
1763                                                          <em class="parameter"><code><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> *compattempl</code></em>);</pre>
1764 <p>
1765 Retrieves a pad template from <em class="parameter"><code>element</code></em> that is compatible with <em class="parameter"><code>compattempl</code></em>.
1766 Pads from compatible templates can be linked together.
1767 </p>
1768 <div class="variablelist"><table border="0">
1769 <col align="left" valign="top">
1770 <tbody>
1771 <tr>
1772 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1773 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to get a compatible pad template for. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1774 </td>
1775 </tr>
1776 <tr>
1777 <td><p><span class="term"><em class="parameter"><code>compattempl</code></em> :</span></p></td>
1778 <td>the <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> to find a compatible
1779 template for. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1780 </td>
1781 </tr>
1782 <tr>
1783 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1784 <td>a compatible <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>, or NULL if none
1785 was found. No unreferencing is necessary. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1786 </td>
1787 </tr>
1788 </tbody>
1789 </table></div>
1790 </div>
1791 <hr>
1792 <div class="refsect2">
1793 <a name="gst-element-get-request-pad"></a><h3>gst_element_get_request_pad ()</h3>
1794 <pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            gst_element_get_request_pad         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
1795                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
1796 <p>
1797 Retrieves a pad from the element by name (e.g. "src_%d"). This version only
1798 retrieves request pads. The pad should be released with
1799 <a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()"><code class="function">gst_element_release_request_pad()</code></a>.
1800 </p>
1801 <p>
1802 This method is slow and will be deprecated in the future. New code should
1803 use <a class="link" href="GstElement.html#gst-element-request-pad" title="gst_element_request_pad ()"><code class="function">gst_element_request_pad()</code></a> with the requested template.
1804 </p>
1805 <div class="variablelist"><table border="0">
1806 <col align="left" valign="top">
1807 <tbody>
1808 <tr>
1809 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1810 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to find a request pad of.</td>
1811 </tr>
1812 <tr>
1813 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
1814 <td>the name of the request <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to retrieve.</td>
1815 </tr>
1816 <tr>
1817 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1818 <td>requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if found, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1819 Release after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1820 </td>
1821 </tr>
1822 </tbody>
1823 </table></div>
1824 </div>
1825 <hr>
1826 <div class="refsect2">
1827 <a name="gst-element-get-static-pad"></a><h3>gst_element_get_static_pad ()</h3>
1828 <pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            gst_element_get_static_pad          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
1829                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
1830 <p>
1831 Retrieves a pad from <em class="parameter"><code>element</code></em> by name. This version only retrieves
1832 already-existing (i.e. 'static') pads.
1833 </p>
1834 <div class="variablelist"><table border="0">
1835 <col align="left" valign="top">
1836 <tbody>
1837 <tr>
1838 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1839 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to find a static pad of.</td>
1840 </tr>
1841 <tr>
1842 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
1843 <td>the name of the static <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to retrieve.</td>
1844 </tr>
1845 <tr>
1846 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1847 <td>the requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if found, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1848 unref after usage.
1849 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1850 </td>
1851 </tr>
1852 </tbody>
1853 </table></div>
1854 </div>
1855 <hr>
1856 <div class="refsect2">
1857 <a name="gst-element-request-pad"></a><h3>gst_element_request_pad ()</h3>
1858 <pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            gst_element_request_pad             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
1859                                                          <em class="parameter"><code><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> *templ</code></em>,
1860                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
1861                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
1862 <p>
1863 Retrieves a request pad from the element according to the provided template.
1864 Pad templates can be looked up using
1865 <a class="link" href="GstElementFactory.html#gst-element-factory-get-static-pad-templates" title="gst_element_factory_get_static_pad_templates ()"><code class="function">gst_element_factory_get_static_pad_templates()</code></a>.
1866 </p>
1867 <p>
1868 If the <em class="parameter"><code>caps</code></em> are specified and the element implements thew new
1869 request_new_pad_full virtual method, the element will use them to select
1870 which pad to create.
1871 </p>
1872 <p>
1873 The pad should be released with <a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()"><code class="function">gst_element_release_request_pad()</code></a>.
1874 </p>
1875 <div class="variablelist"><table border="0">
1876 <col align="left" valign="top">
1877 <tbody>
1878 <tr>
1879 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1880 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to find a request pad of.</td>
1881 </tr>
1882 <tr>
1883 <td><p><span class="term"><em class="parameter"><code>templ</code></em> :</span></p></td>
1884 <td>a <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> of which we want a pad of.</td>
1885 </tr>
1886 <tr>
1887 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
1888 <td>the name of the request <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>
1889 to retrieve. Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
1890 </td>
1891 </tr>
1892 <tr>
1893 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
1894 <td>the caps of the pad we want to
1895 request. Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
1896 </td>
1897 </tr>
1898 <tr>
1899 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1900 <td>requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if found, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1901 Release after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
1902 </td>
1903 </tr>
1904 </tbody>
1905 </table></div>
1906 <p class="since">Since 0.10.32</p>
1907 </div>
1908 <hr>
1909 <div class="refsect2">
1910 <a name="gst-element-no-more-pads"></a><h3>gst_element_no_more_pads ()</h3>
1911 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_no_more_pads            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
1912 <p>
1913 Use this function to signal that the element does not expect any more pads
1914 to show up in the current pipeline. This function should be called whenever
1915 pads have been added by the element itself. Elements with <a class="link" href="GstPadTemplate.html#GST-PAD-SOMETIMES:CAPS"><span class="type">GST_PAD_SOMETIMES</span></a>
1916 pad templates use this in combination with autopluggers to figure out that
1917 the element is done initializing its pads.
1918 </p>
1919 <p>
1920 This function emits the <a class="link" href="GstElement.html#GstElement-no-more-pads" title='The "no-more-pads" signal'><span class="type">"no-more-pads"</span></a> signal.
1921 </p>
1922 <p>
1923 MT safe.
1924 </p>
1925 <div class="variablelist"><table border="0">
1926 <col align="left" valign="top">
1927 <tbody><tr>
1928 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1929 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
1930 </td>
1931 </tr></tbody>
1932 </table></div>
1933 </div>
1934 <hr>
1935 <div class="refsect2">
1936 <a name="gst-element-release-request-pad"></a><h3>gst_element_release_request_pad ()</h3>
1937 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_release_request_pad     (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
1938                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
1939 <p>
1940 Makes the element free the previously requested pad as obtained
1941 with <a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()"><code class="function">gst_element_get_request_pad()</code></a>.
1942 </p>
1943 <p>
1944 This does not unref the pad. If the pad was created by using
1945 <a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()"><code class="function">gst_element_get_request_pad()</code></a>, <a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()"><code class="function">gst_element_release_request_pad()</code></a> needs to be
1946 followed by <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> to free the <em class="parameter"><code>pad</code></em>.
1947 </p>
1948 <p>
1949 MT safe.
1950 </p>
1951 <div class="variablelist"><table border="0">
1952 <col align="left" valign="top">
1953 <tbody>
1954 <tr>
1955 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1956 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to release the request pad of.</td>
1957 </tr>
1958 <tr>
1959 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
1960 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to release.</td>
1961 </tr>
1962 </tbody>
1963 </table></div>
1964 </div>
1965 <hr>
1966 <div class="refsect2">
1967 <a name="gst-element-remove-pad"></a><h3>gst_element_remove_pad ()</h3>
1968 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_remove_pad              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
1969                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
1970 <p>
1971 Removes <em class="parameter"><code>pad</code></em> from <em class="parameter"><code>element</code></em>. <em class="parameter"><code>pad</code></em> will be destroyed if it has not been
1972 referenced elsewhere using <a class="link" href="GstObject.html#gst-object-unparent" title="gst_object_unparent ()"><code class="function">gst_object_unparent()</code></a>.
1973 </p>
1974 <p>
1975 This function is used by plugin developers and should not be used
1976 by applications. Pads that were dynamically requested from elements
1977 with <a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()"><code class="function">gst_element_get_request_pad()</code></a> should be released with the
1978 <a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()"><code class="function">gst_element_release_request_pad()</code></a> function instead.
1979 </p>
1980 <p>
1981 Pads are not automatically deactivated so elements should perform the needed
1982 steps to deactivate the pad in case this pad is removed in the PAUSED or
1983 PLAYING state. See <a class="link" href="GstPad.html#gst-pad-set-active" title="gst_pad_set_active ()"><code class="function">gst_pad_set_active()</code></a> for more information about
1984 deactivating pads.
1985 </p>
1986 <p>
1987 The pad and the element should be unlocked when calling this function.
1988 </p>
1989 <p>
1990 This function will emit the <a class="link" href="GstElement.html#GstElement-pad-removed" title='The "pad-removed" signal'><span class="type">"pad-removed"</span></a> signal on the element.
1991 </p>
1992 <div class="variablelist"><table border="0">
1993 <col align="left" valign="top">
1994 <tbody>
1995 <tr>
1996 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1997 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to remove pad from.</td>
1998 </tr>
1999 <tr>
2000 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
2001 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to remove from the element. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2002 </td>
2003 </tr>
2004 <tr>
2005 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2006 <td>
2007 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the pad could be removed. Can return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the
2008 pad does not belong to the provided element.
2009 MT safe.</td>
2010 </tr>
2011 </tbody>
2012 </table></div>
2013 </div>
2014 <hr>
2015 <div class="refsect2">
2016 <a name="gst-element-iterate-pads"></a><h3>gst_element_iterate_pads ()</h3>
2017 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_element_iterate_pads            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2018 <p>
2019 Retrieves an iterator of <em class="parameter"><code>element</code></em>'s pads. The iterator should
2020 be freed after usage. Also more specialized iterators exists such as
2021 <a class="link" href="GstElement.html#gst-element-iterate-src-pads" title="gst_element_iterate_src_pads ()"><code class="function">gst_element_iterate_src_pads()</code></a> or <a class="link" href="GstElement.html#gst-element-iterate-sink-pads" title="gst_element_iterate_sink_pads ()"><code class="function">gst_element_iterate_sink_pads()</code></a>.
2022 </p>
2023 <div class="variablelist"><table border="0">
2024 <col align="left" valign="top">
2025 <tbody>
2026 <tr>
2027 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2028 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to iterate pads of.</td>
2029 </tr>
2030 <tr>
2031 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2032 <td>the <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>. Unref each pad
2033 after use.
2034 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2035 </td>
2036 </tr>
2037 </tbody>
2038 </table></div>
2039 </div>
2040 <hr>
2041 <div class="refsect2">
2042 <a name="gst-element-iterate-sink-pads"></a><h3>gst_element_iterate_sink_pads ()</h3>
2043 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_element_iterate_sink_pads       (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2044 <p>
2045 Retrieves an iterator of <em class="parameter"><code>element</code></em>'s sink pads.
2046 </p>
2047 <div class="variablelist"><table border="0">
2048 <col align="left" valign="top">
2049 <tbody>
2050 <tr>
2051 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2052 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
2053 </tr>
2054 <tr>
2055 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2056 <td>the <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>. Unref each pad
2057 after use.
2058 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2059 </td>
2060 </tr>
2061 </tbody>
2062 </table></div>
2063 </div>
2064 <hr>
2065 <div class="refsect2">
2066 <a name="gst-element-iterate-src-pads"></a><h3>gst_element_iterate_src_pads ()</h3>
2067 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_element_iterate_src_pads        (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2068 <p>
2069 Retrieves an iterator of <em class="parameter"><code>element</code></em>'s source pads.
2070 </p>
2071 <div class="variablelist"><table border="0">
2072 <col align="left" valign="top">
2073 <tbody>
2074 <tr>
2075 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2076 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
2077 </tr>
2078 <tr>
2079 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2080 <td>the <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>. Unref each pad
2081 after use.
2082 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2083 </td>
2084 </tr>
2085 </tbody>
2086 </table></div>
2087 </div>
2088 <hr>
2089 <div class="refsect2">
2090 <a name="gst-element-link"></a><h3>gst_element_link ()</h3>
2091 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_link                    (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
2092                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>);</pre>
2093 <p>
2094 Links <em class="parameter"><code>src</code></em> to <em class="parameter"><code>dest</code></em>. The link must be from source to
2095 destination; the other direction will not be tried. The function looks for
2096 existing pads that aren't linked yet. It will request new pads if necessary.
2097 Such pads need to be released manually when unlinking.
2098 If multiple links are possible, only one is established.
2099 </p>
2100 <p>
2101 Make sure you have added your elements to a bin or pipeline with
2102 <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> before trying to link them.
2103 </p>
2104 <div class="variablelist"><table border="0">
2105 <col align="left" valign="top">
2106 <tbody>
2107 <tr>
2108 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
2109 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the source pad. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2110 </td>
2111 </tr>
2112 <tr>
2113 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
2114 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the destination pad. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2115 </td>
2116 </tr>
2117 <tr>
2118 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2119 <td>TRUE if the elements could be linked, FALSE otherwise.</td>
2120 </tr>
2121 </tbody>
2122 </table></div>
2123 </div>
2124 <hr>
2125 <div class="refsect2">
2126 <a name="gst-element-unlink"></a><h3>gst_element_unlink ()</h3>
2127 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_unlink                  (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
2128                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>);</pre>
2129 <p>
2130 Unlinks all source pads of the source element with all sink pads
2131 of the sink element to which they are linked.
2132 </p>
2133 <p>
2134 If the link has been made using <a class="link" href="GstElement.html#gst-element-link" title="gst_element_link ()"><code class="function">gst_element_link()</code></a>, it could have created an
2135 requestpad, which has to be released using <a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()"><code class="function">gst_element_release_request_pad()</code></a>.
2136 </p>
2137 <div class="variablelist"><table border="0">
2138 <col align="left" valign="top">
2139 <tbody>
2140 <tr>
2141 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
2142 <td>the source <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to unlink. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2143 </td>
2144 </tr>
2145 <tr>
2146 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
2147 <td>the sink <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to unlink. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2148 </td>
2149 </tr>
2150 </tbody>
2151 </table></div>
2152 </div>
2153 <hr>
2154 <div class="refsect2">
2155 <a name="gst-element-link-many"></a><h3>gst_element_link_many ()</h3>
2156 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_link_many               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_1</code></em>,
2157                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_2</code></em>,
2158                                                          <em class="parameter"><code>...</code></em>);</pre>
2159 <p>
2160 Chain together a series of elements. Uses <a class="link" href="GstElement.html#gst-element-link" title="gst_element_link ()"><code class="function">gst_element_link()</code></a>.
2161 Make sure you have added your elements to a bin or pipeline with
2162 <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> before trying to link them.
2163 </p>
2164 <div class="variablelist"><table border="0">
2165 <col align="left" valign="top">
2166 <tbody>
2167 <tr>
2168 <td><p><span class="term"><em class="parameter"><code>element_1</code></em> :</span></p></td>
2169 <td>the first <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> in the link chain. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2170 </td>
2171 </tr>
2172 <tr>
2173 <td><p><span class="term"><em class="parameter"><code>element_2</code></em> :</span></p></td>
2174 <td>the second <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> in the link chain. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2175 </td>
2176 </tr>
2177 <tr>
2178 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
2179 <td>the NULL-terminated list of elements to link in order.</td>
2180 </tr>
2181 <tr>
2182 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2183 <td>TRUE on success, FALSE otherwise.</td>
2184 </tr>
2185 </tbody>
2186 </table></div>
2187 </div>
2188 <hr>
2189 <div class="refsect2">
2190 <a name="gst-element-unlink-many"></a><h3>gst_element_unlink_many ()</h3>
2191 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_unlink_many             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_1</code></em>,
2192                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_2</code></em>,
2193                                                          <em class="parameter"><code>...</code></em>);</pre>
2194 <p>
2195 Unlinks a series of elements. Uses <a class="link" href="GstElement.html#gst-element-unlink" title="gst_element_unlink ()"><code class="function">gst_element_unlink()</code></a>.
2196 </p>
2197 <div class="variablelist"><table border="0">
2198 <col align="left" valign="top">
2199 <tbody>
2200 <tr>
2201 <td><p><span class="term"><em class="parameter"><code>element_1</code></em> :</span></p></td>
2202 <td>the first <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> in the link chain. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2203 </td>
2204 </tr>
2205 <tr>
2206 <td><p><span class="term"><em class="parameter"><code>element_2</code></em> :</span></p></td>
2207 <td>the second <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> in the link chain. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2208 </td>
2209 </tr>
2210 <tr>
2211 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
2212 <td>the NULL-terminated list of elements to unlink in order.</td>
2213 </tr>
2214 </tbody>
2215 </table></div>
2216 </div>
2217 <hr>
2218 <div class="refsect2">
2219 <a name="gst-element-link-pads"></a><h3>gst_element_link_pads ()</h3>
2220 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_link_pads               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
2221                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *srcpadname</code></em>,
2222                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>,
2223                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *destpadname</code></em>);</pre>
2224 <p>
2225 Links the two named pads of the source and destination elements.
2226 Side effect is that if one of the pads has no parent, it becomes a
2227 child of the parent of the other element.  If they have different
2228 parents, the link fails.
2229 </p>
2230 <div class="variablelist"><table border="0">
2231 <col align="left" valign="top">
2232 <tbody>
2233 <tr>
2234 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
2235 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the source pad.</td>
2236 </tr>
2237 <tr>
2238 <td><p><span class="term"><em class="parameter"><code>srcpadname</code></em> :</span></p></td>
2239 <td>the name of the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> in source element
2240 or NULL for any pad. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2241 </td>
2242 </tr>
2243 <tr>
2244 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
2245 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the destination pad. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2246 </td>
2247 </tr>
2248 <tr>
2249 <td><p><span class="term"><em class="parameter"><code>destpadname</code></em> :</span></p></td>
2250 <td>the name of the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> in destination element,
2251 or NULL for any pad. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2252 </td>
2253 </tr>
2254 <tr>
2255 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2256 <td>TRUE if the pads could be linked, FALSE otherwise.</td>
2257 </tr>
2258 </tbody>
2259 </table></div>
2260 </div>
2261 <hr>
2262 <div class="refsect2">
2263 <a name="gst-element-link-pads-full"></a><h3>gst_element_link_pads_full ()</h3>
2264 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_link_pads_full          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
2265                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *srcpadname</code></em>,
2266                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>,
2267                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *destpadname</code></em>,
2268                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadLinkCheck" title="enum GstPadLinkCheck"><span class="type">GstPadLinkCheck</span></a> flags</code></em>);</pre>
2269 <p>
2270 Links the two named pads of the source and destination elements.
2271 Side effect is that if one of the pads has no parent, it becomes a
2272 child of the parent of the other element.  If they have different
2273 parents, the link fails.
2274 </p>
2275 <p>
2276 Calling <a class="link" href="GstElement.html#gst-element-link-pads-full" title="gst_element_link_pads_full ()"><code class="function">gst_element_link_pads_full()</code></a> with <em class="parameter"><code>flags</code></em> == <a class="link" href="GstPad.html#GST-PAD-LINK-CHECK-DEFAULT:CAPS" title="GST_PAD_LINK_CHECK_DEFAULT"><code class="literal">GST_PAD_LINK_CHECK_DEFAULT</code></a>
2277 is the same as calling <a class="link" href="GstElement.html#gst-element-link-pads" title="gst_element_link_pads ()"><code class="function">gst_element_link_pads()</code></a> and the recommended way of
2278 linking pads with safety checks applied.
2279 </p>
2280 <p>
2281 This is a convenience function for <a class="link" href="GstPad.html#gst-pad-link-full" title="gst_pad_link_full ()"><code class="function">gst_pad_link_full()</code></a>.
2282 </p>
2283 <div class="variablelist"><table border="0">
2284 <col align="left" valign="top">
2285 <tbody>
2286 <tr>
2287 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
2288 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the source pad.</td>
2289 </tr>
2290 <tr>
2291 <td><p><span class="term"><em class="parameter"><code>srcpadname</code></em> :</span></p></td>
2292 <td>the name of the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> in source element
2293 or NULL for any pad. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2294 </td>
2295 </tr>
2296 <tr>
2297 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
2298 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the destination pad. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2299 </td>
2300 </tr>
2301 <tr>
2302 <td><p><span class="term"><em class="parameter"><code>destpadname</code></em> :</span></p></td>
2303 <td>the name of the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> in destination element,
2304 or NULL for any pad. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2305 </td>
2306 </tr>
2307 <tr>
2308 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
2309 <td>the <a class="link" href="GstPad.html#GstPadLinkCheck" title="enum GstPadLinkCheck"><span class="type">GstPadLinkCheck</span></a> to be performed when linking pads.</td>
2310 </tr>
2311 <tr>
2312 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2313 <td>TRUE if the pads could be linked, FALSE otherwise.</td>
2314 </tr>
2315 </tbody>
2316 </table></div>
2317 <p class="since">Since 0.10.30</p>
2318 </div>
2319 <hr>
2320 <div class="refsect2">
2321 <a name="gst-element-unlink-pads"></a><h3>gst_element_unlink_pads ()</h3>
2322 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_unlink_pads             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
2323                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *srcpadname</code></em>,
2324                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>,
2325                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *destpadname</code></em>);</pre>
2326 <p>
2327 Unlinks the two named pads of the source and destination elements.
2328 </p>
2329 <p>
2330 This is a convenience function for <a class="link" href="GstPad.html#gst-pad-unlink" title="gst_pad_unlink ()"><code class="function">gst_pad_unlink()</code></a>.
2331 </p>
2332 <div class="variablelist"><table border="0">
2333 <col align="left" valign="top">
2334 <tbody>
2335 <tr>
2336 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
2337 <td>a (transfer none): <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the source pad.</td>
2338 </tr>
2339 <tr>
2340 <td><p><span class="term"><em class="parameter"><code>srcpadname</code></em> :</span></p></td>
2341 <td>the name of the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> in source element.</td>
2342 </tr>
2343 <tr>
2344 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
2345 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the destination pad. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2346 </td>
2347 </tr>
2348 <tr>
2349 <td><p><span class="term"><em class="parameter"><code>destpadname</code></em> :</span></p></td>
2350 <td>the name of the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> in destination element.</td>
2351 </tr>
2352 </tbody>
2353 </table></div>
2354 </div>
2355 <hr>
2356 <div class="refsect2">
2357 <a name="gst-element-link-pads-filtered"></a><h3>gst_element_link_pads_filtered ()</h3>
2358 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_link_pads_filtered      (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
2359                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *srcpadname</code></em>,
2360                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>,
2361                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *destpadname</code></em>,
2362                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
2363 <p>
2364 Links the two named pads of the source and destination elements. Side effect
2365 is that if one of the pads has no parent, it becomes a child of the parent of
2366 the other element. If they have different parents, the link fails. If <em class="parameter"><code>caps</code></em>
2367 is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, makes sure that the caps of the link is a subset of <em class="parameter"><code>caps</code></em>.
2368 </p>
2369 <div class="variablelist"><table border="0">
2370 <col align="left" valign="top">
2371 <tbody>
2372 <tr>
2373 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
2374 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the source pad.</td>
2375 </tr>
2376 <tr>
2377 <td><p><span class="term"><em class="parameter"><code>srcpadname</code></em> :</span></p></td>
2378 <td>the name of the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> in source element
2379 or NULL for any pad. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2380 </td>
2381 </tr>
2382 <tr>
2383 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
2384 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the destination pad. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2385 </td>
2386 </tr>
2387 <tr>
2388 <td><p><span class="term"><em class="parameter"><code>destpadname</code></em> :</span></p></td>
2389 <td>the name of the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> in destination element
2390 or NULL for any pad. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2391 </td>
2392 </tr>
2393 <tr>
2394 <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
2395 <td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to filter the link,
2396 or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> for no filter. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2397 </td>
2398 </tr>
2399 <tr>
2400 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2401 <td>TRUE if the pads could be linked, FALSE otherwise.</td>
2402 </tr>
2403 </tbody>
2404 </table></div>
2405 </div>
2406 <hr>
2407 <div class="refsect2">
2408 <a name="gst-element-link-filtered"></a><h3>gst_element_link_filtered ()</h3>
2409 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_link_filtered           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *src</code></em>,
2410                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *dest</code></em>,
2411                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
2412 <p>
2413 Links <em class="parameter"><code>src</code></em> to <em class="parameter"><code>dest</code></em> using the given caps as filtercaps.
2414 The link must be from source to
2415 destination; the other direction will not be tried. The function looks for
2416 existing pads that aren't linked yet. It will request new pads if necessary.
2417 If multiple links are possible, only one is established.
2418 </p>
2419 <p>
2420 Make sure you have added your elements to a bin or pipeline with
2421 <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> before trying to link them.
2422 </p>
2423 <div class="variablelist"><table border="0">
2424 <col align="left" valign="top">
2425 <tbody>
2426 <tr>
2427 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
2428 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the source pad.</td>
2429 </tr>
2430 <tr>
2431 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
2432 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> containing the destination pad. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2433 </td>
2434 </tr>
2435 <tr>
2436 <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
2437 <td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to filter the link,
2438 or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> for no filter. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
2439 </td>
2440 </tr>
2441 <tr>
2442 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2443 <td>TRUE if the pads could be linked, FALSE otherwise.</td>
2444 </tr>
2445 </tbody>
2446 </table></div>
2447 </div>
2448 <hr>
2449 <div class="refsect2">
2450 <a name="gst-element-set-base-time"></a><h3>gst_element_set_base_time ()</h3>
2451 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_set_base_time           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
2452                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>);</pre>
2453 <p>
2454 Set the base time of an element. See <a class="link" href="GstElement.html#gst-element-get-base-time" title="gst_element_get_base_time ()"><code class="function">gst_element_get_base_time()</code></a>.
2455 </p>
2456 <p>
2457 MT safe.
2458 </p>
2459 <div class="variablelist"><table border="0">
2460 <col align="left" valign="top">
2461 <tbody>
2462 <tr>
2463 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2464 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
2465 </tr>
2466 <tr>
2467 <td><p><span class="term"><em class="parameter"><code>time</code></em> :</span></p></td>
2468 <td>the base time to set.</td>
2469 </tr>
2470 </tbody>
2471 </table></div>
2472 </div>
2473 <hr>
2474 <div class="refsect2">
2475 <a name="gst-element-get-base-time"></a><h3>gst_element_get_base_time ()</h3>
2476 <pre class="programlisting"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_element_get_base_time           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2477 <p>
2478 Returns the base time of the element. The base time is the
2479 absolute time of the clock when this element was last put to
2480 PLAYING. Subtracting the base time from the clock time gives
2481 the running time of the element.
2482 </p>
2483 <div class="variablelist"><table border="0">
2484 <col align="left" valign="top">
2485 <tbody>
2486 <tr>
2487 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2488 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
2489 </tr>
2490 <tr>
2491 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2492 <td>the base time of the element.
2493 MT safe.</td>
2494 </tr>
2495 </tbody>
2496 </table></div>
2497 </div>
2498 <hr>
2499 <div class="refsect2">
2500 <a name="gst-element-set-start-time"></a><h3>gst_element_set_start_time ()</h3>
2501 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_set_start_time          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
2502                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>);</pre>
2503 <p>
2504 Set the start time of an element. The start time of the element is the
2505 running time of the element when it last went to the PAUSED state. In READY
2506 or after a flushing seek, it is set to 0.
2507 </p>
2508 <p>
2509 Toplevel elements like <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> will manage the start_time and
2510 base_time on its children. Setting the start_time to <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a>
2511 on such a toplevel element will disable the distribution of the base_time to
2512 the children and can be useful if the application manages the base_time
2513 itself, for example if you want to synchronize capture from multiple
2514 pipelines, and you can also ensure that the pipelines have the same clock.
2515 </p>
2516 <p>
2517 MT safe.
2518 </p>
2519 <div class="variablelist"><table border="0">
2520 <col align="left" valign="top">
2521 <tbody>
2522 <tr>
2523 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2524 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
2525 </tr>
2526 <tr>
2527 <td><p><span class="term"><em class="parameter"><code>time</code></em> :</span></p></td>
2528 <td>the base time to set.</td>
2529 </tr>
2530 </tbody>
2531 </table></div>
2532 <p class="since">Since 0.10.24</p>
2533 </div>
2534 <hr>
2535 <div class="refsect2">
2536 <a name="gst-element-get-start-time"></a><h3>gst_element_get_start_time ()</h3>
2537 <pre class="programlisting"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_element_get_start_time          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2538 <p>
2539 Returns the start time of the element. The start time is the
2540 running time of the clock when this element was last put to PAUSED.
2541 </p>
2542 <p>
2543 Usually the start_time is managed by a toplevel element such as
2544 <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a>.
2545 </p>
2546 <p>
2547 MT safe.
2548 </p>
2549 <div class="variablelist"><table border="0">
2550 <col align="left" valign="top">
2551 <tbody>
2552 <tr>
2553 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2554 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
2555 </tr>
2556 <tr>
2557 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2558 <td>the start time of the element.</td>
2559 </tr>
2560 </tbody>
2561 </table></div>
2562 <p class="since">Since 0.10.24</p>
2563 </div>
2564 <hr>
2565 <div class="refsect2">
2566 <a name="gst-element-set-bus"></a><h3>gst_element_set_bus ()</h3>
2567 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_set_bus                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
2568                                                          <em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>);</pre>
2569 <p>
2570 Sets the bus of the element. Increases the refcount on the bus.
2571 For internal use only, unless you're testing elements.
2572 </p>
2573 <p>
2574 MT safe.
2575 </p>
2576 <div class="variablelist"><table border="0">
2577 <col align="left" valign="top">
2578 <tbody>
2579 <tr>
2580 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2581 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to set the bus of.</td>
2582 </tr>
2583 <tr>
2584 <td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
2585 <td>the <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2586 </td>
2587 </tr>
2588 </tbody>
2589 </table></div>
2590 </div>
2591 <hr>
2592 <div class="refsect2">
2593 <a name="gst-element-get-bus"></a><h3>gst_element_get_bus ()</h3>
2594 <pre class="programlisting"><a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *            gst_element_get_bus                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2595 <p>
2596 Returns the bus of the element. Note that only a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> will provide a
2597 bus for the application.
2598 </p>
2599 <div class="variablelist"><table border="0">
2600 <col align="left" valign="top">
2601 <tbody>
2602 <tr>
2603 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2604 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to get the bus of.</td>
2605 </tr>
2606 <tr>
2607 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2608 <td>the element's <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a>. unref after usage.
2609 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2610 </td>
2611 </tr>
2612 </tbody>
2613 </table></div>
2614 </div>
2615 <hr>
2616 <div class="refsect2">
2617 <a name="gst-element-get-factory"></a><h3>gst_element_get_factory ()</h3>
2618 <pre class="programlisting"><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="returnvalue">GstElementFactory</span></a> * gst_element_get_factory             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2619 <p>
2620 Retrieves the factory that was used to create this element.
2621 </p>
2622 <div class="variablelist"><table border="0">
2623 <col align="left" valign="top">
2624 <tbody>
2625 <tr>
2626 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2627 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to request the element factory of.</td>
2628 </tr>
2629 <tr>
2630 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2631 <td>the <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> used for creating this
2632 element. no refcounting is needed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2633 </td>
2634 </tr>
2635 </tbody>
2636 </table></div>
2637 </div>
2638 <hr>
2639 <div class="refsect2">
2640 <a name="gst-element-set-index"></a><h3>gst_element_set_index ()</h3>
2641 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_set_index               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
2642                                                          <em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>);</pre>
2643 <p>
2644 Set <em class="parameter"><code>index</code></em> on the element. The refcount of the index
2645 will be increased, any previously set index is unreffed.
2646 </p>
2647 <p>
2648 MT safe.
2649 </p>
2650 <div class="variablelist"><table border="0">
2651 <col align="left" valign="top">
2652 <tbody>
2653 <tr>
2654 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2655 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
2656 </tr>
2657 <tr>
2658 <td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
2659 <td>a <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
2660 </td>
2661 </tr>
2662 </tbody>
2663 </table></div>
2664 </div>
2665 <hr>
2666 <div class="refsect2">
2667 <a name="gst-element-get-index"></a><h3>gst_element_get_index ()</h3>
2668 <pre class="programlisting"><a class="link" href="GstIndex.html" title="GstIndex"><span class="returnvalue">GstIndex</span></a> *          gst_element_get_index               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2669 <p>
2670 Gets the index from the element.
2671 </p>
2672 <div class="variablelist"><table border="0">
2673 <col align="left" valign="top">
2674 <tbody>
2675 <tr>
2676 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2677 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
2678 </tr>
2679 <tr>
2680 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2681 <td>a <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when no index was set on the
2682 element. unref after usage.
2683 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2684 </td>
2685 </tr>
2686 </tbody>
2687 </table></div>
2688 </div>
2689 <hr>
2690 <div class="refsect2">
2691 <a name="gst-element-is-indexable"></a><h3>gst_element_is_indexable ()</h3>
2692 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_is_indexable            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2693 <p>
2694 Queries if the element can be indexed.
2695 </p>
2696 <div class="variablelist"><table border="0">
2697 <col align="left" valign="top">
2698 <tbody>
2699 <tr>
2700 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2701 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
2702 </tr>
2703 <tr>
2704 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2705 <td>TRUE if the element can be indexed.
2706 MT safe.</td>
2707 </tr>
2708 </tbody>
2709 </table></div>
2710 </div>
2711 <hr>
2712 <div class="refsect2">
2713 <a name="gst-element-set-name"></a><h3>gst_element_set_name()</h3>
2714 <pre class="programlisting">#define                 gst_element_set_name(elem,name) gst_object_set_name(GST_OBJECT_CAST(elem),name)
2715 </pre>
2716 <p>
2717 Sets the name of the element, getting rid of the old name if there was one.
2718 </p>
2719 <div class="variablelist"><table border="0">
2720 <col align="left" valign="top">
2721 <tbody>
2722 <tr>
2723 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
2724 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to set the name of.</td>
2725 </tr>
2726 <tr>
2727 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
2728 <td>the new name</td>
2729 </tr>
2730 </tbody>
2731 </table></div>
2732 </div>
2733 <hr>
2734 <div class="refsect2">
2735 <a name="gst-element-get-name"></a><h3>gst_element_get_name()</h3>
2736 <pre class="programlisting">#define                 gst_element_get_name(elem)      gst_object_get_name(GST_OBJECT_CAST(elem))
2737 </pre>
2738 <p>
2739 Returns a copy of the name of <em class="parameter"><code>elem</code></em>.
2740 Caller should <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> the return value after usage.
2741 For a nameless element, this returns NULL, which you can safely <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
2742 as well.
2743 </p>
2744 <div class="variablelist"><table border="0">
2745 <col align="left" valign="top">
2746 <tbody>
2747 <tr>
2748 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
2749 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to get the name of <em class="parameter"><code>elem</code></em>.</td>
2750 </tr>
2751 <tr>
2752 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2753 <td>the name of <em class="parameter"><code>elem</code></em>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage. MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2754 </td>
2755 </tr>
2756 </tbody>
2757 </table></div>
2758 </div>
2759 <hr>
2760 <div class="refsect2">
2761 <a name="gst-element-set-parent"></a><h3>gst_element_set_parent()</h3>
2762 <pre class="programlisting">#define                 gst_element_set_parent(elem,parent)     gst_object_set_parent(GST_OBJECT_CAST(elem),parent)
2763 </pre>
2764 <p>
2765 Sets the parent of an element.
2766 </p>
2767 <div class="variablelist"><table border="0">
2768 <col align="left" valign="top">
2769 <tbody>
2770 <tr>
2771 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
2772 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to set the parent of.</td>
2773 </tr>
2774 <tr>
2775 <td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
2776 <td>the new parent <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> of the element.</td>
2777 </tr>
2778 </tbody>
2779 </table></div>
2780 </div>
2781 <hr>
2782 <div class="refsect2">
2783 <a name="gst-element-get-parent"></a><h3>gst_element_get_parent()</h3>
2784 <pre class="programlisting">#define                 gst_element_get_parent(elem)    gst_object_get_parent(GST_OBJECT_CAST(elem))
2785 </pre>
2786 <p>
2787 Get the parent of an element.
2788 </p>
2789 <div class="variablelist"><table border="0">
2790 <col align="left" valign="top">
2791 <tbody>
2792 <tr>
2793 <td><p><span class="term"><em class="parameter"><code>elem</code></em> :</span></p></td>
2794 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to get the parent of.</td>
2795 </tr>
2796 <tr>
2797 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2798 <td>the parent of an element. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2799 </td>
2800 </tr>
2801 </tbody>
2802 </table></div>
2803 </div>
2804 <hr>
2805 <div class="refsect2">
2806 <a name="gst-element-requires-clock"></a><h3>gst_element_requires_clock ()</h3>
2807 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_requires_clock          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2808 <p>
2809 Query if the element requires a clock.
2810 </p>
2811 <div class="variablelist"><table border="0">
2812 <col align="left" valign="top">
2813 <tbody>
2814 <tr>
2815 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2816 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
2817 </tr>
2818 <tr>
2819 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2820 <td>
2821 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the element requires a clock
2822 MT safe.</td>
2823 </tr>
2824 </tbody>
2825 </table></div>
2826 </div>
2827 <hr>
2828 <div class="refsect2">
2829 <a name="gst-element-set-clock"></a><h3>gst_element_set_clock ()</h3>
2830 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_set_clock               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
2831                                                          <em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>);</pre>
2832 <p>
2833 Sets the clock for the element. This function increases the
2834 refcount on the clock. Any previously set clock on the object
2835 is unreffed.
2836 </p>
2837 <div class="variablelist"><table border="0">
2838 <col align="left" valign="top">
2839 <tbody>
2840 <tr>
2841 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2842 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to set the clock for.</td>
2843 </tr>
2844 <tr>
2845 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
2846 <td>the <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> to set for the element.</td>
2847 </tr>
2848 <tr>
2849 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2850 <td>
2851 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the element accepted the clock. An element can refuse a
2852 clock when it, for example, is not able to slave its internal clock to the
2853 <em class="parameter"><code>clock</code></em> or when it requires a specific clock to operate.
2854 MT safe.</td>
2855 </tr>
2856 </tbody>
2857 </table></div>
2858 </div>
2859 <hr>
2860 <div class="refsect2">
2861 <a name="gst-element-get-clock"></a><h3>gst_element_get_clock ()</h3>
2862 <pre class="programlisting"><a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *          gst_element_get_clock               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2863 <p>
2864 Gets the currently configured clock of the element. This is the clock as was
2865 last set with <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()"><code class="function">gst_element_set_clock()</code></a>.
2866 </p>
2867 <div class="variablelist"><table border="0">
2868 <col align="left" valign="top">
2869 <tbody>
2870 <tr>
2871 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2872 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to get the clock of.</td>
2873 </tr>
2874 <tr>
2875 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2876 <td>the <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> of the element. unref after usage.
2877 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2878 </td>
2879 </tr>
2880 </tbody>
2881 </table></div>
2882 </div>
2883 <hr>
2884 <div class="refsect2">
2885 <a name="gst-element-provides-clock"></a><h3>gst_element_provides_clock ()</h3>
2886 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_provides_clock          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2887 <p>
2888 Query if the element provides a clock. A <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> provided by an
2889 element can be used as the global <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> for the pipeline.
2890 An element that can provide a clock is only required to do so in the PAUSED
2891 state, this means when it is fully negotiated and has allocated the resources
2892 to operate the clock.
2893 </p>
2894 <div class="variablelist"><table border="0">
2895 <col align="left" valign="top">
2896 <tbody>
2897 <tr>
2898 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2899 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
2900 </tr>
2901 <tr>
2902 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2903 <td>
2904 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the element provides a clock
2905 MT safe.</td>
2906 </tr>
2907 </tbody>
2908 </table></div>
2909 </div>
2910 <hr>
2911 <div class="refsect2">
2912 <a name="gst-element-provide-clock"></a><h3>gst_element_provide_clock ()</h3>
2913 <pre class="programlisting"><a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *          gst_element_provide_clock           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
2914 <p>
2915 Get the clock provided by the given element.
2916 </p>
2917 <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
2918 <h3 class="title">Note</h3>An element is only required to provide a clock in the PAUSED
2919 state. Some elements can provide a clock in other states.</div>
2920 <p>
2921 </p>
2922 <div class="variablelist"><table border="0">
2923 <col align="left" valign="top">
2924 <tbody>
2925 <tr>
2926 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2927 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
2928 </tr>
2929 <tr>
2930 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2931 <td>the GstClock provided by the element or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
2932 if no clock could be provided.  Unref after usage.
2933 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
2934 </td>
2935 </tr>
2936 </tbody>
2937 </table></div>
2938 </div>
2939 <hr>
2940 <div class="refsect2">
2941 <a name="gst-element-set-state"></a><h3>gst_element_set_state ()</h3>
2942 <pre class="programlisting"><a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a> gst_element_set_state              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
2943                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> state</code></em>);</pre>
2944 <p>
2945 Sets the state of the element. This function will try to set the
2946 requested state by going through all the intermediary states and calling
2947 the class's state change function for each.
2948 </p>
2949 <p>
2950 This function can return <a class="link" href="GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><span class="type">GST_STATE_CHANGE_ASYNC</span></a>, in which case the
2951 element will perform the remainder of the state change asynchronously in
2952 another thread.
2953 An application can use <a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()"><code class="function">gst_element_get_state()</code></a> to wait for the completion
2954 of the state change or it can wait for a state change message on the bus.
2955 </p>
2956 <p>
2957 State changes to <a class="link" href="GstElement.html#GST-STATE-READY:CAPS"><code class="literal">GST_STATE_READY</code></a> or <a class="link" href="GstElement.html#GST-STATE-NULL:CAPS"><code class="literal">GST_STATE_NULL</code></a> never return
2958 <a class="link" href="GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><span class="type">GST_STATE_CHANGE_ASYNC</span></a>.
2959 </p>
2960 <div class="variablelist"><table border="0">
2961 <col align="left" valign="top">
2962 <tbody>
2963 <tr>
2964 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
2965 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to change state of.</td>
2966 </tr>
2967 <tr>
2968 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
2969 <td>the element's new <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a>.</td>
2970 </tr>
2971 <tr>
2972 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2973 <td>Result of the state change using <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a>.
2974 MT safe.</td>
2975 </tr>
2976 </tbody>
2977 </table></div>
2978 </div>
2979 <hr>
2980 <div class="refsect2">
2981 <a name="gst-element-get-state"></a><h3>gst_element_get_state ()</h3>
2982 <pre class="programlisting"><a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a> gst_element_get_state              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
2983                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> *state</code></em>,
2984                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> *pending</code></em>,
2985                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>);</pre>
2986 <p>
2987 Gets the state of the element.
2988 </p>
2989 <p>
2990 For elements that performed an ASYNC state change, as reported by
2991 <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a>, this function will block up to the
2992 specified timeout value for the state change to complete.
2993 If the element completes the state change or goes into
2994 an error, this function returns immediately with a return value of
2995 <a class="link" href="GstElement.html#GST-STATE-CHANGE-SUCCESS:CAPS"><code class="literal">GST_STATE_CHANGE_SUCCESS</code></a> or <a class="link" href="GstElement.html#GST-STATE-CHANGE-FAILURE:CAPS"><code class="literal">GST_STATE_CHANGE_FAILURE</code></a> respectively.
2996 </p>
2997 <p>
2998 For elements that did not return <a class="link" href="GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><code class="literal">GST_STATE_CHANGE_ASYNC</code></a>, this function
2999 returns the current and pending state immediately.
3000 </p>
3001 <p>
3002 This function returns <a class="link" href="GstElement.html#GST-STATE-CHANGE-NO-PREROLL:CAPS"><code class="literal">GST_STATE_CHANGE_NO_PREROLL</code></a> if the element
3003 successfully changed its state but is not able to provide data yet.
3004 This mostly happens for live sources that only produce data in
3005 <a class="link" href="GstElement.html#GST-STATE-PLAYING:CAPS"><code class="literal">GST_STATE_PLAYING</code></a>. While the state change return is equivalent to
3006 <a class="link" href="GstElement.html#GST-STATE-CHANGE-SUCCESS:CAPS"><code class="literal">GST_STATE_CHANGE_SUCCESS</code></a>, it is returned to the application to signal that
3007 some sink elements might not be able to complete their state change because
3008 an element is not producing data to complete the preroll. When setting the
3009 element to playing, the preroll will complete and playback will start.
3010 </p>
3011 <div class="variablelist"><table border="0">
3012 <col align="left" valign="top">
3013 <tbody>
3014 <tr>
3015 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3016 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to get the state of.</td>
3017 </tr>
3018 <tr>
3019 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
3020 <td>a pointer to <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> to hold the state.
3021 Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
3022 </td>
3023 </tr>
3024 <tr>
3025 <td><p><span class="term"><em class="parameter"><code>pending</code></em> :</span></p></td>
3026 <td>a pointer to <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> to hold the pending
3027 state. Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
3028 </td>
3029 </tr>
3030 <tr>
3031 <td><p><span class="term"><em class="parameter"><code>timeout</code></em> :</span></p></td>
3032 <td>a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> to specify the timeout for an async
3033 state change or <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><code class="literal">GST_CLOCK_TIME_NONE</code></a> for infinite timeout.</td>
3034 </tr>
3035 <tr>
3036 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3037 <td>
3038 <a class="link" href="GstElement.html#GST-STATE-CHANGE-SUCCESS:CAPS"><code class="literal">GST_STATE_CHANGE_SUCCESS</code></a> if the element has no more pending state
3039 and the last state change succeeded, <a class="link" href="GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><code class="literal">GST_STATE_CHANGE_ASYNC</code></a> if the
3040 element is still performing a state change or
3041 <a class="link" href="GstElement.html#GST-STATE-CHANGE-FAILURE:CAPS"><code class="literal">GST_STATE_CHANGE_FAILURE</code></a> if the last state change failed.
3042 MT safe.</td>
3043 </tr>
3044 </tbody>
3045 </table></div>
3046 </div>
3047 <hr>
3048 <div class="refsect2">
3049 <a name="gst-element-set-locked-state"></a><h3>gst_element_set_locked_state ()</h3>
3050 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_set_locked_state        (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3051                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> locked_state</code></em>);</pre>
3052 <p>
3053 Locks the state of an element, so state changes of the parent don't affect
3054 this element anymore.
3055 </p>
3056 <p>
3057 MT safe.
3058 </p>
3059 <div class="variablelist"><table border="0">
3060 <col align="left" valign="top">
3061 <tbody>
3062 <tr>
3063 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3064 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
3065 </td>
3066 </tr>
3067 <tr>
3068 <td><p><span class="term"><em class="parameter"><code>locked_state</code></em> :</span></p></td>
3069 <td>TRUE to lock the element's state</td>
3070 </tr>
3071 <tr>
3072 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3073 <td>TRUE if the state was changed, FALSE if bad parameters were given
3074 or the elements state-locking needed no change.</td>
3075 </tr>
3076 </tbody>
3077 </table></div>
3078 </div>
3079 <hr>
3080 <div class="refsect2">
3081 <a name="gst-element-is-locked-state"></a><h3>gst_element_is_locked_state ()</h3>
3082 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_is_locked_state         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
3083 <p>
3084 Checks if the state of an element is locked.
3085 If the state of an element is locked, state changes of the parent don't
3086 affect the element.
3087 This way you can leave currently unused elements inside bins. Just lock their
3088 state before changing the state from <a class="link" href="GstElement.html#GST-STATE-NULL:CAPS"><span class="type">GST_STATE_NULL</span></a>.
3089 </p>
3090 <p>
3091 MT safe.
3092 </p>
3093 <div class="variablelist"><table border="0">
3094 <col align="left" valign="top">
3095 <tbody>
3096 <tr>
3097 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3098 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
3099 </tr>
3100 <tr>
3101 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3102 <td>TRUE, if the element's state is locked.</td>
3103 </tr>
3104 </tbody>
3105 </table></div>
3106 </div>
3107 <hr>
3108 <div class="refsect2">
3109 <a name="gst-element-abort-state"></a><h3>gst_element_abort_state ()</h3>
3110 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_abort_state             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
3111 <p>
3112 Abort the state change of the element. This function is used
3113 by elements that do asynchronous state changes and find out
3114 something is wrong.
3115 </p>
3116 <p>
3117 This function should be called with the STATE_LOCK held.
3118 </p>
3119 <p>
3120 MT safe.
3121 </p>
3122 <div class="variablelist"><table border="0">
3123 <col align="left" valign="top">
3124 <tbody><tr>
3125 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3126 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to abort the state of.</td>
3127 </tr></tbody>
3128 </table></div>
3129 </div>
3130 <hr>
3131 <div class="refsect2">
3132 <a name="gst-element-continue-state"></a><h3>gst_element_continue_state ()</h3>
3133 <pre class="programlisting"><a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a> gst_element_continue_state         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3134                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a> ret</code></em>);</pre>
3135 <p>
3136 Commit the state change of the element and proceed to the next
3137 pending state if any. This function is used
3138 by elements that do asynchronous state changes.
3139 The core will normally call this method automatically when an
3140 element returned <a class="link" href="GstElement.html#GST-STATE-CHANGE-SUCCESS:CAPS"><code class="literal">GST_STATE_CHANGE_SUCCESS</code></a> from the state change function.
3141 </p>
3142 <p>
3143 If after calling this method the element still has not reached
3144 the pending state, the next state change is performed.
3145 </p>
3146 <p>
3147 This method is used internally and should normally not be called by plugins
3148 or applications.
3149 </p>
3150 <div class="variablelist"><table border="0">
3151 <col align="left" valign="top">
3152 <tbody>
3153 <tr>
3154 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3155 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to continue the state change of.</td>
3156 </tr>
3157 <tr>
3158 <td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
3159 <td>The previous state return value</td>
3160 </tr>
3161 <tr>
3162 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3163 <td>The result of the commit state change.
3164 MT safe.</td>
3165 </tr>
3166 </tbody>
3167 </table></div>
3168 </div>
3169 <hr>
3170 <div class="refsect2">
3171 <a name="gst-element-lost-state"></a><h3>gst_element_lost_state ()</h3>
3172 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_lost_state              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
3173 <p>
3174 Brings the element to the lost state. This function calls
3175 <a class="link" href="GstElement.html#gst-element-lost-state-full" title="gst_element_lost_state_full ()"><code class="function">gst_element_lost_state_full()</code></a> with the new_base_time set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.
3176 </p>
3177 <p>
3178 This function is used internally and should normally not be called from
3179 plugins or applications.
3180 </p>
3181 <p>
3182 MT safe.
3183 </p>
3184 <div class="variablelist"><table border="0">
3185 <col align="left" valign="top">
3186 <tbody><tr>
3187 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3188 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> the state is lost of</td>
3189 </tr></tbody>
3190 </table></div>
3191 </div>
3192 <hr>
3193 <div class="refsect2">
3194 <a name="gst-element-lost-state-full"></a><h3>gst_element_lost_state_full ()</h3>
3195 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_lost_state_full         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3196                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> new_base_time</code></em>);</pre>
3197 <p>
3198 Brings the element to the lost state. The current state of the
3199 element is copied to the pending state so that any call to
3200 <a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()"><code class="function">gst_element_get_state()</code></a> will return <a class="link" href="GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><code class="literal">GST_STATE_CHANGE_ASYNC</code></a>.
3201 </p>
3202 <p>
3203 An ASYNC_START message is posted with indication to distribute a new
3204 base_time to the element when <em class="parameter"><code>new_base_time</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.
3205 If the element was PLAYING, it will go to PAUSED. The element
3206 will be restored to its PLAYING state by the parent pipeline when it
3207 prerolls again.
3208 </p>
3209 <p>
3210 This is mostly used for elements that lost their preroll buffer
3211 in the <a class="link" href="GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a> or <a class="link" href="GstElement.html#GST-STATE-PLAYING:CAPS"><code class="literal">GST_STATE_PLAYING</code></a> state after a flush,
3212 they will go to their pending state again when a new preroll buffer is
3213 queued. This function can only be called when the element is currently
3214 not in error or an async state change.
3215 </p>
3216 <p>
3217 This function is used internally and should normally not be called from
3218 plugins or applications.
3219 </p>
3220 <p>
3221 MT safe.
3222 </p>
3223 <div class="variablelist"><table border="0">
3224 <col align="left" valign="top">
3225 <tbody>
3226 <tr>
3227 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3228 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> the state is lost of</td>
3229 </tr>
3230 <tr>
3231 <td><p><span class="term"><em class="parameter"><code>new_base_time</code></em> :</span></p></td>
3232 <td>if a new base time should be distributed</td>
3233 </tr>
3234 </tbody>
3235 </table></div>
3236 <p class="since">Since 0.10.24</p>
3237 </div>
3238 <hr>
3239 <div class="refsect2">
3240 <a name="gst-element-state-get-name"></a><h3>gst_element_state_get_name ()</h3>
3241 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_element_state_get_name          (<em class="parameter"><code><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> state</code></em>);</pre>
3242 <p>
3243 Gets a string representing the given state.
3244 </p>
3245 <div class="variablelist"><table border="0">
3246 <col align="left" valign="top">
3247 <tbody>
3248 <tr>
3249 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
3250 <td>a <a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> to get the name of.</td>
3251 </tr>
3252 <tr>
3253 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3254 <td>a string with the name of the state. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
3255 </td>
3256 </tr>
3257 </tbody>
3258 </table></div>
3259 </div>
3260 <hr>
3261 <div class="refsect2">
3262 <a name="gst-element-state-change-return-get-name"></a><h3>gst_element_state_change_return_get_name ()</h3>
3263 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_element_state_change_return_get_name
3264                                                         (<em class="parameter"><code><a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a> state_ret</code></em>);</pre>
3265 <p>
3266 Gets a string representing the given state change result.
3267 </p>
3268 <div class="variablelist"><table border="0">
3269 <col align="left" valign="top">
3270 <tbody>
3271 <tr>
3272 <td><p><span class="term"><em class="parameter"><code>state_ret</code></em> :</span></p></td>
3273 <td>a <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a> to get the name of.</td>
3274 </tr>
3275 <tr>
3276 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3277 <td>a string with the name of the state
3278 result. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
3279 </td>
3280 </tr>
3281 </tbody>
3282 </table></div>
3283 <p class="since">Since 0.10.11</p>
3284 </div>
3285 <hr>
3286 <div class="refsect2">
3287 <a name="gst-element-sync-state-with-parent"></a><h3>gst_element_sync_state_with_parent ()</h3>
3288 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_sync_state_with_parent  (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
3289 <p>
3290 Tries to change the state of the element to the same as its parent.
3291 If this function returns FALSE, the state of element is undefined.
3292 </p>
3293 <div class="variablelist"><table border="0">
3294 <col align="left" valign="top">
3295 <tbody>
3296 <tr>
3297 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3298 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
3299 </tr>
3300 <tr>
3301 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3302 <td>TRUE, if the element's state could be synced to the parent's state.
3303 MT safe.</td>
3304 </tr>
3305 </tbody>
3306 </table></div>
3307 </div>
3308 <hr>
3309 <div class="refsect2">
3310 <a name="gst-element-change-state"></a><h3>gst_element_change_state ()</h3>
3311 <pre class="programlisting"><a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a> gst_element_change_state           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3312                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a> transition</code></em>);</pre>
3313 <p>
3314 Perform <em class="parameter"><code>transition</code></em> on <em class="parameter"><code>element</code></em>.
3315 </p>
3316 <p>
3317 This function must be called with STATE_LOCK held and is mainly used
3318 internally.
3319 </p>
3320 <div class="variablelist"><table border="0">
3321 <col align="left" valign="top">
3322 <tbody>
3323 <tr>
3324 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3325 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
3326 </td>
3327 </tr>
3328 <tr>
3329 <td><p><span class="term"><em class="parameter"><code>transition</code></em> :</span></p></td>
3330 <td>the requested transition</td>
3331 </tr>
3332 <tr>
3333 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3334 <td>the <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="type">GstStateChangeReturn</span></a> of the state transition.</td>
3335 </tr>
3336 </tbody>
3337 </table></div>
3338 </div>
3339 <hr>
3340 <div class="refsect2">
3341 <a name="gst-element-found-tags"></a><h3>gst_element_found_tags ()</h3>
3342 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_found_tags              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3343                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
3344 <p>
3345 Posts a message to the bus that new tags were found, and pushes an event
3346 to all sourcepads. Takes ownership of the <em class="parameter"><code>list</code></em>.
3347 </p>
3348 <p>
3349 This is a utility method for elements. Applications should use the
3350 <a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> interface.
3351 </p>
3352 <div class="variablelist"><table border="0">
3353 <col align="left" valign="top">
3354 <tbody>
3355 <tr>
3356 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3357 <td>element for which we found the tags.</td>
3358 </tr>
3359 <tr>
3360 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
3361 <td>list of tags. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
3362 </td>
3363 </tr>
3364 </tbody>
3365 </table></div>
3366 </div>
3367 <hr>
3368 <div class="refsect2">
3369 <a name="gst-element-found-tags-for-pad"></a><h3>gst_element_found_tags_for_pad ()</h3>
3370 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_found_tags_for_pad      (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3371                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
3372                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
3373 <p>
3374 Posts a message to the bus that new tags were found and pushes the
3375 tags as event. Takes ownership of the <em class="parameter"><code>list</code></em>.
3376 </p>
3377 <p>
3378 This is a utility method for elements. Applications should use the
3379 <a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> interface.
3380 </p>
3381 <div class="variablelist"><table border="0">
3382 <col align="left" valign="top">
3383 <tbody>
3384 <tr>
3385 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3386 <td>element for which to post taglist to bus.</td>
3387 </tr>
3388 <tr>
3389 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
3390 <td>pad on which to push tag-event. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
3391 </td>
3392 </tr>
3393 <tr>
3394 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
3395 <td>the taglist to post on the bus and create event from. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
3396 </td>
3397 </tr>
3398 </tbody>
3399 </table></div>
3400 </div>
3401 <hr>
3402 <div class="refsect2">
3403 <a name="gst-element-message-full"></a><h3>gst_element_message_full ()</h3>
3404 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_message_full            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3405                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
3406                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> domain</code></em>,
3407                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> code</code></em>,
3408                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *text</code></em>,
3409                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *debug</code></em>,
3410                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *file</code></em>,
3411                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *function</code></em>,
3412                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> line</code></em>);</pre>
3413 <p>
3414 Post an error, warning or info message on the bus from inside an element.
3415 </p>
3416 <p>
3417 <em class="parameter"><code>type</code></em> must be of <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-ERROR:CAPS"><span class="type">GST_MESSAGE_ERROR</span></a>, <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-WARNING:CAPS"><span class="type">GST_MESSAGE_WARNING</span></a> or
3418 <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-INFO:CAPS"><span class="type">GST_MESSAGE_INFO</span></a>.
3419 </p>
3420 <p>
3421 MT safe.
3422 </p>
3423 <div class="variablelist"><table border="0">
3424 <col align="left" valign="top">
3425 <tbody>
3426 <tr>
3427 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3428 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to send message from</td>
3429 </tr>
3430 <tr>
3431 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
3432 <td>the <a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a>
3433 </td>
3434 </tr>
3435 <tr>
3436 <td><p><span class="term"><em class="parameter"><code>domain</code></em> :</span></p></td>
3437 <td>the GStreamer GError domain this message belongs to</td>
3438 </tr>
3439 <tr>
3440 <td><p><span class="term"><em class="parameter"><code>code</code></em> :</span></p></td>
3441 <td>the GError code belonging to the domain</td>
3442 </tr>
3443 <tr>
3444 <td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
3445 <td>an allocated text string to be used
3446 as a replacement for the default message connected to code,
3447 or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
3448 </td>
3449 </tr>
3450 <tr>
3451 <td><p><span class="term"><em class="parameter"><code>debug</code></em> :</span></p></td>
3452 <td>an allocated debug message to be
3453 used as a replacement for the default debugging information,
3454 or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
3455 </td>
3456 </tr>
3457 <tr>
3458 <td><p><span class="term"><em class="parameter"><code>file</code></em> :</span></p></td>
3459 <td>the source code file where the error was generated</td>
3460 </tr>
3461 <tr>
3462 <td><p><span class="term"><em class="parameter"><code>function</code></em> :</span></p></td>
3463 <td>the source code function where the error was generated</td>
3464 </tr>
3465 <tr>
3466 <td><p><span class="term"><em class="parameter"><code>line</code></em> :</span></p></td>
3467 <td>the source code line where the error was generated</td>
3468 </tr>
3469 </tbody>
3470 </table></div>
3471 </div>
3472 <hr>
3473 <div class="refsect2">
3474 <a name="gst-element-post-message"></a><h3>gst_element_post_message ()</h3>
3475 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_post_message            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3476                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
3477 <p>
3478 Post a message on the element's <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a>. This function takes ownership of the
3479 message; if you want to access the message after this call, you should add an
3480 additional reference before calling.
3481 </p>
3482 <div class="variablelist"><table border="0">
3483 <col align="left" valign="top">
3484 <tbody>
3485 <tr>
3486 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3487 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> posting the message</td>
3488 </tr>
3489 <tr>
3490 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
3491 <td>a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> to post. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
3492 </td>
3493 </tr>
3494 <tr>
3495 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3496 <td>
3497 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message was successfully posted. The function returns
3498 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the element did not have a bus.
3499 MT safe.</td>
3500 </tr>
3501 </tbody>
3502 </table></div>
3503 </div>
3504 <hr>
3505 <div class="refsect2">
3506 <a name="gst-element-get-query-types"></a><h3>gst_element_get_query_types ()</h3>
3507 <pre class="programlisting">const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * gst_element_get_query_types        (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
3508 <p>
3509 Get an array of query types from the element.
3510 If the element doesn't implement a query types function,
3511 the query will be forwarded to the peer of a random linked sink pad.
3512 </p>
3513 <div class="variablelist"><table border="0">
3514 <col align="left" valign="top">
3515 <tbody>
3516 <tr>
3517 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3518 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
3519 </tr>
3520 <tr>
3521 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3522 <td>An array of <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> elements that should not
3523 be freed or modified.
3524 MT safe.</td>
3525 </tr>
3526 </tbody>
3527 </table></div>
3528 </div>
3529 <hr>
3530 <div class="refsect2">
3531 <a name="gst-element-query"></a><h3>gst_element_query ()</h3>
3532 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_query                   (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3533                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
3534 <p>
3535 Performs a query on the given element.
3536 </p>
3537 <p>
3538 For elements that don't implement a query handler, this function
3539 forwards the query to a random srcpad or to the peer of a
3540 random linked sinkpad of this element.
3541 </p>
3542 <p>
3543 Please note that some queries might need a running pipeline to work.
3544 </p>
3545 <div class="variablelist"><table border="0">
3546 <col align="left" valign="top">
3547 <tbody>
3548 <tr>
3549 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3550 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to perform the query on.</td>
3551 </tr>
3552 <tr>
3553 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
3554 <td>the <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
3555 </td>
3556 </tr>
3557 <tr>
3558 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3559 <td>TRUE if the query could be performed.
3560 MT safe.</td>
3561 </tr>
3562 </tbody>
3563 </table></div>
3564 </div>
3565 <hr>
3566 <div class="refsect2">
3567 <a name="gst-element-query-convert"></a><h3>gst_element_query_convert ()</h3>
3568 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_query_convert           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3569                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
3570                                                          <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
3571                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *dest_format</code></em>,
3572                                                          <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);</pre>
3573 <p>
3574 Queries an element to convert <em class="parameter"><code>src_val</code></em> in <em class="parameter"><code>src_format</code></em> to <em class="parameter"><code>dest_format</code></em>.
3575 </p>
3576 <div class="variablelist"><table border="0">
3577 <col align="left" valign="top">
3578 <tbody>
3579 <tr>
3580 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3581 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to invoke the convert query on.</td>
3582 </tr>
3583 <tr>
3584 <td><p><span class="term"><em class="parameter"><code>src_format</code></em> :</span></p></td>
3585 <td>a <a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> to convert from. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span>
3586 </td>
3587 </tr>
3588 <tr>
3589 <td><p><span class="term"><em class="parameter"><code>src_val</code></em> :</span></p></td>
3590 <td>a value to convert.</td>
3591 </tr>
3592 <tr>
3593 <td><p><span class="term"><em class="parameter"><code>dest_format</code></em> :</span></p></td>
3594 <td>a pointer to the <a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> to convert to. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span>
3595 </td>
3596 </tr>
3597 <tr>
3598 <td><p><span class="term"><em class="parameter"><code>dest_val</code></em> :</span></p></td>
3599 <td>a pointer to the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
3600 </td>
3601 </tr>
3602 <tr>
3603 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3604 <td>TRUE if the query could be performed.</td>
3605 </tr>
3606 </tbody>
3607 </table></div>
3608 </div>
3609 <hr>
3610 <div class="refsect2">
3611 <a name="gst-element-query-position"></a><h3>gst_element_query_position ()</h3>
3612 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_query_position          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3613                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
3614                                                          <em class="parameter"><code><span class="type">gint64</span> *cur</code></em>);</pre>
3615 <p>
3616 Queries an element for the stream position. If one repeatedly calls this
3617 function one can also create and reuse it in <a class="link" href="GstElement.html#gst-element-query" title="gst_element_query ()"><code class="function">gst_element_query()</code></a>.
3618 </p>
3619 <div class="variablelist"><table border="0">
3620 <col align="left" valign="top">
3621 <tbody>
3622 <tr>
3623 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3624 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to invoke the position query on.</td>
3625 </tr>
3626 <tr>
3627 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
3628 <td>a pointer to the <a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> asked for.
3629 On return contains the <a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> used. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span>
3630 </td>
3631 </tr>
3632 <tr>
3633 <td><p><span class="term"><em class="parameter"><code>cur</code></em> :</span></p></td>
3634 <td>a location in which to store the current
3635 position, or NULL. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
3636 </td>
3637 </tr>
3638 <tr>
3639 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3640 <td>TRUE if the query could be performed.</td>
3641 </tr>
3642 </tbody>
3643 </table></div>
3644 </div>
3645 <hr>
3646 <div class="refsect2">
3647 <a name="gst-element-query-duration"></a><h3>gst_element_query_duration ()</h3>
3648 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_query_duration          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3649                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
3650                                                          <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);</pre>
3651 <p>
3652 Queries an element for the total stream duration.
3653 </p>
3654 <div class="variablelist"><table border="0">
3655 <col align="left" valign="top">
3656 <tbody>
3657 <tr>
3658 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3659 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to invoke the duration query on.</td>
3660 </tr>
3661 <tr>
3662 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
3663 <td>a pointer to the <a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> asked for.
3664 On return contains the <a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> used. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span>
3665 </td>
3666 </tr>
3667 <tr>
3668 <td><p><span class="term"><em class="parameter"><code>duration</code></em> :</span></p></td>
3669 <td>A location in which to store the total duration, or NULL. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
3670 </td>
3671 </tr>
3672 <tr>
3673 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3674 <td>TRUE if the query could be performed.</td>
3675 </tr>
3676 </tbody>
3677 </table></div>
3678 </div>
3679 <hr>
3680 <div class="refsect2">
3681 <a name="gst-element-send-event"></a><h3>gst_element_send_event ()</h3>
3682 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_send_event              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3683                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
3684 <p>
3685 Sends an event to an element. If the element doesn't implement an
3686 event handler, the event will be pushed on a random linked sink pad for
3687 upstream events or a random linked source pad for downstream events.
3688 </p>
3689 <p>
3690 This function takes owership of the provided event so you should
3691 <a class="link" href="gstreamer-GstEvent.html#gst-event-ref" title="gst_event_ref ()"><code class="function">gst_event_ref()</code></a> it if you want to reuse the event after this call.
3692 </p>
3693 <div class="variablelist"><table border="0">
3694 <col align="left" valign="top">
3695 <tbody>
3696 <tr>
3697 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3698 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to send the event to.</td>
3699 </tr>
3700 <tr>
3701 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
3702 <td>the <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> to send to the element. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
3703 </td>
3704 </tr>
3705 <tr>
3706 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3707 <td>
3708 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was handled.
3709 MT safe.</td>
3710 </tr>
3711 </tbody>
3712 </table></div>
3713 </div>
3714 <hr>
3715 <div class="refsect2">
3716 <a name="gst-element-seek-simple"></a><h3>gst_element_seek_simple ()</h3>
3717 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_seek_simple             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3718                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
3719                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> seek_flags</code></em>,
3720                                                          <em class="parameter"><code><span class="type">gint64</span> seek_pos</code></em>);</pre>
3721 <p>
3722 Simple API to perform a seek on the given element, meaning it just seeks
3723 to the given position relative to the start of the stream. For more complex
3724 operations like segment seeks (e.g. for looping) or changing the playback
3725 rate or seeking relative to the last configured playback segment you should
3726 use <a class="link" href="GstElement.html#gst-element-seek" title="gst_element_seek ()"><code class="function">gst_element_seek()</code></a>.
3727 </p>
3728 <p>
3729 In a completely prerolled PAUSED or PLAYING pipeline, seeking is always
3730 guaranteed to return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on a seekable media type or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when the media
3731 type is certainly not seekable (such as a live stream).
3732 </p>
3733 <p>
3734 Some elements allow for seeking in the READY state, in this
3735 case they will store the seek event and execute it when they are put to
3736 PAUSED. If the element supports seek in READY, it will always return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when
3737 it receives the event in the READY state.
3738 </p>
3739 <div class="variablelist"><table border="0">
3740 <col align="left" valign="top">
3741 <tbody>
3742 <tr>
3743 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3744 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to seek on</td>
3745 </tr>
3746 <tr>
3747 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
3748 <td>a <a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> to execute the seek in, such as <a class="link" href="gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a>
3749 </td>
3750 </tr>
3751 <tr>
3752 <td><p><span class="term"><em class="parameter"><code>seek_flags</code></em> :</span></p></td>
3753 <td>seek options; playback applications will usually want to use
3754 GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT here</td>
3755 </tr>
3756 <tr>
3757 <td><p><span class="term"><em class="parameter"><code>seek_pos</code></em> :</span></p></td>
3758 <td>position to seek to (relative to the start); if you are doing
3759 a seek in <a class="link" href="gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a> this value is in nanoseconds -
3760 multiply with <a class="link" href="GstClock.html#GST-SECOND:CAPS" title="GST_SECOND"><span class="type">GST_SECOND</span></a> to convert seconds to nanoseconds or
3761 with <a class="link" href="GstClock.html#GST-MSECOND:CAPS" title="GST_MSECOND"><span class="type">GST_MSECOND</span></a> to convert milliseconds to nanoseconds.</td>
3762 </tr>
3763 <tr>
3764 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3765 <td>
3766 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the seek operation succeeded (the seek might not always be
3767 executed instantly though)</td>
3768 </tr>
3769 </tbody>
3770 </table></div>
3771 <p class="since">Since 0.10.7</p>
3772 </div>
3773 <hr>
3774 <div class="refsect2">
3775 <a name="gst-element-seek"></a><h3>gst_element_seek ()</h3>
3776 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_seek                    (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
3777                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
3778                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
3779                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
3780                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> cur_type</code></em>,
3781                                                          <em class="parameter"><code><span class="type">gint64</span> cur</code></em>,
3782                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
3783                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);</pre>
3784 <p>
3785 Sends a seek event to an element. See <a class="link" href="gstreamer-GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()"><code class="function">gst_event_new_seek()</code></a> for the details of
3786 the parameters. The seek event is sent to the element using
3787 <a class="link" href="GstElement.html#gst-element-send-event" title="gst_element_send_event ()"><code class="function">gst_element_send_event()</code></a>.
3788 </p>
3789 <div class="variablelist"><table border="0">
3790 <col align="left" valign="top">
3791 <tbody>
3792 <tr>
3793 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
3794 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to send the event to.</td>
3795 </tr>
3796 <tr>
3797 <td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td>
3798 <td>The new playback rate</td>
3799 </tr>
3800 <tr>
3801 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
3802 <td>The format of the seek values</td>
3803 </tr>
3804 <tr>
3805 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
3806 <td>The optional seek flags.</td>
3807 </tr>
3808 <tr>
3809 <td><p><span class="term"><em class="parameter"><code>cur_type</code></em> :</span></p></td>
3810 <td>The type and flags for the new current position</td>
3811 </tr>
3812 <tr>
3813 <td><p><span class="term"><em class="parameter"><code>cur</code></em> :</span></p></td>
3814 <td>The value of the new current position</td>
3815 </tr>
3816 <tr>
3817 <td><p><span class="term"><em class="parameter"><code>stop_type</code></em> :</span></p></td>
3818 <td>The type and flags for the new stop position</td>
3819 </tr>
3820 <tr>
3821 <td><p><span class="term"><em class="parameter"><code>stop</code></em> :</span></p></td>
3822 <td>The value of the new stop position</td>
3823 </tr>
3824 <tr>
3825 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3826 <td>
3827 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was handled.
3828 MT safe.</td>
3829 </tr>
3830 </tbody>
3831 </table></div>
3832 </div>
3833 </div>
3834 <div class="refsect1">
3835 <a name="GstElement.signal-details"></a><h2>Signal Details</h2>
3836 <div class="refsect2">
3837 <a name="GstElement-no-more-pads"></a><h3>The <code class="literal">"no-more-pads"</code> signal</h3>
3838 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *gstelement,
3839                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
3840 <p>
3841 This signals that the element will not generate more dynamic pads.
3842 Note that this signal will usually be emitted from the context of
3843 the streaming thread.
3844 </p>
3845 <div class="variablelist"><table border="0">
3846 <col align="left" valign="top">
3847 <tbody>
3848 <tr>
3849 <td><p><span class="term"><em class="parameter"><code>gstelement</code></em> :</span></p></td>
3850 <td>the object which received the signal</td>
3851 </tr>
3852 <tr>
3853 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
3854 <td>user data set when the signal handler was connected.</td>
3855 </tr>
3856 </tbody>
3857 </table></div>
3858 </div>
3859 <hr>
3860 <div class="refsect2">
3861 <a name="GstElement-pad-added"></a><h3>The <code class="literal">"pad-added"</code> signal</h3>
3862 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *gstelement,
3863                                                         <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>     *new_pad,
3864                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
3865 <p>
3866 a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> has been added to the element. Note that this signal will
3867 usually be emitted from the context of the streaming thread. Also keep in
3868 mind that if you add new elements to the pipeline in the signal handler
3869 you will need to set them to the desired target state with
3870 <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a> or <a class="link" href="GstElement.html#gst-element-sync-state-with-parent" title="gst_element_sync_state_with_parent ()"><code class="function">gst_element_sync_state_with_parent()</code></a>.
3871 </p>
3872 <div class="variablelist"><table border="0">
3873 <col align="left" valign="top">
3874 <tbody>
3875 <tr>
3876 <td><p><span class="term"><em class="parameter"><code>gstelement</code></em> :</span></p></td>
3877 <td>the object which received the signal</td>
3878 </tr>
3879 <tr>
3880 <td><p><span class="term"><em class="parameter"><code>new_pad</code></em> :</span></p></td>
3881 <td>the pad that has been added</td>
3882 </tr>
3883 <tr>
3884 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
3885 <td>user data set when the signal handler was connected.</td>
3886 </tr>
3887 </tbody>
3888 </table></div>
3889 </div>
3890 <hr>
3891 <div class="refsect2">
3892 <a name="GstElement-pad-removed"></a><h3>The <code class="literal">"pad-removed"</code> signal</h3>
3893 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *gstelement,
3894                                                         <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>     *old_pad,
3895                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
3896 <p>
3897 a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> has been removed from the element
3898 </p>
3899 <div class="variablelist"><table border="0">
3900 <col align="left" valign="top">
3901 <tbody>
3902 <tr>
3903 <td><p><span class="term"><em class="parameter"><code>gstelement</code></em> :</span></p></td>
3904 <td>the object which received the signal</td>
3905 </tr>
3906 <tr>
3907 <td><p><span class="term"><em class="parameter"><code>old_pad</code></em> :</span></p></td>
3908 <td>the pad that has been removed</td>
3909 </tr>
3910 <tr>
3911 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
3912 <td>user data set when the signal handler was connected.</td>
3913 </tr>
3914 </tbody>
3915 </table></div>
3916 </div>
3917 </div>
3918 <div class="refsect1">
3919 <a name="GstElement.see-also"></a><h2>See Also</h2>
3920 <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a>, <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>
3921 </div>
3922 </div>
3923 <div class="footer">
3924 <hr>
3925           Generated by GTK-Doc V1.18</div>
3926 </body>
3927 </html>