Top |
Object Hierarchy
GObject ╰── GInitiallyUnowned ╰── GstObject ╰── GstElement ╰── GstBaseTransform ╰── GstGLBaseFilter ╰── GstGLFilter
Description
GstGLFilter helps to implement simple OpenGL filter elements taking a single input and producing a single output with a GstGLFramebuffer
Functions
GstGLFilterRenderFunc ()
gboolean (*GstGLFilterRenderFunc) (GstGLFilter *filter
,GstGLMemory *in_tex
,gpointer user_data
);
Since: 1.10
gst_gl_filter_render_to_target ()
gboolean gst_gl_filter_render_to_target (GstGLFilter *filter
,GstGLMemory *input
,GstGLMemory *output
,GstGLFilterRenderFunc func
,gpointer data
);
Transforms input
into output
using func
on through FBO.
Parameters
filter |
||
input |
the input texture |
|
output |
the output texture |
|
func |
the function to transform |
[scope call] |
data |
the data associated with |
[allow-none] |
Since: 1.10
gst_gl_filter_render_to_target_with_shader ()
void gst_gl_filter_render_to_target_with_shader (GstGLFilter *filter
,GstGLMemory *input
,GstGLMemory *output
,GstGLShader *shader
);
Transforms input
into output
using shader
with a FBO.
See also: gst_gl_filter_render_to_target()
Since: 1.4
gst_gl_filter_filter_texture ()
gboolean gst_gl_filter_filter_texture (GstGLFilter *filter
,GstBuffer *inbuf
,GstBuffer *outbuf
);
Calls filter_texture vfunc with correctly mapped GstGLMemorys
Since: 1.4
gst_gl_filter_draw_fullscreen_quad ()
void
gst_gl_filter_draw_fullscreen_quad (GstGLFilter *filter
);
Render a fullscreen quad using the current GL state. The only GL state this modifies is the necessary vertex/index buffers and, if necessary, a Vertex Array Object for drawing a fullscreen quad. Framebuffer state, any shaders, viewport state, etc must be setup by the caller.
Since: 1.10
Types and Values
GstGLFilterClass
typedef struct { GstGLBaseFilterClass parent_class; gboolean (*set_caps) (GstGLFilter* filter, GstCaps* incaps, GstCaps* outcaps); gboolean (*filter) (GstGLFilter *filter, GstBuffer *inbuf, GstBuffer *outbuf); gboolean (*filter_texture) (GstGLFilter *filter, GstGLMemory *in_tex, GstGLMemory *out_tex); gboolean (*init_fbo) (GstGLFilter *filter); GstCaps *(*transform_internal_caps) (GstGLFilter *filter, GstPadDirection direction, GstCaps * caps, GstCaps * filter_caps); } GstGLFilterClass;
Members
mirror from GstBaseTransform |
||
perform operations on the input and output buffers. In general,
you should avoid using this method if at all possible. One valid
use-case for using this is keeping previous buffers for future calculations.
Note: If |
||
given |
||
perform initialization when the Framebuffer object is created |
||
Perform sub-class specific modifications of the caps to be processed between upload on input and before download for output. |