diff --git a/.gitlab-image-tags.yml b/.gitlab-image-tags.yml
index 1ee044dce9..06ee8e51d1 100644
--- a/.gitlab-image-tags.yml
+++ b/.gitlab-image-tags.yml
@@ -13,6 +13,6 @@ variables:
LINT_TAG: '2024-02-20.0'
- ABI_CHECK_TAG: '2024-12-20.2'
+ ABI_CHECK_TAG: '2025-01-08.1'
WINDOWS_TAG: '2024-11-29.0'
diff --git a/girs/GstAnalytics-1.0.gir b/girs/GstAnalytics-1.0.gir
index 69b91757bd..f05f68c13a 100644
--- a/girs/GstAnalytics-1.0.gir
+++ b/girs/GstAnalytics-1.0.gir
@@ -1259,7 +1259,7 @@ pixel to instance of an object is identified.
number of tensor dimensions
-
+
@@ -1346,8 +1346,8 @@ dimension is dynamic.
The dims array form the tensor
-
-
+
+
@@ -1408,18 +1408,6 @@ dimension is dynamic.
"brain" 16 bit floating point tensor data
-
- Hold properties of the tensor's dimension
-
-
- Size of the dimension. Use 0 for dynamic dimension using.
-
-
-
- Dimension order in memory. @see_also #GST_TENSOR_DIM_ORDER_INDEXED
-
-
-
Indicate to read tensor from memory in row-major or column-major order.
@@ -1429,13 +1417,6 @@ dimension is dynamic.
elements along a column are consecutive in memory
-
- elements storage follow the order defined by
- #GstTensorDim.order_index This mean that when iterating the tensor
- the dimension with index 0 is the most nested in the loops and consecutive
- in memory, followed by other dimensions in the order defined by
- #GstTensorDim.order_index.
-
Indicate tensor storage in memory.
diff --git a/subprojects/gst-plugins-bad/ext/onnx/gstonnxclient.cpp b/subprojects/gst-plugins-bad/ext/onnx/gstonnxclient.cpp
index 4e5172bd8d..d632af3c6d 100644
--- a/subprojects/gst-plugins-bad/ext/onnx/gstonnxclient.cpp
+++ b/subprojects/gst-plugins-bad/ext/onnx/gstonnxclient.cpp
@@ -351,7 +351,7 @@ GstOnnxClient::GstOnnxClient (GstElement *debug_parent):debug_parent(debug_paren
tensor->num_dims = tensorShape.size ();
for (size_t j = 0; j < tensorShape.size (); ++j)
- tensor->dims[j].size = tensorShape[j];
+ tensor->dims[j] = tensorShape[j];
size_t numElements =
outputTensor.GetTensorTypeAndShapeInfo ().GetElementCount ();
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c
index d20e353f0f..67b24dcf01 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.c
@@ -25,7 +25,7 @@
#include "gsttensor.h"
#define GST_TENSOR_SIZE(num_dims) \
- (sizeof (GstTensor) + (sizeof (GstTensorDim) * num_dims))
+ (sizeof (GstTensor) + (sizeof (gsize) * num_dims))
G_DEFINE_BOXED_TYPE (GstTensor, gst_tensor,
(GBoxedCopyFunc) gst_tensor_copy, (GBoxedFreeFunc) gst_tensor_free);
@@ -145,9 +145,8 @@ gst_tensor_new_simple (GQuark id, GstTensorDataType data_type, GstBuffer * data,
tensor->data = data;
tensor->dims_order = dims_order;
tensor->num_dims = num_dims;
- for (i = 0; i < num_dims; i++) {
- tensor->dims[i].size = dims[i];
- }
+ memcpy (tensor->dims, dims, sizeof (gsize) * num_dims);
+
return tensor;
}
@@ -203,7 +202,7 @@ gst_tensor_copy (const GstTensor * tensor)
* Since: 1.26
*/
-GstTensorDim *
+gsize *
gst_tensor_get_dims (GstTensor * tensor, gsize * num_dims)
{
if (num_dims)
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h
index 1ab15606f6..0781286406 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/analytics/gsttensor.h
@@ -73,11 +73,6 @@ typedef enum _GstTensorDataType
* GstTensorDimOrder:
* @GST_TENSOR_DIM_ORDER_ROW_MAJOR: elements along a row are consecutive in memory
* @GST_TENSOR_DIM_ORDER_COL_MAJOR: elements along a column are consecutive in memory
- * @GST_TENSOR_DIM_ORDER_INDEXED: elements storage follow the order defined by
- * #GstTensorDim.order_index This mean that when iterating the tensor
- * the dimension with index 0 is the most nested in the loops and consecutive
- * in memory, followed by other dimensions in the order defined by
- * #GstTensorDim.order_index.
*
* Indicate to read tensor from memory in row-major or column-major order.
*
@@ -86,8 +81,7 @@ typedef enum _GstTensorDataType
typedef enum _GstTensorDimOrder
{
GST_TENSOR_DIM_ORDER_ROW_MAJOR,
- GST_TENSOR_DIM_ORDER_COL_MAJOR,
- GST_TENSOR_DIM_ORDER_INDEXED
+ GST_TENSOR_DIM_ORDER_COL_MAJOR
} GstTensorDimOrder;
/**
@@ -103,22 +97,6 @@ typedef enum _GstTensorLayout
GST_TENSOR_LAYOUT_CONTIGUOUS
} GstTensorLayout;
-
-/**
- * GstTensorDim:
- * @size: Size of the dimension. Use 0 for dynamic dimension using.
- * @order_index: Dimension order in memory. @see_also #GST_TENSOR_DIM_ORDER_INDEXED
- *
- * Hold properties of the tensor's dimension
- *
- * Since: 1.26
- */
-typedef struct _GstTensorDim
-{
- gsize size;
- gsize order_index;
-} GstTensorDim;
-
/**
* GstTensor:
* @id: semantically identify the contents of the tensor
@@ -141,7 +119,7 @@ typedef struct _GstTensor
GstBuffer *data;
GstTensorDimOrder dims_order;
gsize num_dims;
- GstTensorDim dims[];
+ gsize dims[];
} GstTensor;
G_BEGIN_DECLS
@@ -166,7 +144,7 @@ GST_ANALYTICS_META_API
GstTensor * gst_tensor_copy (const GstTensor * tensor);
GST_ANALYTICS_META_API
-GstTensorDim * gst_tensor_get_dims (GstTensor * tensor, gsize * num_dims);
+gsize * gst_tensor_get_dims (GstTensor * tensor, gsize * num_dims);
GST_ANALYTICS_META_API
GType gst_tensor_get_type (void);
diff --git a/subprojects/gst-python/testsuite/test_analytics.py b/subprojects/gst-python/testsuite/test_analytics.py
index c9af179440..f65ece65ff 100644
--- a/subprojects/gst-python/testsuite/test_analytics.py
+++ b/subprojects/gst-python/testsuite/test_analytics.py
@@ -218,10 +218,10 @@ class TestAnalyticsTensorMeta(TestCase):
self.assertEqual(tensor.num_dims, 4)
dims = tensor.get_dims()
self.assertEqual(len(dims), 4)
- self.assertEqual(dims[0].size, 1)
- self.assertEqual(dims[1].size, 2)
- self.assertEqual(dims[2].size, 3)
- self.assertEqual(dims[3].size, 4)
+ self.assertEqual(dims[0], 1)
+ self.assertEqual(dims[1], 2)
+ self.assertEqual(dims[2], 3)
+ self.assertEqual(dims[3], 4)
self.assertEqual(tensor.data, data)
self.assertEqual(tensor.data_type, GstAnalytics.TensorDataType.UINT8)
self.assertEqual(tensor.dims_order, GstAnalytics.TensorDimOrder.ROW_MAJOR)