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>GstVideoAffineTransformationMeta: 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-GstMeta-for-video.html" title="GstMeta for video"> 10<link rel="next" href="GstVideoAggregator.html" title="GstVideoAggregator"> 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-libs-GstVideoAffineTransformationMeta.description" class="shortcut">Description</a></span> 19</td> 20<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> 21<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> 22<td><a accesskey="p" href="gst-plugins-base-libs-GstMeta-for-video.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> 23<td><a accesskey="n" href="GstVideoAggregator.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> 24</tr></table> 25<div class="refentry"> 26<a name="gst-plugins-base-libs-GstVideoAffineTransformationMeta"></a><div class="titlepage"></div> 27<div class="refnamediv"><table width="100%"><tr> 28<td valign="top"> 29<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoAffineTransformationMeta.top_of_page"></a>GstVideoAffineTransformationMeta</span></h2> 30<p>GstVideoAffineTransformationMeta — GstMeta for video affine transformation</p> 31</td> 32<td class="gallery_image" valign="top" align="right"></td> 33</tr></table></div> 34<div class="refsect1"> 35<a name="gst-plugins-base-libs-GstVideoAffineTransformationMeta.functions"></a><h2>Functions</h2> 36<div class="informaltable"><table class="informaltable" width="100%" border="0"> 37<colgroup> 38<col width="150px" class="functions_return"> 39<col class="functions_name"> 40</colgroup> 41<tbody> 42<tr> 43<td class="function_type"> 44<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 45</td> 46<td class="function_name"> 47<span class="c_punctuation">(</span><a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#GstVideoAffineTransformationGetMatrix" title="GstVideoAffineTransformationGetMatrix ()">*GstVideoAffineTransformationGetMatrix</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> 48</td> 49</tr> 50<tr> 51<td class="function_type"> 52<a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="returnvalue">GstVideoAffineTransformationMeta</span></a> * 53</td> 54<td class="function_name"> 55<a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#gst-buffer-add-video-affine-transformation-meta" title="gst_buffer_add_video_affine_transformation_meta ()">gst_buffer_add_video_affine_transformation_meta</a> <span class="c_punctuation">()</span> 56</td> 57</tr> 58<tr> 59<td class="define_keyword">#define</td> 60<td class="function_name"> 61<a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#gst-buffer-get-video-affine-transformation-meta" title="gst_buffer_get_video_affine_transformation_meta()">gst_buffer_get_video_affine_transformation_meta</a><span class="c_punctuation">()</span> 62</td> 63</tr> 64<tr> 65<td class="function_type"> 66<span class="returnvalue">void</span> 67</td> 68<td class="function_name"> 69<a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#gst-video-affine-transformation-meta-apply-matrix" title="gst_video_affine_transformation_meta_apply_matrix ()">gst_video_affine_transformation_meta_apply_matrix</a> <span class="c_punctuation">()</span> 70</td> 71</tr> 72</tbody> 73</table></div> 74</div> 75<div class="refsect1"> 76<a name="gst-plugins-base-libs-GstVideoAffineTransformationMeta.other"></a><h2>Types and Values</h2> 77<div class="informaltable"><table class="informaltable" width="100%" border="0"> 78<colgroup> 79<col width="150px" class="name"> 80<col class="description"> 81</colgroup> 82<tbody> 83<tr> 84<td class="datatype_keyword">struct</td> 85<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta">GstVideoAffineTransformationMeta</a></td> 86</tr> 87<tr> 88<td class="define_keyword">#define</td> 89<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#GST-BUFFER-POOL-OPTION-VIDEO-AFFINE-TRANSFORMATION-META:CAPS" title="GST_BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META">GST_BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META</a></td> 90</tr> 91</tbody> 92</table></div> 93</div> 94<div class="refsect1"> 95<a name="gst-plugins-base-libs-GstVideoAffineTransformationMeta.includes"></a><h2>Includes</h2> 96<pre class="synopsis">#include <gst/video/video.h> 97</pre> 98</div> 99<div class="refsect1"> 100<a name="gst-plugins-base-libs-GstVideoAffineTransformationMeta.description"></a><h2>Description</h2> 101</div> 102<div class="refsect1"> 103<a name="gst-plugins-base-libs-GstVideoAffineTransformationMeta.functions_details"></a><h2>Functions</h2> 104<div class="refsect2"> 105<a name="GstVideoAffineTransformationGetMatrix"></a><h3>GstVideoAffineTransformationGetMatrix ()</h3> 106<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 107<span class="c_punctuation">(</span>*GstVideoAffineTransformationGetMatrix<span class="c_punctuation">)</span> 108 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="type">GstVideoAffineTransformationMeta</span></a> *meta</code></em>, 109 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *matrix</code></em>);</pre> 110</div> 111<hr> 112<div class="refsect2"> 113<a name="gst-buffer-add-video-affine-transformation-meta"></a><h3>gst_buffer_add_video_affine_transformation_meta ()</h3> 114<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="returnvalue">GstVideoAffineTransformationMeta</span></a> * 115gst_buffer_add_video_affine_transformation_meta 116 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre> 117<p>Attaches GstVideoAffineTransformationMeta metadata to <em class="parameter"><code>buffer</code></em> 118 with 119the given parameters.</p> 120<div class="refsect3"> 121<a name="gst-buffer-add-video-affine-transformation-meta.parameters"></a><h4>Parameters</h4> 122<div class="informaltable"><table class="informaltable" width="100%" border="0"> 123<colgroup> 124<col width="150px" class="parameters_name"> 125<col class="parameters_description"> 126<col width="200px" class="parameters_annotations"> 127</colgroup> 128<tbody><tr> 129<td class="parameter_name"><p>buffer</p></td> 130<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td> 131<td class="parameter_annotations"> </td> 132</tr></tbody> 133</table></div> 134</div> 135<div class="refsect3"> 136<a name="gst-buffer-add-video-affine-transformation-meta.returns"></a><h4>Returns</h4> 137<p>the <a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="type">GstVideoAffineTransformationMeta</span></a> on <em class="parameter"><code>buffer</code></em> 138. </p> 139<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p> 140</div> 141<p class="since">Since: <a class="link" href="ix08.html#api-index-1.8">1.8</a></p> 142</div> 143<hr> 144<div class="refsect2"> 145<a name="gst-buffer-get-video-affine-transformation-meta"></a><h3>gst_buffer_get_video_affine_transformation_meta()</h3> 146<pre class="programlisting">#define gst_buffer_get_video_affine_transformation_meta(b)</pre> 147</div> 148<hr> 149<div class="refsect2"> 150<a name="gst-video-affine-transformation-meta-apply-matrix"></a><h3>gst_video_affine_transformation_meta_apply_matrix ()</h3> 151<pre class="programlisting"><span class="returnvalue">void</span> 152gst_video_affine_transformation_meta_apply_matrix 153 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="type">GstVideoAffineTransformationMeta</span></a> *meta</code></em>, 154 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> matrix[16]</code></em>);</pre> 155<p>Apply a transformation using the given 4x4 transformation matrix. 156Performs the multiplication, meta->matrix X matrix.</p> 157<div class="refsect3"> 158<a name="gst-video-affine-transformation-meta-apply-matrix.parameters"></a><h4>Parameters</h4> 159<div class="informaltable"><table class="informaltable" width="100%" border="0"> 160<colgroup> 161<col width="150px" class="parameters_name"> 162<col class="parameters_description"> 163<col width="200px" class="parameters_annotations"> 164</colgroup> 165<tbody> 166<tr> 167<td class="parameter_name"><p>meta</p></td> 168<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="type">GstVideoAffineTransformationMeta</span></a></p></td> 169<td class="parameter_annotations"> </td> 170</tr> 171<tr> 172<td class="parameter_name"><p>matrix</p></td> 173<td class="parameter_description"><p>a 4x4 transformation matrix to be applied. </p></td> 174<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> fixed-size=16]</span></td> 175</tr> 176</tbody> 177</table></div> 178</div> 179<p class="since">Since: <a class="link" href="ix08.html#api-index-1.8">1.8</a></p> 180</div> 181</div> 182<div class="refsect1"> 183<a name="gst-plugins-base-libs-GstVideoAffineTransformationMeta.other_details"></a><h2>Types and Values</h2> 184<div class="refsect2"> 185<a name="GstVideoAffineTransformationMeta"></a><h3>struct GstVideoAffineTransformationMeta</h3> 186<pre class="programlisting">struct GstVideoAffineTransformationMeta { 187 GstMeta meta; 188 189 gfloat matrix[16]; 190}; 191</pre> 192<p>Extra buffer metadata for performing an affine transformation using a 4x4 193matrix. The transformation matrix can be composed with 194<a class="link" href="gst-plugins-base-libs-GstVideoAffineTransformationMeta.html#gst-video-affine-transformation-meta-apply-matrix" title="gst_video_affine_transformation_meta_apply_matrix ()"><code class="function">gst_video_affine_transformation_meta_apply_matrix()</code></a>.</p> 195<p>The vertices operated on are all in the range 0 to 1, not in 196Normalized Device Coordinates (-1 to +1). Transforming points in this space 197are assumed to have an origin at (0.5, 0.5, 0.5) in a left-handed coordinate 198system with the x-axis moving horizontally (positive values to the right), 199the y-axis moving vertically (positive values up the screen) and the z-axis 200perpendicular to the screen (positive values into the screen).</p> 201<div class="refsect3"> 202<a name="GstVideoAffineTransformationMeta.members"></a><h4>Members</h4> 203<div class="informaltable"><table class="informaltable" width="100%" border="0"> 204<colgroup> 205<col width="300px" class="struct_members_name"> 206<col class="struct_members_description"> 207<col width="200px" class="struct_members_annotations"> 208</colgroup> 209<tbody> 210<tr> 211<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstVideoAffineTransformationMeta.meta"></a>meta</code></em>;</p></td> 212<td class="struct_member_description"><p>parent <a href="/usr/share/gtk-doc/html/gstreamer-1.0/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a></p></td> 213<td class="struct_member_annotations"> </td> 214</tr> 215<tr> 216<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstVideoAffineTransformationMeta.matrix"></a>matrix</code></em>[16];</p></td> 217<td class="struct_member_description"><p>the column-major 4x4 transformation matrix</p></td> 218<td class="struct_member_annotations"> </td> 219</tr> 220</tbody> 221</table></div> 222</div> 223<p class="since">Since: <a class="link" href="ix08.html#api-index-1.8">1.8</a></p> 224</div> 225<hr> 226<div class="refsect2"> 227<a name="GST-BUFFER-POOL-OPTION-VIDEO-AFFINE-TRANSFORMATION-META:CAPS"></a><h3>GST_BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META</h3> 228<pre class="programlisting">#define GST_BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META "GstBufferPoolOptionVideoAffineTransformation" 229</pre> 230</div> 231</div> 232</div> 233<div class="footer"> 234<hr>Generated by GTK-Doc V1.28</div> 235</body> 236</html>