This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

怎么设置在没有信号的情况下设置蓝屏呢?在哪里设置呢?displayLink没有这个选项。

Other Parts Discussed in Thread: TVP5158

怎么设置在没有信号的情况下设置蓝屏呢?在哪里设置呢?displayLink没有这个选项。

DM8168平台,DVR4.0 的 SDK

  • 你用的是什么Video Decoder?  TVP5158芯片自带Bluescreen寄存器,当无视频输入时可自行设置为蓝屏输出,并可自定义蓝屏颜色。

  • 嗯呢,我是想用8168设置高清底图的。在用SWMS在单屏显示(视频不全屏显示,缩小显示)的时候,在视频底上做一个底图,不知道这个底图怎么设置?

  • 如果你说的底图是纯色的话你尝试设置下 COMP_back_color_settings Register 吧

  • 谢谢你的回答,我找了,找不到COMP_back_color_Register。

  • Sorry, 刚才我看的是814x的手册。

    DM816x上有所不同。

    应该是VCOMP_reg9

  •  /** \brief Blender/Comp BackGround Color in RGB Format is 30-bit packed. */
    #define VPS_CFG_COMP_BKCOLOR            (0xff000000u)//(0x0u)
    //修改这里,开机运行程序后(代码初始化后,还未加载和运行link),这里修改有效,背景变成了红色。
    /** \brief VCOMP BackGround Color in YUV. Format is 0x0CRCBYY (each 10 bits). */
    #define VPS_CFG_VCOMP_BKCOLOR           (0x20080000u)//(0x200003f0u)
    //修改这里,开机运行程序后(代码初始化后,加载和运行link后无作用)

    /** \brief VPDMA BackGround Color in ARGB. Format is 0xAARRGGBB. */
    #define VPS_CFG_VPDMA_ARGB_BKCOLOR      (0x00000000u)
    //修改这里,开机运行程序后(代码初始化后,加载和运行link后无作用)

    /** \brief VPDMA BackGround Color in YUV. Format is 0x00YYCBCR. */
    #define VPS_CFG_VPDMA_YUV_BKCOLOR       (0x00008080u) 
    //修改这里,开机运行程序后(代码初始化后,加载和运行link后无作用)

    /* Minimum unit = 1 byte */

    /**************************************************************************\
    * Register Overlay Structure
    \**************************************************************************/
    typedef struct {
    volatile Uint32 REG0;
    volatile Uint32 REG1;
    volatile Uint32 REG2;
    volatile Uint32 REG3;
    volatile Uint32 REG4;
    volatile Uint32 REG5;
    volatile Uint32 REG6;
    volatile Uint32 REG7;
    volatile Uint32 REG8;
    volatile Uint32 REG9;
    volatile Uint32 REG10;
    volatile Uint32 REG11;
    volatile Uint32 REG12;
    } CSL_Vps_vcompRegs;

     Int VpsHal_vcompInit(UInt32 numInstances,
                         VpsHal_VcompInstParams *vcompInstParams,
                         Ptr arg)
           
    ......
     /* Set the background color */
            regOvly->REG9 |= (VPS_CFG_VCOMP_BKCOLOR & 0x3FFFFFFFu); //修改此处没有效果。
    你好,我上面代码标注设置了都没有效果,只有开机初始化那会可以显示红色,然后我解码文件,+dec+swms (已被缩小,小于屏)+ display,背景就变成了黑色的了。刚才初始的红色不见了。
    然后在下面的函数下面增加如下代码也不行。
     函数:Int32 System_displayCtrlInit(VDIS_PARAMS_S * pPrm)

    添加的代码:
    r = dcCompConfig.bckGrndColor.r = (pPrm->deviceParams[SYSTEM_DC_VENC_HDMI].backGroundColor >>16)&0x0000FF;;
    g = dcCompConfig.bckGrndColor.g = (pPrm->deviceParams[SYSTEM_DC_VENC_HDMI].backGroundColor >>8)&0x0000FF;
    b = dcCompConfig.bckGrndColor.b = pPrm->deviceParams[SYSTEM_DC_VENC_HDMI].backGroundColor & 0x0000FF;
    dcCreateCfg.compConfig = &dcCompConfig; 
  • Hi ,

    请用 reg_rdwr.out来看看这个寄存器值是否被改写成黑色了。

    如果有的话,那么就是被其他代码覆盖了,如果没有的话那还有其他地方对颜色有影响,这个back ground color就不是唯一的一个因素。

    BR,

    Eason

  • 恩恩,解决了!我在swmsLink里面做修改,

    void FastFillColor(Utils_DmaFill2D* pblankFrameInfo,UInt32 numTx){
    switch(gColorIndex)
    {
    case 0:
    pblankFrameInfo[numTx].fillColorYUYV =UTILS_DMA_GENERATE_FILL_PATTERN(0x30, 0x80, 0x80);
    pblankFrameInfo[numTx].fastFillColorIndex = UTILS_DMA_FAST_FILL_COLOR_BLACK;
    break;
    case 1:
    pblankFrameInfo[numTx].fillColorYUYV =UTILS_DMA_GENERATE_FILL_PATTERN(0x80, 0x80, 0x80);
    pblankFrameInfo[numTx].fastFillColorIndex = UTILS_DMA_FAST_FILL_COLOR_GREY;
    break;
    case 2:
    pblankFrameInfo[numTx].fillColorYUYV =UTILS_DMA_GENERATE_FILL_PATTERN(0x68, 0xD5, 0x5A);
    pblankFrameInfo[numTx].fastFillColorIndex = UTILS_DMA_FAST_FILL_COLOR_BLUE;
    break;
    case 3:
    pblankFrameInfo[numTx].fillColorYUYV =UTILS_DMA_GENERATE_FILL_PATTERN(0xFF, 0x80, 0x80);
    pblankFrameInfo[numTx].fastFillColorIndex = UTILS_DMA_FAST_FILL_COLOR_WHITE;
    break;
    default:
    break;
    }
    }

    swmsLink里面指定的地址存放有背景,也不能说背景,就是在没有数据的区域显示其他数据。

  • 我解决了:在swmsLink里面解决的,只要设置在无数据区域的设置为其他颜色即可。

    void FastFillColor(Utils_DmaFill2D* pblankFrameInfo,UInt32 numTx){
    switch(gColorIndex)
    {
    case 0:
    pblankFrameInfo[numTx].fillColorYUYV =UTILS_DMA_GENERATE_FILL_PATTERN(0x30, 0x80, 0x80);
    pblankFrameInfo[numTx].fastFillColorIndex = UTILS_DMA_FAST_FILL_COLOR_BLACK;
    break;
    case 1:
    pblankFrameInfo[numTx].fillColorYUYV =UTILS_DMA_GENERATE_FILL_PATTERN(0x80, 0x80, 0x80);
    pblankFrameInfo[numTx].fastFillColorIndex = UTILS_DMA_FAST_FILL_COLOR_GREY;
    break;
    case 2:
    pblankFrameInfo[numTx].fillColorYUYV =UTILS_DMA_GENERATE_FILL_PATTERN(0x68, 0xD5, 0x5A);
    pblankFrameInfo[numTx].fastFillColorIndex = UTILS_DMA_FAST_FILL_COLOR_BLUE;
    break;
    case 3:
    pblankFrameInfo[numTx].fillColorYUYV =UTILS_DMA_GENERATE_FILL_PATTERN(0xFF, 0x80, 0x80);
    pblankFrameInfo[numTx].fastFillColorIndex = UTILS_DMA_FAST_FILL_COLOR_WHITE;
    break;
    default:
    break;
    }
    }