Skip to content

Update mac virtualcam for streamlabs-desktop #649

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: streamlabs
Choose a base branch
from

Conversation

sandboxcoder
Copy link

@sandboxcoder sandboxcoder commented Jun 9, 2025

Description

Updates the virtualcam included in obs30 to work with externally outside of OBS.app by configuring it with the com.streamlabs.slobs bundle identifier and enabling the swift camera-extension to be downloaded and built by a different repo for codesign.

Motivation and Context

The former legacy DAL plugin was deprecated by Apple. Enabled the mac obs30 virtual camera to be used with Streamlabs Desktop. This way we are using the same implementation as obs.

I also changed the bundle id in some places into com.streamlabs.slobs. It might be possible to revert this in the near future. For now, I enabled it so that we can install the system extension by running a locally codesigned SLOBS.app. After this feature is fully integrated into a codesigned Streamlabs Desktop.app build that change can be removed from most places. The mac-virtualcam plugin (native cpp code) and corresponding system extension will both obviously still need to use our streamlabs bundle id though.

How Has This Been Tested?

  • In OSN, added a small test case that initialized the virtual cam. However, this only works locally due to System extension(s) security restrictions (cant install those on a build agent).
  • In Streamlabs-Desktop, verified this works in non-codesigned builds.
  • Tested mostly outside of app bundles via the VIRTUALCAM_BYPASS_SYSTEM_CHECK environment var (I updated cmake to look for this var when its building the project for xcode). Also tested within an app bundle but w/o codesign.

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist:

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

sandboxcoder and others added 3 commits June 9, 2025 11:27
* remove legacy mac-virtualcam cmake files
* change cmake to use com.streamlabs.slobs bundle to install virtual cam
* add an option to bypass systemextension checks
* add cmake files to camera-extension so it can be optionally downloaded and compiled
externally outside of the OBS.app (for ex, desktop.app instead)
* change bundle id into com.streamlabs.slobs for virtual camera
@sandboxcoder sandboxcoder mentioned this pull request Jun 9, 2025
6 tasks
* remove the local CMakePresets.json which may cause confusion. It
was basically a copy/paste
* update shell script to reuse the main CMakePresets.json file
* upstream/obs-30.2 branch does not have this target. remove this target
for now; it is breaking on the mac build agents which was recently updated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants