bridge: skip Ozone 11 modules (license fastfail c0000409 kills scan/render)
Ozone 11 (iZotope) tu __fastfail FATAL_APP_EXIT khi load — khong bi SEH chan, giet ca bridge process. Scan -> mat ca dir -> FX list rong; render/realtime -> crash. Khong load: scan emit UNKNOWN, load tra loi sach. Ozone Pro van OK. ponytail: SandboxVst3Host (1 module 1 process) khi can Ozone 11.
This commit is contained in:
@@ -455,6 +455,21 @@ static void setPluginSearchPath(const std::string& path) {
|
|||||||
bool vst3FxLoadInner(Vst3FxState* s, const std::string& path, double sampleRate,
|
bool vst3FxLoadInner(Vst3FxState* s, const std::string& path, double sampleRate,
|
||||||
int32 maxBlockSize, std::string& err) {
|
int32 maxBlockSize, std::string& err) {
|
||||||
using namespace VST3::Hosting;
|
using namespace VST3::Hosting;
|
||||||
|
#ifdef _WIN32
|
||||||
|
// Ozone 11 (iZotope) tự __fastfail (c0000409, license/anti-tamper) khi
|
||||||
|
// load — KHÔNG bị SEH chặn → giết cả bridge process (scan + render +
|
||||||
|
// realtime). Không load: trả lỗi sạch cho chain. Ozone Pro vẫn load OK.
|
||||||
|
// ponytail: muốn chạy Ozone 11 → SandboxVst3Host (mỗi module 1 process).
|
||||||
|
{
|
||||||
|
std::string low = path;
|
||||||
|
for (auto& c : low) c = (char)std::tolower((unsigned char)c);
|
||||||
|
if (low.find("ozone 11") != std::string::npos) {
|
||||||
|
err = "Ozone 11 not loadable (license fastfail) - use Ozone Pro";
|
||||||
|
std::cerr << "[RenderFx] skip (Ozone 11): " << path << std::endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
setPluginSearchPath(path);
|
setPluginSearchPath(path);
|
||||||
#endif
|
#endif
|
||||||
@@ -2077,6 +2092,18 @@ int run_scan_dir(const std::string& dirPath) {
|
|||||||
#ifdef HAVE_VST3SDK
|
#ifdef HAVE_VST3SDK
|
||||||
for (const auto& p : vst3Paths) {
|
for (const auto& p : vst3Paths) {
|
||||||
std::vector<ScanEntry> entries;
|
std::vector<ScanEntry> entries;
|
||||||
|
// Ozone 11 (iZotope) tự __fastfail (c0000409, license/anti-tamper)
|
||||||
|
// khi load trong --scan — không bị SEH chặn → chết cả process → mất
|
||||||
|
// TOÀN BỘ dir → FX list rỗng. Không load: emit UNKNOWN (giống skip
|
||||||
|
// module lỗi). ponytail: SandboxVst3Host (mỗi module 1 process).
|
||||||
|
{
|
||||||
|
std::string low = p;
|
||||||
|
for (auto& c : low) c = (char)std::tolower((unsigned char)c);
|
||||||
|
if (low.find("ozone 11") != std::string::npos) {
|
||||||
|
emit(p, p.substr(p.find_last_of("/\\") + 1), false, false, "VST3");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!safeScanModule(p, entries)) {
|
if (!safeScanModule(p, entries)) {
|
||||||
// Module unreadable/crashed/hung (e.g. Ozone 11 Clarity): emit
|
// Module unreadable/crashed/hung (e.g. Ozone 11 Clarity): emit
|
||||||
// entry UNKNOWN (is_fx=false, is_instrument=false) — trước đây
|
// entry UNKNOWN (is_fx=false, is_instrument=false) — trước đây
|
||||||
|
|||||||
Reference in New Issue
Block a user