Hi, this is my first post. I hope this is the correct forum for my questions about the the built-in virtual camera feature which was introduced sometime in the v26 series.
Some background information. I have successfully built and run the 64-bit version of OBS 27.0.1 on MSVC 2019 with latest updates, under Windows 7 SP1 64-bit [I know it's EOL but it works for now:-)]. I have enabled the build time virtual camera option and the 64 bit obs-virtualcam-module64.dll has been successfully built.
When running the batch installer file (virtualcam-install.bat) to register obs-virtualcam-module64.dll it doesn't complete successfully unless I also build the 32-bit version.
When I manually register only the 64-bit dll using regsvr32 as described in the installation batch file, the registration completes successfully but when OBS is started the "Start Virtual Camera" button is not present in the Control dock. If I manually un-register the 64-bit version then manually register only the 32-bit dll the button appears when OBS is started. If both the 32-bit and 64-bit versions are registered the button also appears.
Building the Debug version and starting a debugging session I see that in obs_module_load() in dshow-plugin.cpp, vcam_installed(false) is being called. From my limited understanding and testing, it appears to me that in vcam_installed(), the code which determines whether to access the 64-bit or 32-bit CLSID registry key for the registered obs-virtualcam module is only returning the KEY_WOW64_32KEY to OR with the flags variable. I think this is because the boolean bitwise OR is testing against the boolean value of false. The outcome is if only the 64-bit version has been registered, the registry query only looks for the 32-bit key which it doesn't find. This leads to the variable vcamEnabled being set to false. The consequences are the "Start Virtual Camera" button does not appear in the Control dock and I believe the virtual camera module isn't loaded.
I don't think this is a Windows 7 SP1 specific issue.
Is it a design requirement that both 32-bit and 64-bit versions of obs-virtualcam-module dll be present and registered in order for the built-in virtual camera to function in 64-bit OBS on 64-bit Windows?
Thanks in advance.
Some background information. I have successfully built and run the 64-bit version of OBS 27.0.1 on MSVC 2019 with latest updates, under Windows 7 SP1 64-bit [I know it's EOL but it works for now:-)]. I have enabled the build time virtual camera option and the 64 bit obs-virtualcam-module64.dll has been successfully built.
When running the batch installer file (virtualcam-install.bat) to register obs-virtualcam-module64.dll it doesn't complete successfully unless I also build the 32-bit version.
When I manually register only the 64-bit dll using regsvr32 as described in the installation batch file, the registration completes successfully but when OBS is started the "Start Virtual Camera" button is not present in the Control dock. If I manually un-register the 64-bit version then manually register only the 32-bit dll the button appears when OBS is started. If both the 32-bit and 64-bit versions are registered the button also appears.
Building the Debug version and starting a debugging session I see that in obs_module_load() in dshow-plugin.cpp, vcam_installed(false) is being called. From my limited understanding and testing, it appears to me that in vcam_installed(), the code which determines whether to access the 64-bit or 32-bit CLSID registry key for the registered obs-virtualcam module is only returning the KEY_WOW64_32KEY to OR with the flags variable. I think this is because the boolean bitwise OR is testing against the boolean value of false. The outcome is if only the 64-bit version has been registered, the registry query only looks for the 32-bit key which it doesn't find. This leads to the variable vcamEnabled being set to false. The consequences are the "Start Virtual Camera" button does not appear in the Control dock and I believe the virtual camera module isn't loaded.
I don't think this is a Windows 7 SP1 specific issue.
Is it a design requirement that both 32-bit and 64-bit versions of obs-virtualcam-module dll be present and registered in order for the built-in virtual camera to function in 64-bit OBS on 64-bit Windows?
Thanks in advance.