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>GstMeta: GStreamer 1.0 Core Reference Manual</title> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual"> 8<link rel="up" href="libgstreamer.html" title="GStreamer Core Library"> 9<link rel="prev" href="GstMessage.html" title="GstMessage"> 10<link rel="next" href="gstreamer-GstMiniObject.html" title="GstMiniObject"> 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="#gstreamer-GstMeta.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="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> 22<td><a accesskey="p" href="GstMessage.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> 23<td><a accesskey="n" href="gstreamer-GstMiniObject.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="gstreamer-GstMeta"></a><div class="titlepage"></div> 27<div class="refnamediv"><table width="100%"><tr> 28<td valign="top"> 29<h2><span class="refentrytitle"><a name="gstreamer-GstMeta.top_of_page"></a>GstMeta</span></h2> 30<p>GstMeta — Buffer metadata</p> 31</td> 32<td class="gallery_image" valign="top" align="right"></td> 33</tr></table></div> 34<div class="refsect1"> 35<a name="gstreamer-GstMeta.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="define_keyword">#define</td> 44<td class="function_name"> 45<a class="link" href="gstreamer-GstMeta.html#GST-META-FLAGS:CAPS" title="GST_META_FLAGS()">GST_META_FLAGS</a><span class="c_punctuation">()</span> 46</td> 47</tr> 48<tr> 49<td class="define_keyword">#define</td> 50<td class="function_name"> 51<a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-IS-SET:CAPS" title="GST_META_FLAG_IS_SET()">GST_META_FLAG_IS_SET</a><span class="c_punctuation">()</span> 52</td> 53</tr> 54<tr> 55<td class="define_keyword">#define</td> 56<td class="function_name"> 57<a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-SET:CAPS" title="GST_META_FLAG_SET()">GST_META_FLAG_SET</a><span class="c_punctuation">()</span> 58</td> 59</tr> 60<tr> 61<td class="define_keyword">#define</td> 62<td class="function_name"> 63<a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-UNSET:CAPS" title="GST_META_FLAG_UNSET()">GST_META_FLAG_UNSET</a><span class="c_punctuation">()</span> 64</td> 65</tr> 66<tr> 67<td class="function_type"> 68<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 69</td> 70<td class="function_name"> 71<span class="c_punctuation">(</span><a class="link" href="gstreamer-GstMeta.html#GstMetaInitFunction" title="GstMetaInitFunction ()">*GstMetaInitFunction</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> 72</td> 73</tr> 74<tr> 75<td class="function_type"> 76<span class="returnvalue">void</span> 77</td> 78<td class="function_name"> 79<span class="c_punctuation">(</span><a class="link" href="gstreamer-GstMeta.html#GstMetaFreeFunction" title="GstMetaFreeFunction ()">*GstMetaFreeFunction</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> 80</td> 81</tr> 82<tr> 83<td class="function_type"> 84<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 85</td> 86<td class="function_name"> 87<span class="c_punctuation">(</span><a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()">*GstMetaTransformFunction</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> 88</td> 89</tr> 90<tr> 91<td class="define_keyword">#define</td> 92<td class="function_name"> 93<a class="link" href="gstreamer-GstMeta.html#GST-META-TRANSFORM-IS-COPY:CAPS" title="GST_META_TRANSFORM_IS_COPY()">GST_META_TRANSFORM_IS_COPY</a><span class="c_punctuation">()</span> 94</td> 95</tr> 96<tr> 97<td class="function_type"> 98<a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> 99</td> 100<td class="function_name"> 101<a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-register" title="gst_meta_api_type_register ()">gst_meta_api_type_register</a> <span class="c_punctuation">()</span> 102</td> 103</tr> 104<tr> 105<td class="function_type"> 106<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 107</td> 108<td class="function_name"> 109<a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-has-tag" title="gst_meta_api_type_has_tag ()">gst_meta_api_type_has_tag</a> <span class="c_punctuation">()</span> 110</td> 111</tr> 112<tr> 113<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const* 114</td> 115<td class="function_name"> 116<a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-get-tags" title="gst_meta_api_type_get_tags ()">gst_meta_api_type_get_tags</a> <span class="c_punctuation">()</span> 117</td> 118</tr> 119<tr> 120<td class="function_type">const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * 121</td> 122<td class="function_name"> 123<a class="link" href="gstreamer-GstMeta.html#gst-meta-register" title="gst_meta_register ()">gst_meta_register</a> <span class="c_punctuation">()</span> 124</td> 125</tr> 126<tr> 127<td class="function_type">const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * 128</td> 129<td class="function_name"> 130<a class="link" href="gstreamer-GstMeta.html#gst-meta-get-info" title="gst_meta_get_info ()">gst_meta_get_info</a> <span class="c_punctuation">()</span> 131</td> 132</tr> 133<tr> 134<td class="function_type"> 135<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> 136</td> 137<td class="function_name"> 138<a class="link" href="gstreamer-GstMeta.html#gst-meta-get-seqnum" title="gst_meta_get_seqnum ()">gst_meta_get_seqnum</a> <span class="c_punctuation">()</span> 139</td> 140</tr> 141<tr> 142<td class="function_type"> 143<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> 144</td> 145<td class="function_name"> 146<a class="link" href="gstreamer-GstMeta.html#gst-meta-compare-seqnum" title="gst_meta_compare_seqnum ()">gst_meta_compare_seqnum</a> <span class="c_punctuation">()</span> 147</td> 148</tr> 149</tbody> 150</table></div> 151</div> 152<div class="refsect1"> 153<a name="gstreamer-GstMeta.other"></a><h2>Types and Values</h2> 154<div class="informaltable"><table class="informaltable" width="100%" border="0"> 155<colgroup> 156<col width="150px" class="name"> 157<col class="description"> 158</colgroup> 159<tbody> 160<tr> 161<td class="datatype_keyword">struct</td> 162<td class="function_name"><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta">GstMeta</a></td> 163</tr> 164<tr> 165<td class="datatype_keyword">enum</td> 166<td class="function_name"><a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags">GstMetaFlags</a></td> 167</tr> 168<tr> 169<td class="datatype_keyword">struct</td> 170<td class="function_name"><a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo">GstMetaInfo</a></td> 171</tr> 172<tr> 173<td class="datatype_keyword"> </td> 174<td class="function_name"><a class="link" href="gstreamer-GstMeta.html#GstMetaTransformCopy" title="GstMetaTransformCopy">GstMetaTransformCopy</a></td> 175</tr> 176<tr> 177<td class="define_keyword">#define</td> 178<td class="function_name"><a class="link" href="gstreamer-GstMeta.html#GST-META-TAG-MEMORY:CAPS" title="GST_META_TAG_MEMORY">GST_META_TAG_MEMORY</a></td> 179</tr> 180<tr> 181<td class="define_keyword">#define</td> 182<td class="function_name"><a class="link" href="gstreamer-GstMeta.html#GST-META-TAG-MEMORY-STR:CAPS" title="GST_META_TAG_MEMORY_STR">GST_META_TAG_MEMORY_STR</a></td> 183</tr> 184</tbody> 185</table></div> 186</div> 187<div class="refsect1"> 188<a name="gstreamer-GstMeta.includes"></a><h2>Includes</h2> 189<pre class="synopsis">#include <gst/gst.h> 190</pre> 191</div> 192<div class="refsect1"> 193<a name="gstreamer-GstMeta.description"></a><h2>Description</h2> 194<p>The <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> structure should be included as the first member of a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> 195metadata structure. The structure defines the API of the metadata and should 196be accessible to all elements using the metadata.</p> 197<p>A metadata API is registered with <a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-register" title="gst_meta_api_type_register ()"><code class="function">gst_meta_api_type_register()</code></a> which takes a 198name for the metadata API and some tags associated with the metadata. 199With <a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-has-tag" title="gst_meta_api_type_has_tag ()"><code class="function">gst_meta_api_type_has_tag()</code></a> one can check if a certain metadata API 200contains a given tag.</p> 201<p>Multiple implementations of a metadata API can be registered. 202To implement a metadata API, <a class="link" href="gstreamer-GstMeta.html#gst-meta-register" title="gst_meta_register ()"><code class="function">gst_meta_register()</code></a> should be used. This 203function takes all parameters needed to create, free and transform metadata 204along with the size of the metadata. The function returns a <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> 205structure that contains the information for the implementation of the API.</p> 206<p>A specific implementation can be retrieved by name with <a class="link" href="gstreamer-GstMeta.html#gst-meta-get-info" title="gst_meta_get_info ()"><code class="function">gst_meta_get_info()</code></a>.</p> 207<p>See <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> for how the metadata can be added, retrieved and removed from 208buffers.</p> 209</div> 210<div class="refsect1"> 211<a name="gstreamer-GstMeta.functions_details"></a><h2>Functions</h2> 212<div class="refsect2"> 213<a name="GST-META-FLAGS:CAPS"></a><h3>GST_META_FLAGS()</h3> 214<pre class="programlisting">#define GST_META_FLAGS(meta) (GST_META_CAST (meta)->flags) 215</pre> 216<p>A flags word containing <a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags"><span class="type">GstMetaFlags</span></a> flags set on <em class="parameter"><code>meta</code></em> 217</p> 218<div class="refsect3"> 219<a name="GST-META-FLAGS.parameters"></a><h4>Parameters</h4> 220<div class="informaltable"><table class="informaltable" width="100%" border="0"> 221<colgroup> 222<col width="150px" class="parameters_name"> 223<col class="parameters_description"> 224<col width="200px" class="parameters_annotations"> 225</colgroup> 226<tbody><tr> 227<td class="parameter_name"><p>meta</p></td> 228<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</p></td> 229<td class="parameter_annotations"> </td> 230</tr></tbody> 231</table></div> 232</div> 233</div> 234<hr> 235<div class="refsect2"> 236<a name="GST-META-FLAG-IS-SET:CAPS"></a><h3>GST_META_FLAG_IS_SET()</h3> 237<pre class="programlisting">#define GST_META_FLAG_IS_SET(meta,flag) !!(GST_META_FLAGS (meta) & (flag)) 238</pre> 239<p>Gives the status of a specific flag on a metadata.</p> 240<div class="refsect3"> 241<a name="GST-META-FLAG-IS-SET.parameters"></a><h4>Parameters</h4> 242<div class="informaltable"><table class="informaltable" width="100%" border="0"> 243<colgroup> 244<col width="150px" class="parameters_name"> 245<col class="parameters_description"> 246<col width="200px" class="parameters_annotations"> 247</colgroup> 248<tbody> 249<tr> 250<td class="parameter_name"><p>meta</p></td> 251<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</p></td> 252<td class="parameter_annotations"> </td> 253</tr> 254<tr> 255<td class="parameter_name"><p>flag</p></td> 256<td class="parameter_description"><p>the <a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags"><span class="type">GstMetaFlags</span></a> to check.</p></td> 257<td class="parameter_annotations"> </td> 258</tr> 259</tbody> 260</table></div> 261</div> 262</div> 263<hr> 264<div class="refsect2"> 265<a name="GST-META-FLAG-SET:CAPS"></a><h3>GST_META_FLAG_SET()</h3> 266<pre class="programlisting">#define GST_META_FLAG_SET(meta,flag) (GST_META_FLAGS (meta) |= (flag)) 267</pre> 268<p>Sets a metadata flag on a metadata.</p> 269<div class="refsect3"> 270<a name="GST-META-FLAG-SET.parameters"></a><h4>Parameters</h4> 271<div class="informaltable"><table class="informaltable" width="100%" border="0"> 272<colgroup> 273<col width="150px" class="parameters_name"> 274<col class="parameters_description"> 275<col width="200px" class="parameters_annotations"> 276</colgroup> 277<tbody> 278<tr> 279<td class="parameter_name"><p>meta</p></td> 280<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</p></td> 281<td class="parameter_annotations"> </td> 282</tr> 283<tr> 284<td class="parameter_name"><p>flag</p></td> 285<td class="parameter_description"><p>the <a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags"><span class="type">GstMetaFlags</span></a> to set.</p></td> 286<td class="parameter_annotations"> </td> 287</tr> 288</tbody> 289</table></div> 290</div> 291</div> 292<hr> 293<div class="refsect2"> 294<a name="GST-META-FLAG-UNSET:CAPS"></a><h3>GST_META_FLAG_UNSET()</h3> 295<pre class="programlisting">#define GST_META_FLAG_UNSET(meta,flag) (GST_META_FLAGS (meta) &= ~(flag)) 296</pre> 297<p>Clears a metadata flag.</p> 298<div class="refsect3"> 299<a name="GST-META-FLAG-UNSET.parameters"></a><h4>Parameters</h4> 300<div class="informaltable"><table class="informaltable" width="100%" border="0"> 301<colgroup> 302<col width="150px" class="parameters_name"> 303<col class="parameters_description"> 304<col width="200px" class="parameters_annotations"> 305</colgroup> 306<tbody> 307<tr> 308<td class="parameter_name"><p>meta</p></td> 309<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</p></td> 310<td class="parameter_annotations"> </td> 311</tr> 312<tr> 313<td class="parameter_name"><p>flag</p></td> 314<td class="parameter_description"><p>the <a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags"><span class="type">GstMetaFlags</span></a> to clear.</p></td> 315<td class="parameter_annotations"> </td> 316</tr> 317</tbody> 318</table></div> 319</div> 320</div> 321<hr> 322<div class="refsect2"> 323<a name="GstMetaInitFunction"></a><h3>GstMetaInitFunction ()</h3> 324<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 325<span class="c_punctuation">(</span>*GstMetaInitFunction<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>, 326 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> params</code></em>, 327 <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre> 328<p>Function called when <em class="parameter"><code>meta</code></em> 329 is initialized in <em class="parameter"><code>buffer</code></em> 330.</p> 331<div class="refsect3"> 332<a name="GstMetaInitFunction.parameters"></a><h4>Parameters</h4> 333<div class="informaltable"><table class="informaltable" width="100%" border="0"> 334<colgroup> 335<col width="150px" class="parameters_name"> 336<col class="parameters_description"> 337<col width="200px" class="parameters_annotations"> 338</colgroup> 339<tbody> 340<tr> 341<td class="parameter_name"><p>meta</p></td> 342<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a></p></td> 343<td class="parameter_annotations"> </td> 344</tr> 345<tr> 346<td class="parameter_name"><p>params</p></td> 347<td class="parameter_description"><p>parameters passed to the init function</p></td> 348<td class="parameter_annotations"> </td> 349</tr> 350<tr> 351<td class="parameter_name"><p>buffer</p></td> 352<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td> 353<td class="parameter_annotations"> </td> 354</tr> 355</tbody> 356</table></div> 357</div> 358</div> 359<hr> 360<div class="refsect2"> 361<a name="GstMetaFreeFunction"></a><h3>GstMetaFreeFunction ()</h3> 362<pre class="programlisting"><span class="returnvalue">void</span> 363<span class="c_punctuation">(</span>*GstMetaFreeFunction<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>, 364 <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre> 365<p>Function called when <em class="parameter"><code>meta</code></em> 366 is freed in <em class="parameter"><code>buffer</code></em> 367.</p> 368<div class="refsect3"> 369<a name="GstMetaFreeFunction.parameters"></a><h4>Parameters</h4> 370<div class="informaltable"><table class="informaltable" width="100%" border="0"> 371<colgroup> 372<col width="150px" class="parameters_name"> 373<col class="parameters_description"> 374<col width="200px" class="parameters_annotations"> 375</colgroup> 376<tbody> 377<tr> 378<td class="parameter_name"><p>meta</p></td> 379<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a></p></td> 380<td class="parameter_annotations"> </td> 381</tr> 382<tr> 383<td class="parameter_name"><p>buffer</p></td> 384<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td> 385<td class="parameter_annotations"> </td> 386</tr> 387</tbody> 388</table></div> 389</div> 390</div> 391<hr> 392<div class="refsect2"> 393<a name="GstMetaTransformFunction"></a><h3>GstMetaTransformFunction ()</h3> 394<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 395<span class="c_punctuation">(</span>*GstMetaTransformFunction<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *transbuf</code></em>, 396 <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>, 397 <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>, 398 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> type</code></em>, 399 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre> 400<p>Function called for each <em class="parameter"><code>meta</code></em> 401 in <em class="parameter"><code>buffer</code></em> 402 as a result of performing a 403transformation on <em class="parameter"><code>transbuf</code></em> 404. Additional <em class="parameter"><code>type</code></em> 405 specific transform data 406is passed to the function as <em class="parameter"><code>data</code></em> 407.</p> 408<p>Implementations should check the <em class="parameter"><code>type</code></em> 409 of the transform and parse 410additional type specific fields in <em class="parameter"><code>data</code></em> 411 that should be used to update 412the metadata on <em class="parameter"><code>transbuf</code></em> 413.</p> 414<div class="refsect3"> 415<a name="GstMetaTransformFunction.parameters"></a><h4>Parameters</h4> 416<div class="informaltable"><table class="informaltable" width="100%" border="0"> 417<colgroup> 418<col width="150px" class="parameters_name"> 419<col class="parameters_description"> 420<col width="200px" class="parameters_annotations"> 421</colgroup> 422<tbody> 423<tr> 424<td class="parameter_name"><p>transbuf</p></td> 425<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td> 426<td class="parameter_annotations"> </td> 427</tr> 428<tr> 429<td class="parameter_name"><p>meta</p></td> 430<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a></p></td> 431<td class="parameter_annotations"> </td> 432</tr> 433<tr> 434<td class="parameter_name"><p>buffer</p></td> 435<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td> 436<td class="parameter_annotations"> </td> 437</tr> 438<tr> 439<td class="parameter_name"><p>type</p></td> 440<td class="parameter_description"><p>the transform type</p></td> 441<td class="parameter_annotations"> </td> 442</tr> 443<tr> 444<td class="parameter_name"><p>data</p></td> 445<td class="parameter_description"><p>transform specific data.</p></td> 446<td class="parameter_annotations"> </td> 447</tr> 448</tbody> 449</table></div> 450</div> 451<div class="refsect3"> 452<a name="GstMetaTransformFunction.returns"></a><h4>Returns</h4> 453<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the transform could be performed</p> 454</div> 455</div> 456<hr> 457<div class="refsect2"> 458<a name="GST-META-TRANSFORM-IS-COPY:CAPS"></a><h3>GST_META_TRANSFORM_IS_COPY()</h3> 459<pre class="programlisting">#define GST_META_TRANSFORM_IS_COPY(type) ((type) == _gst_meta_transform_copy) 460</pre> 461<p>Check if the transform type is a copy transform</p> 462<div class="refsect3"> 463<a name="GST-META-TRANSFORM-IS-COPY.parameters"></a><h4>Parameters</h4> 464<div class="informaltable"><table class="informaltable" width="100%" border="0"> 465<colgroup> 466<col width="150px" class="parameters_name"> 467<col class="parameters_description"> 468<col width="200px" class="parameters_annotations"> 469</colgroup> 470<tbody><tr> 471<td class="parameter_name"><p>type</p></td> 472<td class="parameter_description"><p>a transform type</p></td> 473<td class="parameter_annotations"> </td> 474</tr></tbody> 475</table></div> 476</div> 477</div> 478<hr> 479<div class="refsect2"> 480<a name="gst-meta-api-type-register"></a><h3>gst_meta_api_type_register ()</h3> 481<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> 482gst_meta_api_type_register (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *api</code></em>, 483 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **tags</code></em>);</pre> 484<p>Register and return a GType for the <em class="parameter"><code>api</code></em> 485 and associate it with 486<em class="parameter"><code>tags</code></em> 487.</p> 488<div class="refsect3"> 489<a name="gst-meta-api-type-register.parameters"></a><h4>Parameters</h4> 490<div class="informaltable"><table class="informaltable" width="100%" border="0"> 491<colgroup> 492<col width="150px" class="parameters_name"> 493<col class="parameters_description"> 494<col width="200px" class="parameters_annotations"> 495</colgroup> 496<tbody> 497<tr> 498<td class="parameter_name"><p>api</p></td> 499<td class="parameter_description"><p>an API to register</p></td> 500<td class="parameter_annotations"> </td> 501</tr> 502<tr> 503<td class="parameter_name"><p>tags</p></td> 504<td class="parameter_description"><p>tags for <em class="parameter"><code>api</code></em> 505. </p></td> 506<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></td> 507</tr> 508</tbody> 509</table></div> 510</div> 511<div class="refsect3"> 512<a name="gst-meta-api-type-register.returns"></a><h4>Returns</h4> 513<p> a unique GType for <em class="parameter"><code>api</code></em> 514.</p> 515</div> 516</div> 517<hr> 518<div class="refsect2"> 519<a name="gst-meta-api-type-has-tag"></a><h3>gst_meta_api_type_has_tag ()</h3> 520<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 521gst_meta_api_type_has_tag (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>, 522 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> tag</code></em>);</pre> 523<p>Check if <em class="parameter"><code>api</code></em> 524 was registered with <em class="parameter"><code>tag</code></em> 525.</p> 526<div class="refsect3"> 527<a name="gst-meta-api-type-has-tag.parameters"></a><h4>Parameters</h4> 528<div class="informaltable"><table class="informaltable" width="100%" border="0"> 529<colgroup> 530<col width="150px" class="parameters_name"> 531<col class="parameters_description"> 532<col width="200px" class="parameters_annotations"> 533</colgroup> 534<tbody> 535<tr> 536<td class="parameter_name"><p>api</p></td> 537<td class="parameter_description"><p>an API</p></td> 538<td class="parameter_annotations"> </td> 539</tr> 540<tr> 541<td class="parameter_name"><p>tag</p></td> 542<td class="parameter_description"><p>the tag to check</p></td> 543<td class="parameter_annotations"> </td> 544</tr> 545</tbody> 546</table></div> 547</div> 548<div class="refsect3"> 549<a name="gst-meta-api-type-has-tag.returns"></a><h4>Returns</h4> 550<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>api</code></em> 551was registered with <em class="parameter"><code>tag</code></em> 552.</p> 553</div> 554</div> 555<hr> 556<div class="refsect2"> 557<a name="gst-meta-api-type-get-tags"></a><h3>gst_meta_api_type_get_tags ()</h3> 558<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const* 559gst_meta_api_type_get_tags (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);</pre> 560<div class="refsect3"> 561<a name="gst-meta-api-type-get-tags.parameters"></a><h4>Parameters</h4> 562<div class="informaltable"><table class="informaltable" width="100%" border="0"> 563<colgroup> 564<col width="150px" class="parameters_name"> 565<col class="parameters_description"> 566<col width="200px" class="parameters_annotations"> 567</colgroup> 568<tbody><tr> 569<td class="parameter_name"><p>api</p></td> 570<td class="parameter_description"><p>an API</p></td> 571<td class="parameter_annotations"> </td> 572</tr></tbody> 573</table></div> 574</div> 575<div class="refsect3"> 576<a name="gst-meta-api-type-get-tags.returns"></a><h4>Returns</h4> 577<p>an array of tags as strings. </p> 578<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span></p> 579</div> 580<p class="since">Since: <a class="link" href="ix10.html#api-index-1.2">1.2</a></p> 581</div> 582<hr> 583<div class="refsect2"> 584<a name="gst-meta-register"></a><h3>gst_meta_register ()</h3> 585<pre class="programlisting">const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * 586gst_meta_register (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>, 587 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *impl</code></em>, 588 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>, 589 <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaInitFunction" title="GstMetaInitFunction ()"><span class="type">GstMetaInitFunction</span></a> init_func</code></em>, 590 <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaFreeFunction" title="GstMetaFreeFunction ()"><span class="type">GstMetaFreeFunction</span></a> free_func</code></em>, 591 <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a> transform_func</code></em>);</pre> 592<p>Register a new <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> implementation.</p> 593<p>The same <em class="parameter"><code>info</code></em> 594 can be retrieved later with <a class="link" href="gstreamer-GstMeta.html#gst-meta-get-info" title="gst_meta_get_info ()"><code class="function">gst_meta_get_info()</code></a> by using 595<em class="parameter"><code>impl</code></em> 596 as the key.</p> 597<div class="refsect3"> 598<a name="gst-meta-register.parameters"></a><h4>Parameters</h4> 599<div class="informaltable"><table class="informaltable" width="100%" border="0"> 600<colgroup> 601<col width="150px" class="parameters_name"> 602<col class="parameters_description"> 603<col width="200px" class="parameters_annotations"> 604</colgroup> 605<tbody> 606<tr> 607<td class="parameter_name"><p>api</p></td> 608<td class="parameter_description"><p>the type of the <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> API</p></td> 609<td class="parameter_annotations"> </td> 610</tr> 611<tr> 612<td class="parameter_name"><p>impl</p></td> 613<td class="parameter_description"><p>the name of the <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> implementation</p></td> 614<td class="parameter_annotations"> </td> 615</tr> 616<tr> 617<td class="parameter_name"><p>size</p></td> 618<td class="parameter_description"><p>the size of the <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> structure</p></td> 619<td class="parameter_annotations"> </td> 620</tr> 621<tr> 622<td class="parameter_name"><p>init_func</p></td> 623<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMetaInitFunction" title="GstMetaInitFunction ()"><span class="type">GstMetaInitFunction</span></a>. </p></td> 624<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td> 625</tr> 626<tr> 627<td class="parameter_name"><p>free_func</p></td> 628<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMetaFreeFunction" title="GstMetaFreeFunction ()"><span class="type">GstMetaFreeFunction</span></a>. </p></td> 629<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td> 630</tr> 631<tr> 632<td class="parameter_name"><p>transform_func</p></td> 633<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a>. </p></td> 634<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td> 635</tr> 636</tbody> 637</table></div> 638</div> 639<div class="refsect3"> 640<a name="gst-meta-register.returns"></a><h4>Returns</h4> 641<p>a <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> that can be used to 642access metadata. </p> 643<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p> 644</div> 645</div> 646<hr> 647<div class="refsect2"> 648<a name="gst-meta-get-info"></a><h3>gst_meta_get_info ()</h3> 649<pre class="programlisting">const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * 650gst_meta_get_info (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *impl</code></em>);</pre> 651<p>Lookup a previously registered meta info structure by its implementation name 652<em class="parameter"><code>impl</code></em> 653.</p> 654<div class="refsect3"> 655<a name="gst-meta-get-info.parameters"></a><h4>Parameters</h4> 656<div class="informaltable"><table class="informaltable" width="100%" border="0"> 657<colgroup> 658<col width="150px" class="parameters_name"> 659<col class="parameters_description"> 660<col width="200px" class="parameters_annotations"> 661</colgroup> 662<tbody><tr> 663<td class="parameter_name"><p>impl</p></td> 664<td class="parameter_description"><p>the name</p></td> 665<td class="parameter_annotations"> </td> 666</tr></tbody> 667</table></div> 668</div> 669<div class="refsect3"> 670<a name="gst-meta-get-info.returns"></a><h4>Returns</h4> 671<p>a <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> with <em class="parameter"><code>impl</code></em> 672, or 673<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when no such metainfo exists. </p> 674<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p> 675</div> 676</div> 677<hr> 678<div class="refsect2"> 679<a name="gst-meta-get-seqnum"></a><h3>gst_meta_get_seqnum ()</h3> 680<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> 681gst_meta_get_seqnum (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>);</pre> 682<p>Gets seqnum for this meta.</p> 683<div class="refsect3"> 684<a name="gst-meta-get-seqnum.parameters"></a><h4>Parameters</h4> 685<div class="informaltable"><table class="informaltable" width="100%" border="0"> 686<colgroup> 687<col width="150px" class="parameters_name"> 688<col class="parameters_description"> 689<col width="200px" class="parameters_annotations"> 690</colgroup> 691<tbody><tr> 692<td class="parameter_name"><p>meta</p></td> 693<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a></p></td> 694<td class="parameter_annotations"> </td> 695</tr></tbody> 696</table></div> 697</div> 698<p class="since">Since: 1.16</p> 699</div> 700<hr> 701<div class="refsect2"> 702<a name="gst-meta-compare-seqnum"></a><h3>gst_meta_compare_seqnum ()</h3> 703<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> 704gst_meta_compare_seqnum (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta1</code></em>, 705 <em class="parameter"><code>const <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta2</code></em>);</pre> 706<p>Meta sequence number compare function. Can be used as <a href="/usr/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html#GCompareFunc"><span class="type">GCompareFunc</span></a> 707or a <a href="/usr/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html#GCompareDataFunc"><span class="type">GCompareDataFunc</span></a>.</p> 708<div class="refsect3"> 709<a name="gst-meta-compare-seqnum.parameters"></a><h4>Parameters</h4> 710<div class="informaltable"><table class="informaltable" width="100%" border="0"> 711<colgroup> 712<col width="150px" class="parameters_name"> 713<col class="parameters_description"> 714<col width="200px" class="parameters_annotations"> 715</colgroup> 716<tbody> 717<tr> 718<td class="parameter_name"><p>meta1</p></td> 719<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a></p></td> 720<td class="parameter_annotations"> </td> 721</tr> 722<tr> 723<td class="parameter_name"><p>meta2</p></td> 724<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a></p></td> 725<td class="parameter_annotations"> </td> 726</tr> 727</tbody> 728</table></div> 729</div> 730<div class="refsect3"> 731<a name="gst-meta-compare-seqnum.returns"></a><h4>Returns</h4> 732<p> a negative number if <em class="parameter"><code>meta1</code></em> 733comes before <em class="parameter"><code>meta2</code></em> 734, 0 if both metas 735have an equal sequence number, or a positive integer if <em class="parameter"><code>meta1</code></em> 736comes 737after <em class="parameter"><code>meta2</code></em> 738.</p> 739</div> 740<p class="since">Since: 1.16</p> 741</div> 742</div> 743<div class="refsect1"> 744<a name="gstreamer-GstMeta.other_details"></a><h2>Types and Values</h2> 745<div class="refsect2"> 746<a name="GstMeta"></a><h3>struct GstMeta</h3> 747<pre class="programlisting">struct GstMeta { 748 GstMetaFlags flags; 749 const GstMetaInfo *info; 750}; 751</pre> 752<p>Base structure for metadata. Custom metadata will put this structure 753as the first member of their structure.</p> 754<div class="refsect3"> 755<a name="GstMeta.members"></a><h4>Members</h4> 756<div class="informaltable"><table class="informaltable" width="100%" border="0"> 757<colgroup> 758<col width="300px" class="struct_members_name"> 759<col class="struct_members_description"> 760<col width="200px" class="struct_members_annotations"> 761</colgroup> 762<tbody> 763<tr> 764<td class="struct_member_name"><p><a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags"><span class="type">GstMetaFlags</span></a> <em class="structfield"><code><a name="GstMeta.flags"></a>flags</code></em>;</p></td> 765<td class="struct_member_description"><p>extra flags for the metadata</p></td> 766<td class="struct_member_annotations"> </td> 767</tr> 768<tr> 769<td class="struct_member_name"><p>const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> *<em class="structfield"><code><a name="GstMeta.info"></a>info</code></em>;</p></td> 770<td class="struct_member_description"><p>pointer to the <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a></p></td> 771<td class="struct_member_annotations"> </td> 772</tr> 773</tbody> 774</table></div> 775</div> 776</div> 777<hr> 778<div class="refsect2"> 779<a name="GstMetaFlags"></a><h3>enum GstMetaFlags</h3> 780<p>Extra metadata flags.</p> 781<div class="refsect3"> 782<a name="GstMetaFlags.members"></a><h4>Members</h4> 783<div class="informaltable"><table class="informaltable" width="100%" border="0"> 784<colgroup> 785<col width="300px" class="enum_members_name"> 786<col class="enum_members_description"> 787<col width="200px" class="enum_members_annotations"> 788</colgroup> 789<tbody> 790<tr> 791<td class="enum_member_name"><p><a name="GST-META-FLAG-NONE:CAPS"></a>GST_META_FLAG_NONE</p></td> 792<td class="enum_member_description"> 793<p>no flags</p> 794</td> 795<td class="enum_member_annotations"> </td> 796</tr> 797<tr> 798<td class="enum_member_name"><p><a name="GST-META-FLAG-READONLY:CAPS"></a>GST_META_FLAG_READONLY</p></td> 799<td class="enum_member_description"> 800<p>metadata should not be modified</p> 801</td> 802<td class="enum_member_annotations"> </td> 803</tr> 804<tr> 805<td class="enum_member_name"><p><a name="GST-META-FLAG-POOLED:CAPS"></a>GST_META_FLAG_POOLED</p></td> 806<td class="enum_member_description"> 807<p>metadata is managed by a bufferpool</p> 808</td> 809<td class="enum_member_annotations"> </td> 810</tr> 811<tr> 812<td class="enum_member_name"><p><a name="GST-META-FLAG-LOCKED:CAPS"></a>GST_META_FLAG_LOCKED</p></td> 813<td class="enum_member_description"> 814<p>metadata should not be removed</p> 815</td> 816<td class="enum_member_annotations"> </td> 817</tr> 818<tr> 819<td class="enum_member_name"><p><a name="GST-META-FLAG-LAST:CAPS"></a>GST_META_FLAG_LAST</p></td> 820<td class="enum_member_description"> 821<p>additional flags can be added starting from this flag.</p> 822</td> 823<td class="enum_member_annotations"> </td> 824</tr> 825</tbody> 826</table></div> 827</div> 828</div> 829<hr> 830<div class="refsect2"> 831<a name="GstMetaInfo"></a><h3>struct GstMetaInfo</h3> 832<pre class="programlisting">struct GstMetaInfo { 833 GType api; 834 GType type; 835 gsize size; 836 837 GstMetaInitFunction init_func; 838 GstMetaFreeFunction free_func; 839 GstMetaTransformFunction transform_func; 840 841 /* No padding needed, GstMetaInfo is always allocated by GStreamer and is 842 * not subclassable or stack-allocatable, so we can extend it as we please 843 * just like interfaces */ 844}; 845</pre> 846<p>The <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> provides information about a specific metadata 847structure.</p> 848<div class="refsect3"> 849<a name="GstMetaInfo.members"></a><h4>Members</h4> 850<div class="informaltable"><table class="informaltable" width="100%" border="0"> 851<colgroup> 852<col width="300px" class="struct_members_name"> 853<col class="struct_members_description"> 854<col width="200px" class="struct_members_annotations"> 855</colgroup> 856<tbody> 857<tr> 858<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> <em class="structfield"><code><a name="GstMetaInfo.api"></a>api</code></em>;</p></td> 859<td class="struct_member_description"><p>tag identifying the metadata structure and api</p></td> 860<td class="struct_member_annotations"> </td> 861</tr> 862<tr> 863<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> <em class="structfield"><code><a name="GstMetaInfo.type"></a>type</code></em>;</p></td> 864<td class="struct_member_description"><p>type identifying the implementor of the api</p></td> 865<td class="struct_member_annotations"> </td> 866</tr> 867<tr> 868<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstMetaInfo.size"></a>size</code></em>;</p></td> 869<td class="struct_member_description"><p>size of the metadata</p></td> 870<td class="struct_member_annotations"> </td> 871</tr> 872<tr> 873<td class="struct_member_name"><p><a class="link" href="gstreamer-GstMeta.html#GstMetaInitFunction" title="GstMetaInitFunction ()"><span class="type">GstMetaInitFunction</span></a> <em class="structfield"><code><a name="GstMetaInfo.init-func"></a>init_func</code></em>;</p></td> 874<td class="struct_member_description"><p>function for initializing the metadata</p></td> 875<td class="struct_member_annotations"> </td> 876</tr> 877<tr> 878<td class="struct_member_name"><p><a class="link" href="gstreamer-GstMeta.html#GstMetaFreeFunction" title="GstMetaFreeFunction ()"><span class="type">GstMetaFreeFunction</span></a> <em class="structfield"><code><a name="GstMetaInfo.free-func"></a>free_func</code></em>;</p></td> 879<td class="struct_member_description"><p>function for freeing the metadata</p></td> 880<td class="struct_member_annotations"> </td> 881</tr> 882<tr> 883<td class="struct_member_name"><p><a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a> <em class="structfield"><code><a name="GstMetaInfo.transform-func"></a>transform_func</code></em>;</p></td> 884<td class="struct_member_description"><p>function for transforming the metadata</p></td> 885<td class="struct_member_annotations"> </td> 886</tr> 887</tbody> 888</table></div> 889</div> 890</div> 891<hr> 892<div class="refsect2"> 893<a name="GstMetaTransformCopy"></a><h3>GstMetaTransformCopy</h3> 894<pre class="programlisting">typedef struct { 895 gboolean region; 896 gsize offset; 897 gsize size; 898} GstMetaTransformCopy; 899</pre> 900<p>Extra data passed to a "gst-copy" transform <a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a>.</p> 901<div class="refsect3"> 902<a name="GstMetaTransformCopy.members"></a><h4>Members</h4> 903<div class="informaltable"><table class="informaltable" width="100%" border="0"> 904<colgroup> 905<col width="300px" class="struct_members_name"> 906<col class="struct_members_description"> 907<col width="200px" class="struct_members_annotations"> 908</colgroup> 909<tbody> 910<tr> 911<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstMetaTransformCopy.region"></a>region</code></em>;</p></td> 912<td class="struct_member_description"><p><a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if only region is copied</p></td> 913<td class="struct_member_annotations"> </td> 914</tr> 915<tr> 916<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstMetaTransformCopy.offset"></a>offset</code></em>;</p></td> 917<td class="struct_member_description"><p>the offset to copy, 0 if <em class="parameter"><code>region</code></em> 918is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, otherwise > 0</p></td> 919<td class="struct_member_annotations"> </td> 920</tr> 921<tr> 922<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstMetaTransformCopy.size"></a>size</code></em>;</p></td> 923<td class="struct_member_description"><p>the size to copy, -1 or the buffer size when <em class="parameter"><code>region</code></em> 924is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p></td> 925<td class="struct_member_annotations"> </td> 926</tr> 927</tbody> 928</table></div> 929</div> 930</div> 931<hr> 932<div class="refsect2"> 933<a name="GST-META-TAG-MEMORY:CAPS"></a><h3>GST_META_TAG_MEMORY</h3> 934<pre class="programlisting">#define GST_META_TAG_MEMORY (_gst_meta_tag_memory) 935</pre> 936<div class="warning"> 937<p><code class="literal">GST_META_TAG_MEMORY</code> is deprecated and should not be used in newly-written code.</p> 938<p>The GQuarks are not exported by any public API, use 939 GST_META_TAG_MEMORY_STR instead.</p> 940</div> 941<p>Metadata tagged with this tag depends on the particular memory 942or buffer that it is on.</p> 943</div> 944<hr> 945<div class="refsect2"> 946<a name="GST-META-TAG-MEMORY-STR:CAPS"></a><h3>GST_META_TAG_MEMORY_STR</h3> 947<pre class="programlisting">#define GST_META_TAG_MEMORY_STR "memory" 948</pre> 949<p>This metadata stays relevant as long as memory layout is unchanged.</p> 950<p class="since">Since: <a class="link" href="ix10.html#api-index-1.2">1.2</a></p> 951</div> 952</div> 953</div> 954<div class="footer"> 955<hr>Generated by GTK-Doc V1.28</div> 956</body> 957</html>