diff --git a/girs/GstAnalytics-1.0.gir b/girs/GstAnalytics-1.0.gir
index 0429c3c238..e5839beefd 100644
--- a/girs/GstAnalytics-1.0.gir
+++ b/girs/GstAnalytics-1.0.gir
@@ -1481,6 +1481,25 @@ smaller than #GstTensorMeta.num_tensors
+
+ Get the first tensor from the #GstTensorMeta identified by @id.
+
+
+ a GstTensor with id matching @id.
+Otherwise NULL will be returned.
+
+
+
+
+ A #GstTensorMeta
+
+
+
+ A #GQuark identifying tensor-encoding
+
+
+
+
Finds the first tensor with the requsted ID in the meta
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c
index 0bd705c074..dca022d829 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.c
@@ -153,6 +153,32 @@ gst_tensor_meta_set (GstTensorMeta * tmeta, guint num_tensors,
tmeta->tensors = tensors;
}
+/**
+ * gst_tensor_meta_get_by_id:
+ * @tmeta: A #GstTensorMeta
+ * @id: A #GQuark identifying tensor-encoding
+ *
+ * Get the first tensor from the #GstTensorMeta identified by @id.
+ *
+ * Return: (nullable)(transfer none): a GstTensor with id matching @id.
+ * Otherwise NULL will be returned.
+ *
+ * Since: 1.28
+ */
+const GstTensor *
+gst_tensor_meta_get_by_id (GstTensorMeta * tmeta, GQuark id)
+{
+ g_return_val_if_fail (tmeta != NULL, NULL);
+ g_return_val_if_fail (tmeta->tensors, NULL);
+
+ for (int i = 0; i < tmeta->num_tensors; ++i) {
+ if (tmeta->tensors[i]->id == id)
+ return tmeta->tensors[i];
+ }
+
+ return NULL;
+}
+
/**
* gst_tensor_meta_get:
* @tmeta: A #GstTensorMeta
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.h b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.h
index 4c64a219d8..9d0cf0885c 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.h
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensormeta.h
@@ -79,6 +79,9 @@ GST_ANALYTICS_META_API
void gst_tensor_meta_set (GstTensorMeta *tmeta, guint num_tensors,
GstTensor **tensors);
+GST_ANALYTICS_META_API
+const GstTensor *gst_tensor_meta_get_by_id (GstTensorMeta *tmeta, GQuark id);
+
GST_ANALYTICS_META_API
const GstTensor *gst_tensor_meta_get (GstTensorMeta *tmeta, gsize index);