88#define __GST_ANALYTICS_KEYPOINTS_MTD__
99
1010#include <gst/analytics/analytics-meta-prelude.h>
11+ #include <gst/analytics/gstanalyticsclassificationmtd.h>
1112#include <gst/analytics/gstanalyticsmeta.h>
1213#include <gst/gst.h>
1314
1415G_BEGIN_DECLS
16+
1517/**
16- * GstAnalyticsKeypointsMtd :
18+ * GstAnalyticsKeypointMtd :
1719 * @id: Instance identifier.
1820 * @meta: Instance of #GstAnalyticsRelationMeta where the analysis-metadata
1921 * identified by @id is stored.
2022 *
21- * Handle containing data required to use gst_analytics_keypoints_mtd APIs .
23+ * Handle to #GstAnalyticsKeypoint data structure .
2224 * This type is generally expected to be allocated on the stack.
2325 *
2426 * Since: 1.26
2527 */
26- typedef struct _GstAnalyticsMtd GstAnalyticsKeypointsMtd ;
28+ typedef struct _GstAnalyticsMtd GstAnalyticsKeypointMtd ;
2729
2830/**
29- * GstAnalyticsKeypointDimensions :
30- * @GST_ANALYTICS_KEYPOINT_DIMENSIONS_2D: keypoints in 2D space with (x,y) coordinates .
31- * @GST_ANALYTICS_KEYPOINT_DIMENSIONS_3D: keypoints in 3D space with (x,y,z) coordinates .
32- *
33- * Enum value describing supported keypoint dimension .
31+ * GstAnalyticsKeypoint :
32+ * @x: zero-based absolute x pixel coordinate of a keypoint relative to image upper-left corner .
33+ * @y: zero-based absolute y pixel coordinate of a keypoint relative to image upper-left corner .
34+ * @z: normalized depth coordinate of a keypoint, relative to keypoint group center (use 0.0f for 2D keypoints).
35+ * @v: visibility of a kepoint, normalized <0.0f - not visible, 1.0f - fully visible> .
3436 * */
35- typedef enum {
36- GST_ANALYTICS_KEYPOINT_DIMENSIONS_2D = 2 ,
37- GST_ANALYTICS_KEYPOINT_DIMENSIONS_3D = 3 ,
38- } GstAnalyticsKeypointDimensions ;
37+ typedef struct {
38+ guint x ;
39+ guint y ;
40+ gfloat z ;
41+ gfloat v ;
42+ } GstAnalyticsKeypoint ;
43+
44+ GST_ANALYTICS_META_API
45+ GstAnalyticsMtdType gst_analytics_keypoint_mtd_get_mtd_type (void );
46+
47+ GST_ANALYTICS_META_API
48+ gboolean gst_analytics_keypoint_mtd_get (const GstAnalyticsKeypointMtd * handle , GstAnalyticsKeypoint * keypoint );
49+
50+ GST_ANALYTICS_META_API
51+ gboolean gst_analytics_relation_meta_add_keypoint_mtd (GstAnalyticsRelationMeta * instance ,
52+ const GstAnalyticsKeypoint * keypoint ,
53+ GstAnalyticsKeypointMtd * keypoint_mtd );
3954
4055/**
41- * GstKeypointPair:
56+ * GstAnalyticsKeypointSkeletonMtd:
57+ * @id: Instance identifier.
58+ * @meta: Instance of #GstAnalyticsRelationMeta where the analysis-metadata
59+ * identified by @id is stored.
60+ *
61+ * Handle containing data required to use gst_analytics_keypoint_skeleton_mtd APIs.
62+ * This type is generally expected to be allocated on the stack.
63+ *
64+ * Since: 1.26
65+ */
66+ typedef struct _GstAnalyticsMtd GstAnalyticsKeypointSkeletonMtd ;
67+
68+ /**
69+ * GstAnalyticsKeypointPair:
4270 * @kp1: index of the first keypoint in a skeleton link.
4371 * @kp2: index of the second keypoint in a skeleton link.
4472 *
@@ -47,41 +75,58 @@ typedef enum {
4775typedef struct {
4876 guint kp1 ;
4977 guint kp2 ;
50- } GstKeypointPair ;
78+ } GstAnalyticsKeypointPair ;
5179
5280GST_ANALYTICS_META_API
53- GstAnalyticsMtdType gst_analytics_keypoints_mtd_get_mtd_type (void );
81+ GstAnalyticsMtdType gst_analytics_keypoint_skeleton_mtd_get_mtd_type (void );
5482
5583GST_ANALYTICS_META_API
56- gsize gst_analytics_keypoints_mtd_get_count (const GstAnalyticsKeypointsMtd * handle );
84+ gsize gst_analytics_keypoint_skeleton_mtd_get_count (const GstAnalyticsKeypointSkeletonMtd * handle );
5785
5886GST_ANALYTICS_META_API
59- GstAnalyticsKeypointDimensions gst_analytics_keypoints_mtd_get_dimension (const GstAnalyticsKeypointsMtd * handle );
87+ gboolean gst_analytics_keypoint_skeleton_mtd_get (const GstAnalyticsKeypointSkeletonMtd * handle ,
88+ GstAnalyticsKeypointPair * segment , gsize index );
6089
6190GST_ANALYTICS_META_API
62- gsize gst_analytics_keypoints_mtd_get_confidence_count (const GstAnalyticsKeypointsMtd * handle );
91+ gboolean gst_analytics_relation_meta_add_keypoint_skeleton_mtd (GstAnalyticsRelationMeta * instance ,
92+ const gsize skeleton_count ,
93+ const GstAnalyticsKeypointPair * skeletons ,
94+ GstAnalyticsKeypointSkeletonMtd * keypoint_skeleton_mtd );
95+
96+ /**
97+ * GstAnalyticsKeypointGroupMtd:
98+ * @id: Instance identifier.
99+ * @meta: Instance of #GstAnalyticsRelationMeta where the analysis-metadata
100+ * identified by @id is stored.
101+ *
102+ * Handle containing data required to use gst_analytics_keypointgroup_mtd APIs.
103+ * This type is generally expected to be allocated on the stack.
104+ *
105+ * Since: 1.26
106+ */
107+ typedef struct _GstAnalyticsMtd GstAnalyticsKeypointGroupMtd ;
63108
64109GST_ANALYTICS_META_API
65- gsize gst_analytics_keypoints_mtd_get_skeleton_count ( const GstAnalyticsKeypointsMtd * handle );
110+ GstAnalyticsMtdType gst_analytics_keypointgroup_mtd_get_mtd_type ( void );
66111
67112GST_ANALYTICS_META_API
68- gboolean gst_analytics_keypoints_mtd_get_position (const GstAnalyticsKeypointsMtd * handle , gfloat * position ,
69- gsize index );
113+ gsize gst_analytics_keypointgroup_mtd_get_count (const GstAnalyticsKeypointGroupMtd * handle );
70114
71115GST_ANALYTICS_META_API
72- gboolean gst_analytics_keypoints_mtd_get_confidence (const GstAnalyticsKeypointsMtd * handle , gfloat * confidence ,
73- gsize index );
116+ gboolean gst_analytics_keypointgroup_mtd_get_keypoint_mtd (const GstAnalyticsKeypointGroupMtd * handle ,
117+ GstAnalyticsKeypointMtd * keypoint_mtd , gsize index );
74118
75119GST_ANALYTICS_META_API
76- gboolean gst_analytics_keypoints_mtd_get_skeleton (const GstAnalyticsKeypointsMtd * handle , GstKeypointPair * skeleton ,
77- gsize index );
120+ gboolean gst_analytics_relation_meta_add_keypointgroup_mtd (GstAnalyticsRelationMeta * instance ,
121+ const gsize keypoint_count ,
122+ const GstAnalyticsKeypointMtd * keypoints ,
123+ GstAnalyticsKeypointGroupMtd * keypoints_mtd );
78124
79125GST_ANALYTICS_META_API
80- gboolean gst_analytics_relation_meta_add_keypoints_mtd (GstAnalyticsRelationMeta * instance , const gsize keypoint_count ,
81- const GstAnalyticsKeypointDimensions keypoint_dimensions ,
82- const gfloat * positions , const gfloat * confidences ,
83- const gsize skeleton_count , const GstKeypointPair * skeletons ,
84- GstAnalyticsKeypointsMtd * keypoint_mtd );
126+ gboolean gst_analytics_relation_meta_set_keypointgroup_relations (GstAnalyticsRelationMeta * instance ,
127+ GstAnalyticsKeypointGroupMtd * keypoint_group ,
128+ GstAnalyticsClsMtd * keypoint_names ,
129+ GstAnalyticsKeypointSkeletonMtd * keypoint_skeleton );
85130
86131G_END_DECLS
87- #endif // __GST_ANALYTICS_KEYPOINTS_MTD__
132+ #endif // __gst_analytics_keypointgroup_MTD__
0 commit comments