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>GstGLFilter: 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="gl.html" title="OpenGL Integration Library"> 9<link rel="prev" href="gst-plugins-base-libs-GstEGLImage.html" title="GstEGLImage"> 10<link rel="next" href="GstGLFramebuffer.html" title="GstGLFramebuffer"> 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="#GstGLFilter.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 19 <a href="#GstGLFilter.object-hierarchy" class="shortcut">Object Hierarchy</a></span> 20</td> 21<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> 22<td><a accesskey="u" href="gl.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> 23<td><a accesskey="p" href="gst-plugins-base-libs-GstEGLImage.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> 24<td><a accesskey="n" href="GstGLFramebuffer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> 25</tr></table> 26<div class="refentry"> 27<a name="GstGLFilter"></a><div class="titlepage"></div> 28<div class="refnamediv"><table width="100%"><tr> 29<td valign="top"> 30<h2><span class="refentrytitle"><a name="GstGLFilter.top_of_page"></a>GstGLFilter</span></h2> 31<p>GstGLFilter — GstBaseTransform subclass for dealing with RGBA textures</p> 32</td> 33<td class="gallery_image" valign="top" align="right"></td> 34</tr></table></div> 35<div class="refsect1"> 36<a name="GstGLFilter.functions"></a><h2>Functions</h2> 37<div class="informaltable"><table class="informaltable" width="100%" border="0"> 38<colgroup> 39<col width="150px" class="functions_return"> 40<col class="functions_name"> 41</colgroup> 42<tbody> 43<tr> 44<td class="function_type"> 45<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 46</td> 47<td class="function_name"> 48<span class="c_punctuation">(</span><a class="link" href="GstGLFilter.html#GstGLFilterRenderFunc" title="GstGLFilterRenderFunc ()">*GstGLFilterRenderFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> 49</td> 50</tr> 51<tr> 52<td class="function_type"> 53<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 54</td> 55<td class="function_name"> 56<a class="link" href="GstGLFilter.html#gst-gl-filter-render-to-target" title="gst_gl_filter_render_to_target ()">gst_gl_filter_render_to_target</a> <span class="c_punctuation">()</span> 57</td> 58</tr> 59<tr> 60<td class="function_type"> 61<span class="returnvalue">void</span> 62</td> 63<td class="function_name"> 64<a class="link" href="GstGLFilter.html#gst-gl-filter-render-to-target-with-shader" title="gst_gl_filter_render_to_target_with_shader ()">gst_gl_filter_render_to_target_with_shader</a> <span class="c_punctuation">()</span> 65</td> 66</tr> 67<tr> 68<td class="function_type"> 69<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 70</td> 71<td class="function_name"> 72<a class="link" href="GstGLFilter.html#gst-gl-filter-filter-texture" title="gst_gl_filter_filter_texture ()">gst_gl_filter_filter_texture</a> <span class="c_punctuation">()</span> 73</td> 74</tr> 75<tr> 76<td class="function_type"> 77<span class="returnvalue">void</span> 78</td> 79<td class="function_name"> 80<a class="link" href="GstGLFilter.html#gst-gl-filter-draw-fullscreen-quad" title="gst_gl_filter_draw_fullscreen_quad ()">gst_gl_filter_draw_fullscreen_quad</a> <span class="c_punctuation">()</span> 81</td> 82</tr> 83<tr> 84<td class="function_type"> 85<span class="returnvalue">void</span> 86</td> 87<td class="function_name"> 88<a class="link" href="GstGLFilter.html#gst-gl-filter-add-rgba-pad-templates" title="gst_gl_filter_add_rgba_pad_templates ()">gst_gl_filter_add_rgba_pad_templates</a> <span class="c_punctuation">()</span> 89</td> 90</tr> 91</tbody> 92</table></div> 93</div> 94<div class="refsect1"> 95<a name="GstGLFilter.other"></a><h2>Types and Values</h2> 96<div class="informaltable"><table class="informaltable" width="100%" border="0"> 97<colgroup> 98<col width="150px" class="name"> 99<col class="description"> 100</colgroup> 101<tbody> 102<tr> 103<td class="datatype_keyword"> </td> 104<td class="function_name"><a class="link" href="GstGLFilter.html#GstGLFilter-struct" title="GstGLFilter">GstGLFilter</a></td> 105</tr> 106<tr> 107<td class="datatype_keyword"> </td> 108<td class="function_name"><a class="link" href="GstGLFilter.html#GstGLFilterClass" title="GstGLFilterClass">GstGLFilterClass</a></td> 109</tr> 110</tbody> 111</table></div> 112</div> 113<div class="refsect1"> 114<a name="GstGLFilter.object-hierarchy"></a><h2>Object Hierarchy</h2> 115<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a> 116 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> 117 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a> 118 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a> 119 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform-struct">GstBaseTransform</a> 120 <span class="lineart">╰──</span> <a class="link" href="GstGLBaseFilter.html" title="GstGLBaseFilter">GstGLBaseFilter</a> 121 <span class="lineart">╰──</span> GstGLFilter 122</pre> 123</div> 124<div class="refsect1"> 125<a name="GstGLFilter.includes"></a><h2>Includes</h2> 126<pre class="synopsis">#include <gst/gl/gl.h> 127</pre> 128</div> 129<div class="refsect1"> 130<a name="GstGLFilter.description"></a><h2>Description</h2> 131<p><a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a> helps to implement simple OpenGL filter elements taking a 132single input and producing a single output with a <a class="link" href="GstGLFramebuffer.html" title="GstGLFramebuffer"><span class="type">GstGLFramebuffer</span></a></p> 133</div> 134<div class="refsect1"> 135<a name="GstGLFilter.functions_details"></a><h2>Functions</h2> 136<div class="refsect2"> 137<a name="GstGLFilterRenderFunc"></a><h3>GstGLFilterRenderFunc ()</h3> 138<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 139<span class="c_punctuation">(</span>*GstGLFilterRenderFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a> *filter</code></em>, 140 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstGLMemory.html#GstGLMemory" title="GstGLMemory"><span class="type">GstGLMemory</span></a> *in_tex</code></em>, 141 <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>);</pre> 142<div class="refsect3"> 143<a name="GstGLFilterRenderFunc.parameters"></a><h4>Parameters</h4> 144<div class="informaltable"><table class="informaltable" width="100%" border="0"> 145<colgroup> 146<col width="150px" class="parameters_name"> 147<col class="parameters_description"> 148<col width="200px" class="parameters_annotations"> 149</colgroup> 150<tbody> 151<tr> 152<td class="parameter_name"><p>filter</p></td> 153<td class="parameter_description"><p>the <a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a></p></td> 154<td class="parameter_annotations"> </td> 155</tr> 156<tr> 157<td class="parameter_name"><p>in_tex</p></td> 158<td class="parameter_description"><p>the input <a class="link" href="gst-plugins-base-libs-GstGLMemory.html#GstGLMemory" title="GstGLMemory"><span class="type">GstGLMemory</span></a> to render</p></td> 159<td class="parameter_annotations"> </td> 160</tr> 161<tr> 162<td class="parameter_name"><p>user_data</p></td> 163<td class="parameter_description"><p>user data</p></td> 164<td class="parameter_annotations"> </td> 165</tr> 166</tbody> 167</table></div> 168</div> 169<div class="refsect3"> 170<a name="GstGLFilterRenderFunc.returns"></a><h4>Returns</h4> 171<p> whether the render succeeded</p> 172</div> 173<p class="since">Since: <a class="link" href="ix06.html#api-index-1.10">1.10</a></p> 174</div> 175<hr> 176<div class="refsect2"> 177<a name="gst-gl-filter-render-to-target"></a><h3>gst_gl_filter_render_to_target ()</h3> 178<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 179gst_gl_filter_render_to_target (<em class="parameter"><code><a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a> *filter</code></em>, 180 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstGLMemory.html#GstGLMemory" title="GstGLMemory"><span class="type">GstGLMemory</span></a> *input</code></em>, 181 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstGLMemory.html#GstGLMemory" title="GstGLMemory"><span class="type">GstGLMemory</span></a> *output</code></em>, 182 <em class="parameter"><code><a class="link" href="GstGLFilter.html#GstGLFilterRenderFunc" title="GstGLFilterRenderFunc ()"><span class="type">GstGLFilterRenderFunc</span></a> func</code></em>, 183 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre> 184<p>Transforms <em class="parameter"><code>input</code></em> 185 into <em class="parameter"><code>output</code></em> 186 using <em class="parameter"><code>func</code></em> 187 on through FBO.</p> 188<div class="refsect3"> 189<a name="gst-gl-filter-render-to-target.parameters"></a><h4>Parameters</h4> 190<div class="informaltable"><table class="informaltable" width="100%" border="0"> 191<colgroup> 192<col width="150px" class="parameters_name"> 193<col class="parameters_description"> 194<col width="200px" class="parameters_annotations"> 195</colgroup> 196<tbody> 197<tr> 198<td class="parameter_name"><p>filter</p></td> 199<td class="parameter_description"><p>a <a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a></p></td> 200<td class="parameter_annotations"> </td> 201</tr> 202<tr> 203<td class="parameter_name"><p>input</p></td> 204<td class="parameter_description"><p>the input texture</p></td> 205<td class="parameter_annotations"> </td> 206</tr> 207<tr> 208<td class="parameter_name"><p>output</p></td> 209<td class="parameter_description"><p>the output texture</p></td> 210<td class="parameter_annotations"> </td> 211</tr> 212<tr> 213<td class="parameter_name"><p>func</p></td> 214<td class="parameter_description"><p>the function to transform <em class="parameter"><code>input</code></em> 215into <em class="parameter"><code>output</code></em> 216. called with <em class="parameter"><code>data</code></em> 217. </p></td> 218<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td> 219</tr> 220<tr> 221<td class="parameter_name"><p>data</p></td> 222<td class="parameter_description"><p>the data associated with <em class="parameter"><code>func</code></em> 223. </p></td> 224<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> 225</tr> 226</tbody> 227</table></div> 228</div> 229<div class="refsect3"> 230<a name="gst-gl-filter-render-to-target.returns"></a><h4>Returns</h4> 231<p> the return value of <em class="parameter"><code>func</code></em> 232</p> 233</div> 234<p class="since">Since: <a class="link" href="ix06.html#api-index-1.10">1.10</a></p> 235</div> 236<hr> 237<div class="refsect2"> 238<a name="gst-gl-filter-render-to-target-with-shader"></a><h3>gst_gl_filter_render_to_target_with_shader ()</h3> 239<pre class="programlisting"><span class="returnvalue">void</span> 240gst_gl_filter_render_to_target_with_shader 241 (<em class="parameter"><code><a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a> *filter</code></em>, 242 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstGLMemory.html#GstGLMemory" title="GstGLMemory"><span class="type">GstGLMemory</span></a> *input</code></em>, 243 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstGLMemory.html#GstGLMemory" title="GstGLMemory"><span class="type">GstGLMemory</span></a> *output</code></em>, 244 <em class="parameter"><code><a class="link" href="GstGLShader.html" title="GstGLShader"><span class="type">GstGLShader</span></a> *shader</code></em>);</pre> 245<p>Transforms <em class="parameter"><code>input</code></em> 246 into <em class="parameter"><code>output</code></em> 247 using <em class="parameter"><code>shader</code></em> 248 with a FBO.</p> 249<p>See also: <a class="link" href="GstGLFilter.html#gst-gl-filter-render-to-target" title="gst_gl_filter_render_to_target ()"><code class="function">gst_gl_filter_render_to_target()</code></a></p> 250<div class="refsect3"> 251<a name="gst-gl-filter-render-to-target-with-shader.parameters"></a><h4>Parameters</h4> 252<div class="informaltable"><table class="informaltable" width="100%" border="0"> 253<colgroup> 254<col width="150px" class="parameters_name"> 255<col class="parameters_description"> 256<col width="200px" class="parameters_annotations"> 257</colgroup> 258<tbody> 259<tr> 260<td class="parameter_name"><p>filter</p></td> 261<td class="parameter_description"><p>a <a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a></p></td> 262<td class="parameter_annotations"> </td> 263</tr> 264<tr> 265<td class="parameter_name"><p>input</p></td> 266<td class="parameter_description"><p>the input texture</p></td> 267<td class="parameter_annotations"> </td> 268</tr> 269<tr> 270<td class="parameter_name"><p>output</p></td> 271<td class="parameter_description"><p>the output texture</p></td> 272<td class="parameter_annotations"> </td> 273</tr> 274<tr> 275<td class="parameter_name"><p>shader</p></td> 276<td class="parameter_description"><p>the shader to use.</p></td> 277<td class="parameter_annotations"> </td> 278</tr> 279</tbody> 280</table></div> 281</div> 282<p class="since">Since: <a class="link" href="ix11.html#api-index-1.4">1.4</a></p> 283</div> 284<hr> 285<div class="refsect2"> 286<a name="gst-gl-filter-filter-texture"></a><h3>gst_gl_filter_filter_texture ()</h3> 287<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> 288gst_gl_filter_filter_texture (<em class="parameter"><code><a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a> *filter</code></em>, 289 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *inbuf</code></em>, 290 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *outbuf</code></em>);</pre> 291<p>Calls filter_texture vfunc with correctly mapped <a href="gst-plugins-base-libs-GstGLMemory.html#GstGLMemory"><span class="type">GstGLMemorys</span></a></p> 292<div class="refsect3"> 293<a name="gst-gl-filter-filter-texture.parameters"></a><h4>Parameters</h4> 294<div class="informaltable"><table class="informaltable" width="100%" border="0"> 295<colgroup> 296<col width="150px" class="parameters_name"> 297<col class="parameters_description"> 298<col width="200px" class="parameters_annotations"> 299</colgroup> 300<tbody> 301<tr> 302<td class="parameter_name"><p>filter</p></td> 303<td class="parameter_description"><p>a <a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a></p></td> 304<td class="parameter_annotations"> </td> 305</tr> 306<tr> 307<td class="parameter_name"><p>inbuf</p></td> 308<td class="parameter_description"><p>an input buffer</p></td> 309<td class="parameter_annotations"> </td> 310</tr> 311<tr> 312<td class="parameter_name"><p>outbuf</p></td> 313<td class="parameter_description"><p>an output buffer</p></td> 314<td class="parameter_annotations"> </td> 315</tr> 316</tbody> 317</table></div> 318</div> 319<div class="refsect3"> 320<a name="gst-gl-filter-filter-texture.returns"></a><h4>Returns</h4> 321<p> whether the transformation succeeded</p> 322</div> 323<p class="since">Since: <a class="link" href="ix11.html#api-index-1.4">1.4</a></p> 324</div> 325<hr> 326<div class="refsect2"> 327<a name="gst-gl-filter-draw-fullscreen-quad"></a><h3>gst_gl_filter_draw_fullscreen_quad ()</h3> 328<pre class="programlisting"><span class="returnvalue">void</span> 329gst_gl_filter_draw_fullscreen_quad (<em class="parameter"><code><a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a> *filter</code></em>);</pre> 330<p>Render a fullscreen quad using the current GL state. The only GL state this 331modifies is the necessary vertex/index buffers and, if necessary, a 332Vertex Array Object for drawing a fullscreen quad. Framebuffer state, 333any shaders, viewport state, etc must be setup by the caller.</p> 334<div class="refsect3"> 335<a name="gst-gl-filter-draw-fullscreen-quad.parameters"></a><h4>Parameters</h4> 336<div class="informaltable"><table class="informaltable" width="100%" border="0"> 337<colgroup> 338<col width="150px" class="parameters_name"> 339<col class="parameters_description"> 340<col width="200px" class="parameters_annotations"> 341</colgroup> 342<tbody><tr> 343<td class="parameter_name"><p>filter</p></td> 344<td class="parameter_description"><p>a <a class="link" href="GstGLFilter.html" title="GstGLFilter"><span class="type">GstGLFilter</span></a></p></td> 345<td class="parameter_annotations"> </td> 346</tr></tbody> 347</table></div> 348</div> 349<p class="since">Since: <a class="link" href="ix06.html#api-index-1.10">1.10</a></p> 350</div> 351<hr> 352<div class="refsect2"> 353<a name="gst-gl-filter-add-rgba-pad-templates"></a><h3>gst_gl_filter_add_rgba_pad_templates ()</h3> 354<pre class="programlisting"><span class="returnvalue">void</span> 355gst_gl_filter_add_rgba_pad_templates (<em class="parameter"><code><a class="link" href="GstGLFilter.html#GstGLFilterClass" title="GstGLFilterClass"><span class="type">GstGLFilterClass</span></a> *klass</code></em>);</pre> 356</div> 357</div> 358<div class="refsect1"> 359<a name="GstGLFilter.other_details"></a><h2>Types and Values</h2> 360<div class="refsect2"> 361<a name="GstGLFilter-struct"></a><h3>GstGLFilter</h3> 362<pre class="programlisting">typedef struct { 363 GstVideoInfo in_info; 364 GstVideoInfo out_info; 365 GstGLTextureTarget in_texture_target; 366 GstGLTextureTarget out_texture_target; 367 368 GstCaps *out_caps; 369 370 /* protected */ 371 GstGLFramebuffer *fbo; 372} GstGLFilter; 373</pre> 374<div class="refsect3"> 375<a name="GstGLFilter.members"></a><h4>Members</h4> 376<div class="informaltable"><table class="informaltable" width="100%" border="0"> 377<colgroup> 378<col width="300px" class="struct_members_name"> 379<col class="struct_members_description"> 380<col width="200px" class="struct_members_annotations"> 381</colgroup> 382<tbody> 383<tr> 384<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="GstGLFilter-struct.in-info"></a>in_info</code></em>;</p></td> 385<td class="struct_member_description"><p>the video info for input buffers</p></td> 386<td class="struct_member_annotations"> </td> 387</tr> 388<tr> 389<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="GstGLFilter-struct.out-info"></a>out_info</code></em>;</p></td> 390<td class="struct_member_description"><p>the video info for output buffers</p></td> 391<td class="struct_member_annotations"> </td> 392</tr> 393<tr> 394<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-OpenGL-Formats.html#GstGLTextureTarget" title="enum GstGLTextureTarget"><span class="type">GstGLTextureTarget</span></a> <em class="structfield"><code><a name="GstGLFilter-struct.in-texture-target"></a>in_texture_target</code></em>;</p></td> 395<td class="struct_member_description"><p>The texture target of the input buffers (usually 2D)</p></td> 396<td class="struct_member_annotations"> </td> 397</tr> 398<tr> 399<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-OpenGL-Formats.html#GstGLTextureTarget" title="enum GstGLTextureTarget"><span class="type">GstGLTextureTarget</span></a> <em class="structfield"><code><a name="GstGLFilter-struct.out-texture-target"></a>out_texture_target</code></em>;</p></td> 400<td class="struct_member_description"><p>The texture target of the output buffers (usually 2D)</p></td> 401<td class="struct_member_annotations"> </td> 402</tr> 403<tr> 404<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="GstGLFilter-struct.out-caps"></a>out_caps</code></em>;</p></td> 405<td class="struct_member_description"><p>the output <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p></td> 406<td class="struct_member_annotations"> </td> 407</tr> 408<tr> 409<td class="struct_member_name"><p><a class="link" href="GstGLFramebuffer.html" title="GstGLFramebuffer"><span class="type">GstGLFramebuffer</span></a> *<em class="structfield"><code><a name="GstGLFilter-struct.fbo"></a>fbo</code></em>;</p></td> 410<td class="struct_member_description"><p><a class="link" href="GstGLFramebuffer.html" title="GstGLFramebuffer"><span class="type">GstGLFramebuffer</span></a> object used for transformations (only for subclass usage)</p></td> 411<td class="struct_member_annotations"> </td> 412</tr> 413</tbody> 414</table></div> 415</div> 416</div> 417<hr> 418<div class="refsect2"> 419<a name="GstGLFilterClass"></a><h3>GstGLFilterClass</h3> 420<pre class="programlisting">typedef struct { 421 GstGLBaseFilterClass parent_class; 422 423 gboolean (*set_caps) (GstGLFilter* filter, GstCaps* incaps, GstCaps* outcaps); 424 gboolean (*filter) (GstGLFilter *filter, GstBuffer *inbuf, GstBuffer *outbuf); 425 gboolean (*filter_texture) (GstGLFilter *filter, GstGLMemory *in_tex, GstGLMemory *out_tex); 426 gboolean (*init_fbo) (GstGLFilter *filter); 427 428 GstCaps *(*transform_internal_caps) (GstGLFilter *filter, 429 GstPadDirection direction, GstCaps * caps, GstCaps * filter_caps); 430} GstGLFilterClass; 431</pre> 432<div class="refsect3"> 433<a name="GstGLFilterClass.members"></a><h4>Members</h4> 434<div class="informaltable"><table class="informaltable" width="100%" border="0"> 435<colgroup> 436<col width="300px" class="struct_members_name"> 437<col class="struct_members_description"> 438<col width="200px" class="struct_members_annotations"> 439</colgroup> 440<tbody> 441<tr> 442<td class="struct_member_name"><p><em class="structfield"><code><a name="GstGLFilterClass.set-caps"></a>set_caps</code></em> ()</p></td> 443<td class="struct_member_description"><p>mirror from <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform-struct"><span class="type">GstBaseTransform</span></a></p></td> 444<td class="struct_member_annotations"> </td> 445</tr> 446<tr> 447<td class="struct_member_name"><p><em class="structfield"><code><a name="GstGLFilterClass.filter"></a>filter</code></em> ()</p></td> 448<td class="struct_member_description"><p>perform operations on the input and output buffers. In general, 449you should avoid using this method if at all possible. One valid 450use-case for using this is keeping previous buffers for future calculations. 451Note: If <em class="parameter"><code>filter</code></em> 452exists, then <em class="parameter"><code>filter_texture</code></em> 453is not run</p></td> 454<td class="struct_member_annotations"> </td> 455</tr> 456<tr> 457<td class="struct_member_name"><p><em class="structfield"><code><a name="GstGLFilterClass.filter-texture"></a>filter_texture</code></em> ()</p></td> 458<td class="struct_member_description"><p>given <em class="parameter"><code>in_tex</code></em> 459, transform it into <em class="parameter"><code>out_tex</code></em> 460. Not used 461if <em class="parameter"><code>filter</code></em> 462exists</p></td> 463<td class="struct_member_annotations"> </td> 464</tr> 465<tr> 466<td class="struct_member_name"><p><em class="structfield"><code><a name="GstGLFilterClass.init-fbo"></a>init_fbo</code></em> ()</p></td> 467<td class="struct_member_description"><p>perform initialization when the Framebuffer object is created</p></td> 468<td class="struct_member_annotations"> </td> 469</tr> 470<tr> 471<td class="struct_member_name"><p><em class="structfield"><code><a name="GstGLFilterClass.transform-internal-caps"></a>transform_internal_caps</code></em> ()</p></td> 472<td class="struct_member_description"><p>Perform sub-class specific modifications of the 473caps to be processed between upload on input and before download for output.</p></td> 474<td class="struct_member_annotations"> </td> 475</tr> 476</tbody> 477</table></div> 478</div> 479</div> 480</div> 481<div class="refsect1"> 482<a name="GstGLFilter.see-also"></a><h2>See Also</h2> 483<p><a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform-struct"><span class="type">GstBaseTransform</span></a>, <a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a>, <a class="link" href="GstGLFramebuffer.html" title="GstGLFramebuffer"><span class="type">GstGLFramebuffer</span></a></p> 484</div> 485</div> 486<div class="footer"> 487<hr>Generated by GTK-Doc V1.28</div> 488</body> 489</html>