Add fps buffer probe second method

This commit is contained in:
Barzan Hayati 2025-07-01 22:39:36 +00:00
parent e719e9ace8
commit be3aed33ba
3 changed files with 25 additions and 10 deletions

View File

@ -41,6 +41,7 @@ else()
link_directories(/usr/local/cuda/lib64)
endif()
include_directories(/usr/lib/x86_64-linux-gnu/glib-2.0/include)
include_directories(/opt/nvidia/deepstream/deepstream-7.1/sources/includes)
include_directories(/usr/include/gstreamer-1.0)
@ -94,4 +95,4 @@ target_link_libraries(${PROJECT_NAME} ${GLIB_LIBRARIES})
target_link_libraries(${PROJECT_NAME} gstbase-1.0 gstreamer-1.0 gstrtp-1.0 gstvideo-1.0 gstrtspserver-1.0)
target_link_libraries(${PROJECT_NAME} cudart cuda)
target_link_libraries(${PROJECT_NAME} nvdsgst_infer nvds_meta nvds_inferutils
nvds_utils nvdsgst_helper)#nvdsgst_metnvdsa
nvdsgst_meta nvds_utils nvdsgst_helper)#nvdsgst_metnvdsa

View File

@ -69,19 +69,31 @@ GstPadProbeReturn PipelineManager::buffer_probe(GstPad* pad,
(void)pad; // This explicitly marks it as unused
(void)info; // This explicitly marks it as unused
(void)user_data; // This explicitly marks it as unused
static guint frame_count = 0;
static guint64 frame_count = 0;
static auto last_time = std::chrono::steady_clock::now();
frame_count++;
auto current_time = std::chrono::steady_clock::now();
auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(
current_time - last_time)
.count();
GstBuffer* buffer = GST_PAD_PROBE_INFO_BUFFER(info);
NvDsBatchMeta* batch_meta = gst_buffer_get_nvds_batch_meta(buffer);
if (elapsed >= 1000) { // Update every second
g_print("FPS: %ld\n", frame_count * 1000 / elapsed);
if (batch_meta) {
for (NvDsMetaList* l = batch_meta->frame_meta_list; l != NULL;
l = l->next) {
NvDsFrameMeta* frame_meta = (NvDsFrameMeta*)l->data;
(void)frame_meta; // This explicitly marks it as unused
frame_count++;
}
}
// Calculate FPS
auto now = std::chrono::steady_clock::now();
auto elapsed =
std::chrono::duration_cast<std::chrono::milliseconds>(now - last_time)
.count();
if (elapsed >= 1000) {
g_print("FPS: %.2f\n", (double)frame_count * 1000 / elapsed);
frame_count = 0;
last_time = current_time;
last_time = now;
}
return GST_PAD_PROBE_OK;

View File

@ -1,8 +1,10 @@
#include <glib.h>
#include <gst/gst.h>
#include <gst/video/video.h>
#include "cuda_runtime_api.h"
#include "gstds_example_manager.hpp"
#include "gstnvdsmeta.h"
#include "message_handling.hpp"
#include "nv_ds_logger_manager.hpp"
#include "nv_osd_manager.hpp"