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