mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-09-02 02:03:54 +00:00
caps: Add gst_caps_is_subset_structure()
API: gst_caps_is_subset_structure() This allows to check if a structure is a subset of given caps without allocating a new caps instance for it.
This commit is contained in:
parent
da58834884
commit
57df188757
4 changed files with 42 additions and 0 deletions
|
@ -323,6 +323,7 @@ gst_caps_is_equal
|
||||||
gst_caps_is_equal_fixed
|
gst_caps_is_equal_fixed
|
||||||
gst_caps_is_always_compatible
|
gst_caps_is_always_compatible
|
||||||
gst_caps_is_subset
|
gst_caps_is_subset
|
||||||
|
gst_caps_is_subset_structure
|
||||||
gst_caps_can_intersect
|
gst_caps_can_intersect
|
||||||
gst_caps_intersect
|
gst_caps_intersect
|
||||||
gst_caps_intersect_full
|
gst_caps_intersect_full
|
||||||
|
|
|
@ -1106,6 +1106,44 @@ gst_caps_is_subset (const GstCaps * subset, const GstCaps * superset)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_caps_is_subset_structure:
|
||||||
|
* @caps: a #GstCaps
|
||||||
|
* @structure: a potential #GstStructure subset of @caps
|
||||||
|
*
|
||||||
|
* Checks if @structure is a subset of @caps. See gst_caps_is_subset()
|
||||||
|
* for more information.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if @structure is a subset of @caps
|
||||||
|
*
|
||||||
|
* Since: 0.10.35
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
gst_caps_is_subset_structure (const GstCaps * caps,
|
||||||
|
const GstStructure * structure)
|
||||||
|
{
|
||||||
|
GstStructure *s;
|
||||||
|
gint i;
|
||||||
|
|
||||||
|
g_return_val_if_fail (caps != NULL, FALSE);
|
||||||
|
g_return_val_if_fail (structure != NULL, FALSE);
|
||||||
|
|
||||||
|
if (CAPS_IS_ANY (caps))
|
||||||
|
return TRUE;
|
||||||
|
if (CAPS_IS_EMPTY (caps))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
for (i = caps->structs->len - 1; i >= 0; i--) {
|
||||||
|
s = gst_caps_get_structure_unchecked (caps, i);
|
||||||
|
if (gst_structure_is_subset (structure, s)) {
|
||||||
|
/* If we found a superset return TRUE */
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_caps_is_equal:
|
* gst_caps_is_equal:
|
||||||
* @caps1: a #GstCaps
|
* @caps1: a #GstCaps
|
||||||
|
|
|
@ -258,6 +258,8 @@ gboolean gst_caps_is_always_compatible (const GstCaps *caps1,
|
||||||
const GstCaps *caps2);
|
const GstCaps *caps2);
|
||||||
gboolean gst_caps_is_subset (const GstCaps *subset,
|
gboolean gst_caps_is_subset (const GstCaps *subset,
|
||||||
const GstCaps *superset);
|
const GstCaps *superset);
|
||||||
|
gboolean gst_caps_is_subset_structure (const GstCaps *caps,
|
||||||
|
const GstStructure *structure);
|
||||||
gboolean gst_caps_is_equal (const GstCaps *caps1,
|
gboolean gst_caps_is_equal (const GstCaps *caps1,
|
||||||
const GstCaps *caps2);
|
const GstCaps *caps2);
|
||||||
gboolean gst_caps_is_equal_fixed (const GstCaps *caps1,
|
gboolean gst_caps_is_equal_fixed (const GstCaps *caps1,
|
||||||
|
|
|
@ -172,6 +172,7 @@ EXPORTS
|
||||||
gst_caps_is_equal_fixed
|
gst_caps_is_equal_fixed
|
||||||
gst_caps_is_fixed
|
gst_caps_is_fixed
|
||||||
gst_caps_is_subset
|
gst_caps_is_subset
|
||||||
|
gst_caps_is_subset_structure
|
||||||
gst_caps_load_thyself
|
gst_caps_load_thyself
|
||||||
gst_caps_make_writable
|
gst_caps_make_writable
|
||||||
gst_caps_merge
|
gst_caps_merge
|
||||||
|
|
Loading…
Reference in a new issue