diff options
-rw-r--r-- | gst/gstpad.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gst/gstpad.c b/gst/gstpad.c index 4dc3dc925..cf4be1cfa 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -2404,7 +2404,7 @@ void gst_pad_fixate_caps (GstPad * pad, GstCaps * caps) { GstPadFixateCapsFunction fixatefunc; - guint n, len; + guint len; g_return_if_fail (GST_IS_PAD (pad)); g_return_if_fail (caps != NULL); @@ -2419,11 +2419,15 @@ gst_pad_fixate_caps (GstPad * pad, GstCaps * caps) /* default fixation */ len = gst_caps_get_size (caps); - for (n = 0; n < len; n++) { - GstStructure *s = gst_caps_get_structure (caps, n); + if (len > 0) { + GstStructure *s = gst_caps_get_structure (caps, 0); gst_structure_foreach (s, gst_pad_default_fixate, s); } + + if (len > 1) { + gst_caps_truncate (caps); + } } /* Default accept caps implementation just checks against |