• 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 ! ", pFBDevice );

           return -1;

        }

    //===================// alpha

        if( (iAlpha <= 255) && (iAlpha >= 0) )

        {

            gbl_alpha.alpha = iAlpha;

        }

        else

        {

            ERROR( "Invalid alpha: %d ! ", iAlpha );

            return -2;

        }

        gbl_alpha.enable = bEnable;

        ioctl( fdFB, MXCFB_SET_GBL_ALPHA, &gbl_alpha );

        INFO( "%s global alpha, device: %s, alpha: %d ! ", 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

    3、测试程序地址:

    http://files.cnblogs.com/files/senior-engineer/Desktop.zip

  • 相关阅读:
    [C++] const 限定符
    [国嵌笔记][028][Bootloader设计蓝图]
    [国嵌笔记][027][ARM协处理器访问指令]
    [国嵌笔记][026][ARM伪指令]
    [国嵌笔记][025][ARM指令分类学习]
    [国嵌笔记][024][ARM汇编编程概述]
    [国嵌笔记][023][ARM寻址方式]
    [国嵌笔记][021-022][ARM处理器工作模式]
    [国嵌笔记][020][ARM家族大检阅]
    [国嵌笔记][019][Eclipse集成开发环境]
  • 原文地址:https://www.cnblogs.com/senior-engineer/p/6337202.html
Copyright © 2020-2023  润新知