summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gst/gstpad.c10
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