NVIDIA DeepStream SDK API Reference

4.0 Release

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups
Metadata Structures

Detailed Description

Define structures that hold metadata.

Data Structures

struct  _NvDsMetaPool
 Holds information about given metadata pool. More...
 
struct  _NvDsBaseMeta
 Holds information about base metadata of given metadata type. More...
 
struct  _NvDsBatchMeta
 Holds information a formed batched containing the frames from different sources. More...
 
struct  _NvDsFrameMeta
 Holds information of frame metadata in the batch. More...
 
struct  _NvDsObjectMeta
 Holds information of object metadata in the frame. More...
 
struct  _NvDsClassifierMeta
 Holds information of classifier metadata in the object. More...
 
struct  _NvDsLabelInfo
 Holds information of label metadata in the classifier. More...
 
struct  NvDsDisplayMeta
 Holds information of display metadata that user can specify in the frame. More...
 
struct  _NvDsUserMeta
 Holds information of user metadata that user can specify. More...
 

Macros

#define MAX_USER_FIELDS   4
 number of additional fields in the metadata structure that user can use More...
 
#define MAX_RESERVED_FIELDS   4
 number of additional reserved fields in the metadata structure. More...
 
#define MAX_LABEL_SIZE   128
 maximum array size to store the text result More...
 
#define MAX_ELEMENTS_IN_DISPLAY_META   16
 maximum elements those can be held in given display metadata More...
 
#define UNTRACKED_OBJECT_ID   0xFFFFFFFFFFFFFFFF
 Untracked object id. More...
 

Typedefs

typedef GList NvDsFrameMetaList
 
typedef GList NvDsUserMetaList
 
typedef GList NvDsObjectMetaList
 
typedef GList NvDisplayMetaList
 
typedef GList NvDsClassifierMetaList
 
typedef GList NvDsLabelInfoList
 
typedef GList NvDsMetaList
 
typedef void NvDsElementMeta
 
typedef gpointer(* NvDsMetaCopyFunc )(gpointer data, gpointer user_data)
 Specifies the type of function to copy meta data. More...
 
typedef void(* NvDsMetaReleaseFunc )(gpointer data, gpointer user_data)
 Specifies the type of function to free meta data. More...
 
typedef struct _NvDsMetaPool NvDsMetaPool
 Holds information about given metadata pool. More...
 
typedef struct _NvDsBaseMeta NvDsBaseMeta
 Holds information about base metadata of given metadata type. More...
 
typedef struct _NvDsBatchMeta NvDsBatchMeta
 Holds information a formed batched containing the frames from different sources. More...
 
typedef struct _NvDsFrameMeta NvDsFrameMeta
 Holds information of frame metadata in the batch. More...
 
typedef struct _NvDsObjectMeta NvDsObjectMeta
 Holds information of object metadata in the frame. More...
 
typedef struct _NvDsClassifierMeta NvDsClassifierMeta
 Holds information of classifier metadata in the object. More...
 
typedef struct _NvDsLabelInfo NvDsLabelInfo
 Holds information of label metadata in the classifier. More...
 
typedef struct NvDsDisplayMeta NvDsDisplayMeta
 Holds information of display metadata that user can specify in the frame. More...
 
typedef struct _NvDsUserMeta NvDsUserMeta
 Holds information of user metadata that user can specify. More...
 

Enumerations

enum  NvDsMetaType {
  NVDS_INVALID_META =-1,
  NVDS_BATCH_META = 1,
  NVDS_FRAME_META,
  NVDS_OBJ_META,
  NVDS_DISPLAY_META,
  NVDS_CLASSIFIER_META,
  NVDS_LABEL_INFO_META,
  NVDS_USER_META,
  NVDS_PAYLOAD_META,
  NVDS_EVENT_MSG_META,
  NVDS_OPTICAL_FLOW_META,
  NVDS_LATENCY_MEASUREMENT_META,
  NVDSINFER_TENSOR_OUTPUT_META,
  NVDSINFER_SEGMENTATION_META,
  NVDS_RESERVED_META = 4095,
  NVDS_GST_CUSTOM_META = 4096,
  NVDS_START_USER_META = NVDS_GST_CUSTOM_META + 4096 + 1,
  NVDS_FORCE32_META = 0x7FFFFFFF
}
 Specifies the type of meta data. More...
 

Functions

void nvds_acquire_meta_lock (NvDsBatchMeta *batch_meta)
 lock to be acquired before updating metadata More...
 
void nvds_release_meta_lock (NvDsBatchMeta *batch_meta)
 lock to be released after updating metadata More...
 
NvDsBatchMetanvds_create_batch_meta (guint max_batch_size)
 Creates a NvDsBatchMeta of given batch size. More...
 
gboolean nvds_destroy_batch_meta (NvDsBatchMeta *batch_meta)
 Releases NvDsBatchMeta batch_meta pointer. More...
 
NvDsFrameMetanvds_acquire_frame_meta_from_pool (NvDsBatchMeta *batch_meta)
 Acquires NvDsFrameMeta from frame_meta pool. More...
 
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. More...
 
void nvds_remove_frame_meta_from_batch (NvDsBatchMeta *batch_meta, NvDsFrameMeta *frame_meta)
 Removes given frame meta from the batch metadata. More...
 
NvDsObjectMetanvds_acquire_obj_meta_from_pool (NvDsBatchMeta *batch_meta)
 Acquires NvDsObjectMeta from the object meta pool User must acquire the object meta from the object meta pool to fill object metatada. More...
 
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. More...
 
void nvds_remove_obj_meta_from_frame (NvDsFrameMeta *frame_meta, NvDsObjectMeta *obj_meta)
 Removes given object meta from the frame metadata. More...
 
NvDsClassifierMetanvds_acquire_classifier_meta_from_pool (NvDsBatchMeta *batch_meta)
 Acquires NvDsClassifierMeta from the classifier meta pool User must acquire the classifier meta from the classifier meta pool to fill classifier metatada. More...
 
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. More...
 
void nvds_remove_classifier_meta_from_obj (NvDsObjectMeta *obj_meta, NvDsClassifierMeta *classifier_meta)
 Removes given classifier meta from object metadata. More...
 
NvDsDisplayMetanvds_acquire_display_meta_from_pool (NvDsBatchMeta *batch_meta)
 Acquires NvDsDisplayMeta from the display meta pool User must acquire the display meta from the display meta pool to fill display metatada. More...
 
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. More...
 
void nvds_remove_display_meta_from_frame (NvDsFrameMeta *frame_meta, NvDsDisplayMeta *display_meta)
 Removes given display meta from frame metadata. More...
 
NvDsLabelInfonvds_acquire_label_info_meta_from_pool (NvDsBatchMeta *batch_meta)
 Acquires NvDsLabelInfo from the labelinfo meta pool User must acquire the labelinfo meta from the labelinfo meta pool to fill labelinfo metatada. More...
 
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 API. More...
 
void nvds_remove_label_info_meta_from_classifier (NvDsClassifierMeta *classifier_meta, NvDsLabelInfo *label_info_meta)
 Removes given labelinfo meta from the classifier metadata. More...
 
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 level with this API. More...
 
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 level with this API. More...
 
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 level with this API. More...
 
NvDsUserMetanvds_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 to fill user metatada More...
 
void nvds_remove_user_meta_from_batch (NvDsBatchMeta *batch_meta, NvDsUserMeta *user_meta)
 Removes given user metadata from the batch metadata. More...
 
void nvds_remove_user_meta_from_frame (NvDsFrameMeta *frame_meta, NvDsUserMeta *user_meta)
 Removes given user metadata from the frame metadata. More...
 
void nvds_remove_user_meta_from_object (NvDsObjectMeta *obj_meta, NvDsUserMeta *user_meta)
 Removes given user metadata from the object metadata. More...
 
gboolean nvds_get_current_metadata_info (NvDsBatchMeta *batch_meta)
 Debug function to get current metadata info. More...
 
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 buffer to other. More...
 
void nvds_batch_meta_release_func (gpointer data, gpointer user_data)
 batch_meta release function called when meta_data is going to be released. More...
 
NvDsFrameMetanvds_get_nth_frame_meta (NvDsFrameMetaList *frame_meta_list, guint index)
 Returns NvDsFrameMeta pointer at given index from the frame_meta_list. More...
 
void nvds_clear_frame_meta_list (NvDsBatchMeta *batch_meta, NvDsFrameMetaList *meta_list)
 removes all the frame metadata present in the batch metadata More...
 
void nvds_clear_obj_meta_list (NvDsFrameMeta *frame_meta, NvDsObjectMetaList *meta_list)
 removes all the object metadata present in the frame metadata More...
 
void nvds_clear_classifier_meta_list (NvDsObjectMeta *obj_meta, NvDsClassifierMetaList *meta_list)
 removes all the classifier metadata present in the object metadata More...
 
void nvds_clear_label_info_meta_list (NvDsClassifierMeta *classifier_meta, NvDsLabelInfoList *meta_list)
 removes all the label info metadata present in classifier metadata More...
 
void nvds_clear_display_meta_list (NvDsFrameMeta *frame_meta, NvDisplayMetaList *meta_list)
 removes all the display metadata present in the frame metadata More...
 
void nvds_clear_batch_user_meta_list (NvDsBatchMeta *batch_meta, NvDsUserMetaList *meta_list)
 removes all the user metadata present in the batch metadata More...
 
void nvds_clear_frame_user_meta_list (NvDsFrameMeta *frame_meta, NvDsUserMetaList *meta_list)
 removes all the user metadata present in the frame metadata More...
 
void nvds_clear_obj_user_meta_list (NvDsObjectMeta *object_meta, NvDsUserMetaList *meta_list)
 removes all the user metadata present in the object metadata More...
 
NvDsMetaListnvds_clear_meta_list (NvDsBatchMeta *batch_meta, NvDsMetaList *meta_list, NvDsMetaPool *meta_pool)
 removes all the metadata elements present in the given metadata list More...
 
void nvds_copy_frame_meta (NvDsFrameMeta *src_frame_meta, NvDsFrameMeta *dst_frame_meta)
 deep copy of src_frame_meta to dst_frame_meta. More...
 
void nvds_copy_obj_meta (NvDsObjectMeta *src_object_meta, NvDsObjectMeta *dst_object_meta)
 deep copy of src_object_meta to dst_object_meta. More...
 
void nvds_copy_classifier_meta (NvDsClassifierMeta *src_classifier_meta, NvDsClassifierMeta *dst_classifier_meta)
 deep copy of src_classifier_meta to dst_classifier_meta. More...
 
void nvds_copy_label_info_meta (NvDsLabelInfo *src_label_info, NvDsLabelInfo *dst_label_info)
 deep copy of src_label_info to dst_label_info. More...
 
void nvds_copy_display_meta (NvDsDisplayMeta *src_display_meta, NvDsDisplayMeta *dst_display_meta)
 deep copy of src_display_meta to dst_display_meta. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
NvDsMetaType nvds_get_user_meta_type (gchar *meta_descriptor)
 generates a unique user metadata type from the given string describing user specific metadata. More...
 

Macro Definition Documentation

#define MAX_ELEMENTS_IN_DISPLAY_META   16

maximum elements those can be held in given display metadata

Definition at line 47 of file nvdsmeta.h.

#define MAX_LABEL_SIZE   128

maximum array size to store the text result

Definition at line 45 of file nvdsmeta.h.

#define MAX_RESERVED_FIELDS   4

number of additional reserved fields in the metadata structure.

It is for internal purpose

Definition at line 43 of file nvdsmeta.h.

#define MAX_USER_FIELDS   4

number of additional fields in the metadata structure that user can use

Definition at line 40 of file nvdsmeta.h.

#define UNTRACKED_OBJECT_ID   0xFFFFFFFFFFFFFFFF

Untracked object id.

Definition at line 49 of file nvdsmeta.h.

Typedef Documentation

typedef GList NvDisplayMetaList

Definition at line 54 of file nvdsmeta.h.

typedef struct _NvDsBaseMeta NvDsBaseMeta

Holds information about base metadata of given metadata type.

typedef struct _NvDsBatchMeta NvDsBatchMeta

Holds information a formed batched containing the frames from different sources.

Holds information of classifier metadata in the object.

typedef GList NvDsClassifierMetaList

Definition at line 55 of file nvdsmeta.h.

Holds information of display metadata that user can specify in the frame.

typedef void NvDsElementMeta

Definition at line 58 of file nvdsmeta.h.

typedef struct _NvDsFrameMeta NvDsFrameMeta

Holds information of frame metadata in the batch.

typedef GList NvDsFrameMetaList

Definition at line 51 of file nvdsmeta.h.

typedef struct _NvDsLabelInfo NvDsLabelInfo

Holds information of label metadata in the classifier.

typedef GList NvDsLabelInfoList

Definition at line 56 of file nvdsmeta.h.

typedef gpointer(* NvDsMetaCopyFunc)(gpointer data, gpointer user_data)

Specifies the type of function to copy meta data.

It is passed the pointer to meta data and user specific data. It allocates the required memory, copies the content from src metadata and returns the pointer to newly allocated memory.

user_data is for internal purpose only. User should set it to NULL.

Definition at line 68 of file nvdsmeta.h.

typedef GList NvDsMetaList

Definition at line 57 of file nvdsmeta.h.

typedef struct _NvDsMetaPool NvDsMetaPool

Holds information about given metadata pool.

typedef void(* NvDsMetaReleaseFunc)(gpointer data, gpointer user_data)

Specifies the type of function to free meta data.

It is passed the pointer to meta data and user specific data. It should free any resource allocated for meta data.

user_data is for internal purpose only. User should set it to NULL.

Definition at line 76 of file nvdsmeta.h.

Holds information of object metadata in the frame.

typedef GList NvDsObjectMetaList

Definition at line 53 of file nvdsmeta.h.

typedef struct _NvDsUserMeta NvDsUserMeta

Holds information of user metadata that user can specify.

typedef GList NvDsUserMetaList

Definition at line 52 of file nvdsmeta.h.

Enumeration Type Documentation

Specifies the type of meta data.

NVIDIA defined NvDsMetaType will be present in the range from NVDS_BATCH_META to NVDS_START_USER_META. User can add it's own metadata type NVDS_START_USER_META onwards.

Enumerator
NVDS_INVALID_META 
NVDS_BATCH_META 

metadata type to be set for formed batch

NVDS_FRAME_META 

metadata type to be set for frame

NVDS_OBJ_META 

metadata type to be set for detected object

NVDS_DISPLAY_META 

metadata type to be set for display

NVDS_CLASSIFIER_META 

metadata type to be set for object classifier

NVDS_LABEL_INFO_META 

metadata type to be set for given label of classifier

NVDS_USER_META 

used for internal purpose

NVDS_PAYLOAD_META 

metadata type to be set for payload generated by msg converter

NVDS_EVENT_MSG_META 

metadata type to be set for payload generated by msg broker

NVDS_OPTICAL_FLOW_META 

metadata type to be set for optical flow

NVDS_LATENCY_MEASUREMENT_META 

metadata type to be set for latency measurement

NVDSINFER_TENSOR_OUTPUT_META 

metadata type of raw inference output attached by gst-nvinfer.

Refer NvDsInferTensorMeta for details.

NVDSINFER_SEGMENTATION_META 

metadata type of segmentation model output attached by gst-nvinfer.

Refer NvDsInferSegmentationMeta for details.

NVDS_RESERVED_META 

Reserved field.

NVDS_GST_CUSTOM_META 

metadata type to be set for metadata attached by nvidia gstreamer plugins before nvstreammux gstreamer plugin.

It is set as user metadata inside NvDsFrameMeta NVIDIA specific gst meta are in the range from NVDS_GST_CUSTOM_META to NVDS_GST_CUSTOM_META + 4096

NVDS_START_USER_META 

Start adding user specific meta types from here.

NVDS_FORCE32_META 

Definition at line 83 of file nvdsmeta.h.

Function Documentation

NvDsClassifierMeta* nvds_acquire_classifier_meta_from_pool ( NvDsBatchMeta batch_meta)

Acquires NvDsClassifierMeta from the classifier meta pool User must acquire the classifier meta from the classifier meta pool to fill classifier metatada.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta from which NvDsClassifierMeta will be acquired

returns acquired NvDsClassifierMeta pointer from classifier meta pool

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 display meta pool to fill display metatada.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta from which NvDsDisplayMeta will be acquired.

returns acquired NvDsDisplayMeta pointer from display meta pool

NvDsFrameMeta* nvds_acquire_frame_meta_from_pool ( NvDsBatchMeta batch_meta)

Acquires NvDsFrameMeta from frame_meta pool.

User must acquire the frame_meta from frame_meta pool to fill frame metatada.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta from which NvDsFrameMeta will be acquired

returns acquired NvDsFrameMeta pointer from frame meta pool

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 labelinfo meta pool to fill labelinfo metatada.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta from which NvDsLabelInfo will be acquired

returns acquired NvDsLabelInfo pointer from label info meta pool

void nvds_acquire_meta_lock ( NvDsBatchMeta batch_meta)

lock to be acquired before updating metadata

Parameters
[in]batch_metaA pointer to NvDsBatchMeta strcture
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 meta pool to fill object metatada.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta from which NvDsObjectMeta will be acquired

returns acquired NvDsObjectMeta pointer from object meta pool

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 to fill user metatada

Parameters
[in]batch_metaA pointer to NvDsBatchMeta from which NvDsUserMeta will be acquired
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.

Parameters
[in]obj_metaA pointer to NvDsObjectMeta to which classifier_meta will be attached.
[in]classifier_metaA pointer to NvDsClassifierMeta acquired from classifier_meta_pool present in NvDsBatchMeta.
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.

Parameters
[in]frame_metaA pointer to NvDsFrameMeta to which display_meta will be attached.
[in]display_metaA pointer to NvDsDisplayMeta acquired from display_meta_pool present in NvDsBatchMeta.
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.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta to which frame_meta will be attached.
[in]frame_metaA pointer to NvDsFrameMeta acquired from frame_meta_pool present in NvDsBatchMeta.
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 API.

Parameters
[in]classifier_metaA pointer to NvDsClassifierMeta to which label_info_meta will be attached.
[in]label_info_metaA pointer to NvDsLabelInfo acquired from label_info_meta_pool present in NvDsBatchMeta.
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.

Parameters
[in]frame_metaA pointer to NvDsFrameMeta to which obj_meta will be attached.
[in]obj_metaA pointer to NvDsObjectMeta acquired from obj_meta_pool present in NvDsBatchMeta.
[in]obj_parentA pointer to parent NvDsObjectMeta. This will set the parent object's pointer inside obj_meta
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 level with this API.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta to which user_meta will be attached.
[in]user_metaA pointer to NvDsUserMeta acquired from user_meta_pool present in NvDsBatchMeta.
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 level with this API.

Parameters
[in]frame_metaA pointer to NvDsFrameMeta to which user_meta will be attached.
[in]user_metaA pointer to NvDsUserMeta acquired from user_meta_pool present in NvDsBatchMeta.
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 level with this API.

Parameters
[in]obj_metaA pointer to NvDsObjectMeta to which user_meta will be attached.
[in]user_metaA pointer to NvDsUserMeta acquired from user_meta_pool present NvDsBatchMeta.
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 buffer to other.

meta_data and user_data are passed as arguments.

Parameters
[in]dataA pointer of type NvDsBatchMeta to be typecasted to gpointer
[in]user_dataA pointer to user specific data

return a void pointer that can be typecasted to NvDsBatchMeta

void nvds_batch_meta_release_func ( gpointer  data,
gpointer  user_data 
)

batch_meta release function called when meta_data is going to be released.

Parameters
[in]dataA pointer of type NvDsBatchMeta to be typecasted to gpointer
[in]user_dataA pointer to user specific data
void nvds_clear_batch_user_meta_list ( NvDsBatchMeta batch_meta,
NvDsUserMetaList meta_list 
)

removes all the user metadata present in the batch metadata

Parameters
[in]batch_metaA pointer to NvDsBatchMeta from which NvDsUserMetaList needs to be cleared
[in]meta_listA pointer to NvDsUserMetaList which needs to be cleared
void nvds_clear_classifier_meta_list ( NvDsObjectMeta obj_meta,
NvDsClassifierMetaList meta_list 
)

removes all the classifier metadata present in the object metadata

Parameters
[in]obj_metaA pointer to NvDsObjectMeta from which NvDsClassifierMetaList needs to be cleared
[in]meta_listA pointer to NvDsClassifierMetaList which needs to be cleared
void nvds_clear_display_meta_list ( NvDsFrameMeta frame_meta,
NvDisplayMetaList meta_list 
)

removes all the display metadata present in the frame metadata

Parameters
[in]frame_metaA pointer to NvDsFrameMeta from which NvDisplayMetaList needs to be cleared
[in]meta_listA pointer to NvDisplayMetaList which needs to be cleared
void nvds_clear_frame_meta_list ( NvDsBatchMeta batch_meta,
NvDsFrameMetaList meta_list 
)

removes all the frame metadata present in the batch metadata

Parameters
[in]batch_metaA pointer to NvDsBatchMeta from which NvDsFrameMetaList needs to be cleared
[in]meta_listA pointer to NvDsFrameMetaList which needs to be cleared
void nvds_clear_frame_user_meta_list ( NvDsFrameMeta frame_meta,
NvDsUserMetaList meta_list 
)

removes all the user metadata present in the frame metadata

Parameters
[in]frame_metaA pointer to NvDsFrameMeta from which NvDsUserMetaList needs to be cleared
[in]meta_listA pointer to NvDsUserMetaList which needs to be cleared
void nvds_clear_label_info_meta_list ( NvDsClassifierMeta classifier_meta,
NvDsLabelInfoList meta_list 
)

removes all the label info metadata present in classifier metadata

Parameters
[in]classifier_metaA pointer to NvDsClassifierMeta from which NvDsLabelInfoList needs to be cleared
[in]meta_listA pointer to NvDsLabelInfoList which needs to be cleared
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

Parameters
[in]batch_metaA pointer to NvDsBatchMeta
[in]meta_listA pointer to NvDsMetaList which needs to be cleared
[in]meta_poolA pointer to NvDsMetaPool to which list belongs to

returns a pointer to the updated meta list

void nvds_clear_obj_meta_list ( NvDsFrameMeta frame_meta,
NvDsObjectMetaList meta_list 
)

removes all the object metadata present in the frame metadata

Parameters
[in]frame_metaA pointer to NvDsFrameMeta from which NvDsObjectMetaList needs to be cleared
[in]meta_listA pointer to NvDsObjectMetaList which needs to be cleared
void nvds_clear_obj_user_meta_list ( NvDsObjectMeta object_meta,
NvDsUserMetaList meta_list 
)

removes all the user metadata present in the object metadata

Parameters
[in]object_metaA pointer to NvDsObjectMeta from which NvDsUserMetaList needs to be cleared
[in]meta_listA pointer to NvDsUserMetaList which needs to be cleared
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.

Parameters
[in]src_user_meta_listA pointer to NvDsUserMetaList
[in]dst_batch_metaA pointer to NvDsBatchMeta
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.

Parameters
[in]src_classifier_meta_listA pointer to NvDsClassifierMetaList
[in]dst_object_metaA pointer to NvDsObjectMeta
void nvds_copy_classifier_meta ( NvDsClassifierMeta src_classifier_meta,
NvDsClassifierMeta dst_classifier_meta 
)

deep copy of src_classifier_meta to dst_classifier_meta.

dst_classifier_meta must be acquired from dst classifier meta pool

Parameters
[in]src_classifier_metaA pointer to NvDsClassifierMeta
[in]dst_classifier_metaA pointer to NvDsClassifierMeta
void nvds_copy_display_meta ( NvDsDisplayMeta src_display_meta,
NvDsDisplayMeta dst_display_meta 
)

deep copy of src_display_meta to dst_display_meta.

dst_display_meta must be acquired from dst display meta pool

Parameters
[in]src_display_metaA pointer to NvDsDisplayMeta
[in]dst_display_metaA pointer to NvDsDisplayMeta
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.

Parameters
[in]src_display_meta_listA pointer to NvDisplayMetaList
[in]dst_frame_metaA pointer to NvDsFrameMeta
void nvds_copy_frame_meta ( NvDsFrameMeta src_frame_meta,
NvDsFrameMeta dst_frame_meta 
)

deep copy of src_frame_meta to dst_frame_meta.

dst_frame_meta must be acquired from dst frame meta pool

Parameters
[in]src_frame_metaA pointer to NvDsFrameMeta
[in]dst_frame_metaA pointer to NvDsFrameMeta
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.

Parameters
[in]src_frame_meta_listA pointer to NvDsFrameMetaList
[in]dst_batch_metaA pointer to NvDsBatchMeta
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.

Parameters
[in]src_user_meta_listA pointer to NvDsUserMetaList
[in]dst_frame_metaA pointer to NvDsFrameMeta
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.

Parameters
[in]src_label_info_listA pointer to NvDsLabelInfoList
[in]dst_classifier_metaA pointer to NvDsClassifierMeta
void nvds_copy_label_info_meta ( NvDsLabelInfo src_label_info,
NvDsLabelInfo dst_label_info 
)

deep copy of src_label_info to dst_label_info.

dst_label_info must be acquired from dst labelinfo meta pool

Parameters
[in]src_label_infoA pointer to NvDsLabelInfo
[in]dst_label_infoA pointer to NvDsLabelInfo
void nvds_copy_obj_meta ( NvDsObjectMeta src_object_meta,
NvDsObjectMeta dst_object_meta 
)

deep copy of src_object_meta to dst_object_meta.

dst_object_meta must be acquired from dst object meta pool

Parameters
[in]src_object_metaA pointer to NvDsObjectMeta
[in]dst_object_metaA pointer to NvDsObjectMeta
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.

Parameters
[in]src_obj_meta_listA pointer to NvDsObjectMetaList
[in]dst_frame_metaA pointer to NvDsFrameMeta
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.

Parameters
[in]src_user_meta_listA pointer to NvDsUserMetaList
[in]dst_object_metaA pointer to NvDsObjectMeta
NvDsBatchMeta* nvds_create_batch_meta ( guint  max_batch_size)

Creates a NvDsBatchMeta of given batch size.

Parameters
[in]max_batch_sizemaximum number of frames those can be present in the batch returns allocated NvDsBatchMeta pointer
gboolean nvds_destroy_batch_meta ( NvDsBatchMeta batch_meta)

Releases NvDsBatchMeta batch_meta pointer.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta to be destroyed after use
gboolean nvds_get_current_metadata_info ( NvDsBatchMeta batch_meta)

Debug function to get current metadata info.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta
NvDsFrameMeta* nvds_get_nth_frame_meta ( NvDsFrameMetaList frame_meta_list,
guint  index 
)

Returns NvDsFrameMeta pointer at given index from the frame_meta_list.

Parameters
[in]frame_meta_listA list of pointer of type NvDsFrameMeta
[in]indexindex at which NvDsFrameMeta pointer needs to be accessed.

returns a pointer to NvDsFrameMeta from frame_meta_list

NvDsMetaType nvds_get_user_meta_type ( gchar *  meta_descriptor)

generates a unique user metadata type from the given string describing user specific metadata.

Parameters
[in]meta_descriptorA pointer to string describing metadata. The format of the string should be specified as below ORG_NAME.COMPONENT_NAME.METADATA_DESCRIPTION. e.g. (NVIDIA.NVINFER.TENSOR_METADATA)
void nvds_release_meta_lock ( NvDsBatchMeta batch_meta)

lock to be released after updating metadata

Parameters
[in]batch_metaA pointer to NvDsBatchMeta strcture
void nvds_remove_classifier_meta_from_obj ( NvDsObjectMeta obj_meta,
NvDsClassifierMeta classifier_meta 
)

Removes given classifier meta from object metadata.

Parameters
[in]obj_metaA pointer to NvDsObjectMeta from which classifier_meta is to be removed.
[in]classifier_metaA pointer to NvDsClassifierMeta to be removed from obj_meta.
void nvds_remove_display_meta_from_frame ( NvDsFrameMeta frame_meta,
NvDsDisplayMeta display_meta 
)

Removes given display meta from frame metadata.

Parameters
[in]frame_metaA pointer to NvDsFrameMeta from which display_meta is to be removed.
[in]display_metaA pointer to NvDsDisplayMeta to be removed from frame_meta.
void nvds_remove_frame_meta_from_batch ( NvDsBatchMeta batch_meta,
NvDsFrameMeta frame_meta 
)

Removes given frame meta from the batch metadata.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta from which frame_meta is to be removed.
[in]frame_metaA pointer to NvDsFrameMeta to be removed from batch_meta.
void nvds_remove_label_info_meta_from_classifier ( NvDsClassifierMeta classifier_meta,
NvDsLabelInfo label_info_meta 
)

Removes given labelinfo meta from the classifier metadata.

Parameters
[in]classifier_metaA pointer to NvDsClassifierMeta from which label_info_meta is to be removed.
[in]label_info_metaA pointer to NvDsLabelInfo to be removed from classifier_meta.
void nvds_remove_obj_meta_from_frame ( NvDsFrameMeta frame_meta,
NvDsObjectMeta obj_meta 
)

Removes given object meta from the frame metadata.

Parameters
[in]frame_metaA pointer to NvDsFrameMeta from which obj_meta is to be removed.
[in]obj_metaA pointer to NvDsObjectMeta to be removed from frame_meta.
void nvds_remove_user_meta_from_batch ( NvDsBatchMeta batch_meta,
NvDsUserMeta user_meta 
)

Removes given user metadata from the batch metadata.

Parameters
[in]batch_metaA pointer to NvDsBatchMeta from which user_meta is to be removed.
[in]user_metaA pointer to NvDsUserMeta to be removed from batch_meta.

returns acquired NvDsUserMeta pointer from user meta pool

void nvds_remove_user_meta_from_frame ( NvDsFrameMeta frame_meta,
NvDsUserMeta user_meta 
)

Removes given user metadata from the frame metadata.

Parameters
[in]frame_metaA pointer to NvDsFrameMeta from which user_meta is to be removed.
[in]user_metaA pointer to NvDsUserMeta to be removed from frame_meta.
void nvds_remove_user_meta_from_object ( NvDsObjectMeta obj_meta,
NvDsUserMeta user_meta 
)

Removes given user metadata from the object metadata.

Parameters
[in]obj_metaA pointer to NvDsObjectMeta from which user_meta is to be removed.
[in]user_metaA pointer to NvDsUserMeta to be removed from obj_meta.