Commit 24b7d250 authored by Sebastian Dröge's avatar Sebastian Dröge
Browse files

factorylist: Use gst_caps_can_intersect() instead of _intersect()

This is faster and results in less allocations.
parent 999483b4
......@@ -240,7 +240,6 @@ gst_factory_list_filter (GValueArray * array, const GstCaps * caps)
/* we only care about the sink templates */
if (templ->direction == GST_PAD_SINK) {
GstCaps *intersect;
GstCaps *tmpl_caps;
/* try to intersect the caps with the caps of the template */
......@@ -248,21 +247,19 @@ gst_factory_list_filter (GValueArray * array, const GstCaps * caps)
/* FIXME, intersect is not the right method, we ideally want to check
* for a subset here */
intersect = gst_caps_intersect (caps, tmpl_caps);
gst_caps_unref (tmpl_caps);
/* check if the intersection is empty */
if (!gst_caps_is_empty (intersect)) {
if (gst_caps_can_intersect (caps, tmpl_caps)) {
/* non empty intersection, we can use this element */
GValue resval = { 0, };
g_value_init (&resval, G_TYPE_OBJECT);
g_value_set_object (&resval, factory);
g_value_array_append (result, &resval);
g_value_unset (&resval);
gst_caps_unref (intersect);
gst_caps_unref (tmpl_caps);
break;
}
gst_caps_unref (intersect);
gst_caps_unref (tmpl_caps);
}
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment