Browse Source

UI: Don't create default desktop audio source on macOS 13+

jcm 1 year ago
parent
commit
1b25acd184
3 changed files with 14 additions and 0 deletions
  1. 9 0
      UI/platform-osx.mm
  2. 1 0
      UI/platform.hpp
  3. 4 0
      UI/window-basic-main.cpp

+ 9 - 0
UI/platform-osx.mm

@@ -133,6 +133,15 @@ void SetAlwaysOnTop(QWidget *window, bool enable)
     window->show();
 }
 
+bool shouldCreateDefaultAudioSource(void)
+{
+    if (@available(macOS 13, *)) {
+        return false;
+    } else {
+        return true;
+    }
+}
+
 bool SetDisplayAffinitySupported(void)
 {
     // Not implemented yet

+ 1 - 0
UI/platform.hpp

@@ -104,6 +104,7 @@ void InstallNSApplicationSubclass();
 void InstallNSThreadLocks();
 void disableColorSpaceConversion(QWidget *window);
 void SetMacOSDarkMode(bool dark);
+bool shouldCreateDefaultAudioSource();
 
 MacPermissionStatus CheckPermissionWithPrompt(MacPermissionType type,
 					      bool prompt_for_permission);

+ 4 - 0
UI/window-basic-main.cpp

@@ -997,6 +997,10 @@ void OBSBasic::CreateFirstRunSources()
 	bool hasDesktopAudio = HasAudioDevices(App()->OutputAudioSource());
 	bool hasInputAudio = HasAudioDevices(App()->InputAudioSource());
 
+#ifdef __APPLE__
+	hasDesktopAudio = hasDesktopAudio && shouldCreateDefaultAudioSource();
+#endif
+
 	if (hasDesktopAudio)
 		ResetAudioDevice(App()->OutputAudioSource(), "default",
 				 Str("Basic.DesktopDevice1"), 1);