Remove just first object

This commit is contained in:
Barzan Hayati 2025-09-17 18:46:02 +00:00
parent db2aa55a21
commit 4c925361a1

View File

@ -444,7 +444,6 @@ GstPadProbeReturn NvOsdManager::osd_src_pad_buffer_metadata_probe(
(void)txt_params;
guint face_count = 0;
guint person_count = 0;
gboolean is_first_object = TRUE;
NvDsMetaList *l_frame, *l_obj;
NvDsBatchMeta *batch_meta = gst_buffer_get_nvds_batch_meta(buf);
@ -462,8 +461,6 @@ GstPadProbeReturn NvOsdManager::osd_src_pad_buffer_metadata_probe(
continue;
}
is_first_object = TRUE;
for (l_obj = frame_meta->obj_meta_list; l_obj; l_obj = l_obj->next) {
NvDsObjectMeta *obj_meta = (NvDsObjectMeta *)l_obj->data;
@ -527,9 +524,8 @@ GstPadProbeReturn NvOsdManager::osd_src_pad_buffer_metadata_probe(
}
}
if (is_first_object &&
is_meta_type_NVOSD_embedding_vector == true) {
//!(frame_number % frame_interval) &&
if (is_meta_type_NVOSD_embedding_vector == true) {
// is_first_object && !(frame_number % frame_interval) &&
/* Frequency of messages to be send will be based on use case.
* Here message is being sent for first object every
* frame_interval(default=30).
@ -561,7 +557,6 @@ GstPadProbeReturn NvOsdManager::osd_src_pad_buffer_metadata_probe(
} else {
g_print("Error in attaching event meta to buffer\n");
}
is_first_object = FALSE;
}
}
}
@ -608,7 +603,6 @@ GstPadProbeReturn NvOsdManager::osd_src_pad_buffer_image_probe(
(void)u_data;
GstBuffer *buf = (GstBuffer *)info->data;
NvDsFrameMeta *frame_meta = NULL;
gboolean is_first_object = TRUE;
NvDsMetaList *l_frame, *l_obj;
gchar *encoded_data;
gchar *message_data;
@ -631,8 +625,6 @@ GstPadProbeReturn NvOsdManager::osd_src_pad_buffer_image_probe(
continue;
}
is_first_object = TRUE;
for (l_obj = frame_meta->obj_meta_list; l_obj; l_obj = l_obj->next) {
NvDsObjectMeta *obj_meta = (NvDsObjectMeta *)l_obj->data;
@ -641,91 +633,84 @@ GstPadProbeReturn NvOsdManager::osd_src_pad_buffer_image_probe(
continue;
}
if (is_first_object) {
//&& !(frame_number % frame_interval)
/* Frequency of images to be send will be based on use case.
* Here images is being sent for first object every
* frame_interval(default=30).
*/
NvDsUserMetaList *usrMetaList = obj_meta->obj_user_meta_list;
while (usrMetaList != NULL) {
NvDsUserMeta *user_event_meta_custom =
nvds_acquire_user_meta_from_pool(batch_meta);
NvDsCustomMsgInfo *msg_custom_meta =
(NvDsCustomMsgInfo *)g_malloc0(
sizeof(NvDsCustomMsgInfo));
//&& !(frame_number % frame_interval)
/* Frequency of images to be send will be based on use case.
* Here images is being sent for first object every
* frame_interval(default=30).
*/
NvDsUserMetaList *usrMetaList = obj_meta->obj_user_meta_list;
while (usrMetaList != NULL) {
NvDsUserMeta *user_event_meta_custom =
nvds_acquire_user_meta_from_pool(batch_meta);
NvDsCustomMsgInfo *msg_custom_meta =
(NvDsCustomMsgInfo *)g_malloc0(sizeof(NvDsCustomMsgInfo));
NvDsUserMeta *usrMetaData =
(NvDsUserMeta *)usrMetaList->data;
if (usrMetaData->base_meta.meta_type ==
NVDS_CROP_IMAGE_META) {
NvDsObjEncOutParams *enc_jpeg_image =
(NvDsObjEncOutParams *)usrMetaData->user_meta_data;
START_PROFILE;
encoded_data = g_base64_encode(
enc_jpeg_image->outBuffer, enc_jpeg_image->outLen);
generate_ts_rfc3339(ts, MAX_TIME_STAMP_LEN);
width = g_strdup_printf(
"%f",
obj_meta->detector_bbox_info.org_bbox_coords.width);
height =
g_strdup_printf("%f", obj_meta->detector_bbox_info
.org_bbox_coords.height);
/* Image message fields are separated by ";".
* Specific Format:
* "image;image_format;image_widthximage_height;time;encoded
* data;" For Example:
* "image;jpg;640x480;2023-07-31T10:20:13;xxxxxxxxxxx"
*/
message_data =
g_strconcat("image;jpg;", width, "x", height, ";",
ts, ";", encoded_data, ";", NULL);
STOP_PROFILE("Base64 Encode Time ");
msg_custom_meta->size = strlen(message_data);
msg_custom_meta->message = g_strdup(message_data);
if (user_event_meta_custom) {
user_event_meta_custom->user_meta_data =
(void *)msg_custom_meta;
user_event_meta_custom->base_meta.meta_type =
NVDS_CUSTOM_MSG_BLOB;
user_event_meta_custom->base_meta.copy_func =
(NvDsMetaCopyFunc)meta_copy_func_custom;
user_event_meta_custom->base_meta.release_func =
(NvDsMetaReleaseFunc)meta_free_func_custom;
nvds_add_user_meta_to_frame(frame_meta,
user_event_meta_custom);
} else {
g_print(
"Error in attaching event meta custom to "
"buffer\n");
}
NvDsUserMeta *usrMetaData = (NvDsUserMeta *)usrMetaList->data;
if (usrMetaData->base_meta.meta_type == NVDS_CROP_IMAGE_META) {
NvDsObjEncOutParams *enc_jpeg_image =
(NvDsObjEncOutParams *)usrMetaData->user_meta_data;
START_PROFILE;
encoded_data = g_base64_encode(enc_jpeg_image->outBuffer,
enc_jpeg_image->outLen);
generate_ts_rfc3339(ts, MAX_TIME_STAMP_LEN);
width = g_strdup_printf(
"%f",
obj_meta->detector_bbox_info.org_bbox_coords.width);
height = g_strdup_printf(
"%f",
obj_meta->detector_bbox_info.org_bbox_coords.height);
/* Image message fields are separated by ";".
* Specific Format:
* "image;image_format;image_widthximage_height;time;encoded
* data;" For Example:
* "image;jpg;640x480;2023-07-31T10:20:13;xxxxxxxxxxx"
*/
message_data =
g_strconcat("image;jpg;", width, "x", height, ";", ts,
";", encoded_data, ";", NULL);
STOP_PROFILE("Base64 Encode Time ");
msg_custom_meta->size = strlen(message_data);
msg_custom_meta->message = g_strdup(message_data);
if (user_event_meta_custom) {
user_event_meta_custom->user_meta_data =
(void *)msg_custom_meta;
user_event_meta_custom->base_meta.meta_type =
NVDS_CUSTOM_MSG_BLOB;
user_event_meta_custom->base_meta.copy_func =
(NvDsMetaCopyFunc)meta_copy_func_custom;
user_event_meta_custom->base_meta.release_func =
(NvDsMetaReleaseFunc)meta_free_func_custom;
nvds_add_user_meta_to_frame(frame_meta,
user_event_meta_custom);
} else {
g_print(
"Error in attaching event meta custom to "
"buffer\n");
}
#ifdef ENABLE_DUMP_FILE
gsize size = 0;
snprintf(fileObjNameString, 1024, "%s_%d_%d_%s.jpg", ts,
frame_number, frame_meta->batch_id,
obj_meta->obj_label);
guchar *decoded_data =
g_base64_decode(encoded_data, &size);
fp = fopen(fileObjNameString, "wb");
if (fp) {
fwrite(decoded_data, size, 1, fp);
fclose(fp);
} else {
g_printerr("Could not open file!\n");
}
g_free(decoded_data);
#endif
g_free(encoded_data);
g_free(message_data);
g_free(width);
g_free(height);
usrMetaList = NULL;
gsize size = 0;
snprintf(fileObjNameString, 1024, "%s_%d_%d_%s.jpg", ts,
frame_number, frame_meta->batch_id,
obj_meta->obj_label);
guchar *decoded_data = g_base64_decode(encoded_data, &size);
fp = fopen(fileObjNameString, "wb");
if (fp) {
fwrite(decoded_data, size, 1, fp);
fclose(fp);
} else {
usrMetaList = usrMetaList->next;
g_printerr("Could not open file!\n");
}
g_free(decoded_data);
#endif
g_free(encoded_data);
g_free(message_data);
g_free(width);
g_free(height);
usrMetaList = NULL;
} else {
usrMetaList = usrMetaList->next;
}
is_first_object = FALSE;
}
}
}