• 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>GstVideo Codec utility function: GStreamer Base Plugins 1.0 Library Reference Manual</title>
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
8<link rel="up" href="gstreamer-video.html" title="Video Library">
9<link rel="prev" href="gst-plugins-base-libs-GstVideoPool.html" title="GstVideoBufferPool">
10<link rel="next" href="GstNavigation.html" title="GstNavigation">
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="#gst-plugins-base-libs-GstVideo-Codec-utility-function.description" class="shortcut">Description</a></span>
19</td>
20<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
21<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22<td><a accesskey="p" href="gst-plugins-base-libs-GstVideoPool.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23<td><a accesskey="n" href="GstNavigation.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
24</tr></table>
25<div class="refentry">
26<a name="gst-plugins-base-libs-GstVideo-Codec-utility-function"></a><div class="titlepage"></div>
27<div class="refnamediv"><table width="100%"><tr>
28<td valign="top">
29<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideo-Codec-utility-function.top_of_page"></a>GstVideo Codec utility function</span></h2>
30<p>GstVideo Codec utility function — Extra utility functions for video codecs</p>
31</td>
32<td class="gallery_image" valign="top" align="right"></td>
33</tr></table></div>
34<div class="refsect1">
35<a name="gst-plugins-base-libs-GstVideo-Codec-utility-function.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="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-FLAGS:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAGS()">GST_VIDEO_CODEC_FRAME_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="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-FLAG-IS-SET:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAG_IS_SET()">GST_VIDEO_CODEC_FRAME_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="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-FLAG-SET:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAG_SET()">GST_VIDEO_CODEC_FRAME_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="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-FLAG-UNSET:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAG_UNSET()">GST_VIDEO_CODEC_FRAME_FLAG_UNSET</a><span class="c_punctuation">()</span>
64</td>
65</tr>
66<tr>
67<td class="define_keyword">#define</td>
68<td class="function_name">
69<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY()">GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY</a><span class="c_punctuation">()</span>
70</td>
71</tr>
72<tr>
73<td class="define_keyword">#define</td>
74<td class="function_name">
75<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME()">GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME</a><span class="c_punctuation">()</span>
76</td>
77</tr>
78<tr>
79<td class="define_keyword">#define</td>
80<td class="function_name">
81<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS()">GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS</a><span class="c_punctuation">()</span>
82</td>
83</tr>
84<tr>
85<td class="define_keyword">#define</td>
86<td class="function_name">
87<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT()">GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT</a><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="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY()">GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY</a><span class="c_punctuation">()</span>
94</td>
95</tr>
96<tr>
97<td class="define_keyword">#define</td>
98<td class="function_name">
99<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME()">GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME</a><span class="c_punctuation">()</span>
100</td>
101</tr>
102<tr>
103<td class="define_keyword">#define</td>
104<td class="function_name">
105<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME-HEADERS:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS()">GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS</a><span class="c_punctuation">()</span>
106</td>
107</tr>
108<tr>
109<td class="define_keyword">#define</td>
110<td class="function_name">
111<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT()">GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT</a><span class="c_punctuation">()</span>
112</td>
113</tr>
114<tr>
115<td class="define_keyword">#define</td>
116<td class="function_name">
117<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME:CAPS" title="GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME()">GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME</a><span class="c_punctuation">()</span>
118</td>
119</tr>
120<tr>
121<td class="define_keyword">#define</td>
122<td class="function_name">
123<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME-HEADERS:CAPS" title="GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS()">GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS</a><span class="c_punctuation">()</span>
124</td>
125</tr>
126<tr>
127<td class="define_keyword">#define</td>
128<td class="function_name">
129<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GST-VIDEO-CODEC-FRAME-UNSET-SYNC-POINT:CAPS" title="GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT()">GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT</a><span class="c_punctuation">()</span>
130</td>
131</tr>
132<tr>
133<td class="function_type">
134<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> *
135</td>
136<td class="function_name">
137<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#gst-video-codec-frame-ref" title="gst_video_codec_frame_ref ()">gst_video_codec_frame_ref</a> <span class="c_punctuation">()</span>
138</td>
139</tr>
140<tr>
141<td class="function_type">
142<span class="returnvalue">void</span>
143</td>
144<td class="function_name">
145<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#gst-video-codec-frame-unref" title="gst_video_codec_frame_unref ()">gst_video_codec_frame_unref</a> <span class="c_punctuation">()</span>
146</td>
147</tr>
148<tr>
149<td class="function_type">
150<span class="returnvalue">void</span>
151</td>
152<td class="function_name">
153<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#gst-video-codec-frame-set-user-data" title="gst_video_codec_frame_set_user_data ()">gst_video_codec_frame_set_user_data</a> <span class="c_punctuation">()</span>
154</td>
155</tr>
156<tr>
157<td class="function_type">
158<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
159</td>
160<td class="function_name">
161<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#gst-video-codec-frame-get-user-data" title="gst_video_codec_frame_get_user_data ()">gst_video_codec_frame_get_user_data</a> <span class="c_punctuation">()</span>
162</td>
163</tr>
164<tr>
165<td class="function_type">
166<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> *
167</td>
168<td class="function_name">
169<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#gst-video-codec-state-ref" title="gst_video_codec_state_ref ()">gst_video_codec_state_ref</a> <span class="c_punctuation">()</span>
170</td>
171</tr>
172<tr>
173<td class="function_type">
174<span class="returnvalue">void</span>
175</td>
176<td class="function_name">
177<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#gst-video-codec-state-unref" title="gst_video_codec_state_unref ()">gst_video_codec_state_unref</a> <span class="c_punctuation">()</span>
178</td>
179</tr>
180</tbody>
181</table></div>
182</div>
183<div class="refsect1">
184<a name="gst-plugins-base-libs-GstVideo-Codec-utility-function.other"></a><h2>Types and Values</h2>
185<div class="informaltable"><table class="informaltable" width="100%" border="0">
186<colgroup>
187<col width="150px" class="name">
188<col class="description">
189</colgroup>
190<tbody>
191<tr>
192<td class="datatype_keyword">struct</td>
193<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame">GstVideoCodecFrame</a></td>
194</tr>
195<tr>
196<td class="datatype_keyword">enum</td>
197<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrameFlags" title="enum GstVideoCodecFrameFlags">GstVideoCodecFrameFlags</a></td>
198</tr>
199<tr>
200<td class="datatype_keyword">struct</td>
201<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecState" title="struct GstVideoCodecState">GstVideoCodecState</a></td>
202</tr>
203</tbody>
204</table></div>
205</div>
206<div class="refsect1">
207<a name="gst-plugins-base-libs-GstVideo-Codec-utility-function.includes"></a><h2>Includes</h2>
208<pre class="synopsis">#include &lt;gst/video/video.h&gt;
209</pre>
210</div>
211<div class="refsect1">
212<a name="gst-plugins-base-libs-GstVideo-Codec-utility-function.description"></a><h2>Description</h2>
213</div>
214<div class="refsect1">
215<a name="gst-plugins-base-libs-GstVideo-Codec-utility-function.functions_details"></a><h2>Functions</h2>
216<div class="refsect2">
217<a name="GST-VIDEO-CODEC-FRAME-FLAGS:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAGS()</h3>
218<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAGS(frame) ((frame)-&gt;flags)
219</pre>
220<p>The entire set of flags for the <em class="parameter"><code>frame</code></em>
221</p>
222<div class="refsect3">
223<a name="GST-VIDEO-CODEC-FRAME-FLAGS.parameters"></a><h4>Parameters</h4>
224<div class="informaltable"><table class="informaltable" width="100%" border="0">
225<colgroup>
226<col width="150px" class="parameters_name">
227<col class="parameters_description">
228<col width="200px" class="parameters_annotations">
229</colgroup>
230<tbody><tr>
231<td class="parameter_name"><p>frame</p></td>
232<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
233<td class="parameter_annotations"> </td>
234</tr></tbody>
235</table></div>
236</div>
237</div>
238<hr>
239<div class="refsect2">
240<a name="GST-VIDEO-CODEC-FRAME-FLAG-IS-SET:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAG_IS_SET()</h3>
241<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame,flag)   !!(GST_VIDEO_CODEC_FRAME_FLAGS(frame) &amp; (flag))
242</pre>
243<p>Checks whether the given <em class="parameter"><code>flag</code></em>
244 is set</p>
245<div class="refsect3">
246<a name="GST-VIDEO-CODEC-FRAME-FLAG-IS-SET.parameters"></a><h4>Parameters</h4>
247<div class="informaltable"><table class="informaltable" width="100%" border="0">
248<colgroup>
249<col width="150px" class="parameters_name">
250<col class="parameters_description">
251<col width="200px" class="parameters_annotations">
252</colgroup>
253<tbody>
254<tr>
255<td class="parameter_name"><p>frame</p></td>
256<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
257<td class="parameter_annotations"> </td>
258</tr>
259<tr>
260<td class="parameter_name"><p>flag</p></td>
261<td class="parameter_description"><p>a flag to check for</p></td>
262<td class="parameter_annotations"> </td>
263</tr>
264</tbody>
265</table></div>
266</div>
267</div>
268<hr>
269<div class="refsect2">
270<a name="GST-VIDEO-CODEC-FRAME-FLAG-SET:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAG_SET()</h3>
271<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAG_SET(frame,flag)     (GST_VIDEO_CODEC_FRAME_FLAGS(frame) |= (flag))
272</pre>
273<p>This macro sets the given bits</p>
274<div class="refsect3">
275<a name="GST-VIDEO-CODEC-FRAME-FLAG-SET.parameters"></a><h4>Parameters</h4>
276<div class="informaltable"><table class="informaltable" width="100%" border="0">
277<colgroup>
278<col width="150px" class="parameters_name">
279<col class="parameters_description">
280<col width="200px" class="parameters_annotations">
281</colgroup>
282<tbody>
283<tr>
284<td class="parameter_name"><p>frame</p></td>
285<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
286<td class="parameter_annotations"> </td>
287</tr>
288<tr>
289<td class="parameter_name"><p>flag</p></td>
290<td class="parameter_description"><p>Flag to set, can be any number of bits in guint32.</p></td>
291<td class="parameter_annotations"> </td>
292</tr>
293</tbody>
294</table></div>
295</div>
296</div>
297<hr>
298<div class="refsect2">
299<a name="GST-VIDEO-CODEC-FRAME-FLAG-UNSET:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAG_UNSET()</h3>
300<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame,flag)   (GST_VIDEO_CODEC_FRAME_FLAGS(frame) &amp;= ~(flag))
301</pre>
302<p>This macro usets the given bits.</p>
303<div class="refsect3">
304<a name="GST-VIDEO-CODEC-FRAME-FLAG-UNSET.parameters"></a><h4>Parameters</h4>
305<div class="informaltable"><table class="informaltable" width="100%" border="0">
306<colgroup>
307<col width="150px" class="parameters_name">
308<col class="parameters_description">
309<col width="200px" class="parameters_annotations">
310</colgroup>
311<tbody>
312<tr>
313<td class="parameter_name"><p>frame</p></td>
314<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
315<td class="parameter_annotations"> </td>
316</tr>
317<tr>
318<td class="parameter_name"><p>flag</p></td>
319<td class="parameter_description"><p>Flag to unset</p></td>
320<td class="parameter_annotations"> </td>
321</tr>
322</tbody>
323</table></div>
324</div>
325</div>
326<hr>
327<div class="refsect2">
328<a name="GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY()</h3>
329<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY(frame)     (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY))
330</pre>
331<p>Tests if the buffer should only be decoded but not sent downstream.</p>
332<div class="refsect3">
333<a name="GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY.parameters"></a><h4>Parameters</h4>
334<div class="informaltable"><table class="informaltable" width="100%" border="0">
335<colgroup>
336<col width="150px" class="parameters_name">
337<col class="parameters_description">
338<col width="200px" class="parameters_annotations">
339</colgroup>
340<tbody><tr>
341<td class="parameter_name"><p>frame</p></td>
342<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
343<td class="parameter_annotations"> </td>
344</tr></tbody>
345</table></div>
346</div>
347</div>
348<hr>
349<div class="refsect2">
350<a name="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME()</h3>
351<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME(frame)      (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME))
352</pre>
353<p>Tests if the frame must be encoded as a keyframe. Applies only to
354frames provided to encoders. Decoders can safely ignore this field.</p>
355<div class="refsect3">
356<a name="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME.parameters"></a><h4>Parameters</h4>
357<div class="informaltable"><table class="informaltable" width="100%" border="0">
358<colgroup>
359<col width="150px" class="parameters_name">
360<col class="parameters_description">
361<col width="200px" class="parameters_annotations">
362</colgroup>
363<tbody><tr>
364<td class="parameter_name"><p>frame</p></td>
365<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
366<td class="parameter_annotations"> </td>
367</tr></tbody>
368</table></div>
369</div>
370</div>
371<hr>
372<div class="refsect2">
373<a name="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS()</h3>
374<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS(frame)      (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS))
375</pre>
376<p>Tests if encoder should output stream headers before outputting the
377resulting encoded buffer for the given frame.</p>
378<p>Applies only to frames provided to encoders. Decoders can safely
379ignore this field.</p>
380<div class="refsect3">
381<a name="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS.parameters"></a><h4>Parameters</h4>
382<div class="informaltable"><table class="informaltable" width="100%" border="0">
383<colgroup>
384<col width="150px" class="parameters_name">
385<col class="parameters_description">
386<col width="200px" class="parameters_annotations">
387</colgroup>
388<tbody><tr>
389<td class="parameter_name"><p>frame</p></td>
390<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
391<td class="parameter_annotations"> </td>
392</tr></tbody>
393</table></div>
394</div>
395</div>
396<hr>
397<div class="refsect2">
398<a name="GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT()</h3>
399<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT(frame)      (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
400</pre>
401<p>Tests if the frame is a synchronization point (like a keyframe).</p>
402<p>Decoder implementations can use this to detect keyframes.</p>
403<div class="refsect3">
404<a name="GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT.parameters"></a><h4>Parameters</h4>
405<div class="informaltable"><table class="informaltable" width="100%" border="0">
406<colgroup>
407<col width="150px" class="parameters_name">
408<col class="parameters_description">
409<col width="200px" class="parameters_annotations">
410</colgroup>
411<tbody><tr>
412<td class="parameter_name"><p>frame</p></td>
413<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
414<td class="parameter_annotations"> </td>
415</tr></tbody>
416</table></div>
417</div>
418</div>
419<hr>
420<div class="refsect2">
421<a name="GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY()</h3>
422<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY(frame)    (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY))
423</pre>
424<p>Sets the buffer to not be sent downstream.</p>
425<p>Decoder implementation can use this if they have frames that
426are not meant to be displayed.</p>
427<p>Encoder implementation can safely ignore this field.</p>
428<div class="refsect3">
429<a name="GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY.parameters"></a><h4>Parameters</h4>
430<div class="informaltable"><table class="informaltable" width="100%" border="0">
431<colgroup>
432<col width="150px" class="parameters_name">
433<col class="parameters_description">
434<col width="200px" class="parameters_annotations">
435</colgroup>
436<tbody><tr>
437<td class="parameter_name"><p>frame</p></td>
438<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
439<td class="parameter_annotations"> </td>
440</tr></tbody>
441</table></div>
442</div>
443</div>
444<hr>
445<div class="refsect2">
446<a name="GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME()</h3>
447<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME(frame)     (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME))
448</pre>
449</div>
450<hr>
451<div class="refsect2">
452<a name="GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME-HEADERS:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS()</h3>
453<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS(frame)     (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS))
454</pre>
455</div>
456<hr>
457<div class="refsect2">
458<a name="GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT()</h3>
459<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT(frame)     (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
460</pre>
461<p>Sets the frame to be a synchronization point (like a keyframe).</p>
462<p>Encoder implementations should set this accordingly.</p>
463<p>Decoder implementing parsing features should set this when they
464detect such a synchronization point.</p>
465<div class="refsect3">
466<a name="GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT.parameters"></a><h4>Parameters</h4>
467<div class="informaltable"><table class="informaltable" width="100%" border="0">
468<colgroup>
469<col width="150px" class="parameters_name">
470<col class="parameters_description">
471<col width="200px" class="parameters_annotations">
472</colgroup>
473<tbody><tr>
474<td class="parameter_name"><p>frame</p></td>
475<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
476<td class="parameter_annotations"> </td>
477</tr></tbody>
478</table></div>
479</div>
480</div>
481<hr>
482<div class="refsect2">
483<a name="GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME()</h3>
484<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME(frame)   (GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME))
485</pre>
486</div>
487<hr>
488<div class="refsect2">
489<a name="GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME-HEADERS:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS()</h3>
490<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS(frame)   (GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS))
491</pre>
492</div>
493<hr>
494<div class="refsect2">
495<a name="GST-VIDEO-CODEC-FRAME-UNSET-SYNC-POINT:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT()</h3>
496<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT(frame)   (GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
497</pre>
498</div>
499<hr>
500<div class="refsect2">
501<a name="gst-video-codec-frame-ref"></a><h3>gst_video_codec_frame_ref ()</h3>
502<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> *
503gst_video_codec_frame_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
504<p>Increases the refcount of the given frame by one.</p>
505<div class="refsect3">
506<a name="gst-video-codec-frame-ref.parameters"></a><h4>Parameters</h4>
507<div class="informaltable"><table class="informaltable" width="100%" border="0">
508<colgroup>
509<col width="150px" class="parameters_name">
510<col class="parameters_description">
511<col width="200px" class="parameters_annotations">
512</colgroup>
513<tbody><tr>
514<td class="parameter_name"><p>frame</p></td>
515<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
516<td class="parameter_annotations"> </td>
517</tr></tbody>
518</table></div>
519</div>
520<div class="refsect3">
521<a name="gst-video-codec-frame-ref.returns"></a><h4>Returns</h4>
522<p> <em class="parameter"><code>buf</code></em>
523</p>
524</div>
525</div>
526<hr>
527<div class="refsect2">
528<a name="gst-video-codec-frame-unref"></a><h3>gst_video_codec_frame_unref ()</h3>
529<pre class="programlisting"><span class="returnvalue">void</span>
530gst_video_codec_frame_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
531<p>Decreases the refcount of the frame. If the refcount reaches 0, the frame
532will be freed.</p>
533<div class="refsect3">
534<a name="gst-video-codec-frame-unref.parameters"></a><h4>Parameters</h4>
535<div class="informaltable"><table class="informaltable" width="100%" border="0">
536<colgroup>
537<col width="150px" class="parameters_name">
538<col class="parameters_description">
539<col width="200px" class="parameters_annotations">
540</colgroup>
541<tbody><tr>
542<td class="parameter_name"><p>frame</p></td>
543<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
544<td class="parameter_annotations"> </td>
545</tr></tbody>
546</table></div>
547</div>
548</div>
549<hr>
550<div class="refsect2">
551<a name="gst-video-codec-frame-set-user-data"></a><h3>gst_video_codec_frame_set_user_data ()</h3>
552<pre class="programlisting"><span class="returnvalue">void</span>
553gst_video_codec_frame_set_user_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>,
554                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
555                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
556<p>Sets <em class="parameter"><code>user_data</code></em>
557 on the frame and the <a href="/usr/share/gtk-doc/html/glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> that will be called when
558the frame is freed. Allows to attach private data by the subclass to frames.</p>
559<p>If a <em class="parameter"><code>user_data</code></em>
560 was previously set, then the previous set <em class="parameter"><code>notify</code></em>
561 will be called
562before the <em class="parameter"><code>user_data</code></em>
563 is replaced.</p>
564<div class="refsect3">
565<a name="gst-video-codec-frame-set-user-data.parameters"></a><h4>Parameters</h4>
566<div class="informaltable"><table class="informaltable" width="100%" border="0">
567<colgroup>
568<col width="150px" class="parameters_name">
569<col class="parameters_description">
570<col width="200px" class="parameters_annotations">
571</colgroup>
572<tbody>
573<tr>
574<td class="parameter_name"><p>frame</p></td>
575<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
576<td class="parameter_annotations"> </td>
577</tr>
578<tr>
579<td class="parameter_name"><p>user_data</p></td>
580<td class="parameter_description"><p>private data</p></td>
581<td class="parameter_annotations"> </td>
582</tr>
583<tr>
584<td class="parameter_name"><p>notify</p></td>
585<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a>. </p></td>
586<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym> user_data]</span></td>
587</tr>
588</tbody>
589</table></div>
590</div>
591</div>
592<hr>
593<div class="refsect2">
594<a name="gst-video-codec-frame-get-user-data"></a><h3>gst_video_codec_frame_get_user_data ()</h3>
595<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
596gst_video_codec_frame_get_user_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
597<p>Gets private data set on the frame by the subclass via
598<a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#gst-video-codec-frame-set-user-data" title="gst_video_codec_frame_set_user_data ()"><code class="function">gst_video_codec_frame_set_user_data()</code></a> previously.</p>
599<div class="refsect3">
600<a name="gst-video-codec-frame-get-user-data.parameters"></a><h4>Parameters</h4>
601<div class="informaltable"><table class="informaltable" width="100%" border="0">
602<colgroup>
603<col width="150px" class="parameters_name">
604<col class="parameters_description">
605<col width="200px" class="parameters_annotations">
606</colgroup>
607<tbody><tr>
608<td class="parameter_name"><p>frame</p></td>
609<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
610<td class="parameter_annotations"> </td>
611</tr></tbody>
612</table></div>
613</div>
614<div class="refsect3">
615<a name="gst-video-codec-frame-get-user-data.returns"></a><h4>Returns</h4>
616<p>The previously set user_data. </p>
617<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
618</div>
619</div>
620<hr>
621<div class="refsect2">
622<a name="gst-video-codec-state-ref"></a><h3>gst_video_codec_state_ref ()</h3>
623<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> *
624gst_video_codec_state_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *state</code></em>);</pre>
625<p>Increases the refcount of the given state by one.</p>
626<div class="refsect3">
627<a name="gst-video-codec-state-ref.parameters"></a><h4>Parameters</h4>
628<div class="informaltable"><table class="informaltable" width="100%" border="0">
629<colgroup>
630<col width="150px" class="parameters_name">
631<col class="parameters_description">
632<col width="200px" class="parameters_annotations">
633</colgroup>
634<tbody><tr>
635<td class="parameter_name"><p>state</p></td>
636<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a></p></td>
637<td class="parameter_annotations"> </td>
638</tr></tbody>
639</table></div>
640</div>
641<div class="refsect3">
642<a name="gst-video-codec-state-ref.returns"></a><h4>Returns</h4>
643<p> <em class="parameter"><code>buf</code></em>
644</p>
645</div>
646</div>
647<hr>
648<div class="refsect2">
649<a name="gst-video-codec-state-unref"></a><h3>gst_video_codec_state_unref ()</h3>
650<pre class="programlisting"><span class="returnvalue">void</span>
651gst_video_codec_state_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *state</code></em>);</pre>
652<p>Decreases the refcount of the state. If the refcount reaches 0, the state
653will be freed.</p>
654<div class="refsect3">
655<a name="gst-video-codec-state-unref.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>state</p></td>
664<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a></p></td>
665<td class="parameter_annotations"> </td>
666</tr></tbody>
667</table></div>
668</div>
669</div>
670</div>
671<div class="refsect1">
672<a name="gst-plugins-base-libs-GstVideo-Codec-utility-function.other_details"></a><h2>Types and Values</h2>
673<div class="refsect2">
674<a name="GstVideoCodecFrame"></a><h3>struct GstVideoCodecFrame</h3>
675<pre class="programlisting">struct GstVideoCodecFrame {
676  guint32 system_frame_number; /* ED */
677
678  GstClockTime dts;       /* ED */
679  GstClockTime pts;       /* ED */
680  GstClockTime duration;  /* ED */
681
682  int distance_from_sync; /* ED */
683
684  GstBuffer *input_buffer; /* ED */
685  GstBuffer *output_buffer; /* ED */
686
687  GstClockTime deadline; /* D */
688};
689</pre>
690<p>A <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> represents a video frame both in raw and
691encoded form.</p>
692<div class="refsect3">
693<a name="GstVideoCodecFrame.members"></a><h4>Members</h4>
694<div class="informaltable"><table class="informaltable" width="100%" border="0">
695<colgroup>
696<col width="300px" class="struct_members_name">
697<col class="struct_members_description">
698<col width="200px" class="struct_members_annotations">
699</colgroup>
700<tbody>
701<tr>
702<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.system-frame-number"></a>system_frame_number</code></em>;</p></td>
703<td class="struct_member_description"><p>Unique identifier for the frame. Use this if you need
704to get hold of the frame later (like when data is being decoded).
705Typical usage in decoders is to set this on the opaque value provided
706to the library and get back the frame using <a class="link" href="GstVideoDecoder.html#gst-video-decoder-get-frame" title="gst_video_decoder_get_frame ()"><code class="function">gst_video_decoder_get_frame()</code></a></p></td>
707<td class="struct_member_annotations"> </td>
708</tr>
709<tr>
710<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.dts"></a>dts</code></em>;</p></td>
711<td class="struct_member_description"><p>Decoding timestamp</p></td>
712<td class="struct_member_annotations"> </td>
713</tr>
714<tr>
715<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.pts"></a>pts</code></em>;</p></td>
716<td class="struct_member_description"><p>Presentation timestamp</p></td>
717<td class="struct_member_annotations"> </td>
718</tr>
719<tr>
720<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.duration"></a>duration</code></em>;</p></td>
721<td class="struct_member_description"><p>Duration of the frame</p></td>
722<td class="struct_member_annotations"> </td>
723</tr>
724<tr>
725<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="GstVideoCodecFrame.distance-from-sync"></a>distance_from_sync</code></em>;</p></td>
726<td class="struct_member_description"><p>Distance in frames from the last synchronization point.</p></td>
727<td class="struct_member_annotations"> </td>
728</tr>
729<tr>
730<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.input-buffer"></a>input_buffer</code></em>;</p></td>
731<td class="struct_member_description"><p>the input <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> that created this frame. The buffer is owned
732by the frame and references to the frame instead of the buffer should
733be kept.</p></td>
734<td class="struct_member_annotations"> </td>
735</tr>
736<tr>
737<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.output-buffer"></a>output_buffer</code></em>;</p></td>
738<td class="struct_member_description"><p>the output <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a>. Implementations should set this either
739directly, or by using the
740<em class="parameter"><code><a class="link" href="GstVideoDecoder.html#gst-video-decoder-allocate-output-frame" title="gst_video_decoder_allocate_output_frame ()"><code class="function">gst_video_decoder_allocate_output_frame()</code></a></code></em>
741or
742<em class="parameter"><code><a class="link" href="GstVideoDecoder.html#gst-video-decoder-allocate-output-buffer" title="gst_video_decoder_allocate_output_buffer ()"><code class="function">gst_video_decoder_allocate_output_buffer()</code></a></code></em>
743methods. The buffer is
744owned by the frame and references to the frame instead of the
745buffer should be kept.</p></td>
746<td class="struct_member_annotations"> </td>
747</tr>
748<tr>
749<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.deadline"></a>deadline</code></em>;</p></td>
750<td class="struct_member_description"><p>Running time when the frame will be used.</p></td>
751<td class="struct_member_annotations"> </td>
752</tr>
753</tbody>
754</table></div>
755</div>
756</div>
757<hr>
758<div class="refsect2">
759<a name="GstVideoCodecFrameFlags"></a><h3>enum GstVideoCodecFrameFlags</h3>
760<p>Flags for <a class="link" href="gst-plugins-base-libs-GstVideo-Codec-utility-function.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
761<div class="refsect3">
762<a name="GstVideoCodecFrameFlags.members"></a><h4>Members</h4>
763<div class="informaltable"><table class="informaltable" width="100%" border="0">
764<colgroup>
765<col width="300px" class="enum_members_name">
766<col class="enum_members_description">
767<col width="200px" class="enum_members_annotations">
768</colgroup>
769<tbody>
770<tr>
771<td class="enum_member_name"><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-DECODE-ONLY:CAPS"></a>GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY</p></td>
772<td class="enum_member_description">
773<p>is the frame only meant to be decoded</p>
774</td>
775<td class="enum_member_annotations"> </td>
776</tr>
777<tr>
778<td class="enum_member_name"><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-SYNC-POINT:CAPS"></a>GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT</p></td>
779<td class="enum_member_description">
780<p>is the frame a synchronization point (keyframe)</p>
781</td>
782<td class="enum_member_annotations"> </td>
783</tr>
784<tr>
785<td class="enum_member_name"><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME:CAPS"></a>GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME</p></td>
786<td class="enum_member_description">
787<p>should the output frame be made a keyframe</p>
788</td>
789<td class="enum_member_annotations"> </td>
790</tr>
791<tr>
792<td class="enum_member_name"><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME-HEADERS:CAPS"></a>GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS</p></td>
793<td class="enum_member_description">
794<p>should the encoder output stream headers</p>
795</td>
796<td class="enum_member_annotations"> </td>
797</tr>
798</tbody>
799</table></div>
800</div>
801</div>
802<hr>
803<div class="refsect2">
804<a name="GstVideoCodecState"></a><h3>struct GstVideoCodecState</h3>
805<pre class="programlisting">struct GstVideoCodecState {
806  GstVideoInfo info;
807
808  GstCaps *caps;
809
810  GstBuffer *codec_data;
811
812  GstCaps *allocation_caps;
813};
814</pre>
815<p>Structure representing the state of an incoming or outgoing video
816stream for encoders and decoders.</p>
817<p>Decoders and encoders will receive such a state through their
818respective <em class="parameter"><code>set_format</code></em>
819 vmethods.</p>
820<p>Decoders and encoders can set the downstream state, by using the
821<em class="parameter"><code><a class="link" href="GstVideoDecoder.html#gst-video-decoder-set-output-state" title="gst_video_decoder_set_output_state ()"><code class="function">gst_video_decoder_set_output_state()</code></a></code></em>
822 or
823<em class="parameter"><code><a class="link" href="GstVideoEncoder.html#gst-video-encoder-set-output-state" title="gst_video_encoder_set_output_state ()"><code class="function">gst_video_encoder_set_output_state()</code></a></code></em>
824 methods.</p>
825<div class="refsect3">
826<a name="GstVideoCodecState.members"></a><h4>Members</h4>
827<div class="informaltable"><table class="informaltable" width="100%" border="0">
828<colgroup>
829<col width="300px" class="struct_members_name">
830<col class="struct_members_description">
831<col width="200px" class="struct_members_annotations">
832</colgroup>
833<tbody>
834<tr>
835<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-GstVideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> <em class="structfield"><code><a name="GstVideoCodecState.info"></a>info</code></em>;</p></td>
836<td class="struct_member_description"><p>The <a class="link" href="gst-plugins-base-libs-GstVideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> describing the stream</p></td>
837<td class="struct_member_annotations"> </td>
838</tr>
839<tr>
840<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.caps"></a>caps</code></em>;</p></td>
841<td class="struct_member_description"><p>The <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> used in the caps negotiation of the pad.</p></td>
842<td class="struct_member_annotations"> </td>
843</tr>
844<tr>
845<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.codec-data"></a>codec_data</code></em>;</p></td>
846<td class="struct_member_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> corresponding to the
847'codec_data' field of a stream, or NULL.</p></td>
848<td class="struct_member_annotations"> </td>
849</tr>
850<tr>
851<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.allocation-caps"></a>allocation_caps</code></em>;</p></td>
852<td class="struct_member_description"><p>The <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> for allocation query and pool
853negotiation. Since: 1.10</p></td>
854<td class="struct_member_annotations"> </td>
855</tr>
856</tbody>
857</table></div>
858</div>
859</div>
860</div>
861</div>
862<div class="footer">
863<hr>Generated by GTK-Doc V1.28</div>
864</body>
865</html>