@@ -68,6 +68,8 @@ struct TicketSemaphore {
6868 }
6969};
7070
71+ std::unique_ptr<Logger> logger;
72+
7173struct vsTrtData {
7274 std::vector<VSNodeRef *> nodes;
7375 std::unique_ptr<VSVideoInfo> out_vi;
@@ -77,7 +79,6 @@ struct vsTrtData {
7779 bool use_cuda_graph;
7880 int overlap_w, overlap_h;
7981
80- Logger logger;
8182 std::unique_ptr<nvinfer1::IRuntime> runtime;
8283 std::vector<std::unique_ptr<nvinfer1::ICudaEngine>> engines;
8384
@@ -396,7 +397,10 @@ static void VS_CC vsTrtCreate(
396397 if (error) {
397398 verbosity = int (nvinfer1::ILogger::Severity::kWARNING );
398399 }
399- d->logger .set_verbosity (static_cast <nvinfer1::ILogger::Severity>(verbosity));
400+ if (!logger) {
401+ logger = std::make_unique<Logger>();
402+ }
403+ logger->set_verbosity (static_cast <nvinfer1::ILogger::Severity>(verbosity));
400404
401405 auto flexible_output_prop = vsapi->propGetData (in, " flexible_output_prop" , 0 , &error);
402406 if (!error) {
@@ -406,7 +410,7 @@ static void VS_CC vsTrtCreate(
406410#ifdef USE_NVINFER_PLUGIN
407411 // related to https://github.com/AmusementClub/vs-mlrt/discussions/65, for unknown reason
408412#if !(NV_TENSORRT_MAJOR == 9 && defined(_WIN32)) && !defined(TRT_MAJOR_RTX)
409- if (!initLibNvInferPlugins (&d-> logger , " " )) {
413+ if (!initLibNvInferPlugins (logger. get () , " " )) {
410414 vsapi->logMessage (mtWarning, " vstrt: Initialize TensorRT plugins failed" );
411415 }
412416#endif
@@ -432,7 +436,7 @@ static void VS_CC vsTrtCreate(
432436 engine_stream.seekg (0 , std::ios::beg);
433437 engine_stream.read (engine_data.get (), static_cast <std::streamsize>(engine_nbytes));
434438
435- d->runtime .reset (nvinfer1::createInferRuntime (d-> logger ));
439+ d->runtime .reset (nvinfer1::createInferRuntime (* logger));
436440 auto maybe_engine = initEngine (
437441 engine_data.get (),
438442 static_cast <size_t >(engine_nbytes),
0 commit comments