OpenGL Miscellaneous Utilities

OpenGL Miscellaneous Utilities

Synopsis

void                (*GLCB)                             (gint Param1,
                                                         gint Param2,
                                                         guint Param3,
                                                         gpointer stuff);
void                (*GLCB_V2)                          (gpointer stuff);
gboolean            (*CDCB)                             (GLuint texture,
                                                         GLuint width,
                                                         GLuint height,
                                                         gpointer data);
enum                GstGLDisplayProjection;
gboolean            gst_gl_handle_set_context           (GstElement *element,
                                                         GstContext *context,
                                                         GstGLDisplay **display,
                                                         GstGLContext **other_context);
gboolean            gst_gl_handle_context_query         (GstElement *element,
                                                         GstQuery *query,
                                                         GstGLDisplay **display,
                                                         GstGLContext **other_context);
void                gst_gl_context_gen_texture          (GstGLContext *context,
                                                         GLuint *pTexture,
                                                         GstVideoFormat v_format,
                                                         GLint width,
                                                         GLint height);
void                gst_gl_context_del_texture          (GstGLContext *context,
                                                         GLuint *pTexture);
gboolean            gst_gl_context_gen_fbo              (GstGLContext *context,
                                                         gint width,
                                                         gint height,
                                                         GLuint *fbo,
                                                         GLuint *depthbuffer);
void                gst_gl_context_del_fbo              (GstGLContext *context,
                                                         GLuint fbo,
                                                         GLuint depth_buffer);
gboolean            gst_gl_context_use_fbo_v2           (GstGLContext *context,
                                                         gint texture_fbo_width,
                                                         gint texture_fbo_height,
                                                         GLuint fbo,
                                                         GLuint depth_buffer,
                                                         GLuint texture_fbo,
                                                         GLCB_V2 cb,
                                                         gpointer stuff);
gboolean            gst_gl_context_gen_shader           (GstGLContext *context,
                                                         const gchar *shader_vertex_source,
                                                         const gchar *shader_fragment_source,
                                                         GstGLShader **shader);
void                gst_gl_context_del_shader           (GstGLContext *context,
                                                         GstGLShader *shader);
gboolean            gst_gl_context_check_framebuffer_status
                                                        (GstGLContext *context);
void                gst_gl_context_set_error            (GstGLContext *context,
                                                         const char *format,
                                                         ...);
gchar *             gst_gl_context_get_error            (void);
void                gst_gl_context_clear_shader         (GstGLContext *context);
void                gst_gl_generate_texture_full        (GstGLContext *context,
                                                         const GstVideoInfo *info,
                                                         const guint comp,
                                                         gint stride[],
                                                         gsize offset[],
                                                         gsize size[],
                                                         GLuint *pTexture);
GstCaps *           gst_gl_caps_replace_all_caps_features
                                                        (const GstCaps *caps,
                                                         const gchar *feature_name);
gboolean            gst_gl_ensure_element_data          (gpointer element,
                                                         GstGLDisplay **display_ptr,
                                                         GstGLContext **other_context_ptr);
gsize               gst_gl_get_plane_data_size          (GstVideoInfo *info,
                                                         GstVideoAlignment *align,
                                                         guint plane);
gsize               gst_gl_get_plane_start              (GstVideoInfo *info,
                                                         GstVideoAlignment *valign,
                                                         guint plane);
gboolean            gst_gl_run_query                    (GstElement *element,
                                                         GstQuery *query,
                                                         GstPadDirection direction);
GstGLTextureTarget  gst_gl_value_get_texture_target_mask
                                                        (const GValue *value);
gboolean            gst_gl_value_set_texture_target     (GValue *value,
                                                         GstGLTextureTarget target);
gboolean            gst_gl_value_set_texture_target_from_mask
                                                        (GValue *value,
                                                         GstGLTextureTarget target_mask);

Description

Details

GLCB ()

void                (*GLCB)                             (gint Param1,
                                                         gint Param2,
                                                         guint Param3,
                                                         gpointer stuff);

callback definition for operating on textures

width :

the width

height :

the height

texture :

texture

stuff :

user data

GLCB_V2 ()

void                (*GLCB_V2)                          (gpointer stuff);

callback definition for operating through a Framebuffer object

stuff :

user data

CDCB ()

gboolean            (*CDCB)                             (GLuint texture,
                                                         GLuint width,
                                                         GLuint height,
                                                         gpointer data);

client draw callback

texture :

texture to draw

width :

new width

height :

new height:

data :

user data

enum GstGLDisplayProjection

typedef enum {
  GST_GL_DISPLAY_PROJECTION_ORTHO2D,
  GST_GL_DISPLAY_PROJECTION_PERSPECTIVE
} GstGLDisplayProjection;

GST_GL_DISPLAY_PROJECTION_ORTHO2D

GST_GL_DISPLAY_PROJECTION_PERSPECTIVE


gst_gl_handle_set_context ()

gboolean            gst_gl_handle_set_context           (GstElement *element,
                                                         GstContext *context,
                                                         GstGLDisplay **display,
                                                         GstGLContext **other_context);

gst_gl_handle_context_query ()

gboolean            gst_gl_handle_context_query         (GstElement *element,
                                                         GstQuery *query,
                                                         GstGLDisplay **display,
                                                         GstGLContext **other_context);

gst_gl_context_gen_texture ()

void                gst_gl_context_gen_texture          (GstGLContext *context,
                                                         GLuint *pTexture,
                                                         GstVideoFormat v_format,
                                                         GLint width,
                                                         GLint height);

gst_gl_context_del_texture ()

void                gst_gl_context_del_texture          (GstGLContext *context,
                                                         GLuint *pTexture);

gst_gl_context_gen_fbo ()

gboolean            gst_gl_context_gen_fbo              (GstGLContext *context,
                                                         gint width,
                                                         gint height,
                                                         GLuint *fbo,
                                                         GLuint *depthbuffer);

gst_gl_context_del_fbo ()

void                gst_gl_context_del_fbo              (GstGLContext *context,
                                                         GLuint fbo,
                                                         GLuint depth_buffer);

gst_gl_context_use_fbo_v2 ()

gboolean            gst_gl_context_use_fbo_v2           (GstGLContext *context,
                                                         gint texture_fbo_width,
                                                         gint texture_fbo_height,
                                                         GLuint fbo,
                                                         GLuint depth_buffer,
                                                         GLuint texture_fbo,
                                                         GLCB_V2 cb,
                                                         gpointer stuff);

gst_gl_context_gen_shader ()

gboolean            gst_gl_context_gen_shader           (GstGLContext *context,
                                                         const gchar *shader_vertex_source,
                                                         const gchar *shader_fragment_source,
                                                         GstGLShader **shader);

gst_gl_context_del_shader ()

void                gst_gl_context_del_shader           (GstGLContext *context,
                                                         GstGLShader *shader);

gst_gl_context_check_framebuffer_status ()

gboolean            gst_gl_context_check_framebuffer_status
                                                        (GstGLContext *context);

gst_gl_context_set_error ()

void                gst_gl_context_set_error            (GstGLContext *context,
                                                         const char *format,
                                                         ...);

gst_gl_context_get_error ()

gchar *             gst_gl_context_get_error            (void);

gst_gl_context_clear_shader ()

void                gst_gl_context_clear_shader         (GstGLContext *context);

Clear's the currently set shader from the GL state machine.

Note: must be called in the GL thread.

context :

a GstGLContext

gst_gl_generate_texture_full ()

void                gst_gl_generate_texture_full        (GstGLContext *context,
                                                         const GstVideoInfo *info,
                                                         const guint comp,
                                                         gint stride[],
                                                         gsize offset[],
                                                         gsize size[],
                                                         GLuint *pTexture);

gst_gl_caps_replace_all_caps_features ()

GstCaps *           gst_gl_caps_replace_all_caps_features
                                                        (const GstCaps *caps,
                                                         const gchar *feature_name);

gst_gl_ensure_element_data ()

gboolean            gst_gl_ensure_element_data          (gpointer element,
                                                         GstGLDisplay **display_ptr,
                                                         GstGLContext **other_context_ptr);

gst_gl_get_plane_data_size ()

gsize               gst_gl_get_plane_data_size          (GstVideoInfo *info,
                                                         GstVideoAlignment *align,
                                                         guint plane);

gst_gl_get_plane_start ()

gsize               gst_gl_get_plane_start              (GstVideoInfo *info,
                                                         GstVideoAlignment *valign,
                                                         guint plane);

gst_gl_run_query ()

gboolean            gst_gl_run_query                    (GstElement *element,
                                                         GstQuery *query,
                                                         GstPadDirection direction);

gst_gl_value_get_texture_target_mask ()

GstGLTextureTarget  gst_gl_value_get_texture_target_mask
                                                        (const GValue *value);

See gst_gl_value_set_texture_target_from_mask() for what entails a mask

value :

an initialized GValue of type G_TYPE_STRING

Returns :

the mask of GstGLTextureTarget's in value

gst_gl_value_set_texture_target ()

gboolean            gst_gl_value_set_texture_target     (GValue *value,
                                                         GstGLTextureTarget target);

value :

an initialized GValue of type G_TYPE_STRING

target :

a GstGLTextureTarget's

Returns :

whether the target could be set on value

gst_gl_value_set_texture_target_from_mask ()

gboolean            gst_gl_value_set_texture_target_from_mask
                                                        (GValue *value,
                                                         GstGLTextureTarget target_mask);

A mask is a bitwise OR of (1 << target) where target is a valid GstGLTextureTarget

value :

an uninitialized GValue

target_mask :

a bitwise mask of GstGLTextureTarget's

Returns :

whether the target_mask could be set on value