GstGLFilter

GstGLFilter

Functions

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseTransform
                    ╰── GstGLBaseFilter
                        ╰── GstGLFilter

Description

Functions

gst_gl_filter_draw_texture ()

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 .

Parameters

filter

a GstGLFilter

 

texture

the texture to draw

 

width

width of texture

 

height

height of texture

 

gst_gl_filter_render_to_target ()

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 .

Parameters

filter

a GstGLFilter

 

resize

whether to automatically resize the texture between the input size and the output size

 

input

the input texture

 

target

the output texture

 

func

the function to transform input into output . called with data

 

data

the data associated with func

 

gst_gl_filter_render_to_target_with_shader ()

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()

Parameters

filter

a GstGLFilter

 

resize

whether to automatically resize the texture between the input size and the output size

 

input

the input texture

 

target

the output texture

 

shader

the shader to use.

 

gst_gl_filter_filter_texture ()

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.

Parameters

filter

a GstGLFilter

 

inbuf

an input buffer

 

outbuf

an output buffer

 

Returns

whether the transformation succeeded

Types and Values

GstGLFilter

typedef struct _GstGLFilter 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.

Members


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, guint in_tex, guint out_tex);
  gboolean (*init_fbo)          (GstGLFilter *filter);

  GstCaps *(*transform_internal_caps) (GstGLFilter *filter,
    GstPadDirection direction, GstCaps * caps, GstCaps * filter_caps);

  /* useful to init and cleanup custom gl resources */
  void (*display_init_cb)       (GstGLFilter *filter);
  void (*display_reset_cb)      (GstGLFilter *filter);
} GstGLFilterClass;

Members

GstGLBaseFilterClass parent_class;

   

set_caps ()

mirror from GstBaseTransform

 

filter ()

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

 

filter_texture ()

given in_tex , transform it into out_tex . Not used if filter exists

 

init_fbo ()

perform initialization when the Framebuffer object is created

 

transform_internal_caps ()

Perform sub-class specific modifications of the caps to be processed between upload on input and before download for output.

 

display_init_cb ()

execute arbitrary gl code on start

 

display_reset_cb ()

execute arbitrary gl code at stop