• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>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">|</span18                  <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 &lt;gst/gst.h&gt;
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)-&gt;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) &amp; (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) &amp;= ~(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 &gt; 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>