glcolorconvert: Apply GstVideoOverlayCompositionMeta buffer to converted buffer
authorLubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
Mon, 20 Apr 2015 11:17:09 +0000 (13:17 +0200)
committerNicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Mon, 20 Jul 2015 18:41:12 +0000 (14:41 -0400)
Since glcolorconvert creates a new GstBuffer,
without the GstVideoOverlayCompositionMeta data,
it needs to be copied to not be dropped.

https://bugzilla.gnome.org/show_bug.cgi?id=745107

gst-libs/gst/gl/gstglcolorconvert.c

index 8adf4b1..68747f8 100644 (file)
@@ -1667,6 +1667,7 @@ _do_convert (GstGLContext * context, GstGLColorConvert * convert)
   GstVideoInfo *in_info = &convert->in_info;
   gboolean res = TRUE;
   gint views, v;
+  GstVideoOverlayCompositionMeta *composition_meta;
 
   convert->outbuf = NULL;
 
@@ -1705,6 +1706,14 @@ _do_convert (GstGLContext * context, GstGLColorConvert * convert)
       gst_gl_sync_meta_set_sync_point (sync_meta, convert->context);
   }
 
+  composition_meta =
+      gst_buffer_get_video_overlay_composition_meta (convert->inbuf);
+  if (composition_meta) {
+    GST_DEBUG ("found video overlay composition meta, appliying on output.");
+    gst_buffer_add_video_overlay_composition_meta
+        (convert->outbuf, composition_meta->overlay);
+  }
+
   convert->priv->result = res;
   return;
 }