[clutter-gst/clutter-gst-3.0] video-sink: advertize the GstVideoOverlayComposition feature in caps



commit aaefcdec7187d7f7c4d009df3f69c903c9e78bfe
Author: Matthieu Bouron <matthieu bouron collabora com>
Date:   Wed Mar 4 16:08:16 2015 +0100

    video-sink: advertize the GstVideoOverlayComposition feature in caps
    
    https://bugzilla.gnome.org/show_bug.cgi?id=745611

 clutter-gst/clutter-gst-video-sink.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/clutter-gst/clutter-gst-video-sink.c b/clutter-gst/clutter-gst-video-sink.c
index 640971d..5ee3f62 100644
--- a/clutter-gst/clutter-gst-video-sink.c
+++ b/clutter-gst/clutter-gst-video-sink.c
@@ -115,6 +115,8 @@ static const char clutter_gst_video_sink_caps_str[] =
   MAKE_CAPS (GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY, BASE_SINK_CAPS)
 #ifdef HAVE_GL_TEXTURE_UPLOAD
   ";"
+  MAKE_CAPS_COMPOSITON (GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META, "{ RGBA }")
+  ";"
   MAKE_CAPS (GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META, "{ RGBA }")
 #endif
   ";"
@@ -1764,9 +1766,23 @@ append_cap (gpointer data,
 {
   ClutterGstRenderer *renderer = (ClutterGstRenderer *) data;
   GstCaps *caps = (GstCaps *) user_data;
+  guint i, count;
+  GstCapsFeatures *features;
   GstCaps *writable_caps;
+  GstCaps *writable_caps_with_composition;
+
   writable_caps =
     gst_caps_make_writable (gst_static_caps_get (&renderer->caps));
+
+  writable_caps_with_composition = gst_caps_copy (writable_caps);
+  count = gst_caps_get_size (writable_caps_with_composition);
+
+  for (i = 0; i < count; i++) {
+    features = gst_caps_get_features (writable_caps_with_composition, i);
+    gst_caps_features_add (features, GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION);
+  }
+
+  gst_caps_append (caps, writable_caps_with_composition);
   gst_caps_append (caps, writable_caps);
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]