Revert "discoverer: Consider parent/child streams the same if they have caps with the same name"

This reverts commit 478b7a8eb49d285c3ff0b73e1fe2929b9418be91.

video/mpeg,systemstream=true / false distinguishes between container and
elementary stream.
This commit is contained in:
Sebastian Dröge 2017-05-18 13:13:58 +03:00
parent 478b7a8eb4
commit 5614862de1

View File

@ -1052,21 +1052,33 @@ find_stream_for_node (GstDiscoverer * dc, const GstStructure * topology)
/* this can fail due to {framed,parsed}={TRUE,FALSE} differences, thus we filter /* this can fail due to {framed,parsed}={TRUE,FALSE} differences, thus we filter
* the parent */ * the parent */
static gboolean static gboolean
child_is_same_stream (const GstCaps * parent, const GstCaps * child) child_is_same_stream (const GstCaps * _parent, const GstCaps * child)
{ {
const GstStructure *s1, *s2; GstCaps *parent;
guint i, size;
gboolean res;
if (parent == child) if (_parent == child)
return TRUE; return TRUE;
if (!parent) if (!_parent)
return FALSE; return FALSE;
if (!child) if (!child)
return FALSE; return FALSE;
s1 = gst_caps_get_structure (parent, 0); parent = gst_caps_copy (_parent);
s2 = gst_caps_get_structure (child, 0); size = gst_caps_get_size (parent);
return gst_structure_has_name (s1, gst_structure_get_name (s2)); 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;
} }