diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c65644..e1f2b8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,11 +55,14 @@ include_directories(${PROJECT_SOURCE_DIR}/tiler_manager.hpp) include_directories(${PROJECT_SOURCE_DIR}/nv_video_convert_manager.hpp) include_directories(${PROJECT_SOURCE_DIR}/nv_osd_manager.hpp) include_directories(${PROJECT_SOURCE_DIR}/queue_manager.hpp) +include_directories(${PROJECT_SOURCE_DIR}/nv_ds_logger_manager.hpp) -set(SOURCES src/main.cpp src/camera_manager.cpp src/pipeline_manager.cpp src/streammux_manager.cpp src/source_bin.cpp src/gstds_example_manager.cpp src/tiler_manager.cpp - src/nv_video_convert_manager.cpp src/nv_osd_manager.cpp src/queue_manager.cpp) +set(SOURCES src/main.cpp src/camera_manager.cpp src/pipeline_manager.cpp src/streammux_manager.cpp + src/source_bin.cpp src/gstds_example_manager.cpp src/tiler_manager.cpp + src/nv_video_convert_manager.cpp src/nv_osd_manager.cpp src/queue_manager.cpp + src/nv_ds_logger_manager.cpp) # Create the executable add_executable(${PROJECT_NAME} ${SOURCES}) diff --git a/src/nv_ds_logger_manager.cpp b/src/nv_ds_logger_manager.cpp new file mode 100644 index 0000000..dcf31a1 --- /dev/null +++ b/src/nv_ds_logger_manager.cpp @@ -0,0 +1,13 @@ +#include "nv_ds_logger_manager.hpp" + +NvDsLoggerManager::NvDsLoggerManager() {} + +bool NvDsLoggerManager::create_nv_ds_logger() { + /* Use nvdslogger for perf measurement. */ + nvdslogger = gst_element_factory_make("nvdslogger", "nvdslogger"); + if (!nvdslogger) { + g_printerr("Unable to create nvdslogger.Exiting."); + return false; + } + return true; +} \ No newline at end of file diff --git a/src/nv_ds_logger_manager.hpp b/src/nv_ds_logger_manager.hpp new file mode 100644 index 0000000..ce57be3 --- /dev/null +++ b/src/nv_ds_logger_manager.hpp @@ -0,0 +1,10 @@ +#include + +class NvDsLoggerManager { + private: + public: + GstElement *nvdslogger = NULL; + NvDsLoggerManager(); + bool create_nv_ds_logger(); + ~NvDsLoggerManager(); +}; \ No newline at end of file diff --git a/src/pipeline_manager.cpp b/src/pipeline_manager.cpp index 1d51e50..26daece 100644 --- a/src/pipeline_manager.cpp +++ b/src/pipeline_manager.cpp @@ -88,5 +88,7 @@ bool PipelineManager::create_pipeline_elements(int num_sources, queue_array[i] = QueueManager(name); } + nv_ds_logger_manager->create_nv_ds_logger(); + return true; } \ No newline at end of file diff --git a/src/pipeline_manager.hpp b/src/pipeline_manager.hpp index 31b9e4f..6be5da3 100644 --- a/src/pipeline_manager.hpp +++ b/src/pipeline_manager.hpp @@ -3,6 +3,7 @@ #include "cuda_runtime_api.h" #include "gstds_example_manager.hpp" +#include "nv_ds_logger_manager.hpp" #include "nv_osd_manager.hpp" #include "nv_video_convert_manager.hpp" #include "queue_manager.hpp" @@ -22,6 +23,7 @@ class PipelineManager { NvVideoConvertManager *nv_video_convert_manager = new NvVideoConvertManager(); NvOsdManager *nv_osd_manager = new NvOsdManager(); + NvDsLoggerManager *nv_ds_logger_manager = new NvDsLoggerManager(); public: int current_device = -1;