Fix NV12 crash issue when recreate camera object
This commit is contained in:
@@ -1455,7 +1455,7 @@ namespace ANSCENTER
|
||||
}
|
||||
}
|
||||
std::vector<Object> ANSODBase::RunStaticInference(const cv::Mat& input, cv::Rect Bbox, const std::string& camera_id) {
|
||||
std::lock_guard<std::recursive_mutex> lock(_mutex);
|
||||
// No coarse _mutex — only uses local variables and virtual RunInference() which has its own engine lock
|
||||
std::vector<Object> output;
|
||||
output.clear();
|
||||
try {
|
||||
@@ -2100,7 +2100,8 @@ namespace ANSCENTER
|
||||
}
|
||||
}
|
||||
std::vector<Object> ANSODBase::RunInferenceWithOption(const cv::Mat& input, const std::string& camera_id, const std::string activeROIMode) {
|
||||
std::lock_guard<std::recursive_mutex> lock(_mutex);
|
||||
// No coarse _mutex — sub-components (engines, trackers) have their own locks.
|
||||
// LabVIEW semaphore controls concurrency at the caller level.
|
||||
try {
|
||||
int mode = 0;
|
||||
double confidenceThreshold = 0.35;
|
||||
@@ -2116,8 +2117,11 @@ namespace ANSCENTER
|
||||
if (confidenceThreshold <= 0) confidenceThreshold = 0;
|
||||
if (confidenceThreshold > 1) confidenceThreshold = 1;
|
||||
|
||||
// Update model configuration with the new parameters
|
||||
if(confidenceThreshold>0)_modelConfig.detectionScoreThreshold = confidenceThreshold;
|
||||
// Update model configuration with the new parameters (brief lock for config)
|
||||
if (confidenceThreshold > 0) {
|
||||
std::lock_guard<std::recursive_mutex> cfgLock(_mutex);
|
||||
_modelConfig.detectionScoreThreshold = confidenceThreshold;
|
||||
}
|
||||
switch (mode) {
|
||||
case 0: // Normal mode
|
||||
return RunInference(input, camera_id); //RunInference
|
||||
|
||||
Reference in New Issue
Block a user