gst_tensor_meta_info_parse_memory (GstTensorMetaInfo * meta, GstMemory * mem)
{
GstMapInfo map;
+ gsize hsize, msize;
gboolean ret;
g_return_val_if_fail (mem != NULL, FALSE);
gst_tensor_meta_info_init (meta);
+ /* Check header size of tensor-meta. */
+ hsize = gst_tensor_meta_info_get_header_size (meta);
+ msize = gst_memory_get_sizes (mem, NULL, NULL);
+ if (msize < hsize) {
+ nns_loge ("Failed to get the meta, invalid memory size %zd.", msize);
+ return FALSE;
+ }
+
if (!gst_memory_map (mem, &map, GST_MAP_READ)) {
nns_loge ("Failed to get the meta, cannot map the memory.");
return FALSE;
}
/**
+ * @brief Test for tensor meta info (parse memory with invalid memory size).
+ */
+TEST (commonMetaInfo, parseMemInvalidSize_n)
+{
+ GstTensorMetaInfo meta;
+ GstMemory *mem;
+ gsize hsize;
+ gboolean ret;
+
+ gst_tensor_meta_info_init (&meta);
+ hsize = gst_tensor_meta_info_get_header_size (&meta) / 2;
+ mem = gst_allocator_alloc (NULL, hsize, NULL);
+
+ ret = gst_tensor_meta_info_parse_memory (&meta, mem);
+ EXPECT_FALSE (ret);
+
+ gst_memory_unref (mem);
+}
+
+/**
* @brief Test for tensor meta info (append header to memory).
*/
TEST (commonMetaInfo, appendHeader)