From d9b5addf72918b239e86315219d01fb9bf3e6aa7 Mon Sep 17 00:00:00 2001 From: pkv Date: Mon, 8 Dec 2025 01:32:41 +0100 Subject: [PATCH] win-wasapi: Add monitoring deduplication calls For 'wasapi output capture', calls are added when devices are either changed, started or removed. The calls trigger checks against the monitoring device. Signed-off-by: pkv --- plugins/win-wasapi/win-wasapi.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/win-wasapi/win-wasapi.cpp b/plugins/win-wasapi/win-wasapi.cpp index e68d7c39b..0cea47585 100644 --- a/plugins/win-wasapi/win-wasapi.cpp +++ b/plugins/win-wasapi/win-wasapi.cpp @@ -464,6 +464,9 @@ WASAPISource::~WASAPISource() if (notify) { notify->RemoveDefaultDeviceChangedCallback(this); } + // If the device is also used for monitoring, a cleanup is needed. + if (sourceType == SourceType::DeviceOutput) + obs_source_audio_output_capture_device_changed(source, NULL); Stop(); } @@ -503,6 +506,10 @@ WASAPISource::UpdateParams WASAPISource::BuildUpdateParams(obs_data_t *settings) void WASAPISource::UpdateSettings(UpdateParams &¶ms) { + // Signal to deduplication logic in case the device is also used for monitoring. + if (device_id != params.device_id && sourceType == SourceType::DeviceOutput) + obs_source_audio_output_capture_device_changed(source, params.device_id.c_str()); + device_id = std::move(params.device_id); useDeviceTiming = params.useDeviceTiming; isDefaultDevice = params.isDefaultDevice;