diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c index 5d742a66c2..92cf092542 100644 --- a/gst-libs/gst/pbutils/gstdiscoverer.c +++ b/gst-libs/gst/pbutils/gstdiscoverer.c @@ -1052,33 +1052,21 @@ find_stream_for_node (GstDiscoverer * dc, const GstStructure * topology) /* this can fail due to {framed,parsed}={TRUE,FALSE} differences, thus we filter * the parent */ static gboolean -child_is_same_stream (const GstCaps * _parent, const GstCaps * child) +child_is_same_stream (const GstCaps * parent, const GstCaps * child) { - GstCaps *parent; - guint i, size; - gboolean res; + const GstStructure *s1, *s2; - if (_parent == child) + if (parent == child) return TRUE; - if (!_parent) + if (!parent) return FALSE; if (!child) return FALSE; - parent = gst_caps_copy (_parent); - size = gst_caps_get_size (parent); + s1 = gst_caps_get_structure (parent, 0); + s2 = gst_caps_get_structure (child, 0); - for (i = 0; i < size; i++) { - gst_structure_remove_field (gst_caps_get_structure (parent, i), "parsed"); - gst_structure_remove_field (gst_caps_get_structure (parent, i), "framed"); - gst_structure_remove_field (gst_caps_get_structure (parent, i), - "stream-format"); - gst_structure_remove_field (gst_caps_get_structure (parent, i), - "alignment"); - } - res = gst_caps_can_intersect (parent, child); - gst_caps_unref (parent); - return res; + return gst_structure_has_name (s1, gst_structure_get_name (s2)); }