首页 > 代码库 > QT解决视频透视,有阴影的方法
QT解决视频透视,有阴影的方法
#define BG_DEVNAME "/dev/fb0"
#define FG_DEVNAME "/dev/fb1"
课题5, QT界面与视频透明叠加问题:颜色透明issues已Fixed掉,而像素级的透明叠加问题尚未解决,内部有方案和上车案例(D090).
实现QT Local alpha透出fb1的多媒体视频或手机互联视频,必须同时满足QT layer显示属性设置,和以下工作:
1、控制内核Global Alpha开关,可以实现将fb0设置到fb1上层,且使能local alpha的效果:
API接口:
SetGlobalAlpha(pGlobalDevice, false, 0);
API代码如下:
int SetGlobalAlpha(const char *pFBDevice, bool bEnable, int iAlpha )
{
struct mxcfb_gbl_alpha gbl_alpha;
int fdFB = -1;
//===================// fd
fdFB = open( pFBDevice, O_RDWR, 0 );
if(fdFB < 0)
{
ERROR( "Open FrameBuffer device failed: %s !\n", pFBDevice );
return -1;
}
//===================// alpha
if( (iAlpha <= 255) && (iAlpha >= 0) )
{
gbl_alpha.alpha = iAlpha;
}
else
{
ERROR( "Invalid alpha: %d !\n", iAlpha );
return -2;
}
gbl_alpha.enable = bEnable;
ioctl( fdFB, MXCFB_SET_GBL_ALPHA, &gbl_alpha );
INFO( "%s global alpha, device: %s, alpha: %d !\n", gbl_alpha.enable?"Enable":"Disable", pFBDevice,
gbl_alpha.alpha );
close(fdFB);
return 0;
}
2、定制mfw_v4lsink插件(见附件,之前给过版本给软件部,可以尝试先不更新该库看效果,如果不行再替换成该文件),
在显示的时候不去动framebuffer的叠加层级关系,附件插件是在CN180S中使用的版本。
(替换/usr/lib/gstreamer-0.10/libmfw_gst_v4lsink.so)文件
地址:http://files.cnblogs.com/files/senior-engineer/libmfw_gst_v4lsink.zip
QT解决视频透视,有阴影的方法