In order to get graphic devices info a connection to X server is required, make sure we get it also when ximagesrc capture is used ( XLIB_CAPTURE=0 ). Signed-off-by: Snir Sheriber <ssheribe@xxxxxxxxxx> --- src/gst-plugin.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/gst-plugin.cpp b/src/gst-plugin.cpp index 3edf9f5..0814ef5 100644 --- a/src/gst-plugin.cpp +++ b/src/gst-plugin.cpp @@ -84,9 +84,9 @@ private: GstElement *get_encoder_plugin(const GstreamerEncoderSettings &settings, GstCapsUPtr &sink_caps); GstElement *get_capture_plugin(const GstreamerEncoderSettings &settings); void pipeline_init(const GstreamerEncoderSettings &settings); + Display *dpy; #if XLIB_CAPTURE void xlib_capture(); - Display *dpy; XImage *image = nullptr; #endif GstObjectUPtr<GstElement> pipeline, capture, sink; @@ -251,13 +251,6 @@ void GstreamerFrameCapture::pipeline_init(const GstreamerEncoderSettings &settin throw std::runtime_error("Linking gstreamer's elements failed"); } -#if XLIB_CAPTURE - dpy = XOpenDisplay(nullptr); - if (!dpy) { - throw std::runtime_error("Unable to initialize X11"); - } -#endif - gst_element_set_state(pipeline.get(), GST_STATE_PLAYING); #if !XLIB_CAPTURE @@ -292,6 +285,10 @@ void GstreamerFrameCapture::pipeline_init(const GstreamerEncoderSettings &settin GstreamerFrameCapture::GstreamerFrameCapture(const GstreamerEncoderSettings &settings): settings(settings) { + dpy = XOpenDisplay(nullptr); + if (!dpy) { + throw std::runtime_error("Unable to initialize X11"); + } pipeline_init(settings); } @@ -313,9 +310,7 @@ GstreamerFrameCapture::~GstreamerFrameCapture() { free_sample(); gst_element_set_state(pipeline.get(), GST_STATE_NULL); -#if XLIB_CAPTURE XCloseDisplay(dpy); -#endif } void GstreamerFrameCapture::Reset() @@ -326,6 +321,9 @@ void GstreamerFrameCapture::Reset() #if XLIB_CAPTURE void GstreamerFrameCapture::xlib_capture() { + if (!dpy) { + throw std::runtime_error("X11 connection is not initialized"); + } int screen = XDefaultScreen(dpy); Window win = RootWindow(dpy, screen); -- 2.20.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel