// GpuNV12SlotPool.cpp — Cross-DLL singleton resolver for ANSODEngine.dll. // // Finds the canonical GpuNV12SlotPool instance exported by ANSCV.dll // via GetProcAddress. No link dependency on ANSCV.lib needed. #define WIN32_LEAN_AND_MEAN #define NOMINMAX #include #include "GpuNV12SlotPool.h" GpuNV12SlotPool* GpuNV12SlotPool::resolveProcessWide() { // ANSCV.dll is always loaded before inference starts (it provides RTSP). HMODULE hMod = GetModuleHandleA("ANSCV.dll"); if (hMod) { typedef GpuNV12SlotPool* (*GetInstanceFn)(); auto fn = reinterpret_cast( GetProcAddress(hMod, "GpuNV12SlotPool_GetInstance")); if (fn) return fn(); } // Fallback: local instance (unit tests without ANSCV.dll). static GpuNV12SlotPool local; return &local; }