Synopsis
enum GstGLDisplayConversion;
enum GstGLDisplayProjection;
void (*CRCB) (GLuint Param1,
GLuint Param2,
gpointer Param3);
gboolean (*CDCB) (GLuint Param1,
GLuint Param2,
GLuint Param3,
gpointer Param4);
void (*GstGLDisplayThreadFunc) (GstGLDisplay *display,
gpointer data);
void (*GLCB) (gint Param1,
gint Param2,
guint Param3,
gpointer stuff);
struct GstGLDisplay;
GstGLDisplay * gst_gl_display_new (void);
gboolean gst_gl_display_create_context (GstGLDisplay *display,
gulong external_gl_context);
gboolean gst_gl_display_redisplay (GstGLDisplay *display,
GLuint texture,
gint gl_width,
gint gl_height,
gint window_width,
gint window_height,
gboolean keep_aspect_ratio);
void gst_gl_display_thread_add (GstGLDisplay *display,
GstGLDisplayThreadFunc func,
gpointer data);
void gst_gl_display_gen_texture (GstGLDisplay *display,
GLuint *pTexture,
GLint width,
GLint height);
void gst_gl_display_del_texture (GstGLDisplay *display,
GLuint texture,
GLint width,
GLint height);
gboolean gst_gl_display_init_upload (GstGLDisplay *display,
GstVideoFormat video_format,
guint gl_width,
guint gl_height,
gint video_width,
gint video_height);
gboolean gst_gl_display_do_upload (GstGLDisplay *display,
GLuint texture,
gint data_width,
gint data_height,
gpointer data);
gboolean gst_gl_display_init_download (GstGLDisplay *display,
GstVideoFormat video_format,
gint width,
gint height);
gboolean gst_gl_display_do_download (GstGLDisplay *display,
GLuint texture,
gint width,
gint height,
gpointer data);
gboolean gst_gl_display_gen_fbo (GstGLDisplay *display,
gint width,
gint height,
GLuint *fbo,
GLuint *depthbuffer);
gboolean gst_gl_display_use_fbo (GstGLDisplay *display,
gint texture_fbo_width,
gint texture_fbo_height,
GLuint fbo,
GLuint depth_buffer,
GLuint texture_fbo,
GLCB cb,
gint input_texture_width,
gint input_texture_height,
GLuint input_texture,
gdouble proj_param1,
gdouble proj_param2,
gdouble proj_param3,
gdouble proj_param4,
GstGLDisplayProjection projection,
gpointer *stuff);
void gst_gl_display_del_fbo (GstGLDisplay *display,
GLuint fbo,
GLuint depth_buffer);
gboolean gst_gl_display_gen_shader (GstGLDisplay *display,
const gchar *shader_vertex_source,
const gchar *shader_fragment_source,
GstGLShader **shader);
void gst_gl_display_del_shader (GstGLDisplay *display,
GstGLShader *shader);
void gst_gl_display_set_window_id (GstGLDisplay *display,
gulong window_id);
void gst_gl_display_set_client_reshape_callback
(GstGLDisplay *display,
CRCB cb);
void gst_gl_display_set_client_draw_callback
(GstGLDisplay *display,
CDCB cb);
Details
enum GstGLDisplayConversion
typedef enum {
GST_GL_DISPLAY_CONVERSION_GLSL, //ARB_fragment_shade
GST_GL_DISPLAY_CONVERSION_MATRIX, //ARB_imaging
GST_GL_DISPLAY_CONVERSION_MESA, //MESA_ycbcr_texture
} GstGLDisplayConversion;
enum GstGLDisplayProjection
typedef enum {
GST_GL_DISPLAY_PROJECTION_ORTHO2D,
GST_GL_DISPLAY_PROJECTION_PERSPECTIVE
} GstGLDisplayProjection;
CRCB ()
void (*CRCB) (GLuint Param1,
GLuint Param2,
gpointer Param3);
CDCB ()
gboolean (*CDCB) (GLuint Param1,
GLuint Param2,
GLuint Param3,
gpointer Param4);
GstGLDisplayThreadFunc ()
void (*GstGLDisplayThreadFunc) (GstGLDisplay *display,
gpointer data);
GLCB ()
void (*GLCB) (gint Param1,
gint Param2,
guint Param3,
gpointer stuff);
struct GstGLDisplay
struct GstGLDisplay;
gst_gl_display_new ()
GstGLDisplay * gst_gl_display_new (void);
gst_gl_display_create_context ()
gboolean gst_gl_display_create_context (GstGLDisplay *display,
gulong external_gl_context);
gst_gl_display_redisplay ()
gboolean gst_gl_display_redisplay (GstGLDisplay *display,
GLuint texture,
gint gl_width,
gint gl_height,
gint window_width,
gint window_height,
gboolean keep_aspect_ratio);
gst_gl_display_gen_texture ()
void gst_gl_display_gen_texture (GstGLDisplay *display,
GLuint *pTexture,
GLint width,
GLint height);
gst_gl_display_del_texture ()
void gst_gl_display_del_texture (GstGLDisplay *display,
GLuint texture,
GLint width,
GLint height);
gst_gl_display_init_upload ()
gboolean gst_gl_display_init_upload (GstGLDisplay *display,
GstVideoFormat video_format,
guint gl_width,
guint gl_height,
gint video_width,
gint video_height);
gst_gl_display_do_upload ()
gboolean gst_gl_display_do_upload (GstGLDisplay *display,
GLuint texture,
gint data_width,
gint data_height,
gpointer data);
gst_gl_display_init_download ()
gboolean gst_gl_display_init_download (GstGLDisplay *display,
GstVideoFormat video_format,
gint width,
gint height);
gst_gl_display_do_download ()
gboolean gst_gl_display_do_download (GstGLDisplay *display,
GLuint texture,
gint width,
gint height,
gpointer data);
gst_gl_display_gen_fbo ()
gboolean gst_gl_display_gen_fbo (GstGLDisplay *display,
gint width,
gint height,
GLuint *fbo,
GLuint *depthbuffer);
gst_gl_display_use_fbo ()
gboolean gst_gl_display_use_fbo (GstGLDisplay *display,
gint texture_fbo_width,
gint texture_fbo_height,
GLuint fbo,
GLuint depth_buffer,
GLuint texture_fbo,
GLCB cb,
gint input_texture_width,
gint input_texture_height,
GLuint input_texture,
gdouble proj_param1,
gdouble proj_param2,
gdouble proj_param3,
gdouble proj_param4,
GstGLDisplayProjection projection,
gpointer *stuff);
gst_gl_display_del_fbo ()
void gst_gl_display_del_fbo (GstGLDisplay *display,
GLuint fbo,
GLuint depth_buffer);
gst_gl_display_gen_shader ()
gboolean gst_gl_display_gen_shader (GstGLDisplay *display,
const gchar *shader_vertex_source,
const gchar *shader_fragment_source,
GstGLShader **shader);
gst_gl_display_set_window_id ()
void gst_gl_display_set_window_id (GstGLDisplay *display,
gulong window_id);
gst_gl_display_set_client_reshape_callback ()
void gst_gl_display_set_client_reshape_callback
(GstGLDisplay *display,
CRCB cb);
gst_gl_display_set_client_draw_callback ()
void gst_gl_display_set_client_draw_callback
(GstGLDisplay *display,
CDCB cb);