win-dshow: Add support for installing virtualcam on WoA
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.
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.
It's worth noting that by only installing the ARM64 DLL, the user will only get virtual camera support in native ARM64 apps.
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.
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.
I think it needs to be split two separate PRs
- Add support for installing virtualcam on WoA, I've added 32bit dll install on ARM64 platform.
- Change
obs-virtualcam-module-arm64.dllto ARM64X DLL