器件型号:DRA74
工具/软件:TI-RTOS
您好!
我想添加时间水印。 我认为写入是 在编码帧之前更新每个帧、但下面的方法不起作用。 请帮我们查一下这个问题!!!
在编码之前,缓冲区是 YUV,检查 vsdk0304代码,我找到 Draw2D_drawCharYuv420SP 函数。
我写一个功能、如下所示:
int Draw2D_Draw 水印(void *pFrame)
{
INT 状态;
Draw2D_手柄抽绳2DHDLLE;
draw2DHNULLLE=空;
Draw2D_BufInfo bufInfo;
状态= Draw2D_create (draw2DHnLd);
if (status!= system_link_status_sok)
{
退货状态;
}
//bufInfo
bufInfo.bufWidth = 1280;
bufInfo.bufHeight = 720;
//bufInfo.bufping[0]=;
bufInfo.dataFormat = system_DF_YUV420SP_UV;
bufInfo.transperentColor = DRAW2D_Transparent_color;
bufInfo.transperentColorFormat = SYSTEM_DF_YUV420SP_UV;
//设置附加地址
bufInfo.bufAddr[0]=(uint32) pFrame;
状态= Draw2D_setBufInfo (draw2DHnelf、&bufInfo);
Draw2D_FontProperty 字体;
// Draw2D_FontPrm PRM;
// Draw2D_getFontProperty (PRM、&font);
Draw2D_getPropertyFont12 (&font);
Draw2D_drawCharYuv420SP (draw2DHnlfl、0、'A'、&font);
Draw2D_drawCharYuv420SP (draw2DHnlfl、30、0、'A'、&font);
Draw2D_drawCharYuv420SP (draw2DHnlfl、60、0、'A'、&font);
Draw2D_drawCharYuv420SP (draw2DHnlfl、90、0、'A'、&font);
Draw2D_drawCharYuv420SP (draw2DHnlfl、120、0、'A'、&font);
Draw2D_drawCharYuv420SP (draw2DHnele, 150, 0,'a',&font);
Draw2D_drawCharYuv420SP (draw2DHnlfl、0、30、'A'、&font);
Draw2D_drawCharYuv420SP (draw2DHnlfl、0、60、'A'、&font);
Draw2D_drawCharYuv420SP (draw2DHnlfl、0、90、'A'、&font);
vps_printf ("水印已添加! \n");
// Draw2D_clearBuf (draw2DHnlef);
status = Draw2D_delete ( draw2DHnlfe);
}
在下面的位置、我添加函数:
在函数 nt32 EncLink_codecQueueFramesToChQue (EncLink_Obj * pObj)中添加了!
对于(frameId = 0;frameId < frameList.numBuf;frameId++)
{
pFrame = frameList.buffers[frameId];
vidFrm = pFram->payload;
pChObj =&pObj->chObj[pFrame->chNum];
Draw2D_Draw 水印(pFrame->PAYLOAD);
if (system_sf_progressive==
System_Link_Ch_Info_Get_Flag_Scan_Format (
pObj->inQueInfo.chInfo[pFrame->chNum].flags))
{
pChObj->nextFid = 0;
}