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">|</span> 18 <a href="#gst-plugins-base-plugins-overlaycomposition.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 19 <a href="#gst-plugins-base-plugins-overlaycomposition.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals"> <span class="dim">|</span> 20 <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 <gst/gst.h></span> 177<span class="gtkdoc ppc">#include <gst/video/video.h></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">(&</span>s<span class="gtkdoc opt">-></span>info<span class="gtkdoc opt">,</span> caps<span class="gtkdoc opt">))</span> 195 s<span class="gtkdoc opt">-></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">-></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">(&</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">(&</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">(&</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">(&</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">(&</span>frame<span class="gtkdoc opt">, &</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">(&</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"><</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">= &</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">(&</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"><</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">= &</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">(&</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">-></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">-></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">"overlaycomposition"</span><span class="gtkdoc opt">,</span> <span class="string">"overlay"</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">"draw"</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">"caps-changed"</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 <sebastian@centricular.com></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>