海思视频和QT的Colorkey显示模式

Hi3520A视频是在视频层显示的,而QT是运行在图形层,但是QT运行后会遮挡视频层的视频,因此,需要某种方法将QT视频区域隐藏然后显示后面的视频如:QT的label背景设置为紫色,然后通过硬件透色了图形层上面的紫色,那么该区域就是透明的了就可以显示出后面的视频海思芯片该透色的功能叫做:colorkey,即关键色,如上,将关键色配置成紫色那么就可以透色了调试过程中,依然是看framebuffer的配置信息,如下所示
海思视频和QT的Colorkey显示模式_第1张图片红色部分为设置的Colorkey颜色。对应的QT按16位颜色设置。

配置colorkey需要注意一下一点:
color format格式是ARGB1555还是ARGB8888,如此处是ARGB1555,那么紫色就是0x7c1f色那么就可以透色了调试过程中,依然是看framebuffer的配置信息,如下所示
代码如下[plain] view plaincopy

1 HIFB_COLORKEY_S colorkey;
2 colorkey.bKeyEnable = HI_TRUE;
3 colorkey.u32Key = 0x1f|(0x1f<<10);
4 if (ioctl(s32Fd, FBIOPUT_COLORKEY_HIFB, &colorkey) < 0)
5 {
6 printf(“Put colorkey failed!\n”);
7 goto FB_PROCESS_ERROR1;
8 }

你可能感兴趣的:(海思视频和QT的Colorkey显示模式)