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>GstVideoAggregator: GStreamer Base Plugins 1.0 Library 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 Library Reference Manual"> 8<link rel="up" href="gstreamer-video.html" title="Video Library"> 9<link rel="prev" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html" title="GstVideoAffineTransformationMeta"> 10<link rel="next" href="GstVideoAggregatorPad.html" title="GstVideoAggregatorPad"> 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="#GstVideoAggregator.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 19 <a href="#GstVideoAggregator.object-hierarchy" class="shortcut">Object Hierarchy</a></span> 20</td> 21<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> 22<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> 23<td><a accesskey="p" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> 24<td><a accesskey="n" href="GstVideoAggregatorPad.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> 25</tr></table> 26<div class="refentry"> 27<a name="GstVideoAggregator"></a><div class="titlepage"></div> 28<div class="refnamediv"><table width="100%"><tr> 29<td valign="top"> 30<h2><span class="refentrytitle"><a name="GstVideoAggregator.top_of_page"></a>GstVideoAggregator</span></h2> 31<p>GstVideoAggregator — Base class for video aggregators</p> 32</td> 33<td class="gallery_image" valign="top" align="right"></td> 34</tr></table></div> 35<div class="refsect1"> 36<a name="GstVideoAggregator.other"></a><h2>Types and Values</h2> 37<div class="informaltable"><table class="informaltable" width="100%" border="0"> 38<colgroup> 39<col width="150px" class="name"> 40<col class="description"> 41</colgroup> 42<tbody> 43<tr> 44<td class="datatype_keyword">struct</td> 45<td class="function_name"><a class="link" href="GstVideoAggregator.html#GstVideoAggregator-struct" title="struct GstVideoAggregator">GstVideoAggregator</a></td> 46</tr> 47<tr> 48<td class="datatype_keyword">struct</td> 49<td class="function_name"><a class="link" href="GstVideoAggregator.html#GstVideoAggregatorClass" title="struct GstVideoAggregatorClass">GstVideoAggregatorClass</a></td> 50</tr> 51</tbody> 52</table></div> 53</div> 54<div class="refsect1"> 55<a name="GstVideoAggregator.object-hierarchy"></a><h2>Object Hierarchy</h2> 56<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a> 57 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> 58 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a> 59 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a> 60 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstAggregator.html#GstAggregator-struct">GstAggregator</a> 61 <span class="lineart">╰──</span> GstVideoAggregator 62</pre> 63</div> 64<div class="refsect1"> 65<a name="GstVideoAggregator.includes"></a><h2>Includes</h2> 66<pre class="synopsis">#include <gst/video/video.h> 67</pre> 68</div> 69<div class="refsect1"> 70<a name="GstVideoAggregator.description"></a><h2>Description</h2> 71<p>VideoAggregator can accept AYUV, ARGB and BGRA video streams. For each of the requested 72sink pads it will compare the incoming geometry and framerate to define the 73output parameters. Indeed output video frames will have the geometry of the 74biggest incoming video stream and the framerate of the fastest incoming one.</p> 75<p>VideoAggregator will do colorspace conversion.</p> 76<p>Zorder for each input stream can be configured on the 77<a class="link" href="GstVideoAggregatorPad.html" title="GstVideoAggregatorPad"><span class="type">GstVideoAggregatorPad</span></a>.</p> 78</div> 79<div class="refsect1"> 80<a name="GstVideoAggregator.functions_details"></a><h2>Functions</h2> 81<p></p> 82</div> 83<div class="refsect1"> 84<a name="GstVideoAggregator.other_details"></a><h2>Types and Values</h2> 85<div class="refsect2"> 86<a name="GstVideoAggregator-struct"></a><h3>struct GstVideoAggregator</h3> 87<pre class="programlisting">struct GstVideoAggregator { 88 /* Output caps */ 89 GstVideoInfo info; 90}; 91</pre> 92<div class="refsect3"> 93<a name="GstVideoAggregator.members"></a><h4>Members</h4> 94<div class="informaltable"><table class="informaltable" width="100%" border="0"> 95<colgroup> 96<col width="300px" class="struct_members_name"> 97<col class="struct_members_description"> 98<col width="200px" class="struct_members_annotations"> 99</colgroup> 100<tbody><tr> 101<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-GstVideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> <em class="structfield"><code><a name="GstVideoAggregator-struct.info"></a>info</code></em>;</p></td> 102<td class="struct_member_description"><p>The <a class="link" href="gst-plugins-base-libs-GstVideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> representing the currently set 103srcpad caps.</p></td> 104<td class="struct_member_annotations"> </td> 105</tr></tbody> 106</table></div> 107</div> 108<p class="since">Since: <a class="link" href="ix03.html#api-index-1.16">1.16</a></p> 109</div> 110<hr> 111<div class="refsect2"> 112<a name="GstVideoAggregatorClass"></a><h3>struct GstVideoAggregatorClass</h3> 113<pre class="programlisting">struct GstVideoAggregatorClass { 114 GstCaps * (*update_caps) (GstVideoAggregator * videoaggregator, 115 GstCaps * caps); 116 GstFlowReturn (*aggregate_frames) (GstVideoAggregator * videoaggregator, 117 GstBuffer * outbuffer); 118 GstFlowReturn (*create_output_buffer) (GstVideoAggregator * videoaggregator, 119 GstBuffer ** outbuffer); 120 void (*find_best_format) (GstVideoAggregator * vagg, 121 GstCaps * downstream_caps, 122 GstVideoInfo * best_info, 123 gboolean * at_least_one_alpha); 124}; 125</pre> 126<div class="refsect3"> 127<a name="GstVideoAggregatorClass.members"></a><h4>Members</h4> 128<div class="informaltable"><table class="informaltable" width="100%" border="0"> 129<colgroup> 130<col width="300px" class="struct_members_name"> 131<col class="struct_members_description"> 132<col width="200px" class="struct_members_annotations"> 133</colgroup> 134<tbody> 135<tr> 136<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoAggregatorClass.update-caps"></a>update_caps</code></em> ()</p></td> 137<td class="struct_member_description"><p>Optional. 138Lets subclasses update the <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> representing 139the src pad caps before usage. Return <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to indicate failure.</p></td> 140<td class="struct_member_annotations"> </td> 141</tr> 142<tr> 143<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoAggregatorClass.aggregate-frames"></a>aggregate_frames</code></em> ()</p></td> 144<td class="struct_member_description"><p>Lets subclasses aggregate frames that are ready. Subclasses 145should iterate the GstElement.sinkpads and use the already 146mapped <a class="link" href="gst-plugins-base-libs-GstVideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> from <code class="function">gst_video_aggregator_pad_get_prepared_frame()</code> 147or directly use the <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> from <code class="function">gst_video_aggregator_pad_get_current_buffer()</code> 148if it needs to map the buffer in a special way. The result of the 149aggregation should land in <em class="parameter"><code>outbuffer</code></em> 150.</p></td> 151<td class="struct_member_annotations"> </td> 152</tr> 153<tr> 154<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoAggregatorClass.create-output-buffer"></a>create_output_buffer</code></em> ()</p></td> 155<td class="struct_member_description"><p>Optional. 156Lets subclasses provide a <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> to be used as <em class="parameter"><code>outbuffer</code></em> 157of 158the <span class="type">aggregate_frames</span> vmethod.</p></td> 159<td class="struct_member_annotations"> </td> 160</tr> 161<tr> 162<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoAggregatorClass.find-best-format"></a>find_best_format</code></em> ()</p></td> 163<td class="struct_member_description"><p>Optional. 164Lets subclasses decide of the best common format to use.</p></td> 165<td class="struct_member_annotations"> </td> 166</tr> 167</tbody> 168</table></div> 169</div> 170<p class="since">Since: <a class="link" href="ix03.html#api-index-1.16">1.16</a></p> 171</div> 172</div> 173</div> 174<div class="footer"> 175<hr>Generated by GTK-Doc V1.28</div> 176</body> 177</html>