Running gmlglsink without x11

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Running gmlglsink without x11

Dmitry Lavnikevich
Hi all,

I am trying to get qmlglsink working on the x86 platform. Built the
qmlsink example from the gst-plugins-bad for a start. It successfully
runs under the X. But when I try to run it from console with:

$ ./play -platform eglfs

The playback doesn't start. With GST_DEBUG=5 I see:

...
DEBUG   glcontext
gstglcontext_egl.c:321:gst_gl_context_egl_create_context:<glcontextegl0>
Creating EGL context
INFO    glcontext
gstglcontext_egl.c:367:gst_gl_context_egl_create_context: egl
initialized, version: 1.4
INFO    glcontext
gstglcontext_egl.c:479:gst_gl_context_egl_create_context: Bound OpenGL|ES
INFO    glcontext
gstglcontext_egl.c:226:gst_gl_context_egl_choose_config: config set:
140619914800512, 1
DEBUG   glcontext
gstglcontext_egl.c:270:_create_context_with_flags:<glcontextegl0>
attempting to create OpenGL ES context version 3.2 flags 1 p1rofile 0
DEBUG   glcontext
gstglcontext_egl.c:270:_create_context_with_flags:<glcontextegl0>
attempting to create OpenGL ES context version 3.2 flags 0 profile 0
INFO    glcontext
gstglcontext_egl.c:226:gst_gl_context_egl_choose_config: config set:
140619914800512, 1
DEBUG   glcontext
gstglcontext_egl.c:270:_create_context_with_flags:<glcontextegl0>
attempting to create OpenGL ES context version 3.1 flags 1 profile 0
DEBUG   glcontext
gstglcontext_egl.c:270:_create_context_with_flags:<glcontextegl0>
attempting to create OpenGL ES context version 3.1 flags 0 profile 0
INFO    glcontext
gstglcontext_egl.c:226:gst_gl_context_egl_choose_config: config set:
140619914800512, 1
DEBUG   glcontext
gstglcontext_egl.c:270:_create_context_with_flags:<glcontextegl0>
attempting to create OpenGL ES context version 3.0 flags 1 profile 0
DEBUG   glcontext
gstglcontext_egl.c:270:_create_context_with_flags:<glcontextegl0>
attempting to create OpenGL ES context version 3.0 flags 0 profile 0
INFO    glcontext
gstglcontext_egl.c:226:gst_gl_context_egl_choose_config: config set:
140619914800512, 1
DEBUG   glcontext
gstglcontext_egl.c:270:_create_context_with_flags:<glcontextegl0>
attempting to create OpenGL ES context version 2.0 flags 1 profile 0
DEBUG   glcontext
gstglcontext_egl.c:270:_create_context_with_flags:<glcontextegl0>
attempting to create OpenGL ES context version 2.0 flags 0 profile 0
INFO    glcontext
gstglcontext_egl.c:226:gst_gl_context_egl_choose_config: config set:
140619914800512, 1
DEBUG   glcontext
gstglcontext_egl.c:270:_create_context_with_flags:<glcontextegl0>
attempting to create OpenGL ES context version 0.0 flags 1 profile 0
DEBUG   glcontext
gstglcontext_egl.c:270:_create_context_with_flags:<glcontextegl0>
attempting to create OpenGL ES context version 0.0 flags 0 profile 0
WARN    glcontext
gstglcontext.c:1161:gst_gl_context_create_thread:<glcontextegl0> Failed
to create context
INFO    glcontext
gstglcontext.c:963:gst_gl_context_create:<glcontextegl0> gl thread created
ERROR   qtglwidget qtitem.cc:322:qt_item_init_winsys: Failed to create a
OpenGL context: EGL_BAD_CONTEXT
WARN    qtsink gstqtsink.cc:325:gst_qt_sink_change_state:<qtsink0>
error: Could not initialize window system
...

I see the same behaviour both from my archlinux platform and my target
Yocto.

Would be incredebly greatful for any pointers where to look at.

Best regards,
Lavnikevich Dmitry

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Running gmlglsink without x11

glenn.coombs
Dmitry,

I would like to use qmlglsink on an iMX6 platform with OpenGL ES instead of X11.  Did you figure out if qmlglsink requires X11 to work ?

--
Glenn
Reply | Threaded
Open this post in threaded view
|

Re: Running gmlglsink without x11

Sebastian Dröge-3
On Mon, 2017-07-17 at 02:32 -0700, glenn.coombs wrote:
> Dmitry,
>
> I would like to use qmlglsink on an iMX6 platform with OpenGL ES
> instead of X11.  Did you figure out if qmlglsink requires X11 to work
> ?

It doesn't, it works on imx6 with the Qt EGLFS backend.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (981 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Running gmlglsink without x11

glenn.coombs
Hi Sebastian,

Thanks for the information.  That is good news - sounds like it should work on my setup.  I can't see qmlglsink in the output of gst-inspect-1.0 at the moment but hopefully I just need to tell buildroot to include it.

--
Glenn

On 17 July 2017 at 19:57, Sebastian Dröge <[hidden email]> wrote:
On Mon, 2017-07-17 at 02:32 -0700, glenn.coombs wrote:
> Dmitry,
>
> I would like to use qmlglsink on an iMX6 platform with OpenGL ES
> instead of X11.  Did you figure out if qmlglsink requires X11 to work
> ?

It doesn't, it works on imx6 with the Qt EGLFS backend.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Running gmlglsink without x11

glenn.coombs
Hi Sebastian,

I'm having some trouble persuading buildroot to actually build the qmlglsink stuff.  The first issue I had was that the gst1-plugins-bad-1.10.4/configure script in was being run with --disable-qt.  I added a buildroot config option to allow me to toggle that on and that got me a bit further.  The configure script is now run with --enable-qt but fails further on:

configure:50067: *** checking feature: Qt elements ***
configure:50071: *** for plug-ins: qt ***
configure:50115: checking for QT
configure:50123: $PKG_CONFIG --exists --print-errors "Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0"
configure:50126: $? = 0
configure:50141: $PKG_CONFIG --exists --print-errors "Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0"
configure:50144: $? = 0
configure:50184: result: yes
configure:50193: checking for moc-qt5
configure:50226: result: no
configure:50193: checking for moc
configure:50211: found /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/moc
configure:50223: result: /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/moc
configure:50239: checking for rcc-qt5
configure:50272: result: no
configure:50239: checking for rcc
configure:50257: found /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/rcc
configure:50269: result: /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/rcc
configure:50285: checking for uic-qt5
configure:50318: result: no
configure:50285: checking for uic
configure:50303: found /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/uic
configure:50315: result: /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/uic
configure:50774: WARNING: Could not find any Qt Windowing integration
configure:50807: *** These plugins will not be built: qt

It seems to be expecting a Windowing configuration variable.  I'm not using X11 or Wayland so I'm not sure how this should be set.  Any ideas ?

--
Glenn


On 17 July 2017 at 20:28, Glenn Coombs <[hidden email]> wrote:
Hi Sebastian,

Thanks for the information.  That is good news - sounds like it should work on my setup.  I can't see qmlglsink in the output of gst-inspect-1.0 at the moment but hopefully I just need to tell buildroot to include it.

--
Glenn

On 17 July 2017 at 19:57, Sebastian Dröge <[hidden email]> wrote:
On Mon, 2017-07-17 at 02:32 -0700, glenn.coombs wrote:
> Dmitry,
>
> I would like to use qmlglsink on an iMX6 platform with OpenGL ES
> instead of X11.  Did you figure out if qmlglsink requires X11 to work
> ?

It doesn't, it works on imx6 with the Qt EGLFS backend.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel




_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Running gmlglsink without x11

Sebastian Dröge-3
On Wed, 2017-07-19 at 16:44 +0800, Glenn Coombs wrote:
>
> configure:50774: WARNING: Could not find any Qt Windowing integration
> configure:50807: *** These plugins will not be built: qt
>
> It seems to be expecting a Windowing configuration variable.  I'm not
> using X11 or Wayland so I'm not sure how this should be set.  Any
> ideas ?

EGLFS is a "Windowing integration". Please try with GStreamer 1.12 or
newer, there were relevant changes for that, and imx6 in general.

Configure basically has to go into this specific case here:
https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/configure.ac#n3015

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (981 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Running gmlglsink without x11

glenn.coombs
Okay, I have now managed to build the gst1-plugins-bad-1.12.1 package with the qt plugin.  On my target system the output of gst-inspect-1.0 shows the qmlglsink object.  So next I tried to run the qml-example program from the gst1-plugins-bad/tests/examples/qt/ directory.  That builds fine but fails at runtime because the glupload element was unable to be created.  The videotestsrc and qmlglsink objects were created okay.

I have the glupload element present in the output of gst-inspect-1.0 on my desktop system but not on my target system.  Is glupload also built as part of the gst-plugins-bad package ?  Does it need opengl rather than egl or gles2 ?  The config.log file shows these options were given to the configure script:

./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix= --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-examples --disable-valgrind --disable-directsound --disable-direct3d --disable-winks --disable-android_media --disable-apple_media --disable-acm --disable-avc --disable-opensles --disable-uvch264 --disable-msdk --disable-voamrwbenc --disable-bs2b --disable-chromaprint --disable-dc1394 --disable-dts --disable-resindvd --disable-faac --disable-flite --disable-gsm --disable-fluidsynth --disable-kate --disable-ladspa --disable-lv2 --disable-libde265 --disable-modplug --disable-mplex --disable-ofa --disable-openexr --disable-openni2 --disable-teletextdec --disable-wildmidi --disable-smoothstreaming --disable-soundtouch --disable-spc --disable-gme --disable-vdpau --disable-schro --disable-zbar --disable-spandsp --disable-gtk3 --disable-opengl --enable-gles2 --disable-glx --enable-egl --disable-x11 --disable-wayland --disable-dispmanx --disable-bluez --disable-accurip --disable-adpcmdec --disable-adpcmenc --disable-aiff --disable-asfmux --disable-audiobuffersplit --enable-audiofxbad --enable-audiomixer --disable-audiomixmatrix --disable-compositor --enable-audiovisualizers --enable-autoconvert --disable-bayer --disable-camerabin2 --disable-coloreffects --disable-debugutils --disable-dvbsuboverlay --disable-dvdspu --disable-faceoverlay --disable-festival --disable-fieldanalysis --enable-freeverb --disable-frei0r --disable-gaudieffects --disable-geometrictransform --disable-gdp --disable-id3tag --disable-inter --disable-interlace --disable-ivfparse --disable-ivtc --disable-jp2kdecimator --disable-jpegformat --enable-librfb --disable-midi --disable-mpegdemux --disable-mpegtsdemux --disable-mpegtsmux --disable-mpegpsmux --disable-mxf --disable-netsim --disable-onvif --disable-pcapparse --disable-pnm --enable-qt --disable-rawparse --disable-removesilence --disable-rtmp --disable-sdp --disable-segmentclip --disable-siren --disable-smooth --disable-speed --disable-subenc --disable-stereo --disable-timecode --disable-videofilters --disable-videoframe_audiolevel --disable-iqa --enable-videoparsers --disable-videosignal --disable-vmnc --disable-y4m --disable-yadif --disable-assrender --disable-bz2 --disable-curl --disable-dash --disable-decklink --disable-directfb --disable-dvb --disable-faad --disable-fbdev --disable-fdk_aac --disable-gl --disable-hls --disable-kms --disable-libmms --disable-dtls --disable-ttml --disable-mpeg2enc --disable-musepack --disable-neon --disable-openal --disable-opencv --disable-openh264 --disable-openjpeg --disable-opus --disable-rsvg --disable-sbc --disable-shm --disable-sndfile --disable-srtp --disable-vcd --disable-voaacenc --disable-webp --disable-webrtcdsp --disable-x265 build_alias=x86_64-pc-linux-gnu host_alias=arm-buildroot-linux-gnueabihf target_alias=arm-buildroot-linux-gnueabihf CC=/opt/porky/git-repos/buildroot-master/output/host/bin/arm-buildroot-linux-gnueabihf-gcc CFLAGS=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os  LDFLAGS= LIBS=-L/opt/porky/git-repos/buildroot-master/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lEGL   CPPFLAGS=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/opt/porky/git-repos/buildroot-master/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include -DLINUX   CPP=/opt/porky/git-repos/buildroot-master/output/host/bin/arm-buildroot-linux-gnueabihf-cpp PKG_CONFIG=/opt/porky/git-repos/buildroot-master/output/host/bin/pkg-config CXX=/opt/porky/git-repos/buildroot-master/output/host/bin/arm-buildroot-linux-gnueabihf-g++ CXXFLAGS=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os  --no-create --no-recursion

--
Glenn


On 20 July 2017 at 14:54, Sebastian Dröge <[hidden email]> wrote:
On Wed, 2017-07-19 at 16:44 +0800, Glenn Coombs wrote:
>
> configure:50774: WARNING: Could not find any Qt Windowing integration
> configure:50807: *** These plugins will not be built: qt
>
> It seems to be expecting a Windowing configuration variable.  I'm not
> using X11 or Wayland so I'm not sure how this should be set.  Any
> ideas ?

EGLFS is a "Windowing integration". Please try with GStreamer 1.12 or
newer, there were relevant changes for that, and imx6 in general.

Configure basically has to go into this specific case here:
https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/configure.ac#n3015

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel