dm8168下qt界面与视频的同步显示

论坛 期权论坛 脚本     
匿名网站用户   2020-12-21 09:08   99   0
文章来源:

http://m.blog.csdn.net/article/details?id=25132051


环境:dm8168

ezsdk5.05.02.00
qt4.7.3
最终效果:qt绘制界面,在界面的任意位置显示用omx播放的视频。

1.qt窗口的裁剪
因为qt的显示层在视频播放层的上面,因此若直接运行则qt程序,qt界面会挡住视频,因此需要进行窗口裁剪。
在qt主窗口构造函数里添加:
QPixmap pix;
pix.load("./1.png", 0, NULL);
resize(pix.size());
setMask(QBitmap(pix.mask()));
其中1.png为只填充了要显示的区域的png图片。通过图片裁剪,可以裁剪出任意形状的窗口。

2.qwsserver
在dm8168上,qt程序需要添加-qws参数来启动qwsserver才能运行。
qwsserver默认情况下会绘制一层绿色背景。因此需要去掉这层背景才能显示下层视频。
在程序初始化函数里添加
QWSServer::setBackground(QBrush(Qt::NoBrush));
或者:
QWSServer::setBackground(QColor(0,0,0,0));
ps:需要#include

3.层间混合模式设定
默认情况下dm8168层间的混合模式为TI81XX_BLENDING_NONE,这种模式下显示了qt程序所在的fb0层,就显示不出下一层的视频了。因此需要将混合模式改为TI81XX_BLENDING_PIXEL,就可在窗口裁剪的部分显示下层内容。
设置方式可参考ezsdk\component-sources\omx_05_02_00_48\examples\ti\omx\demos\decode_display\src文件夹下的Fb_blending.c文件。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP