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;