怎么设置在没有信号的情况下设置蓝屏呢?在哪里设置呢?displayLink没有这个选项。
DM8168平台,DVR4.0 的 SDK
Eason Wang:
你用的是什么Video Decoder? TVP5158芯片自带Bluescreen寄存器,当无视频输入时可自行设置为蓝屏输出,并可自定义蓝屏颜色。
qinghan li:
回复 Eason Wang:
嗯呢,我是想用8168设置高清底图的。在用SWMS在单屏显示(视频不全屏显示,缩小显示)的时候,在视频底上做一个底图,不知道这个底图怎么设置?
Eason Wang:
回复 qinghan li:
如果你说的底图是纯色的话你尝试设置下 COMP_back_color_settings Register 吧
qinghan li:
回复 Eason Wang:
谢谢你的回答,我找了,找不到COMP_back_color_Register。
Eason Wang:
回复 qinghan li:
Sorry, 刚才我看的是814x的手册。
DM816x上有所不同。
应该是VCOMP_reg9
qinghan li:
回复 Eason Wang:
/** \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;
qinghan li:
回复 Eason Wang:
恩恩,解决了!我在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里面指定的地址存放有背景,也不能说背景,就是在没有数据的区域显示其他数据。