analytics: add _N_TO_N relation type

This relation type define relations between each components of two groups.
First component of first group relate to first component of second group,
Second component of second group relate to second component of second group,
and so on. It's a denser way to express relations in this context.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8087>
This commit is contained in:
Daniel Morin 2024-12-06 00:04:45 -05:00 committed by GStreamer Marge Bot
parent ebd4ec93b1
commit a1e623d200
4 changed files with 21 additions and 6 deletions

View file

@ -13,6 +13,6 @@ variables:
LINT_TAG: '2024-02-20.0'
ABI_CHECK_TAG: '2024-12-04.0'
ABI_CHECK_TAG: '2024-12-09.0'
WINDOWS_TAG: '2024-11-29.0'

View file

@ -353,7 +353,12 @@ identified by @id is stored.</doc>
</member>
<member name="relate_to" value="8" c:identifier="GST_ANALYTICS_REL_TYPE_RELATE_TO">
</member>
<member name="last" value="16" c:identifier="GST_ANALYTICS_REL_TYPE_LAST">
<member name="n_to_n" value="16" c:identifier="GST_ANALYTICS_REL_TYPE_N_TO_N">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.h">Used to express relations between two groups
where each group's components correspond to the respective component in the
other group. Since: 1.26</doc>
</member>
<member name="last" value="32" c:identifier="GST_ANALYTICS_REL_TYPE_LAST">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.h">reserved</doc>
</member>
<member name="any" value="2147483647" c:identifier="GST_ANALYTICS_REL_TYPE_ANY">

View file

@ -649,7 +649,7 @@ gboolean
gst_analytics_relation_meta_set_relation (GstAnalyticsRelationMeta * meta,
GstAnalyticsRelTypes type, guint an_meta_first_id, guint an_meta_second_id)
{
g_return_val_if_fail (type < GST_ANALYTICS_REL_TYPE_LAST, FALSE);
g_return_val_if_fail (type <= 0xFF, FALSE);
g_return_val_if_fail (meta, FALSE);
if (an_meta_first_id >= meta->rel_order
|| an_meta_second_id >= meta->rel_order) {

View file

@ -169,8 +169,10 @@ GstAnalyticsRelationMetaInitParams;
* @GST_ANALYTICS_REL_TYPE_NONE: No relation
* @GST_ANALYTICS_REL_TYPE_IS_PART_OF: First analysis-meta is part of second analysis-meta
* @GST_ANALYTICS_REL_TYPE_CONTAIN: First analysis-meta contain second analysis-meta.
* @GST_ANALYTICS_REL_TYPE_RELATE: First analysis-meta relate to second analysis-meta.
* @GST_ANALYTICS_REL_TYPE_LAST: reserved
* @GST_ANALYTICS_REL_TYPE_RELATE_TO: First analysis-meta relate to second analysis-meta.
* @GST_ANALYTICS_REL_TYPE_N_TO_N: Used to express relations between two groups
* where each group's components correspond to the respective component in the
* other group. Since: 1.26
* @GST_ANALYTICS_REL_TYPE_ANY: Only use for criteria.
*
* Since: 1.24
@ -181,7 +183,15 @@ typedef enum
GST_ANALYTICS_REL_TYPE_IS_PART_OF = (1 << 1),
GST_ANALYTICS_REL_TYPE_CONTAIN = (1 << 2),
GST_ANALYTICS_REL_TYPE_RELATE_TO = (1 << 3),
GST_ANALYTICS_REL_TYPE_LAST = (1 << 4),
/**
* GST_ANALYTICS_REL_TYPE_N_TO_N:
*
* Used to express relations between two groups where each group's components
* correspond to the respective component in the other group.
*
* Since: 1.26
*/
GST_ANALYTICS_REL_TYPE_N_TO_N = (1 << 4),
GST_ANALYTICS_REL_TYPE_ANY = G_MAXINT
} GstAnalyticsRelTypes;