Tizen 2.1 base
[profile/ivi/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.76.1">
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.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="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                +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
54                      +----GstVideoRate
55 </pre>
56 </div>
57 <div class="refsect1">
58 <a name="gst-plugins-base-plugins-videorate.properties"></a><h2>Properties</h2>
59 <pre class="synopsis">
60   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop" title='The "drop" property'>drop</a>"                     <span class="type">guint64</span>               : Read
61   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate" title='The "duplicate" property'>duplicate</a>"                <span class="type">guint64</span>               : Read
62   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--in" title='The "in" property'>in</a>"                       <span class="type">guint64</span>               : Read
63   "<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
64   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--out" title='The "out" property'>out</a>"                      <span class="type">guint64</span>               : Read
65   "<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
66   "<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
67   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--average-period" title='The "average-period" property'>average-period</a>"           <span class="type">guint64</span>               : Read / Write
68   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop-only" title='The "drop-only" property'>drop-only</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
69   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--force-fps" title='The "force-fps" property'>force-fps</a>"                <span class="type">GstFraction</span>           : Read / Write / Construct
70   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--max-rate" title='The "max-rate" property'>max-rate</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write / Construct
71 </pre>
72 </div>
73 <div class="refsect1">
74 <a name="gst-plugins-base-plugins-videorate.description"></a><h2>Description</h2>
75 <p>
76 This element takes an incoming stream of timestamped video frames.
77 It will produce a perfect stream that matches the source pad's framerate.
78 </p>
79 <p>
80 The correction is performed by dropping and duplicating frames, no fancy
81 algorithm is used to interpolate frames (yet).
82 </p>
83 <p>
84 By default the element will simply negotiate the same framerate on its
85 source and sink pad.
86 </p>
87 <p>
88 This operation is useful to link to elements that require a perfect stream.
89 Typical examples are formats that do not store timestamps for video frames,
90 but only store a framerate, like Ogg and AVI.
91 </p>
92 <p>
93 A conversion to a specific framerate can be forced by using filtered caps on
94 the source pad.
95 </p>
96 <p>
97 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>
98 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
99 input frames, output frames, dropped frames (i.e. the number of unused input
100 frames) and duplicated frames (i.e. the number of times an input frame was
101 duplicated, beside being used normally).
102 </p>
103 <p>
104 An input stream that needs no adjustments will thus never have dropped or
105 duplicated frames.
106 </p>
107 <p>
108 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
109 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
110 <a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop" title='The "drop" property'><span class="type">"drop"</span></a> values changes.
111 This can potentially cause performance degradation.
112 Note that property notification will happen from the streaming thread, so
113 applications should be prepared for this.
114 </p>
115 <p>
116 </p>
117 <div class="refsect2">
118 <a name="idp14912624"></a><h3>Example pipelines</h3>
119 <div class="informalexample">
120   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
121     <tbody>
122       <tr>
123         <td class="listing_lines" align="right"><pre>1</pre></td>
124         <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>
125       </tr>
126     </tbody>
127   </table>
128 </div>
129  Decode an Ogg/Theora file and adjust the framerate to 15 fps before playing.
130 To create the test Ogg/Theora file refer to the documentation of theoraenc.
131 <div class="informalexample">
132   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
133     <tbody>
134       <tr>
135         <td class="listing_lines" align="right"><pre>1</pre></td>
136         <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>
137       </tr>
138     </tbody>
139   </table>
140 </div>
141  Capture video from a V4L device, and adjust the stream to 12.5 fps before
142 encoding to Ogg/Theora.
143 </div>
144 <p>
145 </p>
146 <p>
147 Last reviewed on 2006-09-02 (0.10.11)
148 </p>
149 <div class="refsynopsisdiv">
150 <h2>Synopsis</h2>
151 <div class="refsect2">
152 <a name="idp14917040"></a><h3>Element Information</h3>
153 <div class="variablelist"><table border="0">
154 <col align="left" valign="top">
155 <tbody>
156 <tr>
157 <td><p><span class="term">plugin</span></p></td>
158 <td>
159             <a class="link" href="gst-plugins-base-plugins-plugin-videorate.html#plugin-videorate">videorate</a>
160           </td>
161 </tr>
162 <tr>
163 <td><p><span class="term">author</span></p></td>
164 <td>Wim Taymans &lt;wim@fluendo.com&gt;</td>
165 </tr>
166 <tr>
167 <td><p><span class="term">class</span></p></td>
168 <td>Filter/Effect/Video</td>
169 </tr>
170 </tbody>
171 </table></div>
172 </div>
173 <hr>
174 <div class="refsect2">
175 <a name="idp14924496"></a><h3>Element Pads</h3>
176 <div class="variablelist"><table border="0">
177 <col align="left" valign="top">
178 <tbody>
179 <tr>
180 <td><p><span class="term">name</span></p></td>
181 <td>sink</td>
182 </tr>
183 <tr>
184 <td><p><span class="term">direction</span></p></td>
185 <td>sink</td>
186 </tr>
187 <tr>
188 <td><p><span class="term">presence</span></p></td>
189 <td>always</td>
190 </tr>
191 <tr>
192 <td><p><span class="term">details</span></p></td>
193 <td>video/x-raw-yuv</td>
194 </tr>
195 <tr>
196 <td><p><span class="term"></span></p></td>
197 <td> video/x-raw-rgb</td>
198 </tr>
199 <tr>
200 <td><p><span class="term"></span></p></td>
201 <td> video/x-raw-gray</td>
202 </tr>
203 <tr>
204 <td><p><span class="term"></span></p></td>
205 <td> image/jpeg</td>
206 </tr>
207 <tr>
208 <td><p><span class="term"></span></p></td>
209 <td> image/png</td>
210 </tr>
211 </tbody>
212 </table></div>
213 <div class="variablelist"><table border="0">
214 <col align="left" valign="top">
215 <tbody>
216 <tr>
217 <td><p><span class="term">name</span></p></td>
218 <td>src</td>
219 </tr>
220 <tr>
221 <td><p><span class="term">direction</span></p></td>
222 <td>source</td>
223 </tr>
224 <tr>
225 <td><p><span class="term">presence</span></p></td>
226 <td>always</td>
227 </tr>
228 <tr>
229 <td><p><span class="term">details</span></p></td>
230 <td>video/x-raw-yuv</td>
231 </tr>
232 <tr>
233 <td><p><span class="term"></span></p></td>
234 <td> video/x-raw-rgb</td>
235 </tr>
236 <tr>
237 <td><p><span class="term"></span></p></td>
238 <td> video/x-raw-gray</td>
239 </tr>
240 <tr>
241 <td><p><span class="term"></span></p></td>
242 <td> image/jpeg</td>
243 </tr>
244 <tr>
245 <td><p><span class="term"></span></p></td>
246 <td> image/png</td>
247 </tr>
248 </tbody>
249 </table></div>
250 </div>
251 </div>
252 <p>
253 </p>
254 </div>
255 <div class="refsect1">
256 <a name="gst-plugins-base-plugins-videorate.details"></a><h2>Details</h2>
257 <div class="refsect2">
258 <a name="GstVideoRate-struct"></a><h3>struct GstVideoRate</h3>
259 <pre class="programlisting">struct GstVideoRate;</pre>
260 <p>
261 Opaque data structure.
262 </p>
263 </div>
264 </div>
265 <div class="refsect1">
266 <a name="gst-plugins-base-plugins-videorate.property-details"></a><h2>Property Details</h2>
267 <div class="refsect2">
268 <a name="GstVideoRate--drop"></a><h3>The <code class="literal">"drop"</code> property</h3>
269 <pre class="programlisting">  "drop"                     <span class="type">guint64</span>               : Read</pre>
270 <p>Number of dropped frames.</p>
271 <p>Default value: 0</p>
272 </div>
273 <hr>
274 <div class="refsect2">
275 <a name="GstVideoRate--duplicate"></a><h3>The <code class="literal">"duplicate"</code> property</h3>
276 <pre class="programlisting">  "duplicate"                <span class="type">guint64</span>               : Read</pre>
277 <p>Number of duplicated frames.</p>
278 <p>Default value: 0</p>
279 </div>
280 <hr>
281 <div class="refsect2">
282 <a name="GstVideoRate--in"></a><h3>The <code class="literal">"in"</code> property</h3>
283 <pre class="programlisting">  "in"                       <span class="type">guint64</span>               : Read</pre>
284 <p>Number of input frames.</p>
285 <p>Default value: 0</p>
286 </div>
287 <hr>
288 <div class="refsect2">
289 <a name="GstVideoRate--new-pref"></a><h3>The <code class="literal">"new-pref"</code> property</h3>
290 <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>
291 <p>Value indicating how much to prefer new frames (unused).</p>
292 <p>Allowed values: [0,1]</p>
293 <p>Default value: 1</p>
294 </div>
295 <hr>
296 <div class="refsect2">
297 <a name="GstVideoRate--out"></a><h3>The <code class="literal">"out"</code> property</h3>
298 <pre class="programlisting">  "out"                      <span class="type">guint64</span>               : Read</pre>
299 <p>Number of output frames.</p>
300 <p>Default value: 0</p>
301 </div>
302 <hr>
303 <div class="refsect2">
304 <a name="GstVideoRate--silent"></a><h3>The <code class="literal">"silent"</code> property</h3>
305 <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>
306 <p>Don't emit notify for dropped and duplicated frames.</p>
307 <p>Default value: TRUE</p>
308 </div>
309 <hr>
310 <div class="refsect2">
311 <a name="GstVideoRate--skip-to-first"></a><h3>The <code class="literal">"skip-to-first"</code> property</h3>
312 <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>
313 <p>
314 Don't produce buffers before the first one we receive.
315 </p>
316 <p>Default value: FALSE</p>
317 <p class="since">Since 0.10.25</p>
318 </div>
319 <hr>
320 <div class="refsect2">
321 <a name="GstVideoRate--average-period"></a><h3>The <code class="literal">"average-period"</code> property</h3>
322 <pre class="programlisting">  "average-period"           <span class="type">guint64</span>               : Read / Write</pre>
323 <p>
324 Arrange for maximum framerate by dropping frames beyond a certain framerate,
325 where the framerate is calculated using a moving average over the
326 configured.
327 </p>
328 <p>Allowed values: &lt;= G_MAXLONG</p>
329 <p>Default value: 0</p>
330 <p class="since">Since 0.10.36</p>
331 </div>
332 <hr>
333 <div class="refsect2">
334 <a name="GstVideoRate--drop-only"></a><h3>The <code class="literal">"drop-only"</code> property</h3>
335 <pre class="programlisting">  "drop-only"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
336 <p>
337 Only drop frames, no duplicates are produced.
338 </p>
339 <p>Default value: FALSE</p>
340 <p class="since">Since 0.10.36</p>
341 </div>
342 <hr>
343 <div class="refsect2">
344 <a name="GstVideoRate--force-fps"></a><h3>The <code class="literal">"force-fps"</code> property</h3>
345 <pre class="programlisting">  "force-fps"                <span class="type">GstFraction</span>           : Read / Write / Construct</pre>
346 <p>
347 Forced output framerate
348 </p>
349 <p class="since">Since 0.10.36</p>
350 </div>
351 <hr>
352 <div class="refsect2">
353 <a name="GstVideoRate--max-rate"></a><h3>The <code class="literal">"max-rate"</code> property</h3>
354 <pre class="programlisting">  "max-rate"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write / Construct</pre>
355 <p>
356 maximum framerate to pass through
357 </p>
358 <p>Allowed values: &gt;= 1</p>
359 <p>Default value: 2147483647</p>
360 <p class="since">Since 0.10.36</p>
361 </div>
362 </div>
363 </div>
364 <div class="footer">
365 <hr>
366           Generated by GTK-Doc V1.18</div>
367 </body>
368 </html>