gstanalytics: Add transform function to copy the tensor meta
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8825>
This commit is contained in:
parent
57e8dbfeb4
commit
700b665bf7
@ -22,6 +22,33 @@
|
||||
|
||||
#include "gsttensormeta.h"
|
||||
|
||||
static gboolean
|
||||
gst_tensor_meta_transform (GstBuffer * dest, GstMeta * meta,
|
||||
GstBuffer * buffer, GQuark type, gpointer data)
|
||||
{
|
||||
GstTensorMeta *dmeta, *smeta;
|
||||
|
||||
smeta = (GstTensorMeta *) meta;
|
||||
|
||||
if (GST_META_TRANSFORM_IS_COPY (type)) {
|
||||
smeta = (GstTensorMeta *) meta;
|
||||
dmeta = gst_buffer_add_tensor_meta (dest);
|
||||
if (!dmeta)
|
||||
return FALSE;
|
||||
GST_TRACE ("copy tensor metadata");
|
||||
dmeta->num_tensors = smeta->num_tensors;
|
||||
dmeta->tensors = g_new (GstTensor *, smeta->num_tensors);
|
||||
for (int i = 0; i < smeta->num_tensors; i++) {
|
||||
dmeta->tensors[i] = gst_tensor_copy (smeta->tensors[i]);
|
||||
}
|
||||
} else {
|
||||
GST_WARNING ("gst_tensor_meta_transform: transform type %u not supported",
|
||||
type);
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_tensor_meta_init (GstMeta * meta, gpointer params, GstBuffer * buffer)
|
||||
{
|
||||
@ -80,7 +107,7 @@ gst_tensor_meta_get_info (void)
|
||||
sizeof (GstTensorMeta),
|
||||
gst_tensor_meta_init,
|
||||
gst_tensor_meta_free,
|
||||
NULL); /* tensor_meta_transform not implemented */
|
||||
gst_tensor_meta_transform);
|
||||
g_once_init_leave (&tmeta_info, meta);
|
||||
}
|
||||
return tmeta_info;
|
||||
|
@ -718,6 +718,10 @@ gst_buffer_copy_into (GstBuffer * dest, GstBuffer * src,
|
||||
"failed to copy meta %p of API type %s", meta,
|
||||
g_type_name (info->api));
|
||||
}
|
||||
} else {
|
||||
GST_CAT_WARNING (GST_CAT_BUFFER,
|
||||
"No transform function for meta %p of API type %s\n", (void *) meta,
|
||||
g_type_name (info->api));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user