[531/906] GstGLEffects: update for GstGLMeta

This commit is contained in:
Matthew Waters 2012-07-09 22:26:12 +10:00
parent ed5deaa29b
commit 9ab50ed175

View File

@ -64,7 +64,7 @@ static void gst_gl_effects_ghash_func_clean (gpointer key, gpointer value,
gpointer data); gpointer data);
static gboolean gst_gl_effects_filter (GstGLFilter * filter, static gboolean gst_gl_effects_filter (GstGLFilter * filter,
GstGLBuffer * inbuf, GstGLBuffer * outbuf); GstBuffer * inbuf, GstBuffer * outbuf);
/* dont' forget to edit the following when a new effect is added */ /* dont' forget to edit the following when a new effect is added */
typedef enum typedef enum
@ -438,13 +438,22 @@ gst_gl_effects_on_init_gl_context (GstGLFilter * filter)
} }
static gboolean static gboolean
gst_gl_effects_filter (GstGLFilter * filter, GstGLBuffer * inbuf, gst_gl_effects_filter (GstGLFilter * filter, GstBuffer * inbuf,
GstGLBuffer * outbuf) GstBuffer * outbuf)
{ {
GstGLEffects *effects = GST_GL_EFFECTS (filter); GstGLEffects *effects = GST_GL_EFFECTS (filter);
GstGLMeta *in_gl_meta, *out_gl_meta;
effects->intexture = inbuf->texture; in_gl_meta = gst_buffer_get_gl_meta (inbuf);
effects->outtexture = outbuf->texture; out_gl_meta = gst_buffer_get_gl_meta (outbuf);
if (!in_gl_meta || !out_gl_meta) {
GST_ERROR ("buffers do not contain required GstGLMeta");
return FALSE;
}
effects->intexture = in_gl_meta->memory->tex_id;
effects->outtexture = out_gl_meta->memory->tex_id;
if (effects->horizontal_swap == TRUE) if (effects->horizontal_swap == TRUE)
gst_gl_display_thread_add (filter->display, set_horizontal_swap, effects); gst_gl_display_thread_add (filter->display, set_horizontal_swap, effects);