diff --git a/girs/GstAnalytics-1.0.gir b/girs/GstAnalytics-1.0.gir
index 41bec7f28b..709971aa57 100644
--- a/girs/GstAnalytics-1.0.gir
+++ b/girs/GstAnalytics-1.0.gir
@@ -284,42 +284,6 @@ Quark of the class of object associated with this location.
Only use for criteria.
-
- Base structure for analysis-metadata that can be placed in relation. Only
-other analysis-metadata based on GstAnalyticsRelatableMtdData should
-directly use this structure.
-
-
- Identify the type of analysis-metadata
-
-
-
- Instance identifier.
-
-
-
- Size in bytes of the instance
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -362,11 +326,11 @@ directly use this structure.
Add a relatable metadata to @meta. This method is meant to be used by
new struct sub-classing GstAnalyticsRelatableMtd.
-
- New GstAnalyticsRelatableMtdData instance.
+
+ A pointer to a memory area of size @size where to put the data
Since 1.24
-
+
@@ -631,11 +595,11 @@ Since 1.24
-
- Instance of GstAnalyticsRelatableMtdData
+
+ Analytics data pointer
Since 1.24
-
+
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsclassificationmtd.c b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsclassificationmtd.c
index 14913b718f..d8f1a15ae5 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsclassificationmtd.c
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsclassificationmtd.c
@@ -39,7 +39,6 @@ struct _GstAnalyticsClsConfLvlAndClass
/*
* GstAnalyticsClsMtd:
- * @parent: parent
* @length: classes and confidence levels count
* @class_quarks: (array length=length): Array of quark representing a class
* @confidence_levels: (array length=length): Array of confidence levels for
@@ -49,25 +48,10 @@ struct _GstAnalyticsClsConfLvlAndClass
*/
struct _GstAnalyticsClsMtdData
{
- GstAnalyticsRelatableMtdData parent;
gsize length;
GstAnalyticsClsConfLvlAndClass confidence_levels_and_classes[]; // Must be last
};
-
-static GstAnalyticsClsMtdData *
-gst_analytics_cls_mtd_get_data (GstAnalyticsClsMtd * instance)
-{
- GstAnalyticsRelatableMtdData *rlt_data =
- gst_analytics_relation_meta_get_mtd_data (instance->meta,
- instance->id);
- g_return_val_if_fail (rlt_data, NULL);
- g_return_val_if_fail (rlt_data->analysis_type ==
- gst_analytics_cls_mtd_get_type_quark (), NULL);
-
- return (GstAnalyticsClsMtdData *) rlt_data;
-}
-
/**
* gst_analytics_cls_mtd_get_type_quark:
* Get a quark identifying #GstAnalyticsMtd type.
@@ -113,7 +97,8 @@ gst_analytics_cls_mtd_get_level (GstAnalyticsClsMtd * handle, gint index)
g_return_val_if_fail (index >= 0, -1.0);
g_return_val_if_fail (handle->meta != NULL, -1.0);
GstAnalyticsClsMtdData *cls_mtd_data;
- cls_mtd_data = gst_analytics_cls_mtd_get_data (handle);
+ cls_mtd_data = gst_analytics_relation_meta_get_mtd_data (handle->meta,
+ handle->id);
g_return_val_if_fail (cls_mtd_data != NULL, -1.0);
g_return_val_if_fail (cls_mtd_data->length > index, -1.0);
return cls_mtd_data->confidence_levels_and_classes[index].confidence_levels;
@@ -136,7 +121,8 @@ gst_analytics_cls_mtd_get_index_by_quark (GstAnalyticsClsMtd * handle,
g_return_val_if_fail (handle, -1);
GstAnalyticsClsMtdData *cls_mtd_data;
- cls_mtd_data = gst_analytics_cls_mtd_get_data (handle);
+ cls_mtd_data = gst_analytics_relation_meta_get_mtd_data (handle->meta,
+ handle->id);
g_return_val_if_fail (cls_mtd_data != NULL, -1);
for (gint i = 0; i < cls_mtd_data->length; i++) {
@@ -159,7 +145,8 @@ gsize
gst_analytics_cls_mtd_get_length (GstAnalyticsClsMtd * handle)
{
GstAnalyticsClsMtdData *cls_mtd_data;
- cls_mtd_data = gst_analytics_cls_mtd_get_data (handle);
+ cls_mtd_data = gst_analytics_relation_meta_get_mtd_data (handle->meta,
+ handle->id);
g_return_val_if_fail (cls_mtd_data != NULL, 0);
return cls_mtd_data->length;
}
@@ -178,7 +165,8 @@ gst_analytics_cls_mtd_get_quark (GstAnalyticsClsMtd * handle, gint index)
{
GstAnalyticsClsMtdData *cls_mtd_data;
g_return_val_if_fail (handle, 0);
- cls_mtd_data = gst_analytics_cls_mtd_get_data (handle);
+ cls_mtd_data = gst_analytics_relation_meta_get_mtd_data (handle->meta,
+ handle->id);
g_return_val_if_fail (cls_mtd_data != NULL, 0);
return cls_mtd_data->confidence_levels_and_classes[index].class;
}
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.c b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.c
index e299a4ba77..a88e0aa9a0 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.c
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.c
@@ -27,68 +27,24 @@
GST_DEBUG_CATEGORY_STATIC (an_relation_meta_debug);
#define GST_CAT_AN_RELATION an_relation_meta_debug
-static char invalid_type_name[] = "_invalid";
-
-static guint
-gst_analytics_relation_meta_get_next_id (GstAnalyticsRelationMeta * meta);
-
-/**
- * gst_analytics_mtd_get_type_quark:
- * @instance: Instance of #GstAnalyticsMtd
- * Get analysis result type.
+/*
+ * GstAnalyticsRelatableMtdData:
+ * @analysis_type: Identify the type of analysis-metadata
+ * @id: Instance identifier.
+ * @size: Size in bytes of the instance
*
- * Returns: quark associated with type.
- *
- * Since: 1.24
+ * Base structure for analysis-metadata that can be placed in relation. Only
+ * other analysis-metadata based on GstAnalyticsRelatableMtdDatax should
+ * directly use this structure.
*/
-GstAnalyticsMtdType
-gst_analytics_mtd_get_type_quark (GstAnalyticsMtd * handle)
+typedef struct
{
- GstAnalyticsRelatableMtdData *rlt;
- rlt = gst_analytics_relation_meta_get_mtd_data (handle->meta, handle->id);
+ GstAnalyticsMtdType analysis_type;
+ guint id;
+ gsize size;
+ gpointer data[];
+} GstAnalyticsRelatableMtdData;
- g_return_val_if_fail (rlt != NULL,
- g_quark_from_static_string (invalid_type_name));
-
- return rlt->analysis_type;
-}
-
-/**
- * gst_analytics_mtd_get_id:
- * @instance: Instance of #GstAnalyticsMtd
- * Get instance id
- *
- * Returns: Id of @instance
- *
- * Since: 1.24
- */
-guint
-gst_analytics_mtd_get_id (GstAnalyticsMtd * handle)
-{
- return handle->id;
-}
-
-/**
- * gst_analytics_mtd_get_size:
- * @instance Instance of #GstAnalyticsRelatableMtd
- * Get instance size
- *
- * Returns: Size (in bytes) of this instance or 0 on failure.
- *
- * Since: 1.24
- */
-gsize
-gst_analytics_mtd_get_size (GstAnalyticsMtd * handle)
-{
- GstAnalyticsRelatableMtdData *rlt;
- rlt = gst_analytics_relation_meta_get_mtd_data (handle->meta, handle->id);
- if (rlt == NULL) {
- GST_CAT_ERROR (GST_CAT_AN_RELATION, "Invalid parameter");
- return 0;
- }
-
- return rlt->size;
-}
/*
* GstAnalyticsRelationMeta:
@@ -132,6 +88,89 @@ typedef struct _GstAnalyticsRelationMeta
} GstAnalyticsRelationMeta;
+static char invalid_type_name[] = "_invalid";
+
+static guint
+gst_analytics_relation_meta_get_next_id (GstAnalyticsRelationMeta * meta);
+
+
+static GstAnalyticsRelatableMtdData *
+gst_analytics_relation_meta_get_mtd_data_internal (GstAnalyticsRelationMeta *
+ meta, guint an_meta_id)
+{
+ GstAnalyticsRelatableMtdData *rv;
+ g_return_val_if_fail (meta, NULL);
+ if (an_meta_id >= meta->rel_order) {
+ GST_CAT_ERROR (GST_CAT_AN_RELATION, "Invalid parameter");
+ return NULL;
+ }
+ rv = (GstAnalyticsRelatableMtdData *)
+ (meta->mtd_data_lookup[an_meta_id] + meta->analysis_results);
+
+ return rv;
+}
+
+/**
+ * gst_analytics_mtd_get_type_quark:
+ * @instance: Instance of #GstAnalyticsMtd
+ * Get analysis result type.
+ *
+ * Returns: quark associated with type.
+ *
+ * Since: 1.24
+ */
+GstAnalyticsMtdType
+gst_analytics_mtd_get_type_quark (GstAnalyticsMtd * handle)
+{
+ GstAnalyticsRelatableMtdData *rlt;
+ rlt = gst_analytics_relation_meta_get_mtd_data_internal (handle->meta,
+ handle->id);
+
+ g_return_val_if_fail (rlt != NULL,
+ g_quark_from_static_string (invalid_type_name));
+
+ return rlt->analysis_type;
+}
+
+/**
+ * gst_analytics_mtd_get_id:
+ * @instance: Instance of #GstAnalyticsMtd
+ * Get instance id
+ *
+ * Returns: Id of @instance
+ *
+ * Since: 1.24
+ */
+guint
+gst_analytics_mtd_get_id (GstAnalyticsMtd * handle)
+{
+ return handle->id;
+}
+
+/**
+ * gst_analytics_mtd_get_size:
+ * @instance Instance of #GstAnalyticsRelatableMtd
+ * Get instance size
+ *
+ * Returns: Size (in bytes) of this instance or 0 on failure.
+ *
+ * Since: 1.24
+ */
+gsize
+gst_analytics_mtd_get_size (GstAnalyticsMtd * handle)
+{
+ GstAnalyticsRelatableMtdData *rlt;
+ rlt = gst_analytics_relation_meta_get_mtd_data_internal (handle->meta,
+ handle->id);
+ if (rlt == NULL) {
+ GST_CAT_ERROR (GST_CAT_AN_RELATION, "Invalid parameter");
+ return 0;
+ }
+
+ return rlt->size;
+}
+
+
/**
* gst_analytics_relation_get_length:
* @instance Instance of #GstAnalyticsRelationMeta
@@ -256,21 +295,11 @@ static void
gst_analytics_relation_meta_free (GstMeta * meta, GstBuffer * buffer)
{
GstAnalyticsRelationMeta *rmeta = (GstAnalyticsRelationMeta *) meta;
- gpointer state = NULL;
- GstAnalyticsMtd mtd;
- GstAnalyticsRelatableMtdData *data;
+
GST_CAT_TRACE (GST_CAT_AN_RELATION,
"Content analysis meta-data(%p) freed for buffer(%p)",
(gpointer) rmeta, (gpointer) buffer);
- /* call custom free function if set */
- while (gst_analytics_relation_meta_iterate (rmeta, &state, 0, &mtd)) {
- data = gst_analytics_relation_meta_get_mtd_data (mtd.meta, mtd.id);
- if (data->free != NULL) {
- data->free (data);
- }
- }
-
g_free (rmeta->analysis_results);
g_free (rmeta->adj_mat);
g_free (rmeta->mtd_data_lookup);
@@ -779,15 +808,16 @@ gst_buffer_get_analytics_relation_meta (GstBuffer * buffer)
* Add a relatable metadata to @meta. This method is meant to be used by
* new struct sub-classing GstAnalyticsRelatableMtd.
*
- * Returns: New GstAnalyticsRelatableMtdData instance.
+ * Returns: A pointer to a memory area of size @size where to put the data
*
* Since 1.24
*/
-GstAnalyticsRelatableMtdData *
+gpointer
gst_analytics_relation_meta_add_mtd (GstAnalyticsRelationMeta * meta,
GstAnalyticsMtdType type, gsize size, GstAnalyticsMtd * rlt_mtd)
{
- gsize new_size = size + meta->offset;
+ gsize object_size;
+ gsize new_size;
GstAnalyticsRelatableMtdData *dest = NULL;
gpointer mem;
guint8 **new_adj_mat;
@@ -795,6 +825,12 @@ gst_analytics_relation_meta_add_mtd (GstAnalyticsRelationMeta * meta,
GST_CAT_TRACE (GST_CAT_AN_RELATION, "Adding relatable metadata to rmeta %p",
meta);
+ object_size = sizeof (GstAnalyticsRelatableMtdData);
+ object_size += sizeof (gpointer) * (size / sizeof (gpointer));
+ if (size % sizeof (gpointer))
+ object_size += sizeof (gpointer);
+ new_size = meta->offset + object_size;
+
if (new_size > meta->max_size) {
if (new_size > meta->max_size_increment + meta->offset) {
@@ -827,9 +863,8 @@ gst_analytics_relation_meta_add_mtd (GstAnalyticsRelationMeta * meta,
dest->analysis_type = type;
dest->id = gst_analytics_relation_meta_get_next_id (meta);
dest->size = size;
- dest->free = NULL;
meta->mtd_data_lookup[dest->id] = meta->offset;
- meta->offset += dest->size;
+ meta->offset += object_size;
meta->length++;
rlt_mtd->id = dest->id;
rlt_mtd->meta = meta;
@@ -841,7 +876,7 @@ gst_analytics_relation_meta_add_mtd (GstAnalyticsRelationMeta * meta,
"Failed to add relatable, out-of-space (%" G_GSIZE_FORMAT " / %"
G_GSIZE_FORMAT ").", new_size, meta->max_size);
}
- return dest;
+ return &dest->data[0];
}
/**
@@ -876,7 +911,7 @@ gst_analytics_relation_meta_get_mtd (GstAnalyticsRelationMeta * meta,
return FALSE;
}
- d = gst_analytics_relation_meta_get_mtd_data (meta, an_meta_id);
+ d = gst_analytics_relation_meta_get_mtd_data_internal (meta, an_meta_id);
if (d == NULL)
return FALSE;
@@ -899,23 +934,17 @@ gst_analytics_relation_meta_get_mtd (GstAnalyticsRelationMeta * meta,
* @meta: Instance of GstAnalyticsRelationMeta
* @an_meta_id: Id of GstAnalyticsMtd instance to retrieve
*
- * Returns:(nullable): Instance of GstAnalyticsRelatableMtdData
+ * Returns:(nullable): Analytics data pointer
*
* Since 1.24
*/
-GstAnalyticsRelatableMtdData *
+gpointer
gst_analytics_relation_meta_get_mtd_data (GstAnalyticsRelationMeta *
meta, guint an_meta_id)
{
- GstAnalyticsRelatableMtdData *rv;
- g_return_val_if_fail (meta, NULL);
- if (an_meta_id >= meta->rel_order) {
- GST_CAT_ERROR (GST_CAT_AN_RELATION, "Invalid parameter");
- return NULL;
- }
- rv = (GstAnalyticsRelatableMtdData *)
- (meta->mtd_data_lookup[an_meta_id] + meta->analysis_results);
- return rv;
+ GstAnalyticsRelatableMtdData *rv =
+ gst_analytics_relation_meta_get_mtd_data_internal (meta, an_meta_id);
+ return &rv->data[0];
}
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.h b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.h
index 2eb2ef5f7b..aff472f4e9 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.h
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsmeta.h
@@ -56,7 +56,6 @@ typedef guint32 GstAnalyticsMtdType;
#define GST_ANALYTICS_MTD_CAST(mtd) \
((GstAnalyticsMtd *)(mtd))
-typedef struct _GstAnalyticsRelatableMtdData GstAnalyticsRelatableMtdData;
typedef struct _GstAnalyticsRelationMeta GstAnalyticsRelationMeta;
/**
@@ -76,29 +75,6 @@ struct _GstAnalyticsMtd
GstAnalyticsRelationMeta *meta;
};
-/**
- * GstAnalyticsRelatableMtdData:
- * @analysis_type: Identify the type of analysis-metadata
- * @id: Instance identifier.
- * @size: Size in bytes of the instance
- *
- * Base structure for analysis-metadata that can be placed in relation. Only
- * other analysis-metadata based on GstAnalyticsRelatableMtdData should
- * directly use this structure.
- *
- * Since: 1.24
- */
-struct _GstAnalyticsRelatableMtdData
-{
- GstAnalyticsMtdType analysis_type;
- guint id;
- gsize size;
-
- void (*free) (GstAnalyticsRelatableMtdData * mtd_data);
-
- gpointer _gst_reserved[GST_PADDING];
-};
-
GST_ANALYTICS_META_API
GstAnalyticsMtdType gst_analytics_mtd_get_type_quark (GstAnalyticsMtd * instance);
@@ -196,7 +172,7 @@ GstAnalyticsRelationMeta *
gst_buffer_get_analytics_relation_meta (GstBuffer * buffer);
GST_ANALYTICS_META_API
-GstAnalyticsRelatableMtdData *
+gpointer
gst_analytics_relation_meta_add_mtd (GstAnalyticsRelationMeta * meta,
GstAnalyticsMtdType type, gsize size, GstAnalyticsMtd * rlt_mtd);
@@ -206,7 +182,7 @@ gst_analytics_relation_meta_get_mtd (GstAnalyticsRelationMeta *
meta, guint an_meta_id, GstAnalyticsMtdType type, GstAnalyticsMtd * rlt);
GST_ANALYTICS_META_API
-GstAnalyticsRelatableMtdData *
+gpointer
gst_analytics_relation_meta_get_mtd_data (GstAnalyticsRelationMeta * meta,
guint an_meta_id);
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c
index a01a87eaa5..dc9ab7e5a2 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c
@@ -32,7 +32,6 @@ typedef struct _GstAnalyticsODMtdData GstAnalyticsODMtdData;
/**
* GstAnalyticsODMtdData:
- * @parent: parent #GstAnalyticsMtd
* @object_type: Type of object
* @x: x component of upper-left corner
* @y: y component of upper-left corner
@@ -46,7 +45,6 @@ typedef struct _GstAnalyticsODMtdData GstAnalyticsODMtdData;
*/
struct _GstAnalyticsODMtdData
{
- GstAnalyticsRelatableMtdData parent;
GQuark object_type;
gint x;
gint y;
@@ -84,19 +82,6 @@ gst_analytics_od_mtd_get_type_name (void)
return GST_RELATABLE_MTD_OD_TYPE_NAME;
}
-static GstAnalyticsODMtdData *
-gst_analytics_od_mtd_get_data (GstAnalyticsODMtd * instance)
-{
- GstAnalyticsRelatableMtdData *rlt_data =
- gst_analytics_relation_meta_get_mtd_data (instance->meta,
- instance->id);
- g_return_val_if_fail (rlt_data, NULL);
- g_return_val_if_fail (rlt_data->analysis_type ==
- gst_analytics_od_mtd_get_type_quark (), NULL);
-
- return (GstAnalyticsODMtdData *) rlt_data;
-}
-
/**
* gst_analytics_od_mtd_get_location:
* @instance: instance
@@ -117,21 +102,20 @@ gboolean
gst_analytics_od_mtd_get_location (GstAnalyticsODMtd * instance,
gint * x, gint * y, gint * w, gint * h, gfloat * loc_conf_lvl)
{
- g_return_val_if_fail (instance && x && y && w && h, FALSE);
GstAnalyticsODMtdData *data;
- data = gst_analytics_od_mtd_get_data (instance);
+
+ g_return_val_if_fail (instance && x && y && w && h, FALSE);
+ data = gst_analytics_relation_meta_get_mtd_data (instance->meta,
+ instance->id);
g_return_val_if_fail (data != NULL, FALSE);
- if (data) {
- *x = data->x;
- *y = data->y;
- *w = data->w;
- *h = data->h;
+ *x = data->x;
+ *y = data->y;
+ *w = data->w;
+ *h = data->h;
- if (loc_conf_lvl) {
- *loc_conf_lvl = data->location_confidence_lvl;
- }
- }
+ if (loc_conf_lvl)
+ *loc_conf_lvl = data->location_confidence_lvl;
return TRUE;
}
@@ -149,7 +133,8 @@ gst_analytics_od_mtd_get_type (GstAnalyticsODMtd * handle)
{
GstAnalyticsODMtdData *data;
g_return_val_if_fail (handle != NULL, 0);
- data = gst_analytics_od_mtd_get_data (handle);
+ data = gst_analytics_relation_meta_get_mtd_data (handle->meta,
+ handle->id);
g_return_val_if_fail (data != NULL, 0);
return data->object_type;
}
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsobjecttrackingmtd.c b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsobjecttrackingmtd.c
index 1c066d6f24..97e614fa29 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsobjecttrackingmtd.c
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gstanalyticsobjecttrackingmtd.c
@@ -30,7 +30,6 @@ typedef struct _GstAnalyticsTrackingMtdData GstAnalyticsTrackingMtdData;
/**
* GstAnalyticsTrackingMtd:
- * @parent: parent #GstAnalyticsMtd
* @tracking_id: Tracking identifier
* @tracking_first_seen: Tracking creation time
* @tracking_last_seen: Tracking last observation
@@ -42,7 +41,6 @@ typedef struct _GstAnalyticsTrackingMtdData GstAnalyticsTrackingMtdData;
*/
struct _GstAnalyticsTrackingMtdData
{
- GstAnalyticsRelatableMtdData parent;
guint64 tracking_id;
GstClockTime tracking_first_seen;
GstClockTime tracking_last_seen;
@@ -52,20 +50,6 @@ struct _GstAnalyticsTrackingMtdData
static char type[] = GST_RELATABLE_MTD_TRACKING_TYPE_NAME;
-static GstAnalyticsTrackingMtdData *
-gst_analytics_tracking_mtd_get_data (GstAnalyticsTrackingMtd * instance)
-{
- GstAnalyticsRelatableMtdData *rlt_data =
- gst_analytics_relation_meta_get_mtd_data (instance->meta,
- instance->id);
- g_return_val_if_fail (rlt_data, NULL);
-
- g_return_val_if_fail (rlt_data->analysis_type ==
- gst_analytics_tracking_mtd_get_type_quark (), NULL);
-
- return (GstAnalyticsTrackingMtdData *) rlt_data;
-}
-
/**
* gst_analytics_tracking_mtd_get_type_quark:
* Returns: Quark representing the type of GstAnalyticsRelatableMtd
@@ -107,7 +91,8 @@ gst_analytics_tracking_mtd_update_last_seen (GstAnalyticsTrackingMtd * instance,
{
GstAnalyticsTrackingMtdData *trk_mtd_data;
g_return_val_if_fail (instance, FALSE);
- trk_mtd_data = gst_analytics_tracking_mtd_get_data (instance);
+ trk_mtd_data = gst_analytics_relation_meta_get_mtd_data (instance->meta,
+ instance->id);
g_return_val_if_fail (trk_mtd_data != NULL, FALSE);
trk_mtd_data->tracking_last_seen = last_seen;
@@ -128,7 +113,8 @@ gst_analytics_tracking_mtd_set_lost (GstAnalyticsTrackingMtd * instance)
{
GstAnalyticsTrackingMtdData *trk_mtd_data;
g_return_val_if_fail (instance, FALSE);
- trk_mtd_data = gst_analytics_tracking_mtd_get_data (instance);
+ trk_mtd_data = gst_analytics_relation_meta_get_mtd_data (instance->meta,
+ instance->id);
g_return_val_if_fail (trk_mtd_data != NULL, FALSE);
trk_mtd_data->tracking_lost = TRUE;
return TRUE;
@@ -154,7 +140,8 @@ gst_analytics_tracking_mtd_get_info (GstAnalyticsTrackingMtd * instance,
{
GstAnalyticsTrackingMtdData *trk_mtd_data;
g_return_val_if_fail (instance, FALSE);
- trk_mtd_data = gst_analytics_tracking_mtd_get_data (instance);
+ trk_mtd_data = gst_analytics_relation_meta_get_mtd_data (instance->meta,
+ instance->id);
g_return_val_if_fail (trk_mtd_data != NULL, FALSE);