** Description changed:

  Qt5 can render directly to KMS (that is, without X11 or Wayland running)
  based on its EGLFS platform and the Mesa3D GBM library. This is
  generally useful for scenarios with fullscreen applications that run all
  the time, like a media center on a HTPC. Using a system like X11 or
  Wayland in such cases is overkill, since as said, there will only ever
  be one graphical application active at the same time, and said
  application will run in fullscreen mode.
  
  Qt5 based applications that want to use GStreamer 1.x for video playback
  currently can choose to either use QtMultimedia or qmlglsink+extra
  playback code. A common choice is qmlglsink+gstplayer. The benefit of
  qmlglsink is that it is maintained by the GStreamer developers, and is
  integrated with the GStreamer OpenGL stack.
  
  However, the qmlglsink from the current gstreamer1.0-plugins-good
  package from Ubuntu 18.04 does not work when using EGLFS on top of KMS.
  This is because qmlglsink needs to access the EGLDisplay handle that Qt5
  is using. Currently, this is done through the QPlatformNativeInterface
  nativeResourceForWindow() function. This class can be found in the
  qpa/qplatformnativeinterface.h header. And this header in turn is
  present in the qtbase5-private-dev package.
  
+ Relevant bits in the qmlglsink code are:
+ 
+ 
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/configure.ac#L894
+ 
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/ext/qt/meson.build#L31
+ 
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/ext/qt/gstqtglutility.cc#L45
+ 
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/ext/qt/gstqtglutility.cc#L118
+ 
  The simple solution to this is to make sure that header is present when
  gstreamer1.0-plugins-good is being built. Then, the relevant code paths
  in ext/qt/gstqtglutility.cc are activated (via #ifdefs), and qmlglsink
  can run with EGLFS on top of KMS.

** Description changed:

  Qt5 can render directly to KMS (that is, without X11 or Wayland running)
  based on its EGLFS platform and the Mesa3D GBM library. This is
  generally useful for scenarios with fullscreen applications that run all
  the time, like a media center on a HTPC. Using a system like X11 or
  Wayland in such cases is overkill, since as said, there will only ever
  be one graphical application active at the same time, and said
  application will run in fullscreen mode.
  
  Qt5 based applications that want to use GStreamer 1.x for video playback
  currently can choose to either use QtMultimedia or qmlglsink+extra
  playback code. A common choice is qmlglsink+gstplayer. The benefit of
  qmlglsink is that it is maintained by the GStreamer developers, and is
  integrated with the GStreamer OpenGL stack.
  
  However, the qmlglsink from the current gstreamer1.0-plugins-good
  package from Ubuntu 18.04 does not work when using EGLFS on top of KMS.
  This is because qmlglsink needs to access the EGLDisplay handle that Qt5
  is using. Currently, this is done through the QPlatformNativeInterface
  nativeResourceForWindow() function. This class can be found in the
  qpa/qplatformnativeinterface.h header. And this header in turn is
  present in the qtbase5-private-dev package.
  
  Relevant bits in the qmlglsink code are:
  
  
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/configure.ac#L894
  
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/ext/qt/meson.build#L31
  
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/ext/qt/gstqtglutility.cc#L45
  
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/ext/qt/gstqtglutility.cc#L118
  
- The simple solution to this is to make sure that header is present when
- gstreamer1.0-plugins-good is being built. Then, the relevant code paths
- in ext/qt/gstqtglutility.cc are activated (via #ifdefs), and qmlglsink
- can run with EGLFS on top of KMS.
+ The simple solution to this is to make sure that the
+ qpa/qplatformnativeinterface.h header is present when gstreamer1.0
+ -plugins-good is being built. Then, the relevant code paths in
+ ext/qt/gstqtglutility.cc are activated (via #ifdefs), and qmlglsink can
+ run with EGLFS on top of KMS.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1804452

Title:
  qmlglsink from gstreamer1.0-plugins-good 1.14.1 is not built with
  proper QPA headers

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gst-plugins-good1.0/+bug/1804452/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to