Hi:
In my project,sometimes have swms output dirty frame,look the picture may clearly:
the normal swms output:
unormal output:
I think one output buff is dirty,so every 5 frame will output a dirty frameout,I just want to know how this issue happen, why this buff become dirty,I think this buff when init is clean,but some reason lead the issue dirty?
the first step: how to solve this issue,our product need to sail now!
at below I will share my usecase about swms create args and in the app about swms layout:
swmslink create args:
SwMsLink_CreateParams swMsPrm,*pSwMsPrm = &swMsPrm; SwMsLink_CreateParams_Init(pSwMsPrm); pSwMsPrm->inQueParams.prevLinkId = gRB_S2013_HD_LINK.linkId_Dup_sclr_merge_swms; pSwMsPrm->inQueParams.prevLinkQueId = 1; pSwMsPrm->outQueParams.nextLink = gRB_S2013_HD_LINK.linkId_Dup_nsf_merge; pSwMsPrm->numSwMsInst = 1; pSwMsPrm->swMsInstId[0] = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI; pSwMsPrm->swMsInstStartWin[0] = 0; pSwMsPrm->enableProcessTieWithDisplay = FALSE; pSwMsPrm->numOutBuf = 6; pSwMsPrm->maxInputQueLen = SYSTEM_SW_MS_INVALID_INPUT_QUE_LEN; pSwMsPrm->numOutBuf = 0;//use SWMS default setting pSwMsPrm->maxInputQueLen = SYSTEM_SW_MS_DEFAULT_INPUT_QUE_LEN; pSwMsPrm->lineSkipMode = FALSE; pSwMsPrm->enableLayoutGridDraw = FALSE; pSwMsPrm->enableOuputDup = FALSE; pSwMsPrm->outDataFormat = SYSTEM_DF_YUV422I_YUYV; pSwMsPrm->outputBufModified = FALSE; pSwMsPrm->layoutPrm.numWin = 4; pSwMsPrm->layoutPrm.onlyCh2WinMapChanged = FALSE; pSwMsPrm->layoutPrm.outputFPS=25; pSwMsPrm->initOutRes=pSwMsPrm->maxOutRes = VSYS_STD_1080P_60; pSwMsPrm->layoutPrm.winInfo[0].channelNum = 0; pSwMsPrm->layoutPrm.winInfo[0].startX = 0; pSwMsPrm->layoutPrm.winInfo[0].startY = 135; pSwMsPrm->layoutPrm.winInfo[0].width = 480; pSwMsPrm->layoutPrm.winInfo[0].height = 270; pSwMsPrm->layoutPrm.winInfo[0].bypass = TRUE; pSwMsPrm->layoutPrm.winInfo[1].channelNum = 1; pSwMsPrm->layoutPrm.winInfo[1].startX = 0; pSwMsPrm->layoutPrm.winInfo[1].startY = 405; pSwMsPrm->layoutPrm.winInfo[1].width = 480; pSwMsPrm->layoutPrm.winInfo[1].height = 270; pSwMsPrm->layoutPrm.winInfo[1].bypass = TRUE; pSwMsPrm->layoutPrm.winInfo[2].channelNum = 2; pSwMsPrm->layoutPrm.winInfo[2].startX = 0; pSwMsPrm->layoutPrm.winInfo[2].startY = 675; pSwMsPrm->layoutPrm.winInfo[2].width = 480; pSwMsPrm->layoutPrm.winInfo[2].height = 270; pSwMsPrm->layoutPrm.winInfo[2].bypass = TRUE; pSwMsPrm->layoutPrm.winInfo[3].channelNum = 3; pSwMsPrm->layoutPrm.winInfo[3].startX = 480; pSwMsPrm->layoutPrm.winInfo[3].startY = 135; pSwMsPrm->layoutPrm.winInfo[3].width = 1440; pSwMsPrm->layoutPrm.winInfo[3].height = 810; pSwMsPrm->layoutPrm.winInfo[3].bypass = TRUE; ret = System_linkCreate(gRB_S2013_HD_LINK.linkId_SwMs_compose,pSwMsPrm,sizeof(*pSwMsPrm)); OSA_assert(ERROR_NONE==ret); sysDBG("Create Link SYSTEM_LINK_ID_SW_MS_MULTI_INST_0 Success."); __register_created_LnkId(gRB_S2013_HD_LINK.linkId_SwMs_compose);
swms layout config: same with the create layout
stream input info:
3 channel 720P60,1 channel 1024x768P30
wait for friends reply!
thanks very much!