From 90130c119e3d42acc6724f67812b0efd98b6b30a Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Wed, 13 May 2026 21:09:25 +0200 Subject: [PATCH] Fix crash due to "keep source active" setting --- lib/utils/source-helpers.cpp | 5 +++-- plugins/video/macro-condition-video.cpp | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/utils/source-helpers.cpp b/lib/utils/source-helpers.cpp index 89c0fa5c..cec4956f 100644 --- a/lib/utils/source-helpers.cpp +++ b/lib/utils/source-helpers.cpp @@ -172,11 +172,12 @@ void SourceActiveKeeper::SetActive(bool active) if (_active == active) { return; } - _active = active; - if (_active) { + if (active) { + _active = true; AcquireRef(); } else { ReleaseRef(); + _active = false; } } diff --git a/plugins/video/macro-condition-video.cpp b/plugins/video/macro-condition-video.cpp index 359cee01..bdf4566b 100644 --- a/plugins/video/macro-condition-video.cpp +++ b/plugins/video/macro-condition-video.cpp @@ -124,6 +124,10 @@ void MacroConditionVideo::UpdateActiveKeeper() if (_video.type == VideoInput::Type::OBS_MAIN_OUTPUT) { return; } + if (!_keepActive) { + _lastActiveKeeperSource = nullptr; + return; + } auto videoSource = _video.GetVideo(); if (videoSource == _lastActiveKeeperSource) { return;