[531/906] GstGLEffects: update for GstGLMeta
authorMatthew Waters <ystreet00@gmail.com>
Mon, 9 Jul 2012 12:26:12 +0000 (22:26 +1000)
committerMatthew Waters <ystreet00@gmail.com>
Sat, 15 Mar 2014 17:36:45 +0000 (18:36 +0100)
gst/gl/gstgleffects.c

index 6654397..f434d07 100644 (file)
@@ -64,7 +64,7 @@ static void gst_gl_effects_ghash_func_clean (gpointer key, gpointer value,
     gpointer data);
 
 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 */
 typedef enum
@@ -438,13 +438,22 @@ gst_gl_effects_on_init_gl_context (GstGLFilter * filter)
 }
 
 static gboolean
-gst_gl_effects_filter (GstGLFilter * filter, GstGLBuffer * inbuf,
-    GstGLBuffer * outbuf)
+gst_gl_effects_filter (GstGLFilter * filter, GstBuffer * inbuf,
+    GstBuffer * outbuf)
 {
   GstGLEffects *effects = GST_GL_EFFECTS (filter);
+  GstGLMeta *in_gl_meta, *out_gl_meta;
 
-  effects->intexture = inbuf->texture;
-  effects->outtexture = outbuf->texture;
+  in_gl_meta = gst_buffer_get_gl_meta (inbuf);
+  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)
     gst_gl_display_thread_add (filter->display, set_horizontal_swap, effects);