hi all . now i use my construct link general like that vdec->swms->osd->vdis.
the source code is general like following,when the chId = 0 ,i can see the osd window.
but when i changed the chId = 1,i can not see the osd window. so why? thanks !!!
{
int chId = 0;
printf("\r\n@@@@@@@-----numCh----%d@@@@@@@\r\n",numCh);
AlgLink_OsdChWinParams * chWinPrm = &g_osdChParam[chId];//chId
chWinPrm->chId = chId;
chWinPrm->numWindows = 10;//max = 10
//for(winId=0; winId < chWinPrm->numWindows; winId++)
// {
//winId = osdParam->osdwinId;//one
printf("\r\n$$$$$$$$$$$$$$-----winId----%d@@@@@@@\r\n",winId);
chWinPrm->winPrm[winId].addr[0][0] = bufInfo.physAddr;
//curVirtAddr = bufInfo.virtAddr;
osdParam->osdVirAddr = bufInfo.virtAddr;
chWinPrm->winPrm[winId].startX = osdParam->startX;//DEMO_OSD_WIN0_STARTX//100 ;
chWinPrm->winPrm[winId].startY = osdParam->startY;//DEMO_OSD_WIN0_STARTY + (DEMO_OSD_WIN_HEIGHT+DEMO_OSD_WIN0_STARTY)*winId;
chWinPrm->winPrm[winId].width = winWidth;//DEMO_OSD_WIN_WIDTH
chWinPrm->winPrm[winId].height = winHeight;//DEMO_OSD_WIN_HEIGHT
chWinPrm->winPrm[winId].lineOffset = winWidth;//DEMO_OSD_WIN_PITCH_H;
chWinPrm->winPrm[winId].globalAlpha = osdParam->globalAlpha;//DEMO_OSD_GLOBAL_ALPHA/2;
chWinPrm->winPrm[winId].transperencyEnable = 1;//DEMO_OSD_TRANSPARENCY
chWinPrm->winPrm[winId].enableWin = osdParam->osdEnable;//DEMO_OSD_ENABLE_WIN;
chWinPrm->winPrm[winId].format = SYSTEM_DF_RGB24_888;
osdDrawText(osdParam,(char *) osdParam->osdVirAddr);//curVirtAddr
}
System_linkControl(
SYSTEM_LINK_ID_ALG_0,
ALG_LINK_OSD_CMD_SET_CHANNEL_WIN_PRM,
&g_osdChParam[chId],//chId
sizeof(AlgLink_OsdChWinParams),
TRUE
);