NVIDIA DeepStream SDK API Reference

4.0.1 Release

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups
nvdsmeta.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
3  *
4  * NVIDIA Corporation and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA Corporation is strictly prohibited.
9  *
10  */
11 
27 #ifndef _NVDSMETA_NEW_H_
28 #define _NVDSMETA_NEW_H_
29 
30 #include "glib.h"
31 #include "gmodule.h"
32 #include "nvll_osd_struct.h"
33 
34 #ifdef __cplusplus
35 extern "C"
36 {
37 #endif
38 
40 #define MAX_USER_FIELDS 4
41 
43 #define MAX_RESERVED_FIELDS 4
44 
45 #define MAX_LABEL_SIZE 128
46 
47 #define MAX_ELEMENTS_IN_DISPLAY_META 16
48 
49 #define UNTRACKED_OBJECT_ID 0xFFFFFFFFFFFFFFFF
50 
51 typedef GList NvDsFrameMetaList;
52 typedef GList NvDsUserMetaList;
53 typedef GList NvDsObjectMetaList;
54 typedef GList NvDisplayMetaList;
55 typedef GList NvDsClassifierMetaList;
56 typedef GList NvDsLabelInfoList;
57 typedef GList NvDsMetaList;
58 typedef void NvDsElementMeta;
59 
68 typedef gpointer (*NvDsMetaCopyFunc) (gpointer data, gpointer user_data);
76 typedef void (*NvDsMetaReleaseFunc) (gpointer data, gpointer user_data);
77 
83 typedef enum {
124  NVDS_FORCE32_META = 0x7FFFFFFF
125 } NvDsMetaType;
126 
130 typedef struct _NvDsMetaPool {
142  NvDsMetaList * empty_list;
144  NvDsMetaList * full_list;
149 }NvDsMetaPool;
150 
154 typedef struct _NvDsBaseMeta {
160  void * uContext;
170 } NvDsBaseMeta;
171 
176 typedef struct _NvDsBatchMeta {
195  NvDsFrameMetaList *frame_meta_list;
197  NvDsUserMetaList *batch_user_meta_list;
200  GRecMutex meta_mutex;
205 } NvDsBatchMeta;
206 
210 typedef struct _NvDsFrameMeta {
215  guint pad_index;
219  guint batch_id;
221  gint frame_num;
223  guint64 buf_pts;
225  guint64 ntp_timestamp;
228  guint source_id;
232  /* width of the frame at the input of stream muxer */
234  /* height of the frame at the input of stream muxer */
236  /* surface type of sub frame. This is required in case multiple surfaces
237  * per frame */
239  /* surface index of sub frame. This is required in case multiple surfaces
240  * per frame */
245  gboolean bInferDone;
247  NvDsObjectMetaList *obj_meta_list;
249  NvDisplayMetaList *display_meta_list;
251  NvDsUserMetaList *frame_user_meta_list;
256 } NvDsFrameMeta;
257 
261 typedef struct _NvDsObjectMeta {
269  gint class_id;
272  guint64 object_id;
274  gfloat confidence;
287  NvDsClassifierMetaList *classifier_meta_list;
289  NvDsUserMetaList *obj_user_meta_list;
295 
299 typedef struct _NvDsClassifierMeta {
302  guint num_labels;
306  NvDsLabelInfoList *label_info_list;
308 
312 typedef struct _NvDsLabelInfo {
315  guint num_classes;
324  guint label_id;
326  gfloat result_prob;
327 } NvDsLabelInfo;
328 
332 typedef struct NvDsDisplayMeta {
335  guint num_rects;
337  guint num_labels;
339  guint num_lines;
357 
361 typedef struct _NvDsUserMeta {
366 } NvDsUserMeta;
367 
373 void nvds_acquire_meta_lock (NvDsBatchMeta *batch_meta);
374 
380 void nvds_release_meta_lock (NvDsBatchMeta *batch_meta);
381 
389 NvDsBatchMeta *nvds_create_batch_meta(guint max_batch_size);
390 
396 gboolean nvds_destroy_batch_meta(NvDsBatchMeta *batch_meta);
397 
409 
420  NvDsFrameMeta * frame_meta);
421 
431  NvDsFrameMeta * frame_meta);
432 
444 
456 void nvds_add_obj_meta_to_frame(NvDsFrameMeta * frame_meta,
457  NvDsObjectMeta *obj_meta, NvDsObjectMeta *obj_parent);
458 
468  NvDsObjectMeta *obj_meta);
469 
481  NvDsBatchMeta *batch_meta);
482 
494  NvDsClassifierMeta * classifier_meta);
495 
505  NvDsClassifierMeta *classifier_meta);
506 
518  NvDsBatchMeta *batch_meta);
519 
530  NvDsDisplayMeta * display_meta);
531 
541  NvDsDisplayMeta *display_meta);
542 
554  NvDsBatchMeta *batch_meta);
555 
566  NvDsClassifierMeta *classifier_meta, NvDsLabelInfo * label_info_meta);
567 
577  NvDsClassifierMeta *classifier_meta, NvDsLabelInfo *label_info_meta);
578 
589  NvDsUserMeta * user_meta);
590 
601  NvDsUserMeta * user_meta);
602 
613  NvDsUserMeta * user_meta);
614 
624 
636  NvDsUserMeta * user_meta);
637 
647  NvDsUserMeta * user_meta);
648 
658  NvDsUserMeta * user_meta);
659 
665 gboolean nvds_get_current_metadata_info(NvDsBatchMeta *batch_meta);
666 
679 gpointer nvds_batch_meta_copy_func (gpointer data, gpointer user_data);
680 
687 void nvds_batch_meta_release_func(gpointer data, gpointer user_data);
688 
698 NvDsFrameMeta *nvds_get_nth_frame_meta (NvDsFrameMetaList *frame_meta_list,
699  guint index);
700 
709  NvDsFrameMetaList *meta_list);
710 
719 void nvds_clear_obj_meta_list(NvDsFrameMeta *frame_meta,
720  NvDsObjectMetaList *meta_list);
721 
731  NvDsClassifierMetaList *meta_list);
732 
742  NvDsLabelInfoList *meta_list);
743 
753  NvDisplayMetaList *meta_list);
754 
764  NvDsUserMetaList *meta_list);
765 
775  NvDsUserMetaList *meta_list);
776 
786  NvDsUserMetaList *meta_list);
787 
797 NvDsMetaList *nvds_clear_meta_list(NvDsBatchMeta *batch_meta,
798  NvDsMetaList *meta_list, NvDsMetaPool *meta_pool);
799 
807 void nvds_copy_frame_meta(NvDsFrameMeta *src_frame_meta,
808  NvDsFrameMeta *dst_frame_meta);
809 
817 void nvds_copy_obj_meta(NvDsObjectMeta *src_object_meta,
818  NvDsObjectMeta *dst_object_meta);
819 
827 void nvds_copy_classifier_meta(NvDsClassifierMeta *src_classifier_meta,
828  NvDsClassifierMeta *dst_classifier_meta);
829 
837 void nvds_copy_label_info_meta(NvDsLabelInfo *src_label_info,
838  NvDsLabelInfo *dst_label_info);
839 
847 void nvds_copy_display_meta(NvDsDisplayMeta *src_display_meta,
848  NvDsDisplayMeta *dst_display_meta);
849 
857 void nvds_copy_batch_user_meta_list(NvDsUserMetaList *src_user_meta_list,
858  NvDsBatchMeta *dst_batch_meta);
859 
867 void nvds_copy_frame_user_meta_list(NvDsUserMetaList *src_user_meta_list,
868  NvDsFrameMeta *dst_frame_meta);
869 
877 void nvds_copy_obj_user_meta_list(NvDsUserMetaList *src_user_meta_list,
878  NvDsObjectMeta *dst_object_meta);
879 
887 void nvds_copy_display_meta_list(NvDisplayMetaList *src_display_meta_list,
888  NvDsFrameMeta *dst_frame_meta);
889 
897 void nvds_copy_frame_meta_list (NvDsFrameMetaList *src_frame_meta_list,
898  NvDsBatchMeta *dst_batch_meta);
899 
907 void nvds_copy_obj_meta_list(NvDsObjectMetaList *src_obj_meta_list,
908  NvDsFrameMeta *dst_frame_meta);
909 
917 void nvds_copy_classification_list(NvDsClassifierMetaList *src_classifier_meta_list,
918  NvDsObjectMeta *dst_object_meta);
919 
927 void nvds_copy_label_info_list(NvDsLabelInfoList *src_label_info_list,
928  NvDsClassifierMeta *dst_classifier_meta);
929 
939 NvDsMetaType nvds_get_user_meta_type(gchar *meta_descriptor);
940 
941 #ifdef __cplusplus
942 }
943 #endif
944 #endif
945 
metadata type of segmentation model output attached by gst-nvinfer.
Definition: nvdsmeta.h:113
gchar * pResult_label
A pointer to store the result if it exceeds MAX_LABEL_SIZE bytes.
Definition: nvdsmeta.h:320
Holds information of frame metadata in the batch.
Definition: nvdsmeta.h:210
guint element_size
size of an element in the given pool.
Definition: nvdsmeta.h:136
NvDsMetaList * nvds_clear_meta_list(NvDsBatchMeta *batch_meta, NvDsMetaList *meta_list, NvDsMetaPool *meta_pool)
removes all the metadata elements present in the given metadata list
metadata type to be set for payload generated by msg converter
Definition: nvdsmeta.h:101
metadata type to be set for display
Definition: nvdsmeta.h:92
NvDsMetaList * full_list
List containing full elements.
Definition: nvdsmeta.h:144
NvDsMetaReleaseFunc release_func
release function to be provided by the user It is called when meta_data is going to be released...
Definition: nvdsmeta.h:169
gint64 reserved[MAX_RESERVED_FIELDS]
For internal purpose.
Definition: nvdsmeta.h:255
struct _NvDsClassifierMeta NvDsClassifierMeta
Holds information of classifier metadata in the object.
gint num_surfaces_per_frame
Number of surfaces present in this frame.
Definition: nvdsmeta.h:231
guint64 object_id
Unique ID for tracking the object.
Definition: nvdsmeta.h:272
Holds information about base metadata of given metadata type.
Definition: nvdsmeta.h:154
guint num_full_elements
number of filled elements.
Definition: nvdsmeta.h:140
NvDsMetaList * empty_list
List containing empty elements.
Definition: nvdsmeta.h:142
NvOSD_TextParams text_params[MAX_ELEMENTS_IN_DISPLAY_META]
Text describing the user defined string can be overlayed using this structure.
Definition: nvdsmeta.h:347
NvDisplayMetaList * display_meta_list
list of pointers of type “NvDsDisplayMeta” in use for the given frame
Definition: nvdsmeta.h:249
gchar result_label[MAX_LABEL_SIZE]
an array to store the string describing the label of the classified object
Definition: nvdsmeta.h:318
metadata type to be set for given label of classifier
Definition: nvdsmeta.h:96
void nvds_remove_user_meta_from_frame(NvDsFrameMeta *frame_meta, NvDsUserMeta *user_meta)
Removes given user metadata from the frame metadata.
NvDsMetaCopyFunc copy_func
copy function to be provided by the user.
Definition: nvdsmeta.h:165
GList NvDisplayMetaList
Definition: nvdsmeta.h:54
gint class_id
Index of the object class infered by the primary detector/classifier.
Definition: nvdsmeta.h:269
NvDsClassifierMeta * nvds_acquire_classifier_meta_from_pool(NvDsBatchMeta *batch_meta)
Acquires NvDsClassifierMeta from the classifier meta pool User must acquire the classifier meta from ...
metadata type of raw inference output attached by gst-nvinfer.
Definition: nvdsmeta.h:110
void nvds_clear_obj_user_meta_list(NvDsObjectMeta *object_meta, NvDsUserMetaList *meta_list)
removes all the user metadata present in the object metadata
guint num_lines
number of lines present in display meta
Definition: nvdsmeta.h:339
void nvds_remove_user_meta_from_batch(NvDsBatchMeta *batch_meta, NvDsUserMeta *user_meta)
Removes given user metadata from the batch metadata.
struct _NvDsLabelInfo NvDsLabelInfo
Holds information of label metadata in the classifier.
NvOSD_TextParams text_params
Text describing the object can be overlayed using this structure.
Definition: nvdsmeta.h:282
guint label_id
label_id in case of multi label classifier
Definition: nvdsmeta.h:324
void nvds_copy_obj_user_meta_list(NvDsUserMetaList *src_user_meta_list, NvDsObjectMeta *dst_object_meta)
deep copy of src_user_meta_list to user meta list present in the dst_object_meta. ...
gint unique_component_id
unique component id that attaches NvDsClassifierMeta metadata
Definition: nvdsmeta.h:304
void nvds_add_user_meta_to_batch(NvDsBatchMeta *batch_meta, NvDsUserMeta *user_meta)
After acquiring and filling user metadata user must add it to batch metadata if required at batch lev...
struct _NvDsMetaPool NvDsMetaPool
Holds information about given metadata pool.
NvDsBaseMeta base_meta
Definition: nvdsmeta.h:313
Reserved field.
Definition: nvdsmeta.h:115
void nvds_remove_user_meta_from_object(NvDsObjectMeta *obj_meta, NvDsUserMeta *user_meta)
Removes given user metadata from the object metadata.
void nvds_remove_classifier_meta_from_obj(NvDsObjectMeta *obj_meta, NvDsClassifierMeta *classifier_meta)
Removes given classifier meta from object metadata.
gint64 misc_osd_data[MAX_USER_FIELDS]
user specific osd metadata
Definition: nvdsmeta.h:353
Holds information of label metadata in the classifier.
Definition: nvdsmeta.h:312
void nvds_copy_classifier_meta(NvDsClassifierMeta *src_classifier_meta, NvDsClassifierMeta *dst_classifier_meta)
deep copy of src_classifier_meta to dst_classifier_meta.
NvDsBaseMeta base_meta
Definition: nvdsmeta.h:333
guint num_rects
number of rectangles present in display meta
Definition: nvdsmeta.h:335
metadata type to be set for optical flow
Definition: nvdsmeta.h:105
void nvds_copy_frame_meta(NvDsFrameMeta *src_frame_meta, NvDsFrameMeta *dst_frame_meta)
deep copy of src_frame_meta to dst_frame_meta.
struct _NvDsObjectMeta * parent
pointer to the parent NvDsObjectMeta.
Definition: nvdsmeta.h:265
gboolean bInferDone
boolean indicating whether inference is performed on given frame
Definition: nvdsmeta.h:245
void nvds_clear_frame_user_meta_list(NvDsFrameMeta *frame_meta, NvDsUserMetaList *meta_list)
removes all the user metadata present in the frame metadata
NvDsDisplayMeta * nvds_acquire_display_meta_from_pool(NvDsBatchMeta *batch_meta)
Acquires NvDsDisplayMeta from the display meta pool User must acquire the display meta from the displ...
NvDsMetaReleaseFunc release_func
release function.
Definition: nvdsmeta.h:148
Holds information of user metadata that user can specify.
Definition: nvdsmeta.h:361
Holds the box parameters of the box to be overlayed.
#define MAX_USER_FIELDS
number of additional fields in the metadata structure that user can use
Definition: nvdsmeta.h:40
guint max_frames_in_batch
maximum number of frames those can be present the batch
Definition: nvdsmeta.h:179
NvDsBaseMeta base_meta
base metadata for frame
Definition: nvdsmeta.h:212
NvDsMetaPool * obj_meta_pool
pool of pointers of type “NvDsObjMeta”
Definition: nvdsmeta.h:185
void * uContext
pointer to user context.
Definition: nvdsmeta.h:160
gint64 misc_obj_info[MAX_USER_FIELDS]
For additional user object info.
Definition: nvdsmeta.h:291
NvDsFrameMeta * nvds_acquire_frame_meta_from_pool(NvDsBatchMeta *batch_meta)
Acquires NvDsFrameMeta from frame_meta pool.
guint num_labels
number of outputs/labels of the classifier
Definition: nvdsmeta.h:302
gint64 misc_batch_info[MAX_USER_FIELDS]
For additional user specific batch info.
Definition: nvdsmeta.h:202
guint batch_id
location of the frame in the batch.
Definition: nvdsmeta.h:219
void nvds_copy_frame_meta_list(NvDsFrameMetaList *src_frame_meta_list, NvDsBatchMeta *dst_batch_meta)
deep copy of src_frame_meta_list to frame meta list present in the dst_batch_meta.
NvDsUserMeta * nvds_acquire_user_meta_from_pool(NvDsBatchMeta *batch_meta)
acquires NvDsUserMeta from the user meta pool User must acquire the user meta from the user meta pool...
void nvds_add_display_meta_to_frame(NvDsFrameMeta *frame_meta, NvDsDisplayMeta *display_meta)
After acquiring and filling classifier metadata user must add it to the frame metadata with this API...
metadata type to be set for detected object
Definition: nvdsmeta.h:90
struct _NvDsFrameMeta NvDsFrameMeta
Holds information of frame metadata in the batch.
gboolean nvds_destroy_batch_meta(NvDsBatchMeta *batch_meta)
Releases NvDsBatchMeta batch_meta pointer.
void nvds_clear_frame_meta_list(NvDsBatchMeta *batch_meta, NvDsFrameMetaList *meta_list)
removes all the frame metadata present in the batch metadata
GList NvDsLabelInfoList
Definition: nvdsmeta.h:56
void nvds_copy_batch_user_meta_list(NvDsUserMetaList *src_user_meta_list, NvDsBatchMeta *dst_batch_meta)
deep copy of src_user_meta_list to user meta list present in the dst_batch_meta.
void nvds_remove_obj_meta_from_frame(NvDsFrameMeta *frame_meta, NvDsObjectMeta *obj_meta)
Removes given object meta from the frame metadata.
Holds information about given metadata pool.
Definition: nvdsmeta.h:130
Holds information a formed batched containing the frames from different sources.
Definition: nvdsmeta.h:176
void nvds_copy_display_meta(NvDsDisplayMeta *src_display_meta, NvDsDisplayMeta *dst_display_meta)
deep copy of src_display_meta to dst_display_meta.
NvDsBaseMeta base_meta
Definition: nvdsmeta.h:362
void nvds_remove_display_meta_from_frame(NvDsFrameMeta *frame_meta, NvDsDisplayMeta *display_meta)
Removes given display meta from frame metadata.
NvDsMetaPool * label_info_meta_pool
A pool of pointers of type “NvDsLabelInfo”
Definition: nvdsmeta.h:193
NvDsLabelInfoList * label_info_list
list of label pointers of the given class
Definition: nvdsmeta.h:306
NvDsMetaPool * display_meta_pool
A pool of pointers of type “NvDsDisplayMeta”
Definition: nvdsmeta.h:189
void nvds_clear_display_meta_list(NvDsFrameMeta *frame_meta, NvDisplayMetaList *meta_list)
removes all the display metadata present in the frame metadata
NvDsMetaType nvds_get_user_meta_type(gchar *meta_descriptor)
generates a unique user metadata type from the given string describing user specific metadata...
GRecMutex meta_mutex
lock to be taken before accessing metadata to avoid simultaneous update of same metadata by multiple ...
Definition: nvdsmeta.h:200
NvDsLabelInfo * nvds_acquire_label_info_meta_from_pool(NvDsBatchMeta *batch_meta)
Acquires NvDsLabelInfo from the labelinfo meta pool User must acquire the labelinfo meta from the lab...
struct _NvDsBaseMeta NvDsBaseMeta
Holds information about base metadata of given metadata type.
void nvds_clear_classifier_meta_list(NvDsObjectMeta *obj_meta, NvDsClassifierMetaList *meta_list)
removes all the classifier metadata present in the object metadata
used for internal purpose
Definition: nvdsmeta.h:98
NvDsBaseMeta base_meta
Definition: nvdsmeta.h:300
guint result_class_id
class_id of the best result
Definition: nvdsmeta.h:322
gpointer(* NvDsMetaCopyFunc)(gpointer data, gpointer user_data)
Specifies the type of function to copy meta data.
Definition: nvdsmeta.h:68
void nvds_acquire_meta_lock(NvDsBatchMeta *batch_meta)
lock to be acquired before updating metadata
Holds information of classifier metadata in the object.
Definition: nvdsmeta.h:299
void nvds_add_classifier_meta_to_object(NvDsObjectMeta *obj_meta, NvDsClassifierMeta *classifier_meta)
After acquiring and filling classifier metadata user must add it to the object metadata with this API...
void nvds_copy_obj_meta_list(NvDsObjectMetaList *src_obj_meta_list, NvDsFrameMeta *dst_frame_meta)
deep copy of src_obj_meta_list to frame meta list present in the dst_frame_meta.
guint64 ntp_timestamp
ntp timestamp 
Definition: nvdsmeta.h:225
NvDsObjectMetaList * obj_meta_list
list of pointers of type “NvDsObjectMeta” in use for the given frame
Definition: nvdsmeta.h:247
void nvds_release_meta_lock(NvDsBatchMeta *batch_meta)
lock to be released after updating metadata
void nvds_copy_display_meta_list(NvDisplayMetaList *src_display_meta_list, NvDsFrameMeta *dst_frame_meta)
deep copy of src_display_meta_list to display meta list present in the dst_frame_meta.
void NvDsElementMeta
Definition: nvdsmeta.h:58
GList NvDsUserMetaList
Definition: nvdsmeta.h:52
void nvds_clear_batch_user_meta_list(NvDsBatchMeta *batch_meta, NvDsUserMetaList *meta_list)
removes all the user metadata present in the batch metadata
guint max_elements_in_pool
max elements in the pool.
Definition: nvdsmeta.h:134
NvDsMetaPool * classifier_meta_pool
pool of pointers of type “NvDsClassifierMeta”
Definition: nvdsmeta.h:187
NvOSD_RectParams rect_params[MAX_ELEMENTS_IN_DISPLAY_META]
Structure containing the positional parameters to overlay borders or semi-transparent rectangles as r...
Definition: nvdsmeta.h:344
gint64 reserved[MAX_RESERVED_FIELDS]
For internal purpose only.
Definition: nvdsmeta.h:293
GList NvDsFrameMetaList
Definition: nvdsmeta.h:51
Holds information of object metadata in the frame.
Definition: nvdsmeta.h:261
void nvds_remove_frame_meta_from_batch(NvDsBatchMeta *batch_meta, NvDsFrameMeta *frame_meta)
Removes given frame meta from the batch metadata.
metadata type to be set for object classifier
Definition: nvdsmeta.h:94
void nvds_copy_classification_list(NvDsClassifierMetaList *src_classifier_meta_list, NvDsObjectMeta *dst_object_meta)
deep copy of src_classifier_meta_list to classifier meta list present in the dst_object_meta.
void nvds_copy_frame_user_meta_list(NvDsUserMetaList *src_user_meta_list, NvDsFrameMeta *dst_frame_meta)
deep copy of src_user_meta_list to user meta list present in the dst_frame_meta.
gint64 reserved[MAX_RESERVED_FIELDS]
for internal purpose
Definition: nvdsmeta.h:355
Holds the box parameters of the line to be overlayed.
void nvds_add_label_info_meta_to_classifier(NvDsClassifierMeta *classifier_meta, NvDsLabelInfo *label_info_meta)
After acquiring and filling labelinfo metadata user must add it to the classifier metadata with this ...
gfloat result_prob
probability of best result
Definition: nvdsmeta.h:326
gpointer nvds_batch_meta_copy_func(gpointer data, gpointer user_data)
copy function to copy batch_meta It is called when meta_data needs to copied / transformed from one b...
struct _NvDsObjectMeta NvDsObjectMeta
Holds information of object metadata in the frame.
NvDsMetaPool * user_meta_pool
A pool of pointers of type “NvDsUserMeta”
Definition: nvdsmeta.h:191
void nvds_add_user_meta_to_obj(NvDsObjectMeta *obj_meta, NvDsUserMeta *user_meta)
After acquiring and filling user metadata user must add it to object metadata if required at object l...
void nvds_batch_meta_release_func(gpointer data, gpointer user_data)
batch_meta release function called when meta_data is going to be released.
gint frame_num
current frame number of the source
Definition: nvdsmeta.h:221
guint pad_index
pad or port index of stream muxer component for the frame in the batch
Definition: nvdsmeta.h:215
NVIDIA Multimedia Utilities: On-Screen Display Structure
Holds the text parameters of the text to be overlayed.
NvDsFrameMeta * nvds_get_nth_frame_meta(NvDsFrameMetaList *frame_meta_list, guint index)
Returns NvDsFrameMeta pointer at given index from the frame_meta_list.
void nvds_add_user_meta_to_frame(NvDsFrameMeta *frame_meta, NvDsUserMeta *user_meta)
After acquiring and filling user metadata user must add it to frame metadata if required at frame lev...
guint num_labels
number of labels/strings present in display meta
Definition: nvdsmeta.h:337
guint source_frame_height
Definition: nvdsmeta.h:235
NvDsUserMetaList * obj_user_meta_list
list of pointers of type NvDsUserMeta
Definition: nvdsmeta.h:289
guint surface_index
Definition: nvdsmeta.h:241
void nvds_clear_label_info_meta_list(NvDsClassifierMeta *classifier_meta, NvDsLabelInfoList *meta_list)
removes all the label info metadata present in classifier metadata
NvDsClassifierMetaList * classifier_meta_list
list of pointers of type NvDsClassifierMeta
Definition: nvdsmeta.h:287
guint num_classes
number of classes of the given label
Definition: nvdsmeta.h:315
metadata type to be set for latency measurement
Definition: nvdsmeta.h:107
NvOSD_RectParams rect_params
Structure containing the positional parameters of the object in the frame.
Definition: nvdsmeta.h:279
guint surface_type
Definition: nvdsmeta.h:238
metadata type to be set for payload generated by msg broker
Definition: nvdsmeta.h:103
guint num_frames_in_batch
Number of frames present in the current batch.
Definition: nvdsmeta.h:181
void nvds_copy_label_info_list(NvDsLabelInfoList *src_label_info_list, NvDsClassifierMeta *dst_classifier_meta)
deep copy of src_label_info_list to label info meta list present in the dst_classifier_meta.
struct _NvDsBatchMeta NvDsBatchMeta
Holds information a formed batched containing the frames from different sources.
guint source_id
source_id of the frame in the batch e.g.
Definition: nvdsmeta.h:228
gint64 reserved[MAX_RESERVED_FIELDS]
For internal purpose.
Definition: nvdsmeta.h:204
gfloat confidence
confidence value of the object, set by inference component
Definition: nvdsmeta.h:274
NvDsBaseMeta base_meta
Definition: nvdsmeta.h:262
struct _NvDsUserMeta NvDsUserMeta
Holds information of user metadata that user can specify.
NvDsMetaType meta_type
type of the pool.
Definition: nvdsmeta.h:132
void nvds_add_obj_meta_to_frame(NvDsFrameMeta *frame_meta, NvDsObjectMeta *obj_meta, NvDsObjectMeta *obj_parent)
After acquiring and filling object metadata user must add it to the frame metadata with this API...
metadata type to be set for formed batch
Definition: nvdsmeta.h:86
void * user_meta_data
pointer to user data to be attached Refer to deepstream-user-metadata-test example for usage ...
Definition: nvdsmeta.h:365
#define MAX_ELEMENTS_IN_DISPLAY_META
maximum elements those can be held in given display metadata
Definition: nvdsmeta.h:47
guint num_empty_elements
number of empty elements.
Definition: nvdsmeta.h:138
gint64 misc_frame_info[MAX_USER_FIELDS]
For additional user frame info.
Definition: nvdsmeta.h:253
guint64 buf_pts
pts of the frame
Definition: nvdsmeta.h:223
NvDsFrameMetaList * frame_meta_list
A list of pointers of type “NvDsFrameMeta" in use in the current batch.
Definition: nvdsmeta.h:195
NvDsMetaPool * frame_meta_pool
pool of pointers of type “NvDsFrameMeta”
Definition: nvdsmeta.h:183
void nvds_clear_obj_meta_list(NvDsFrameMeta *frame_meta, NvDsObjectMetaList *meta_list)
removes all the object metadata present in the frame metadata
Start adding user specific meta types from here.
Definition: nvdsmeta.h:123
void(* NvDsMetaReleaseFunc)(gpointer data, gpointer user_data)
Specifies the type of function to free meta data.
Definition: nvdsmeta.h:76
gint unique_component_id
unique component id that attaches NvDsObjectMeta metadata
Definition: nvdsmeta.h:267
void nvds_remove_label_info_meta_from_classifier(NvDsClassifierMeta *classifier_meta, NvDsLabelInfo *label_info_meta)
Removes given labelinfo meta from the classifier metadata.
#define MAX_LABEL_SIZE
maximum array size to store the text result
Definition: nvdsmeta.h:45
GList NvDsMetaList
Definition: nvdsmeta.h:57
metadata type to be set for metadata attached by nvidia gstreamer plugins before nvstreammux gstreame...
Definition: nvdsmeta.h:121
NvDsUserMetaList * batch_user_meta_list
A list of pointers of type “NvDsUserMeta” in use in the current batch.
Definition: nvdsmeta.h:197
NvDsObjectMeta * nvds_acquire_obj_meta_from_pool(NvDsBatchMeta *batch_meta)
Acquires NvDsObjectMeta from the object meta pool User must acquire the object meta from the object m...
NvDsMetaCopyFunc copy_func
copy function.
Definition: nvdsmeta.h:146
void nvds_copy_label_info_meta(NvDsLabelInfo *src_label_info, NvDsLabelInfo *dst_label_info)
deep copy of src_label_info to dst_label_info.
#define MAX_RESERVED_FIELDS
number of additional reserved fields in the metadata structure.
Definition: nvdsmeta.h:43
NvDsMetaType
Specifies the type of meta data.
Definition: nvdsmeta.h:83
guint source_frame_width
Definition: nvdsmeta.h:233
NvDsUserMetaList * frame_user_meta_list
list of pointers of type “NvDsUserMeta” in use for the given frame
Definition: nvdsmeta.h:251
struct NvDsDisplayMeta NvDsDisplayMeta
Holds information of display metadata that user can specify in the frame.
metadata type to be set for frame
Definition: nvdsmeta.h:88
GList NvDsClassifierMetaList
Definition: nvdsmeta.h:55
void nvds_copy_obj_meta(NvDsObjectMeta *src_object_meta, NvDsObjectMeta *dst_object_meta)
deep copy of src_object_meta to dst_object_meta.
GList NvDsObjectMetaList
Definition: nvdsmeta.h:53
void nvds_add_frame_meta_to_batch(NvDsBatchMeta *batch_meta, NvDsFrameMeta *frame_meta)
After acquiring and filling frame metadata, user must add it to the batch metadata with this API...
NvDsMetaType meta_type
metadata type of the given element
Definition: nvdsmeta.h:158
NvDsBaseMeta base_meta
Definition: nvdsmeta.h:177
struct _NvDsBatchMeta * batch_meta
pointer to batch_meta
Definition: nvdsmeta.h:156
NvOSD_LineParams line_params[MAX_ELEMENTS_IN_DISPLAY_META]
parameters of the line of polygon that user can draw in the frame.
Definition: nvdsmeta.h:351
guint num_obj_meta
number of object meta elements attached to the current frame
Definition: nvdsmeta.h:243
gchar obj_label[MAX_LABEL_SIZE]
an array to store the string describing the class of the detected object
Definition: nvdsmeta.h:285
NvDsBatchMeta * nvds_create_batch_meta(guint max_batch_size)
Creates a NvDsBatchMeta of given batch size.
gboolean nvds_get_current_metadata_info(NvDsBatchMeta *batch_meta)
Debug function to get current metadata info.
Holds information of display metadata that user can specify in the frame.
Definition: nvdsmeta.h:332