Use software decoder by default
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include "engine/TRTEngineCache.h" // clearAll() on DLL_PROCESS_DETACH
|
||||
#include "engine/EnginePoolManager.h" // clearAll() on DLL_PROCESS_DETACH
|
||||
#include <climits> // INT_MIN
|
||||
#include "ANSLicense.h" // ANS_DBG macro for DebugView
|
||||
|
||||
// Process-wide flag: when true, all engines force single-GPU path (no pool, no idle timers).
|
||||
// Defined here, declared extern in EngineBuildLoadNetwork.inl.
|
||||
@@ -1696,6 +1697,8 @@ static int RunInferenceComplete_LV_Impl(
|
||||
auto* engine = guard.get();
|
||||
|
||||
try {
|
||||
auto _t0 = std::chrono::steady_clock::now();
|
||||
|
||||
// Save/restore thread-local to support nested calls (custom model DLLs
|
||||
// calling back into ANSODEngine via ANSLIB.dll).
|
||||
GpuFrameData* savedFrame = tl_currentGpuFrame();
|
||||
@@ -1708,6 +1711,10 @@ static int RunInferenceComplete_LV_Impl(
|
||||
int originalWidth = localImage.cols;
|
||||
int originalHeight = localImage.rows;
|
||||
|
||||
ANS_DBG("LV_Inference", "START cam=%s %dx%d gpuFrame=%p nv12=%s",
|
||||
cameraId ? cameraId : "?", originalWidth, originalHeight,
|
||||
(void*)gpuFrame, gpuFrame ? "YES" : "NO");
|
||||
|
||||
if (originalWidth == 0 || originalHeight == 0) {
|
||||
tl_currentGpuFrame() = savedFrame;
|
||||
return -2;
|
||||
@@ -1717,8 +1724,17 @@ static int RunInferenceComplete_LV_Impl(
|
||||
// Safe: *cvImage holds a refcount, keeping gpuFrame alive during inference.
|
||||
// Only use OWN gpuFrame — never inherit outer caller's frame (dimension mismatch on crops).
|
||||
tl_currentGpuFrame() = gpuFrame;
|
||||
auto _t1 = std::chrono::steady_clock::now();
|
||||
std::vector<ANSCENTER::Object> outputs = engine->RunInferenceWithOption(localImage, cameraId, activeROIMode);
|
||||
auto _t2 = std::chrono::steady_clock::now();
|
||||
tl_currentGpuFrame() = savedFrame;
|
||||
|
||||
double prepMs = std::chrono::duration<double, std::milli>(_t1 - _t0).count();
|
||||
double infMs = std::chrono::duration<double, std::milli>(_t2 - _t1).count();
|
||||
if (infMs > 500.0) {
|
||||
ANS_DBG("LV_Inference", "SLOW cam=%s prep=%.1fms inf=%.1fms results=%zu",
|
||||
cameraId ? cameraId : "?", prepMs, infMs, outputs.size());
|
||||
}
|
||||
bool getJpeg = (getJpegString == 1);
|
||||
std::string stImage;
|
||||
// NOTE: odMutex was removed here. All variables in this scope are local
|
||||
|
||||
Reference in New Issue
Block a user