Ver Fonte

mac-virtualcam: Fix random crashes in applications loading VirtualCam

Without invalidating the mach port used for sharing the IOSurface
between OBS and the application displaying the virtual camera output,
IOKit seems to run into the issue of receiving "shared" mach ports,
possibly because of port exhaustion. IOKit requires a "new" port
however and crashes upon that error otherwise.

Co-authored-by: Steven Michaud <[email protected]>
PatTheMav há 3 anos atrás
pai
commit
6bf6e27ec1

+ 1 - 0
plugins/mac-virtualcam/src/dal-plugin/OBSDALMachClient.mm

@@ -114,6 +114,7 @@
 
 
 			IOSurfaceRef surface = IOSurfaceLookupFromMachPort(
 			IOSurfaceRef surface = IOSurfaceLookupFromMachPort(
 				[framePort machPort]);
 				[framePort machPort]);
+			[framePort invalidate];
 			mach_port_deallocate(mach_task_self(),
 			mach_port_deallocate(mach_task_self(),
 					     [framePort machPort]);
 					     [framePort machPort]);