diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp index 22256c9ca..ebd335fe6 100644 --- a/UI/window-basic-main-outputs.cpp +++ b/UI/window-basic-main-outputs.cpp @@ -167,8 +167,11 @@ static void OBSStopVirtualCam(void *data, calldata_t *params) os_atomic_set_bool(&virtualcam_active, false); QMetaObject::invokeMethod(output->main, "OnVirtualCamStop", Q_ARG(int, code)); +} - obs_output_set_media(output->virtualCam, nullptr, nullptr); +static void OBSDeactivateVirtualCam(void *data, calldata_t * /* params */) +{ + BasicOutputHandler *output = static_cast(data); output->DestroyVirtualCamView(); } @@ -293,6 +296,8 @@ inline BasicOutputHandler::BasicOutputHandler(OBSBasic *main_) : main(main_) startVirtualCam.Connect(signal, "start", OBSStartVirtualCam, this); stopVirtualCam.Connect(signal, "stop", OBSStopVirtualCam, this); + deactivateVirtualCam.Connect(signal, "deactivate", + OBSDeactivateVirtualCam, this); } } diff --git a/UI/window-basic-main-outputs.hpp b/UI/window-basic-main-outputs.hpp index 80d580e19..0850f00a9 100644 --- a/UI/window-basic-main-outputs.hpp +++ b/UI/window-basic-main-outputs.hpp @@ -34,6 +34,7 @@ struct BasicOutputHandler { OBSSignal stopStreaming; OBSSignal startVirtualCam; OBSSignal stopVirtualCam; + OBSSignal deactivateVirtualCam; OBSSignal streamDelayStarting; OBSSignal streamStopping; OBSSignal recordStopping;