From 7fab3d03e056405d4dbb5e2ed3a3f9b58e165876 Mon Sep 17 00:00:00 2001 From: jcm Date: Thu, 14 Mar 2024 21:15:04 -0500 Subject: [PATCH] mac-capture: Standardize early return behavior in init_screen_stream() --- plugins/mac-capture/mac-sck-video-capture.m | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/plugins/mac-capture/mac-sck-video-capture.m b/plugins/mac-capture/mac-sck-video-capture.m index d94a12852a5372..0e2c700b35d617 100644 --- a/plugins/mac-capture/mac-sck-video-capture.m +++ b/plugins/mac-capture/mac-sck-video-capture.m @@ -106,14 +106,14 @@ static bool init_screen_stream(struct screen_capture *sc) switch (sc->capture_type) { case ScreenCaptureDisplayStream: { SCDisplay *target_display = get_target_display(); - - if (!target_display) { + if (target_display == nil) { MACCAP_ERR("init_screen_stream: Invalid target display ID: %u\n", sc->display); - os_sem_post(sc->shareable_content_available); - return false; + sc->disp = NULL; + os_event_init(&sc->disp_finished, OS_EVENT_TYPE_MANUAL); + os_event_init(&sc->stream_start_completed, OS_EVENT_TYPE_MANUAL); + return true; } - if (sc->hide_obs) { SCRunningApplication *obsApp = nil; NSString *mainBundleIdentifier = [[NSBundle mainBundle] bundleIdentifier]; @@ -149,6 +149,7 @@ static bool init_screen_stream(struct screen_capture *sc) } } if (target_window == nil) { + MACCAP_ERR("init_screen_stream: Invalid target window ID: %u\n", sc->window); os_sem_post(sc->shareable_content_available); sc->disp = NULL; os_event_init(&sc->disp_finished, OS_EVENT_TYPE_MANUAL); @@ -167,6 +168,14 @@ static bool init_screen_stream(struct screen_capture *sc) } break; case ScreenCaptureApplicationStream: { SCDisplay *target_display = get_target_display(); + if (target_display == nil) { + MACCAP_ERR("init_screen_stream: Invalid target display ID: %u\n", sc->display); + os_sem_post(sc->shareable_content_available); + sc->disp = NULL; + os_event_init(&sc->disp_finished, OS_EVENT_TYPE_MANUAL); + os_event_init(&sc->stream_start_completed, OS_EVENT_TYPE_MANUAL); + return true; + } SCRunningApplication *target_application = nil; for (SCRunningApplication *application in sc->shareable_content.applications) { if ([application.bundleIdentifier isEqualToString:sc->application_id]) {