Top | ![]() |
![]() |
![]() |
![]() |
gboolean | (*GstGLFilterRenderFunc) () |
gboolean | gst_gl_filter_render_to_target () |
void | gst_gl_filter_render_to_target_with_shader () |
gboolean | gst_gl_filter_filter_texture () |
void | gst_gl_filter_draw_fullscreen_quad () |
void | gst_gl_filter_add_rgba_pad_templates () |
GObject ╰── GInitiallyUnowned ╰── GstObject ╰── GstElement ╰── GstBaseTransform ╰── GstGLBaseFilter ╰── GstGLFilter
GstGLFilter helps to implement simple OpenGL filter elements taking a single input and producing a single output with a GstGLFramebuffer
gboolean (*GstGLFilterRenderFunc) (GstGLFilter *filter
,GstGLMemory *in_tex
,gpointer user_data
);
Since: 1.10
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.
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
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
gboolean gst_gl_filter_filter_texture (GstGLFilter *filter
,GstBuffer *inbuf
,GstBuffer *outbuf
);
Calls filter_texture vfunc with correctly mapped GstGLMemorys
Since: 1.4
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
void
gst_gl_filter_add_rgba_pad_templates (GstGLFilterClass *klass
);
typedef struct { GstVideoInfo in_info; GstVideoInfo out_info; GstGLTextureTarget in_texture_target; GstGLTextureTarget out_texture_target; GstCaps *out_caps; /* protected */ GstGLFramebuffer *fbo; } GstGLFilter;
GstVideoInfo |
the video info for input buffers |
|
GstVideoInfo |
the video info for output buffers |
|
GstGLTextureTarget |
The texture target of the input buffers (usually 2D) |
|
GstGLTextureTarget |
The texture target of the output buffers (usually 2D) |
|
the output GstCaps |
||
GstGLFramebuffer * |
GstGLFramebuffer object used for transformations (only for subclass usage) |
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;
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. |