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">|</span> 18 <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 <gst/video/video.h> 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)->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) & (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) &= ~(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>