Git init
[framework/multimedia/gst-plugins-base0.10.git] / docs / plugins / html / gst-plugins-base-plugins-videorate.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>videorate</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
8 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
9 <link rel="prev" href="gst-plugins-base-plugins-uridecodebin.html" title="uridecodebin">
10 <link rel="next" href="gst-plugins-base-plugins-videoscale.html" title="videoscale">
11 <meta name="generator" content="GTK-Doc V1.17 (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="gst-plugins-base-plugins-uridecodebin.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="ch01.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 Base Plugins 0.10 Plugins Reference Manual</th>
21 <td><a accesskey="n" href="gst-plugins-base-plugins-videoscale.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="#gst-plugins-base-plugins-videorate.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#gst-plugins-base-plugins-videorate.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#gst-plugins-base-plugins-videorate.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#gst-plugins-base-plugins-videorate.properties" class="shortcut">Properties</a>
31 </td></tr>
32 </table>
33 <div class="refentry">
34 <a name="gst-plugins-base-plugins-videorate"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
36 <td valign="top">
37 <h2><span class="refentrytitle"><a name="gst-plugins-base-plugins-videorate.top_of_page"></a>videorate</span></h2>
38 <p>videorate — Drops/duplicates/adjusts timestamps on video frames to make a perfect stream</p>
39 </td>
40 <td valign="top" align="right"></td>
41 </tr></table></div>
42 <div class="refsynopsisdiv">
43 <a name="gst-plugins-base-plugins-videorate.synopsis"></a><h2>Synopsis</h2>
44 <a name="GstVideoRate"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate-struct" title="struct GstVideoRate">GstVideoRate</a>;
45 </pre>
46 </div>
47 <div class="refsect1">
48 <a name="gst-plugins-base-plugins-videorate.object-hierarchy"></a><h2>Object Hierarchy</h2>
49 <pre class="synopsis">
50   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
51    +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
52          +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
53                +----GstVideoRate
54 </pre>
55 </div>
56 <div class="refsect1">
57 <a name="gst-plugins-base-plugins-videorate.properties"></a><h2>Properties</h2>
58 <pre class="synopsis">
59   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop" title='The "drop" property'>drop</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
60   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate" title='The "duplicate" property'>duplicate</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
61   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--in" title='The "in" property'>in</a>"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
62   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--new-pref" title='The "new-pref" property'>new-pref</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
63   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--out" title='The "out" property'>out</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
64   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--silent" title='The "silent" property'>silent</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
65   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first" title='The "skip-to-first" property'>skip-to-first</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
66 </pre>
67 </div>
68 <div class="refsect1">
69 <a name="gst-plugins-base-plugins-videorate.description"></a><h2>Description</h2>
70 <p>
71 This element takes an incoming stream of timestamped video frames.
72 It will produce a perfect stream that matches the source pad's framerate.
73 </p>
74 <p>
75 The correction is performed by dropping and duplicating frames, no fancy
76 algorithm is used to interpolate frames (yet).
77 </p>
78 <p>
79 By default the element will simply negotiate the same framerate on its
80 source and sink pad.
81 </p>
82 <p>
83 This operation is useful to link to elements that require a perfect stream.
84 Typical examples are formats that do not store timestamps for video frames,
85 but only store a framerate, like Ogg and AVI.
86 </p>
87 <p>
88 A conversion to a specific framerate can be forced by using filtered caps on
89 the source pad.
90 </p>
91 <p>
92 The properties <a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--in" title='The "in" property'><span class="type">"in"</span></a>, <a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--out" title='The "out" property'><span class="type">"out"</span></a>, <a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate" title='The "duplicate" property'><span class="type">"duplicate"</span></a>
93 and <a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop" title='The "drop" property'><span class="type">"drop"</span></a> can be read to obtain information about number of
94 input frames, output frames, dropped frames (i.e. the number of unused input
95 frames) and duplicated frames (i.e. the number of times an input frame was
96 duplicated, beside being used normally).
97 </p>
98 <p>
99 An input stream that needs no adjustments will thus never have dropped or
100 duplicated frames.
101 </p>
102 <p>
103 When the <a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--silent" title='The "silent" property'><span class="type">"silent"</span></a> property is set to FALSE, a GObject property
104 notification will be emitted whenever one of the <a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate" title='The "duplicate" property'><span class="type">"duplicate"</span></a> or
105 <a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop" title='The "drop" property'><span class="type">"drop"</span></a> values changes.
106 This can potentially cause performance degradation.
107 Note that property notification will happen from the streaming thread, so
108 applications should be prepared for this.
109 </p>
110 <p>
111 </p>
112 <div class="refsect2">
113 <a name="idp8830336"></a><h3>Example pipelines</h3>
114 <div class="informalexample">
115   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
116     <tbody>
117       <tr>
118         <td class="listing_lines" align="right"><pre>1</pre></td>
119         <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoradec <span class="gtkdoc opt">!</span> videorate <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">-</span>yuv<span class="gtkdoc opt">,</span>framerate<span class="gtkdoc opt">=</span><span class="number">15</span><span class="gtkdoc opt">/</span><span class="number">1</span> <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
120       </tr>
121     </tbody>
122   </table>
123 </div>
124  Decode an Ogg/Theora file and adjust the framerate to 15 fps before playing.
125 To create the test Ogg/Theora file refer to the documentation of theoraenc.
126 <div class="informalexample">
127   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
128     <tbody>
129       <tr>
130         <td class="listing_lines" align="right"><pre>1</pre></td>
131         <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v v4lsrc <span class="gtkdoc opt">!</span> videorate <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">-</span>yuv<span class="gtkdoc opt">,</span>framerate<span class="gtkdoc opt">=</span><span class="number">25</span><span class="gtkdoc opt">/</span><span class="number">2</span> <span class="gtkdoc opt">!</span> theoraenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>v4l<span class="gtkdoc opt">.</span>ogg</pre></td>
132       </tr>
133     </tbody>
134   </table>
135 </div>
136  Capture video from a V4L device, and adjust the stream to 12.5 fps before
137 encoding to Ogg/Theora.
138 </div>
139 <p>
140 </p>
141 <p>
142 Last reviewed on 2006-09-02 (0.10.11)
143 </p>
144 <div class="refsynopsisdiv">
145 <h2>Synopsis</h2>
146 <div class="refsect2">
147 <a name="idp6062432"></a><h3>Element Information</h3>
148 <div class="variablelist"><table border="0">
149 <col align="left" valign="top">
150 <tbody>
151 <tr>
152 <td><p><span class="term">plugin</span></p></td>
153 <td>
154             <a class="link" href="gst-plugins-base-plugins-plugin-videorate.html#plugin-videorate">videorate</a>
155           </td>
156 </tr>
157 <tr>
158 <td><p><span class="term">author</span></p></td>
159 <td>Wim Taymans &lt;wim@fluendo.com&gt;</td>
160 </tr>
161 <tr>
162 <td><p><span class="term">class</span></p></td>
163 <td>Filter/Effect/Video</td>
164 </tr>
165 </tbody>
166 </table></div>
167 </div>
168 <hr>
169 <div class="refsect2">
170 <a name="idp14163520"></a><h3>Element Pads</h3>
171 <div class="variablelist"><table border="0">
172 <col align="left" valign="top">
173 <tbody>
174 <tr>
175 <td><p><span class="term">name</span></p></td>
176 <td>sink</td>
177 </tr>
178 <tr>
179 <td><p><span class="term">direction</span></p></td>
180 <td>sink</td>
181 </tr>
182 <tr>
183 <td><p><span class="term">presence</span></p></td>
184 <td>always</td>
185 </tr>
186 <tr>
187 <td><p><span class="term">details</span></p></td>
188 <td>video/x-raw-yuv</td>
189 </tr>
190 <tr>
191 <td><p><span class="term"></span></p></td>
192 <td> video/x-raw-rgb</td>
193 </tr>
194 <tr>
195 <td><p><span class="term"></span></p></td>
196 <td> video/x-raw-gray</td>
197 </tr>
198 <tr>
199 <td><p><span class="term"></span></p></td>
200 <td> image/jpeg</td>
201 </tr>
202 <tr>
203 <td><p><span class="term"></span></p></td>
204 <td> image/png</td>
205 </tr>
206 </tbody>
207 </table></div>
208 <div class="variablelist"><table border="0">
209 <col align="left" valign="top">
210 <tbody>
211 <tr>
212 <td><p><span class="term">name</span></p></td>
213 <td>src</td>
214 </tr>
215 <tr>
216 <td><p><span class="term">direction</span></p></td>
217 <td>source</td>
218 </tr>
219 <tr>
220 <td><p><span class="term">presence</span></p></td>
221 <td>always</td>
222 </tr>
223 <tr>
224 <td><p><span class="term">details</span></p></td>
225 <td>video/x-raw-yuv</td>
226 </tr>
227 <tr>
228 <td><p><span class="term"></span></p></td>
229 <td> video/x-raw-rgb</td>
230 </tr>
231 <tr>
232 <td><p><span class="term"></span></p></td>
233 <td> video/x-raw-gray</td>
234 </tr>
235 <tr>
236 <td><p><span class="term"></span></p></td>
237 <td> image/jpeg</td>
238 </tr>
239 <tr>
240 <td><p><span class="term"></span></p></td>
241 <td> image/png</td>
242 </tr>
243 </tbody>
244 </table></div>
245 </div>
246 </div>
247 <p>
248 </p>
249 </div>
250 <div class="refsect1">
251 <a name="gst-plugins-base-plugins-videorate.details"></a><h2>Details</h2>
252 <div class="refsect2">
253 <a name="GstVideoRate-struct"></a><h3>struct GstVideoRate</h3>
254 <pre class="programlisting">struct GstVideoRate;</pre>
255 <p>
256 Opaque data structure.
257 </p>
258 </div>
259 </div>
260 <div class="refsect1">
261 <a name="gst-plugins-base-plugins-videorate.property-details"></a><h2>Property Details</h2>
262 <div class="refsect2">
263 <a name="GstVideoRate--drop"></a><h3>The <code class="literal">"drop"</code> property</h3>
264 <pre class="programlisting">  "drop"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
265 <p>Number of dropped frames.</p>
266 <p>Default value: 0</p>
267 </div>
268 <hr>
269 <div class="refsect2">
270 <a name="GstVideoRate--duplicate"></a><h3>The <code class="literal">"duplicate"</code> property</h3>
271 <pre class="programlisting">  "duplicate"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
272 <p>Number of duplicated frames.</p>
273 <p>Default value: 0</p>
274 </div>
275 <hr>
276 <div class="refsect2">
277 <a name="GstVideoRate--in"></a><h3>The <code class="literal">"in"</code> property</h3>
278 <pre class="programlisting">  "in"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
279 <p>Number of input frames.</p>
280 <p>Default value: 0</p>
281 </div>
282 <hr>
283 <div class="refsect2">
284 <a name="GstVideoRate--new-pref"></a><h3>The <code class="literal">"new-pref"</code> property</h3>
285 <pre class="programlisting">  "new-pref"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write</pre>
286 <p>Value indicating how much to prefer new frames (unused).</p>
287 <p>Allowed values: [0,1]</p>
288 <p>Default value: 1</p>
289 </div>
290 <hr>
291 <div class="refsect2">
292 <a name="GstVideoRate--out"></a><h3>The <code class="literal">"out"</code> property</h3>
293 <pre class="programlisting">  "out"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
294 <p>Number of output frames.</p>
295 <p>Default value: 0</p>
296 </div>
297 <hr>
298 <div class="refsect2">
299 <a name="GstVideoRate--silent"></a><h3>The <code class="literal">"silent"</code> property</h3>
300 <pre class="programlisting">  "silent"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
301 <p>Don't emit notify for dropped and duplicated frames.</p>
302 <p>Default value: TRUE</p>
303 </div>
304 <hr>
305 <div class="refsect2">
306 <a name="GstVideoRate--skip-to-first"></a><h3>The <code class="literal">"skip-to-first"</code> property</h3>
307 <pre class="programlisting">  "skip-to-first"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
308 <p>
309 Don't produce buffers before the first one we receive.
310 </p>
311 <p>Default value: FALSE</p>
312 <p class="since">Since 0.10.25</p>
313 </div>
314 </div>
315 </div>
316 <div class="footer">
317 <hr>
318           Generated by GTK-Doc V1.17</div>
319 </body>
320 </html>