Remove just first object
This commit is contained in:
parent
db2aa55a21
commit
4c925361a1
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user