I'm trying to use GStreamer's OpenGL plugin (gst-plugins-gl) in Ubuntu in the latest release (L3.0.35_4.0.0_130424) with the following command:
gst-launch -v videotestsrc ! "video/x-raw-rgb" ! glupload ! glimagesink
Then it failed with segmentational fault at the following place:
#0 0x2b2d79d4 in XSynchronize () from /usr/lib/arm-linux-gnueabi/libX11.so.6
#1 0x2b213bba in gst_gl_window_new (external_gl_context=0)
at gstglwindow_x11ES2.c:343
#2 0x2b209602 in gst_gl_display_thread_create_context (display=0x15b008)
at gstgldisplay.c:585
#3 0x2ac22b58 in ?? () from /lib/arm-linux-gnueabi/libglib-2.0.so.0
#4 0x2ac22b58 in ?? () from /lib/arm-linux-gnueabi/libglib-2.0.so.0
I checked that it's actually due to priv->device was NULL in gst-libs/gst/gl/gstglwindow_x11ES2.c:298
priv->device = XOpenDisplay (priv->display_name);
I tried X11 with both the accelerated vivante display or the original fbdev display, it's the same result. I would really appreciate if anyone has any ideas on why XOpenDisplay failed here.