diff --git a/src/nv_osd_manager.cpp b/src/nv_osd_manager.cpp index ca07fe3..18dea2a 100644 --- a/src/nv_osd_manager.cpp +++ b/src/nv_osd_manager.cpp @@ -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; } } }