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