/* 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));
}