obs-studio icon indicating copy to clipboard operation
obs-studio copied to clipboard

win-dshow: Add support for installing virtualcam on WoA

Open namoen0301 opened this issue 2 months ago • 4 comments

Description

Add a new function in virtualcam-install.bat.in and virtualcam-uninstall.bat.in to support Windows on ARM install.

Motivation and Context

add a simple cpu target check in virtualcam-install.bat.

on x64 platform: Install 32bit and 64bit DLL. on ARM64 platform: Install 32bit and ARM64 DLL.

virualcam-uninstall.bat will uninstall all virtualcam modules.

How Has This Been Tested?

test with my snapdragon laptop and UTM virtual machine on M3 Mac.

image

Types of changes

New feature (non-breaking change which adds functionality)

Checklist:

  • [x] My code has been run through clang-format.
  • [x] I have read the contributing document.
  • [x] My code is not on the master branch.
  • [x] The code has been tested.
  • [x] All commit messages are properly formatted and commits squashed where appropriate.
  • [x] I have included updates to all appropriate documentation.

namoen0301 avatar Oct 28 '25 16:10 namoen0301

It's worth noting that by only installing the ARM64 DLL, the user will only get virtual camera support in native ARM64 apps.

WizardCM avatar Nov 01 '25 23:11 WizardCM

To properly support both ARM64 and x64 apps, the virtualcam DLL will need to be ARM64X (or a ARM64X redirector that redirects to either ARM64 or x64 DLL).

Because both ARM64 and x64 apps share the same registry view and therefore a single entry for COM component dll (InprocServer32).

About ARM64X: https://learn.microsoft.com/en-us/windows/arm/arm64x-build

32-bit x86 apps are unaffected, those can be handled the same way as on x64 machines, just install and register the 32-bit dll the same way.

driver1998 avatar Nov 07 '25 10:11 driver1998

To properly support both ARM64 and x64 apps, the virtualcam DLL will need to be ARM64X (or a ARM64X redirector that redirects to either ARM64 or x64 DLL).

Because both ARM64 and x64 apps share the same registry view and therefore a single entry for COM component dll.

About ARM64X: https://learn.microsoft.com/en-us/windows/arm/arm64x-build

32-bit x86 apps are unaffected, those can be handled the same way as on x64 machines, just install and register the 32-bit dll the same way.

When I'm not busy, I'll look into this.

namoen0301 avatar Nov 07 '25 13:11 namoen0301

I think it needs to be split two separate PRs

  1. Add support for installing virtualcam on WoA, I've added 32bit dll install on ARM64 platform.
  2. Change obs-virtualcam-module-arm64.dll to ARM64X DLL

namoen0301 avatar Nov 11 '25 03:11 namoen0301