Qt Overlay over GStreamer

时间:2018-01-22 10:42:30

标签: qt gstreamer yocto imx6 eglfs

考虑到当前设置,我提出了一个问题:

  • Yocto Linux on .pub
  • 既不是窗口,也不是显示管理器
  • 在Debian 9上测试的功能齐全的Qt应用程序

该应用程序包含两个主要元素:

  • iMX6部分,带有imxg2dvideosink
  • 半透明的Qt Overlay,应该在流上显示

问题:

如何在全屏显示两个部分(填满整个屏幕)时,如何在流上显示叠加? 可能的解决方案:

  • GStreamer作为/dev/fb1的叠加层(如何将单个应用程序拆分为两个/dev/fb0?)
  • 使用display-manager?
  • 使用窗口管理器?
  • fb而不是linuxfb

我当前(不工作)的解决方案:

  • 使用eglfs
  • 应用程序将首先启动-platform eglfs,然后显示叠加层

1 个答案:

答案 0 :(得分:1)

我自己找到了解决方案。以下分享:

1)在# Source function library. . /etc/init.d/functions 上运行Qt应用程序:

  • /dev/fb1(将export QT_QPA_EGLFS_FB=/dev/fb1指定为/dev/fb1帧缓冲区)
  • eglfs(Unblank framebuffer)
  • echo 0 > /sys/class/graphics/fb1/blank(设置帧缓冲几何)
  • fbset -fb /dev/fb1 --geometry <your geometry here>(运行申请)

如果您想要完全不透明,同时拥有完全透明的叠加部分,请使用颜色键。

2)在./YourApplication -platform eglfs上运行GStreamer:

  • /dev/fb0

这是gst-launch-1.0 videotestsrc ! imxg2dvideosink framebuffer=/dev/fb0的解决方案。其他可能性为eglfs