Hardware Platform: Jetson Orin (aarch64) DeepStream Version: 7.1.0 JetPack Version: R36.4.7 TensorRT Version: 10.3.0.30 NVIDIA GPU Driver Version: 540.4.0 Issue Type: Question / Bug
Issue Description:
When calling NvMOT_Query directly from C++ without a GStreamer pipeline, the library immediately prints:
NvMOT_Query failed. Context handle is NULL.
and returns NvMOTStatus = 1.
What has been verified:
-
Config file path is a correct absolute path, file exists, YAML format is valid
-
lddconfirms all dependent .so libraries resolve correctly (no “not found”) -
NvMOT_Querysymbol exists inlibnvds_nvmultiobjecttracker.so -
Config file follows the official
config_tracker_NvDCF_max_perf.ymlformat exactly
Code to reproduce:
cpp
NvMOTQuery query;
std::memset(&query, 0, sizeof(query));
NvMOTStatus status = NvMOT_Query(
static_cast<uint16_t>(config_path_.length()),
const_cast<char*>(config_path_.c_str()),
&query
);
// Library prints: "NvMOT_Query failed. Context handle is NULL."
// status = 1 (NvMOTStatus_Error)
Config file used (config_tracker_NvDCF_max_perf.yml format):
yaml
%YAML:1.0
BaseConfig:
minDetectorConfidence: 0.2
TargetManagement:
maxTargetsPerStream: 100
probationAge: 3
maxShadowTrackingAge: 10
earlyTerminationAge: 1
...
VisualTracker:
visualTrackerType: 1
Question:
-
Is calling
NvMOT_Querydirectly from C++ supported without a GStreamer pipeline? -
Is there any required initialization step before calling
NvMOT_Query? -
Does
NvMOT_Queryrequire a valid context handle to already exist before it can be called?