}
gst_caps_unref (otherpadcaps);
}
+
+ if (filter) {
+ GstCaps *tmp;
+
+ GST_DEBUG_OBJECT (rtppayload, "Intersect %" GST_PTR_FORMAT " and filter %"
+ GST_PTR_FORMAT, caps, filter);
+ tmp = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+ gst_caps_unref (caps);
+ caps = tmp;
+ }
+
return caps;
}
gst_caps_unref (otherpadcaps);
}
+ if (filter) {
+ GstCaps *tmp;
+
+ GST_DEBUG_OBJECT (payload, "Intersect %" GST_PTR_FORMAT " and filter %"
+ GST_PTR_FORMAT, caps, filter);
+ tmp = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+ gst_caps_unref (caps);
+ caps = tmp;
+ }
+
return caps;
}
}
gst_caps_unref (otherpadcaps);
}
+
+ if (filter) {
+ GstCaps *tmp;
+
+ GST_DEBUG_OBJECT (rtppayload, "Intersect %" GST_PTR_FORMAT " and filter %"
+ GST_PTR_FORMAT, caps, filter);
+ tmp = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+ gst_caps_unref (caps);
+ caps = tmp;
+ }
+
return caps;
}
if (!peercaps || gst_caps_is_any (peercaps)) {
if (peercaps)
gst_caps_unref (peercaps);
- return
+ caps =
gst_pad_get_pad_template_caps (GST_RTP_BASE_PAYLOAD_SINKPAD (payload));
+ goto done;
}
/* We basically need to differentiate two use-cases here: One where there's
* we want it to produce. The second case is simply payloader ! depayloader
* where we are dealing with the depayloader's template caps. In this case
* we should accept any input compatible with our sink template caps. */
- if (!gst_caps_is_fixed (peercaps))
- return
+ if (!gst_caps_is_fixed (peercaps)) {
+ caps =
gst_pad_get_pad_template_caps (GST_RTP_BASE_PAYLOAD_SINKPAD (payload));
+ goto done;
+ }
templ = gst_pad_get_pad_template_caps (GST_RTP_BASE_PAYLOAD_SRCPAD (payload));
intersect = gst_caps_intersect (peercaps, templ);
gst_caps_unref (intersect);
+done:
+
+ if (filter) {
+ GstCaps *tmp;
+
+ GST_DEBUG_OBJECT (payload, "Intersect %" GST_PTR_FORMAT " and filter %"
+ GST_PTR_FORMAT, caps, filter);
+ tmp = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+ gst_caps_unref (caps);
+ caps = tmp;
+ }
+
return caps;
}
done:
+ if (filter) {
+ GstCaps *tmp;
+
+ GST_DEBUG_OBJECT (payload, "Intersect %" GST_PTR_FORMAT " and filter %"
+ GST_PTR_FORMAT, caps, filter);
+ tmp = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+ gst_caps_unref (caps);
+ caps = tmp;
+ }
+
gst_caps_unref (template_caps);
gst_caps_unref (allowed_caps);
}
gst_caps_unref (otherpadcaps);
}
+
+ if (filter) {
+ GstCaps *tmp;
+
+ GST_DEBUG_OBJECT (rtppayload, "Intersect %" GST_PTR_FORMAT " and filter %"
+ GST_PTR_FORMAT, caps, filter);
+ tmp = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+ gst_caps_unref (caps);
+ caps = tmp;
+ }
+
return caps;
}