mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-05-25 00:42:22 -04:00
mac-capture: Fix ScreenCaptureKit deadlock when using nil display ID
In some scenarios ScreenCaptureKit will not call our completion handler when an internal ReplayKit error occurred. This seems to be more common when a <nil> display id is provided as the content filter for ScreenCaptureKit. The issue was reported to Apple as FB13455947, but it is good practice for us to check for an invalid display ID before even attempting to start a capture stream.
This commit is contained in:
@@ -108,6 +108,13 @@ static bool init_screen_stream(struct screen_capture *sc)
|
||||
case ScreenCaptureDisplayStream: {
|
||||
SCDisplay *target_display = get_target_display();
|
||||
|
||||
if (!target_display) {
|
||||
MACCAP_ERR("init_screen_stream: Invalid target display ID: %u\n", sc->display);
|
||||
|
||||
os_sem_post(sc->shareable_content_available);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (sc->hide_obs) {
|
||||
SCRunningApplication *obsApp = nil;
|
||||
NSString *mainBundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
|
||||
|
||||
Reference in New Issue
Block a user