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

本文详细介绍了如何在dm8168环境下,利用QT绘制界面并显示由OMX播放的视频。包括QT窗口裁剪以避免界面遮挡视频的方法,启动qwsserver的步骤以及设置层间混合模式以实现视频显示的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境: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));
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文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值