我正在运行一个qt嵌入式应用程序和mplayer,它们都是在framebuffer上运行。
当我开始通过mplayer播放视频时,我在电影周围得到了很多闪烁。
请参阅以下电影:
如何解决?
答案 0 :(得分:1)
Qt 4 QWS ,用于直接写入帧缓冲区的嵌入式linux图形子系统可以运行以下命令在调用mplayer
之前 -qws 服务器的GUI线程,
QWSServer *server = QWSServer::instance();
if(server)
server->enablePainting(false); // Suspend Qt's drawing.
您可以使用 SIGCHLD 或其他内容来确定mplayer
何时完成以及可重复绘画。另一种方法是定位mplayer's
输出窗口并使用QWSEmbedWidget告诉 Qt 不要在那里画画。
QWS 和mplayer
都会打开帧缓冲区并直接绘制到它。没有什么可以编组访问显示设备。 QWS 子系统允许多个 Qt 应用程序同时绘制到屏幕上。但是,它无法控制访问帧缓冲区的其他进程。因此,可以使用 X11 或其他显示管理器,例如Wayland等。这通常是在 Qt5 中使用的方法。