gldownload: remove texture-target field from dmabuf/sysmem caps
authorMatthew Waters <matthew@centricular.com>
Fri, 9 Feb 2018 01:32:52 +0000 (12:32 +1100)
committerMatthew Waters <matthew@centricular.com>
Fri, 9 Feb 2018 01:33:28 +0000 (12:33 +1100)
https://bugzilla.gnome.org/show_bug.cgi?id=792342

ext/gl/gstgldownloadelement.c

index c8f101e..826e983 100644 (file)
@@ -159,6 +159,18 @@ _set_caps_features (const GstCaps * caps, const gchar * feature_name)
   return tmp;
 }
 
+static void
+_remove_field (GstCaps * caps, const gchar * field)
+{
+  guint n = gst_caps_get_size (caps);
+  guint i = 0;
+
+  for (i = 0; i < n; i++) {
+    GstStructure *s = gst_caps_get_structure (caps, i);
+    gst_structure_remove_field (s, field);
+  }
+}
+
 static GstCaps *
 gst_gl_download_element_transform_caps (GstBaseTransform * bt,
     GstPadDirection direction, GstCaps * caps, GstCaps * filter)
@@ -174,10 +186,12 @@ gst_gl_download_element_transform_caps (GstBaseTransform * bt,
 
 #if GST_GL_HAVE_PLATFORM_EGL && GST_GL_HAVE_DMABUF
     newcaps = _set_caps_features (caps, GST_CAPS_FEATURE_MEMORY_DMABUF);
+    _remove_field (newcaps, "texture-target");
     tmp = gst_caps_merge (tmp, newcaps);
 #endif
 
     newcaps = _set_caps_features (caps, GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY);
+    _remove_field (newcaps, "texture-target");
     tmp = gst_caps_merge (tmp, newcaps);
   }