If two values can be ordered, but are unequal, they are
necessarily distinct, thus one cannot be a subset of the other.
https://bugzilla.gnome.org/show_bug.cgi?id=662777
{
GstStructure *superset = user_data;
const GValue *other;
+ int comparison;
if (!(other = gst_structure_id_get_value (superset, field_id)))
/* field is missing in the superset => is subset */
return TRUE;
+ comparison = gst_value_compare (other, value);
+
/* equal values are subset */
- if (gst_value_compare (other, value) == GST_VALUE_EQUAL)
+ if (comparison == GST_VALUE_EQUAL)
return TRUE;
+ /* ordered, but unequal, values are not */
+ if (comparison != GST_VALUE_UNORDERED)
+ return FALSE;
+
/*
* 1 - [1,2] = empty
* -> !subset