• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>overlaycomposition: GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
8<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
9<link rel="prev" href="gst-plugins-base-plugins-opusenc.html" title="opusenc">
10<link rel="next" href="gst-plugins-base-plugins-parsebin.html" title="parsebin">
11<meta name="generator" content="GTK-Doc V1.28 (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="5"><tr valign="middle">
16<td width="100%" align="left" class="shortcuts">
17<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span18                  <a href="#gst-plugins-base-plugins-overlaycomposition.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span19                  <a href="#gst-plugins-base-plugins-overlaycomposition.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals">  <span class="dim">|</span20                  <a href="#gst-plugins-base-plugins-overlaycomposition.signals" class="shortcut">Signals</a></span>
21</td>
22<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
23<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
24<td><a accesskey="p" href="gst-plugins-base-plugins-opusenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
25<td><a accesskey="n" href="gst-plugins-base-plugins-parsebin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
26</tr></table>
27<div class="refentry">
28<a name="gst-plugins-base-plugins-overlaycomposition"></a><div class="titlepage"></div>
29<div class="refnamediv"><table width="100%"><tr>
30<td valign="top">
31<h2><span class="refentrytitle"><a name="gst-plugins-base-plugins-overlaycomposition.top_of_page"></a>overlaycomposition</span></h2>
32<p>overlaycomposition</p>
33</td>
34<td class="gallery_image" valign="top" align="right"></td>
35</tr></table></div>
36<div class="refsect1">
37<a name="gst-plugins-base-plugins-overlaycomposition.signals"></a><h2>Signals</h2>
38<div class="informaltable"><table class="informaltable" border="0">
39<colgroup>
40<col width="150px" class="signals_return">
41<col width="300px" class="signals_name">
42<col width="200px" class="signals_flags">
43</colgroup>
44<tbody>
45<tr>
46<td class="signal_type"><span class="returnvalue">void</span></td>
47<td class="signal_name"><a class="link" href="gst-plugins-base-plugins-overlaycomposition.html#GstOverlayComposition-caps-changed" title="The “caps-changed” signal">caps-changed</a></td>
48<td class="signal_flags"> </td>
49</tr>
50<tr>
51<td class="signal_type">
52<a href="../html/gst-plugins-base-libs-GstVideoOverlayRectangle.html#GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a>*</td>
53<td class="signal_name"><a class="link" href="gst-plugins-base-plugins-overlaycomposition.html#GstOverlayComposition-draw" title="The “draw” signal">draw</a></td>
54<td class="signal_flags"> </td>
55</tr>
56</tbody>
57</table></div>
58</div>
59<a name="GstOverlayComposition"></a><div class="refsect1">
60<a name="gst-plugins-base-plugins-overlaycomposition.other"></a><h2>Types and Values</h2>
61<div class="informaltable"><table class="informaltable" width="100%" border="0">
62<colgroup>
63<col width="150px" class="name">
64<col class="description">
65</colgroup>
66<tbody><tr>
67<td class="datatype_keyword">struct</td>
68<td class="function_name"><a class="link" href="gst-plugins-base-plugins-overlaycomposition.html#GstOverlayComposition-struct" title="struct GstOverlayComposition">GstOverlayComposition</a></td>
69</tr></tbody>
70</table></div>
71</div>
72<div class="refsect1">
73<a name="gst-plugins-base-plugins-overlaycomposition.object-hierarchy"></a><h2>Object Hierarchy</h2>
74<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
75    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
76        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
77            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
78                <span class="lineart">╰──</span> GstOverlayComposition
79</pre>
80</div>
81<div class="refsect1">
82<a name="gst-plugins-base-plugins-overlaycomposition.description"></a><h2>Description</h2>
83<p>The overlaycomposition element renders an overlay using an application
84provided draw function.</p>
85<p>A more interesting example can be found at
86https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/tests/examples/overlaycomposition/overlaycomposition.c</p>
87<div class="refsect2">
88<a name="id-1.2.81.7.4"></a><h3>Example code</h3>
89<div class="informalexample">
90  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
91    <tbody>
92      <tr>
93        <td class="listing_lines" align="right"><pre>1
942
953
964
975
986
997
1008
1019
10210
10311
10412
10513
10614
10715
10816
10917
11018
11119
11220
11321
11422
11523
11624
11725
11826
11927
12028
12129
12230
12331
12432
12533
12634
12735
12836
12937
13038
13139
13240
13341
13442
13543
13644
13745
13846
13947
14048
14149
14250
14351
14452
14553
14654
14755
14856
14957
15058
15159
15260
15361
15462
15563
15664
15765
15866
15967
16068
16169
16270
16371
16472
16573
16674
16775
16876
16977
17078
17179
17280
17381
17482
17583</pre></td>
176        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/gst.h&gt;</span>
177<span class="gtkdoc ppc">#include &lt;gst/video/video.h&gt;</span>
178
179<span class="gtkdoc opt">...</span>
180
181<span class="gtkdoc kwc">typedef</span> <span class="gtkdoc kwb">struct</span> <span class="gtkdoc opt">{</span>
182  gboolean valid<span class="gtkdoc opt">;</span>
183  GstVideoInfo info<span class="gtkdoc opt">;</span>
184<span class="gtkdoc opt">}</span> OverlayState<span class="gtkdoc opt">;</span>
185
186<span class="gtkdoc opt">...</span>
187
188<span class="gtkdoc kwb">static void</span>
189<span class="function">prepare_overlay</span> <span class="gtkdoc opt">(</span>GstElement <span class="gtkdoc opt">*</span> overlay<span class="gtkdoc opt">,</span> GstCaps <span class="gtkdoc opt">*</span> caps<span class="gtkdoc opt">,</span> gint window_width<span class="gtkdoc opt">,</span>
190    gint window_height<span class="gtkdoc opt">,</span> gpointer user_data<span class="gtkdoc opt">)</span>
191<span class="gtkdoc opt">{</span>
192  OverlayState <span class="gtkdoc opt">*</span>s <span class="gtkdoc opt">= (</span>OverlayState <span class="gtkdoc opt">*)</span>user_data<span class="gtkdoc opt">;</span>
193
194  <span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../html/gst-plugins-base-libs-GstVideo.html#gst-video-info-from-caps">gst_video_info_from_caps</a></span> <span class="gtkdoc opt">(&amp;</span>s<span class="gtkdoc opt">-&gt;</span>info<span class="gtkdoc opt">,</span> caps<span class="gtkdoc opt">))</span>
195    s<span class="gtkdoc opt">-&gt;</span>valid <span class="gtkdoc opt">=</span> TRUE<span class="gtkdoc opt">;</span>
196<span class="gtkdoc opt">}</span>
197
198<span class="gtkdoc kwb">static</span> GstVideoOverlayComposition <span class="gtkdoc opt">*</span>
199<span class="function">draw_overlay</span> <span class="gtkdoc opt">(</span>GstElement <span class="gtkdoc opt">*</span> overlay<span class="gtkdoc opt">,</span> GstSample <span class="gtkdoc opt">*</span> sample<span class="gtkdoc opt">,</span> gpointer user_data<span class="gtkdoc opt">)</span>
200<span class="gtkdoc opt">{</span>
201  OverlayState <span class="gtkdoc opt">*</span>s <span class="gtkdoc opt">= (</span>OverlayState <span class="gtkdoc opt">*)</span>user_data<span class="gtkdoc opt">;</span>
202  GstBuffer <span class="gtkdoc opt">*</span>buffer<span class="gtkdoc opt">;</span>
203  GstVideoOverlayRectangle <span class="gtkdoc opt">*</span>rect<span class="gtkdoc opt">;</span>
204  GstVideoOverlayComposition <span class="gtkdoc opt">*</span>comp<span class="gtkdoc opt">;</span>
205  GstVideoInfo info<span class="gtkdoc opt">;</span>
206  GstVideoFrame frame<span class="gtkdoc opt">;</span>
207  gint x<span class="gtkdoc opt">,</span> y<span class="gtkdoc opt">;</span>
208  guint8 <span class="gtkdoc opt">*</span>data<span class="gtkdoc opt">;</span>
209
210  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span>s<span class="gtkdoc opt">-&gt;</span>valid<span class="gtkdoc opt">)</span>
211    <span class="keyword">return</span> NULL<span class="gtkdoc opt">;</span>
212
213  <span class="function"><a href="../html/gst-plugins-base-libs-GstVideo.html#gst-video-info-set-format">gst_video_info_set_format</a></span> <span class="gtkdoc opt">(&amp;</span>info<span class="gtkdoc opt">,</span> GST_VIDEO_FORMAT_BGRA<span class="gtkdoc opt">,</span> <span class="number">16</span><span class="gtkdoc opt">,</span> <span class="number">16</span><span class="gtkdoc opt">);</span>
214  buffer <span class="gtkdoc opt">=</span> <span class="function">gst_buffer_new_and_alloc</span> <span class="gtkdoc opt">(</span>info<span class="gtkdoc opt">.</span>size<span class="gtkdoc opt">);</span>
215  <span class="function"><a href="../html/gst-plugins-base-libs-GstMeta-for-video.html#gst-buffer-add-video-meta">gst_buffer_add_video_meta</a></span> <span class="gtkdoc opt">(</span>buffer<span class="gtkdoc opt">,</span> GST_VIDEO_FRAME_FLAG_NONE<span class="gtkdoc opt">,</span>
216      <span class="function"><a href="../html/gst-plugins-base-libs-GstVideo.html#GST-VIDEO-INFO-FORMAT:CAPS">GST_VIDEO_INFO_FORMAT</a></span><span class="gtkdoc opt">(&amp;</span>info<span class="gtkdoc opt">),</span>
217      <span class="function"><a href="../html/gst-plugins-base-libs-GstVideo.html#GST-VIDEO-INFO-WIDTH:CAPS">GST_VIDEO_INFO_WIDTH</a></span><span class="gtkdoc opt">(&amp;</span>info<span class="gtkdoc opt">),</span>
218      <span class="function"><a href="../html/gst-plugins-base-libs-GstVideo.html#GST-VIDEO-INFO-HEIGHT:CAPS">GST_VIDEO_INFO_HEIGHT</a></span><span class="gtkdoc opt">(&amp;</span>info<span class="gtkdoc opt">));</span>
219
220  <span class="function"><a href="../html/gst-plugins-base-libs-GstVideo.html#gst-video-frame-map">gst_video_frame_map</a></span> <span class="gtkdoc opt">(&amp;</span>frame<span class="gtkdoc opt">, &amp;</span>info<span class="gtkdoc opt">,</span> buffer<span class="gtkdoc opt">,</span> GST_MAP_WRITE<span class="gtkdoc opt">);</span>
221
222  <span class="gtkdoc slc">// Overlay a half-transparent blue 16x16 rectangle in the middle</span>
223  <span class="gtkdoc slc">// of the frame</span>
224  data <span class="gtkdoc opt">=</span> <span class="function"><a href="../html/gst-plugins-base-libs-GstVideo.html#GST-VIDEO-FRAME-PLANE-DATA:CAPS">GST_VIDEO_FRAME_PLANE_DATA</a></span><span class="gtkdoc opt">(&amp;</span>frame<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
225  <span class="keyword">for</span> <span class="gtkdoc opt">(</span>y <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> y <span class="gtkdoc opt">&lt;</span> <span class="number">16</span><span class="gtkdoc opt">;</span> y<span class="gtkdoc opt">++) {</span>
226    guint8 <span class="gtkdoc opt">*</span>line <span class="gtkdoc opt">= &amp;</span>data<span class="gtkdoc opt">[</span>y <span class="gtkdoc opt">*</span> <span class="function"><a href="../html/gst-plugins-base-libs-GstVideo.html#GST-VIDEO-FRAME-PLANE-STRIDE:CAPS">GST_VIDEO_FRAME_PLANE_STRIDE</a></span> <span class="gtkdoc opt">(&amp;</span>frame<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">)];</span>
227    <span class="keyword">for</span> <span class="gtkdoc opt">(</span>x <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> x <span class="gtkdoc opt">&lt;</span> <span class="number">16</span><span class="gtkdoc opt">;</span> x<span class="gtkdoc opt">++) {</span>
228      guint8 <span class="gtkdoc opt">*</span>pixel <span class="gtkdoc opt">= &amp;</span>line<span class="gtkdoc opt">[</span>x <span class="gtkdoc opt">*</span> <span class="number">4</span><span class="gtkdoc opt">];</span>
229
230      pixel<span class="gtkdoc opt">[</span><span class="number">0</span><span class="gtkdoc opt">] =</span> <span class="number">255</span><span class="gtkdoc opt">;</span>
231      pixel<span class="gtkdoc opt">[</span><span class="number">1</span><span class="gtkdoc opt">] =</span> <span class="number">0</span><span class="gtkdoc opt">;</span>
232      pixel<span class="gtkdoc opt">[</span><span class="number">2</span><span class="gtkdoc opt">] =</span> <span class="number">0</span><span class="gtkdoc opt">;</span>
233      pixel<span class="gtkdoc opt">[</span><span class="number">3</span><span class="gtkdoc opt">] =</span> <span class="number">127</span><span class="gtkdoc opt">;</span>
234    <span class="gtkdoc opt">}</span>
235  <span class="gtkdoc opt">}</span>
236
237  <span class="function"><a href="../html/gst-plugins-base-libs-GstVideo.html#gst-video-frame-unmap">gst_video_frame_unmap</a></span> <span class="gtkdoc opt">(&amp;</span>frame<span class="gtkdoc opt">);</span>
238  rect <span class="gtkdoc opt">=</span> <span class="function"><a href="../html/gst-plugins-base-libs-GstVideoOverlayRectangle.html#gst-video-overlay-rectangle-new-raw">gst_video_overlay_rectangle_new_raw</a></span> <span class="gtkdoc opt">(</span>buffer<span class="gtkdoc opt">,</span>
239      s<span class="gtkdoc opt">-&gt;</span>info<span class="gtkdoc opt">.</span>width <span class="gtkdoc opt">/</span> <span class="number">2</span> <span class="gtkdoc opt">-</span> <span class="number">8</span><span class="gtkdoc opt">,</span>
240      s<span class="gtkdoc opt">-&gt;</span>info<span class="gtkdoc opt">.</span>height <span class="gtkdoc opt">/</span> <span class="number">2</span> <span class="gtkdoc opt">-</span> <span class="number">8</span><span class="gtkdoc opt">,</span>
241      <span class="number">16</span><span class="gtkdoc opt">,</span> <span class="number">16</span><span class="gtkdoc opt">,</span>
242      GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE<span class="gtkdoc opt">);</span>
243  comp <span class="gtkdoc opt">=</span> <span class="function"><a href="../html/gst-plugins-base-libs-GstVideoOverlayRectangle.html#gst-video-overlay-composition-new">gst_video_overlay_composition_new</a></span> <span class="gtkdoc opt">(</span>rect<span class="gtkdoc opt">);</span>
244  <span class="function"><a href="../html/gst-plugins-base-libs-GstVideoOverlayRectangle.html#gst-video-overlay-rectangle-unref">gst_video_overlay_rectangle_unref</a></span> <span class="gtkdoc opt">(</span>rect<span class="gtkdoc opt">);</span>
245  <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#gst-buffer-unref">gst_buffer_unref</a></span> <span class="gtkdoc opt">(</span>buffer<span class="gtkdoc opt">);</span>
246
247  <span class="keyword">return</span> comp<span class="gtkdoc opt">;</span>
248<span class="gtkdoc opt">}</span>
249
250<span class="gtkdoc opt">...</span>
251
252overlay <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElementFactory.html#gst-element-factory-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;overlaycomposition&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;overlay&quot;</span><span class="gtkdoc opt">);</span>
253
254<span class="function"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>overlay<span class="gtkdoc opt">,</span> <span class="string">&quot;draw&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="/usr/share/gtk-doc/html/gobject/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>draw_overlay<span class="gtkdoc opt">),</span>
255  overlay_state<span class="gtkdoc opt">);</span>
256<span class="function"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>overlay<span class="gtkdoc opt">,</span> <span class="string">&quot;caps-changed&quot;</span><span class="gtkdoc opt">,</span>
257  <span class="function"><a href="/usr/share/gtk-doc/html/gobject/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>prepare_overlay<span class="gtkdoc opt">),</span> overlay_state<span class="gtkdoc opt">);</span>
258<span class="gtkdoc opt">...</span></pre></td>
259      </tr>
260    </tbody>
261  </table>
262</div>
263
264</div>
265<div class="refsynopsisdiv">
266<h2>Synopsis</h2>
267<div class="refsect2">
268<a name="id-1.2.81.7.5.1"></a><h3>Element Information</h3>
269<div class="variablelist"><table border="0" class="variablelist">
270<colgroup>
271<col align="left" valign="top">
272<col>
273</colgroup>
274<tbody>
275<tr>
276<td><p><span class="term">plugin</span></p></td>
277<td>
278            <a class="link" href="gst-plugins-base-plugins-plugin-overlaycomposition.html#plugin-overlaycomposition">overlaycomposition</a>
279          </td>
280</tr>
281<tr>
282<td><p><span class="term">author</span></p></td>
283<td>Sebastian Dröge &lt;sebastian@centricular.com&gt;</td>
284</tr>
285<tr>
286<td><p><span class="term">class</span></p></td>
287<td>Filter/Editor/Video</td>
288</tr>
289</tbody>
290</table></div>
291</div>
292<hr>
293<div class="refsect2">
294<a name="id-1.2.81.7.5.2"></a><h3>Element Pads</h3>
295<div class="variablelist"><table border="0" class="variablelist">
296<colgroup>
297<col align="left" valign="top">
298<col>
299</colgroup>
300<tbody>
301<tr>
302<td><p><span class="term">name</span></p></td>
303<td>sink</td>
304</tr>
305<tr>
306<td><p><span class="term">direction</span></p></td>
307<td>sink</td>
308</tr>
309<tr>
310<td><p><span class="term">presence</span></p></td>
311<td>always</td>
312</tr>
313<tr>
314<td><p><span class="term">details</span></p></td>
315<td>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
316</tr>
317<tr>
318<td><p><span class="term"></span></p></td>
319<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, VUYA, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, Y210, Y410, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, BGR10A2_LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32, NV12_10LE40 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
320</tr>
321</tbody>
322</table></div>
323<div class="variablelist"><table border="0" class="variablelist">
324<colgroup>
325<col align="left" valign="top">
326<col>
327</colgroup>
328<tbody>
329<tr>
330<td><p><span class="term">name</span></p></td>
331<td>src</td>
332</tr>
333<tr>
334<td><p><span class="term">direction</span></p></td>
335<td>source</td>
336</tr>
337<tr>
338<td><p><span class="term">presence</span></p></td>
339<td>always</td>
340</tr>
341<tr>
342<td><p><span class="term">details</span></p></td>
343<td>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
344</tr>
345<tr>
346<td><p><span class="term"></span></p></td>
347<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, VUYA, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, Y210, Y410, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, BGR10A2_LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32, NV12_10LE40 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
348</tr>
349</tbody>
350</table></div>
351</div>
352</div>
353</div>
354<div class="refsect1">
355<a name="gst-plugins-base-plugins-overlaycomposition.functions_details"></a><h2>Functions</h2>
356<p></p>
357</div>
358<div class="refsect1">
359<a name="gst-plugins-base-plugins-overlaycomposition.other_details"></a><h2>Types and Values</h2>
360<div class="refsect2">
361<a name="GstOverlayComposition-struct"></a><h3>struct GstOverlayComposition</h3>
362<pre class="programlisting">struct GstOverlayComposition;</pre>
363</div>
364</div>
365<div class="refsect1">
366<a name="gst-plugins-base-plugins-overlaycomposition.signal-details"></a><h2>Signal Details</h2>
367<div class="refsect2">
368<a name="GstOverlayComposition-caps-changed"></a><h3>The <code class="literal">“caps-changed”</code> signal</h3>
369<pre class="programlisting"><span class="returnvalue">void</span>
370user_function (<a class="link" href="gst-plugins-base-plugins-overlaycomposition.html#GstOverlayComposition"><span class="type">GstOverlayComposition</span></a> *overlay,
371               <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>               *caps,
372               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                  window_width,
373               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                  window_height,
374               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>               user_data)</pre>
375<p>This signal is emitted when the caps of the element has changed.</p>
376<p>The window width and height define the resolution at which the frame is
377going to be rendered in the end by e.g. a video sink (i.e. the window
378size).</p>
379<div class="refsect3">
380<a name="GstOverlayComposition-caps-changed.parameters"></a><h4>Parameters</h4>
381<div class="informaltable"><table class="informaltable" width="100%" border="0">
382<colgroup>
383<col width="150px" class="parameters_name">
384<col class="parameters_description">
385<col width="200px" class="parameters_annotations">
386</colgroup>
387<tbody>
388<tr>
389<td class="parameter_name"><p>overlay</p></td>
390<td class="parameter_description"><p>Overlay element emitting the signal.</p></td>
391<td class="parameter_annotations"> </td>
392</tr>
393<tr>
394<td class="parameter_name"><p>caps</p></td>
395<td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> of the element.</p></td>
396<td class="parameter_annotations"> </td>
397</tr>
398<tr>
399<td class="parameter_name"><p>window_width</p></td>
400<td class="parameter_description"><p>The window render width of downstream, or 0.</p></td>
401<td class="parameter_annotations"> </td>
402</tr>
403<tr>
404<td class="parameter_name"><p>window_height</p></td>
405<td class="parameter_description"><p>The window render height of downstream, or 0.</p></td>
406<td class="parameter_annotations"> </td>
407</tr>
408<tr>
409<td class="parameter_name"><p>user_data</p></td>
410<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
411<td class="parameter_annotations"> </td>
412</tr>
413</tbody>
414</table></div>
415</div>
416</div>
417<hr>
418<div class="refsect2">
419<a name="GstOverlayComposition-draw"></a><h3>The <code class="literal">“draw”</code> signal</h3>
420<pre class="programlisting"><a href="../html/gst-plugins-base-libs-GstVideoOverlayRectangle.html#GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a>*
421user_function (<a class="link" href="gst-plugins-base-plugins-overlaycomposition.html#GstOverlayComposition"><span class="type">GstOverlayComposition</span></a> *overlay,
422               <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstSample.html#GstSample-struct"><span class="type">GstSample</span></a>             *sample,
423               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>               user_data)</pre>
424<p>This signal is emitted when the overlay should be drawn.</p>
425<div class="refsect3">
426<a name="GstOverlayComposition-draw.parameters"></a><h4>Parameters</h4>
427<div class="informaltable"><table class="informaltable" width="100%" border="0">
428<colgroup>
429<col width="150px" class="parameters_name">
430<col class="parameters_description">
431<col width="200px" class="parameters_annotations">
432</colgroup>
433<tbody>
434<tr>
435<td class="parameter_name"><p>overlay</p></td>
436<td class="parameter_description"><p>Overlay element emitting the signal.</p></td>
437<td class="parameter_annotations"> </td>
438</tr>
439<tr>
440<td class="parameter_name"><p>sample</p></td>
441<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstSample.html#GstSample-struct"><span class="type">GstSample</span></a> containing the current buffer, caps and segment.</p></td>
442<td class="parameter_annotations"> </td>
443</tr>
444<tr>
445<td class="parameter_name"><p>user_data</p></td>
446<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
447<td class="parameter_annotations"> </td>
448</tr>
449</tbody>
450</table></div>
451</div>
452<div class="refsect3">
453<a name="GstOverlayComposition-draw.returns"></a><h4>Returns</h4>
454<p> <a href="../html/gst-plugins-base-libs-GstVideoOverlayRectangle.html#GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p>
455</div>
456</div>
457</div>
458</div>
459<div class="footer">
460<hr>Generated by GTK-Doc V1.28</div>
461</body>
462</html>