Create nvmsgconv
This commit is contained in:
parent
47ce8c5fa8
commit
056676b3d8
@ -81,6 +81,7 @@ include_directories(${PROJECT_SOURCE_DIR}/nv_tracker_manager.hpp)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/face_candid_trace.hpp)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/face_nv_infer_server_manager.hpp)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/face_nv_infer_server_manager.hpp)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/nv_messgae_converter.hpp)
|
||||
|
||||
|
||||
set(SOURCES src/main.cpp src/camera_manager.cpp src/pipeline_manager.cpp src/streammux_manager.cpp
|
||||
@ -91,7 +92,8 @@ set(SOURCES src/main.cpp src/camera_manager.cpp src/pipeline_manager.cpp src/st
|
||||
# src/metrics_manager.cpp
|
||||
src/config_manager.cpp
|
||||
src/nv_infer_server_manager.cpp src/nv_tracker_manager.cpp src/face_candid_trace.cpp
|
||||
src/face_nv_infer_server_manager.cpp src/face_nv_infer_server_manager.cpp)
|
||||
src/face_nv_infer_server_manager.cpp src/face_nv_infer_server_manager.cpp
|
||||
src/nv_messgae_converter.cpp)
|
||||
|
||||
|
||||
# missing initializer for member 'NvDsInferDims::d' [-Werror=missing-field-initializers] NvDsInferDims dims = {0};
|
||||
|
||||
@ -53,5 +53,7 @@
|
||||
"max-latency": 1000000,
|
||||
"num-extra-surfaces": 1,
|
||||
"num-surfaces-per-frame": 0
|
||||
}
|
||||
},
|
||||
"msgconv_config_file": "../data/nvmsgconv_configs/msgconv_config.txt",
|
||||
"msgconv_frame_interval": 30
|
||||
}
|
||||
30
data/nvmsgconv_configs/msgconv_config.txt
Normal file
30
data/nvmsgconv_configs/msgconv_config.txt
Normal file
@ -0,0 +1,30 @@
|
||||
[schema]
|
||||
version=1
|
||||
message.schema=1.0
|
||||
message.type=object
|
||||
|
||||
[message]
|
||||
#payload-type=1
|
||||
msg2p-newapi=0
|
||||
topic=face_topic
|
||||
type=object
|
||||
|
||||
[sensor0]
|
||||
enable=1
|
||||
type=Camera
|
||||
id=CAMERA_ID
|
||||
location=45.29;-75.83;48.15
|
||||
description=Entrance camera
|
||||
|
||||
[place0]
|
||||
enable=1
|
||||
id=main_lobby
|
||||
name=Lobby Entrance
|
||||
type=building
|
||||
location=45.29;-75.83;48.15
|
||||
|
||||
[analytics0]
|
||||
enable=1
|
||||
id=analytics_face
|
||||
description=Face detection
|
||||
source=fr_module
|
||||
53
src/nv_messgae_converter.cpp
Normal file
53
src/nv_messgae_converter.cpp
Normal file
@ -0,0 +1,53 @@
|
||||
#include "nv_messgae_converter.hpp"
|
||||
|
||||
#define SET_GPU_ID(object, gpu_id) \
|
||||
g_object_set(G_OBJECT(object), "gpu-id", gpu_id, NULL);
|
||||
#define GPU_ID 0
|
||||
|
||||
NvMessageConverter::NvMessageConverter() {
|
||||
const auto& config = ConfigManager::get_instance().get_config();
|
||||
|
||||
msgconv_config_file = config["msgconv_config_file"];
|
||||
frame_interval = config["msgconv_frame_interval"];
|
||||
}
|
||||
|
||||
bool NvMessageConverter::create_message_converter() {
|
||||
msgconv = gst_element_factory_make("nvmsgconv", "nvmsg-converter");
|
||||
g_object_set(G_OBJECT(msgconv), "config", msgconv_config_file, NULL);
|
||||
g_object_set(G_OBJECT(msgconv), "payload-type", 0,
|
||||
NULL); // 0 = DeepStream schema, 1 = minimal schema
|
||||
g_object_set(G_OBJECT(msgconv), "msg2p-newapi", 0,
|
||||
NULL); // use new API; If you want to send images, please set
|
||||
// the "payload-type: 1" and "msg2p-newapi: 1"
|
||||
// msg2p-newapi: TRUE for DeepStream 6.x+ (recommended).
|
||||
g_object_set(G_OBJECT(msgconv), "frame-interval", frame_interval, NULL);
|
||||
SET_GPU_ID(msgconv, GPU_ID);
|
||||
|
||||
// g_object_set(G_OBJECT(msgconv),
|
||||
// "config", "dstest5_msgconv.cfg", // message schema config
|
||||
// file "payload-type", 0, "msg2p-newapi", TRUE, //
|
||||
// use new API NULL);
|
||||
|
||||
// g_object_set (G_OBJECT (msgconv), "config", "dstest4_msgconv_config.yml",
|
||||
// NULL); RETURN_ON_PARSER_ERROR(nvds_parse_msgconv (msgconv, argv[1],
|
||||
// "msgconv")); msg2p_meta = ds_test4_parse_meta_type(argv[1], "msgconv");
|
||||
// g_print("msg2p_meta = %d\n", msg2p_meta);
|
||||
|
||||
// Set up the pipeline we add all elements into the pipeline
|
||||
// gst_bin_add_many (GST_BIN (pipeline),
|
||||
// source, h264parser, decoder, nvstreammux, pgie,
|
||||
// nvvidconv, nvosd, tee, queue1, queue2, msgconv, msgbroker, sink,
|
||||
// NULL);
|
||||
|
||||
// /* we link the elements together */
|
||||
// /* file-source -> h264-parser -> nvh264-decoder -> nvstreammux ->
|
||||
// * pgie -> nvvidconv -> nvosd -> tee -> video-renderer
|
||||
// * |
|
||||
// * |-> msgconv -> msgbroker */
|
||||
|
||||
if (!msgconv) {
|
||||
g_printerr("Unable to create msgconv.Exiting.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
17
src/nv_messgae_converter.hpp
Normal file
17
src/nv_messgae_converter.hpp
Normal file
@ -0,0 +1,17 @@
|
||||
#include <gst/gst.h>
|
||||
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
|
||||
#include "config_manager.hpp"
|
||||
|
||||
class NvMessageConverter {
|
||||
private:
|
||||
public:
|
||||
gint frame_interval;
|
||||
GstElement *msgconv = NULL;
|
||||
std::string msgconv_config_file;
|
||||
NvMessageConverter();
|
||||
bool create_message_converter();
|
||||
~NvMessageConverter();
|
||||
};
|
||||
@ -434,6 +434,8 @@ bool PipelineManager::create_pipeline_elements(int num_sources,
|
||||
nv_video_convert_manager->create_nv_video_convert();
|
||||
nv_osd_manager->create_nv_osd();
|
||||
|
||||
nv_messgae_converter_manager->create_message_converter();
|
||||
|
||||
/* Add queue elements between every two elements */
|
||||
const char* base = "queue";
|
||||
for (int i = 0; i < 5; i++) {
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
#include "message_handling.hpp"
|
||||
#include "nv_ds_logger_manager.hpp"
|
||||
#include "nv_infer_server_manager.hpp"
|
||||
#include "nv_messgae_converter.hpp"
|
||||
#include "nv_osd_manager.hpp"
|
||||
#include "nv_tracker_manager.hpp"
|
||||
#include "nv_video_convert_manager.hpp"
|
||||
@ -41,6 +42,7 @@ class PipelineManager {
|
||||
NvTrackerManager *nv_tracker_manager = new NvTrackerManager();
|
||||
FaceNvInferServerManager *face_nv_infer_server_manager =
|
||||
new FaceNvInferServerManager();
|
||||
NvMessageConverter *nv_messgae_converter_manager = new NvMessageConverter();
|
||||
static double fps_buffer_probe;
|
||||
static double fps_probe;
|
||||
static double fps_osd;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user