From 72bbcc0fd7b8e7c7e0a2d5fc046f85fbdbb15830 Mon Sep 17 00:00:00 2001 From: "F. Duncanh" Date: Sun, 23 Mar 2025 15:56:30 -0400 Subject: [PATCH] expose possiblility of user selection of X11 display --- renderers/video_renderer.c | 7 +++++-- renderers/x_display_fix.h | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/renderers/video_renderer.c b/renderers/video_renderer.c index a90f717..7650743 100644 --- a/renderers/video_renderer.c +++ b/renderers/video_renderer.c @@ -322,7 +322,7 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, vide logger_log(logger, LOGGER_ERR, "This error usually means that a uxplay option was mistyped\n" " or some requested part of GStreamer is not installed\n"); } - g_clear_error (&error); + g_clear_error (&error); } g_assert (renderer_type[i]->pipeline); @@ -344,11 +344,14 @@ void video_renderer_init(logger_t *render_logger, const char *server_name, vide renderer_type[i]->gst_window = NULL; renderer_type[i]->use_x11 = false; X11_search_attempts = 0; + /* setting char *x11_display_name to NULL means the value is taken from $DISPLAY in the environment + * (a uxplay option to specify a different value is possible) */ + char *x11_display_name = NULL; if (use_x11) { if (i == 0) { renderer_type[0]->gst_window = (X11_Window_t *) calloc(1, sizeof(X11_Window_t)); g_assert(renderer_type[0]->gst_window); - get_X11_Display(renderer_type[0]->gst_window); + get_X11_Display(renderer_type[0]->gst_window, x11_display_name); if (renderer_type[0]->gst_window->display) { renderer_type[i]->use_x11 = true; } else { diff --git a/renderers/x_display_fix.h b/renderers/x_display_fix.h index 90d5180..ef7d0e1 100644 --- a/renderers/x_display_fix.h +++ b/renderers/x_display_fix.h @@ -43,8 +43,8 @@ struct X11_Window_s { Window window; } typedef X11_Window_t; -static void get_X11_Display(X11_Window_t * X11) { - X11->display = XOpenDisplay(NULL); +static void get_X11_Display(X11_Window_t * X11, char *display_name) { + X11->display = XOpenDisplay(display_name); X11->window = (Window) NULL; }