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