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

环境: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文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值