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_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}/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
|
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/metrics_manager.cpp
|
||||||
src/config_manager.cpp
|
src/config_manager.cpp
|
||||||
src/nv_infer_server_manager.cpp src/nv_tracker_manager.cpp src/face_candid_trace.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};
|
# missing initializer for member 'NvDsInferDims::d' [-Werror=missing-field-initializers] NvDsInferDims dims = {0};
|
||||||
|
|||||||
@ -53,5 +53,7 @@
|
|||||||
"max-latency": 1000000,
|
"max-latency": 1000000,
|
||||||
"num-extra-surfaces": 1,
|
"num-extra-surfaces": 1,
|
||||||
"num-surfaces-per-frame": 0
|
"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_video_convert_manager->create_nv_video_convert();
|
||||||
nv_osd_manager->create_nv_osd();
|
nv_osd_manager->create_nv_osd();
|
||||||
|
|
||||||
|
nv_messgae_converter_manager->create_message_converter();
|
||||||
|
|
||||||
/* Add queue elements between every two elements */
|
/* Add queue elements between every two elements */
|
||||||
const char* base = "queue";
|
const char* base = "queue";
|
||||||
for (int i = 0; i < 5; i++) {
|
for (int i = 0; i < 5; i++) {
|
||||||
|
|||||||
@ -11,6 +11,7 @@
|
|||||||
#include "message_handling.hpp"
|
#include "message_handling.hpp"
|
||||||
#include "nv_ds_logger_manager.hpp"
|
#include "nv_ds_logger_manager.hpp"
|
||||||
#include "nv_infer_server_manager.hpp"
|
#include "nv_infer_server_manager.hpp"
|
||||||
|
#include "nv_messgae_converter.hpp"
|
||||||
#include "nv_osd_manager.hpp"
|
#include "nv_osd_manager.hpp"
|
||||||
#include "nv_tracker_manager.hpp"
|
#include "nv_tracker_manager.hpp"
|
||||||
#include "nv_video_convert_manager.hpp"
|
#include "nv_video_convert_manager.hpp"
|
||||||
@ -41,6 +42,7 @@ class PipelineManager {
|
|||||||
NvTrackerManager *nv_tracker_manager = new NvTrackerManager();
|
NvTrackerManager *nv_tracker_manager = new NvTrackerManager();
|
||||||
FaceNvInferServerManager *face_nv_infer_server_manager =
|
FaceNvInferServerManager *face_nv_infer_server_manager =
|
||||||
new FaceNvInferServerManager();
|
new FaceNvInferServerManager();
|
||||||
|
NvMessageConverter *nv_messgae_converter_manager = new NvMessageConverter();
|
||||||
static double fps_buffer_probe;
|
static double fps_buffer_probe;
|
||||||
static double fps_probe;
|
static double fps_probe;
|
||||||
static double fps_osd;
|
static double fps_osd;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user