From 3f3f9ed7e60a8dbe8c904b234a8b715841df880f Mon Sep 17 00:00:00 2001 From: jp9000 Date: Wed, 2 Mar 2022 04:19:02 -0800 Subject: [PATCH] virtualcam-module: Fix incorrect correct res/fps Apparently the testing that was done was not sufficient enough or did not check all test cases, so resolution/fps does not get set properly on the virtualcam. --- .../virtualcam-module/virtualcam-filter.cpp | 32 +++++++++---------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/plugins/win-dshow/virtualcam-module/virtualcam-filter.cpp b/plugins/win-dshow/virtualcam-module/virtualcam-filter.cpp index 4820c7e1d..618d260fc 100644 --- a/plugins/win-dshow/virtualcam-module/virtualcam-filter.cpp +++ b/plugins/win-dshow/virtualcam-module/virtualcam-filter.cpp @@ -45,17 +45,6 @@ VCamFilter::VCamFilter() in_obs = !!wcsstr(file, obs_process); - /* ---------------------------------------- */ - - AddRef(); -} - -void VCamFilter::ActuallyStart() -{ - if (th.joinable()) { - return; - } - /* ---------------------------------------- */ /* add last/current obs res/interval */ @@ -114,7 +103,15 @@ void VCamFilter::ActuallyStart() } /* ---------------------------------------- */ - /* Actually start */ + + AddRef(); +} + +void VCamFilter::ActuallyStart() +{ + if (th.joinable()) { + return; + } ResetEvent(thread_stop); th = std::thread([this] { Thread(); }); @@ -129,6 +126,12 @@ void VCamFilter::ActuallyStop() SetEvent(thread_stop); th.join(); +} + +VCamFilter::~VCamFilter() +{ + ActuallyStop(); + video_queue_close(vq); if (placeholder.scaled_data) { @@ -137,11 +140,6 @@ void VCamFilter::ActuallyStop() } } -VCamFilter::~VCamFilter() -{ - ActuallyStop(); -} - const wchar_t *VCamFilter::FilterName() const { return L"VCamFilter";