| GStreamer Bad Plugins 1.0 Library Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | ||||
struct GstGLFilter; struct GstGLFilterClass; void gst_gl_filter_draw_texture (GstGLFilter *filter,GLuint texture,guint width,guint height); void gst_gl_filter_render_to_target (GstGLFilter *filter,gboolean resize,GLuint input,GLuint target,GLCB func,gpointer data); void gst_gl_filter_render_to_target_with_shader (GstGLFilter *filter,gboolean resize,GLuint input,GLuint target,GstGLShader *shader); gboolean gst_gl_filter_filter_texture (GstGLFilter *filter,GstBuffer *inbuf,GstBuffer *outbuf);
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstBaseTransform
+----GstGLFilter
struct GstGLFilter;
GstGLFilter is a base class that provides the logic of getting the GL context from downstream and automatic upload/download for non-GstGLMemory GstBuffers.
struct GstGLFilterClass {
GstBaseTransformClass base_transform_class;
gboolean (*set_caps) (GstGLFilter* filter, GstCaps* incaps, GstCaps* outcaps);
gboolean (*filter) (GstGLFilter *filter, GstBuffer *inbuf, GstBuffer *outbuf);
gboolean (*filter_texture) (GstGLFilter *filter, guint in_tex, guint out_tex);
gboolean (*onInitFBO) (GstGLFilter *filter);
void (*onStart) (GstGLFilter *filter);
void (*onStop) (GstGLFilter *filter);
void (*onReset) (GstGLFilter *filter);
/* useful to init and cleanup custom gl resources */
void (*display_init_cb) (GstGLFilter *filter);
void (*display_reset_cb) (GstGLFilter *filter);
};
| parent class | |
| 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 filter exists, then filter_texture is not run |
|
given in_tex, transform it into out_tex. Not used
if filter exists |
|
| perform initialization when the Framebuffer object is created | |
| called when element activates see also GstBaseTransform | |
| called when the element deactivates e also GstBaseTransform | |
called on inizialation and after onStop
|
|
| execute arbitrary gl code on start | |
| execute arbitrary gl code at stop |
void gst_gl_filter_draw_texture (GstGLFilter *filter,GLuint texture,guint width,guint height);
Draws texture into the OpenGL scene at the specified width and height.
|
a GstGLFilter |
|
the texture to draw |
|
width of texture
|
|
height of texture |
void gst_gl_filter_render_to_target (GstGLFilter *filter,gboolean resize,GLuint input,GLuint target,GLCB func,gpointer data);
Transforms input into output using func on through FBO. resize should
only ever be TRUE whenever input is the input texture of filter.
|
a GstGLFilter |
|
whether to automatically resize the texture between the input size and the output size |
|
the input texture |
|
the output texture |
|
the function to transform input into output. called with data
|
|
the data associated with func
|
void gst_gl_filter_render_to_target_with_shader (GstGLFilter *filter,gboolean resize,GLuint input,GLuint target,GstGLShader *shader);
Transforms input into output using shader on FBO. resize should
only ever be TRUE whenever input is the input texture of filter.
See also: gst_gl_filter_render_to_target()
|
a GstGLFilter |
|
whether to automatically resize the texture between the input size and the output size |
|
the input texture |
|
the output texture |
|
the shader to use. |
gboolean gst_gl_filter_filter_texture (GstGLFilter *filter,GstBuffer *inbuf,GstBuffer *outbuf);
Perform automatic upload if needed, call filter_texture vfunc and then an automatic download if needed.
|
a GstGLFilter |
|
an input buffer |
|
an output buffer |
Returns : |
whether the transformation succeeded |
"other-context" property"other-context" GstGLContext* : Read / Write
Give an external OpenGL context with which to share textures.