summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Waters <ystreet00@gmail.com>2013-11-15 20:49:43 +1100
committerMatthew Waters <ystreet00@gmail.com>2014-03-15 18:37:04 +0100
commit78a726ebc1bebccf4d6e73efbf9d49afa580d56f (patch)
treea0fa1b9479e1b09eeb3465c72a0164945255d39a
parent63ccd94d1a2ed64fc490e198d75aaeb99277e414 (diff)
[845/906] filter: handle capsfeatures properly
-rw-r--r--gst-libs/gst/gl/gstglfilter.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gst-libs/gst/gl/gstglfilter.c b/gst-libs/gst/gl/gstglfilter.c
index 57326cc4c..7d1435469 100644
--- a/gst-libs/gst/gl/gstglfilter.c
+++ b/gst-libs/gst/gl/gstglfilter.c
@@ -655,6 +655,7 @@ gst_gl_filter_transform_caps (GstBaseTransform * bt,
{
//GstGLFilter* filter = GST_GL_FILTER (bt);
GstStructure *structure;
+ GstCapsFeatures *features;
GstCaps *newcaps, *result;
const GValue *par;
guint i, n;
@@ -665,11 +666,14 @@ gst_gl_filter_transform_caps (GstBaseTransform * bt,
for (i = 0; i < n; i++) {
structure = gst_caps_get_structure (caps, i);
+ features = gst_caps_get_features (caps, i);
- if (i > 0 && gst_caps_is_subset_structure (newcaps, structure))
+ if (i > 0
+ && gst_caps_is_subset_structure_full (newcaps, structure, features))
continue;
structure = gst_structure_copy (structure);
+ features = gst_caps_features_copy (features);
gst_structure_set (structure,
"width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
@@ -683,7 +687,7 @@ gst_gl_filter_transform_caps (GstBaseTransform * bt,
NULL);
}
- gst_caps_append_structure (newcaps, structure);
+ gst_caps_append_structure_full (newcaps, structure, features);
}
if (filter) {