diff options
author | Matthew Waters <ystreet00@gmail.com> | 2013-11-15 20:49:43 +1100 |
---|---|---|
committer | Matthew Waters <ystreet00@gmail.com> | 2014-03-15 18:37:04 +0100 |
commit | 78a726ebc1bebccf4d6e73efbf9d49afa580d56f (patch) | |
tree | a0fa1b9479e1b09eeb3465c72a0164945255d39a | |
parent | 63ccd94d1a2ed64fc490e198d75aaeb99277e414 (diff) |
[845/906] filter: handle capsfeatures properly
-rw-r--r-- | gst-libs/gst/gl/gstglfilter.c | 8 |
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) { |