From d45597e104fa3bd80a6f1922f2fdeaa6a0eff724 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 22 Jul 2023 23:12:08 +0200 Subject: Exit with exit code 10 if pkexec fails --- src/capture/kms_cuda.c | 5 +++-- src/capture/kms_vaapi.c | 5 +++-- src/egl.c | 2 ++ src/main.cpp | 5 +++-- 4 files changed, 11 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/capture/kms_cuda.c b/src/capture/kms_cuda.c index e6fa42f..d6d8774 100644 --- a/src/capture/kms_cuda.c +++ b/src/capture/kms_cuda.c @@ -139,9 +139,10 @@ static int gsr_capture_kms_cuda_start(gsr_capture *cap, AVCodecContext *video_co } cap_kms->using_wayland_capture = true; } else { - if(gsr_kms_client_init(&cap_kms->kms_client, cap_kms->params.card_path) != 0) { + int kms_init_res = gsr_kms_client_init(&cap_kms->kms_client, cap_kms->params.card_path); + if(kms_init_res != 0) { gsr_capture_kms_cuda_stop(cap, video_codec_context); - return -1; + return kms_init_res; } MonitorCallbackUserdata monitor_callback_userdata = { diff --git a/src/capture/kms_vaapi.c b/src/capture/kms_vaapi.c index cc9aad9..04e9658 100644 --- a/src/capture/kms_vaapi.c +++ b/src/capture/kms_vaapi.c @@ -142,9 +142,10 @@ static int gsr_capture_kms_vaapi_start(gsr_capture *cap, AVCodecContext *video_c } cap_kms->using_wayland_capture = true; } else { - if(gsr_kms_client_init(&cap_kms->kms_client, cap_kms->params.card_path) != 0) { + int kms_init_res = gsr_kms_client_init(&cap_kms->kms_client, cap_kms->params.card_path); + if(kms_init_res != 0) { gsr_capture_kms_vaapi_stop(cap, video_codec_context); - return -1; + return kms_init_res; } MonitorCallbackUserdata monitor_callback_userdata = { diff --git a/src/egl.c b/src/egl.c index 3bcb6fe..9fd5925 100644 --- a/src/egl.c +++ b/src/egl.c @@ -536,6 +536,8 @@ void gsr_egl_unload(gsr_egl *self) { } bool gsr_egl_supports_wayland_capture(gsr_egl *self) { + // TODO: wlroots capture is broken right now (black screen) on amd and multiple monitors + // so it has to be disabled right now. Find out why it happens and fix it. (void)self; return false; //return !!self->wayland.export_manager && self->wayland.num_outputs > 0; diff --git a/src/main.cpp b/src/main.cpp index c5dd33f..22f929e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1687,9 +1687,10 @@ int main(int argc, char **argv) { if(replay_buffer_size_secs == -1) video_stream = create_stream(av_format_context, video_codec_context); - if(gsr_capture_start(capture, video_codec_context) != 0) { + int capture_result = gsr_capture_start(capture, video_codec_context); + if(capture_result != 0) { fprintf(stderr, "gsr error: gsr_capture_start failed\n"); - _exit(1); + _exit(capture_result); } open_video(video_codec_context, quality, very_old_gpu, gpu_inf.vendor, pixel_format); -- cgit v1.2.3