[545/906] GstGLBumper: update for GstGLMeta

This commit is contained in:
Matthew Waters 2012-07-13 01:07:37 +10:00
parent 3affb44884
commit da4c698a50

View file

@ -69,7 +69,7 @@ static void gst_gl_bumper_get_property (GObject * object, guint prop_id,
static void gst_gl_bumper_reset (GstGLFilter * filter); static void gst_gl_bumper_reset (GstGLFilter * filter);
static gboolean gst_gl_bumper_init_shader (GstGLFilter * filter); static gboolean gst_gl_bumper_init_shader (GstGLFilter * filter);
static gboolean gst_gl_bumper_filter (GstGLFilter * filter, static gboolean gst_gl_bumper_filter (GstGLFilter * filter,
GstGLBuffer * inbuf, GstGLBuffer * outbuf); GstBuffer * inbuf, GstBuffer * outbuf);
static void gst_gl_bumper_callback (gint width, gint height, guint texture, static void gst_gl_bumper_callback (gint width, gint height, guint texture,
gpointer stuff); gpointer stuff);
@ -356,17 +356,23 @@ gst_gl_bumper_init_shader (GstGLFilter * filter)
} }
static gboolean static gboolean
gst_gl_bumper_filter (GstGLFilter * filter, GstGLBuffer * inbuf, gst_gl_bumper_filter (GstGLFilter * filter, GstBuffer * inbuf,
GstGLBuffer * outbuf) GstBuffer * outbuf)
{ {
GstGLMeta *in_gl_meta, *out_gl_meta;
GstVideoMeta *in_v_meta;
gpointer bumper_filter = GST_GL_BUMPER (filter); gpointer bumper_filter = GST_GL_BUMPER (filter);
in_gl_meta = gst_buffer_get_gl_meta (inbuf);
out_gl_meta = gst_buffer_get_gl_meta (outbuf);
in_v_meta = gst_buffer_get_video_meta (inbuf);
//blocking call, use a FBO //blocking call, use a FBO
gst_gl_display_use_fbo (filter->display, filter->width, filter->height, gst_gl_display_use_fbo (filter->display, filter->width, filter->height,
filter->fbo, filter->depthbuffer, outbuf->texture, gst_gl_bumper_callback, filter->fbo, filter->depthbuffer, out_gl_meta->memory->tex_id,
inbuf->width, inbuf->height, inbuf->texture, gst_gl_bumper_callback, in_v_meta->width, in_v_meta->height,
//bumper_filter->fovy, bumper_filter->aspect, bumper_filter->znear, bumper_filter->zfar, in_gl_meta->memory->tex_id, 45,
45, (gdouble) filter->width / (gdouble) filter->height, 0.1, 50, (gdouble) filter->width / (gdouble) filter->height, 0.1, 50,
GST_GL_DISPLAY_PROJECTION_PERSPECTIVE, bumper_filter); GST_GL_DISPLAY_PROJECTION_PERSPECTIVE, bumper_filter);
return TRUE; return TRUE;