Hi , TIers!
I'm using DM8168 with RDK 4.0
my usecase : Capture ----> Swms(output dataformat = YUV420) ----> Display
Encountered issues:
[m3vpss ] 7362: Assertion @ Line: 1134 in links_m3vpss/display/displayLink_drv.c: pObj->displayHndl != NULL : failed !!!
OR
[m3vpss ] 7356: Assertion @ Line: 941 in links_m3vpss/display/displayLink_drv.c: status == FVID2_SOK : failed !!!
============================================================================
My usecase file :
Void Chains_SingleChCapDis(P_CHANNEL_DISCRIPTOR pChannels)
{
UInt32 displayVector[4];
CaptureLink_CreateParams capturePrm;
CaptureLink_VipInstParams * pCaptureInstPrm;
CaptureLink_OutParams * pCaptureOutPrm;
SwMsLink_CreateParams swMsPrm;
DisplayLink_CreateParams displayPrm;
UInt32 captureId, vipInstId;
UInt32 swMsId;
UInt32 displayId;
Int32 i;
char ch;
CHAINS_INIT_STRUCT(SwMsLink_CreateParams,swMsPrm);
CHAINS_INIT_STRUCT(DisplayLink_CreateParams,displayPrm);
captureId = SYSTEM_LINK_ID_CAPTURE;
swMsId = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;
displayId = SYSTEM_LINK_ID_DISPLAY_0;
CaptureLink_CreateParams_Init(&capturePrm);
capturePrm.numVipInst = 4;
capturePrm.tilerEnable = FALSE;
capturePrm.numBufsPerCh = 16;
capturePrm.numExtraBufs = 0;
capturePrm.maxBlindAreasPerCh = 0;
capturePrm.isPalMode = FALSE;
capturePrm.enableSdCrop = FALSE;
capturePrm.doCropInCapture = FALSE;
for (i=0; i<capturePrm.numVipInst; i++)
{
vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA + i;
pCaptureInstPrm = &capturePrm.vipInst[i];
pCaptureInstPrm->vipInstId = vipInstId % SYSTEM_CAPTURE_INST_MAX;
pCaptureInstPrm->videoDecoderId = 0;
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
pCaptureInstPrm->standard = SYSTEM_STD_1080P_30;
pCaptureInstPrm->numOutput = 1;
pCaptureInstPrm->numChPerOutput = 1;
pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->outQueId = 0;
}
capturePrm.outQueParams[0].nextLink = swMsId;
System_linkCreate(captureId, &capturePrm, sizeof(capturePrm));
//////////////////////////////////////////////////////////////////////////////
swMsPrm.numSwMsInst = 2;
swMsPrm.swMsInstId[0] = SYSTEM_SW_MS_SC_INST_VIP0_SC_NO_DEI;
swMsPrm.swMsInstStartWin[0] = 0;
swMsPrm.swMsInstId[1] = SYSTEM_SW_MS_SC_INST_VIP1_SC_NO_DEI;
swMsPrm.swMsInstStartWin[1] = 3;
swMsPrm.inQueParams.prevLinkId = captureId;
swMsPrm.inQueParams.prevLinkQueId = 0;
swMsPrm.outQueParams.nextLink = displayId;
swMsPrm.lineSkipMode = FALSE;
swMsPrm.enableLayoutGridDraw = TRUE;
swMsPrm.layoutPrm.outputFPS = 30;
swMsPrm.maxInputQueLen = 64;
swMsPrm.maxOutRes = SYSTEM_STD_1080P_30;
swMsPrm.numOutBuf = 256;
swMsPrm.outputBufModified = TRUE;
swMsPrm.outDataFormat = SYSTEM_DF_YUV420SP_UV;
SwMsSetLayoutParams(swMsId, SWMS_LAYOUT_PATTERN_1PLUS5, &swMsPrm);
//////////////////////////////////////////////////////////////////////////////
displayPrm.displayRes = SYSTEM_STD_1080P_30;
displayPrm.numInputQueues = 1;
displayPrm.activeQueue = 0;
displayPrm.inQueParams[0].prevLinkId = swMsId;
displayPrm.inQueParams[0].prevLinkQueId = 0;
displayPrm.forceFieldSeparatedInputMode = FALSE;
displayPrm.maxDriverQueLength = DISPLAY_LINK_MAX_DRIVER_QUEUE_LENGTH_DEFAULT;
displayPrm.displayId = DISPLAY_LINK_DISPLAY_SD;
===============================================================================
And I have tried all valid value of displayPrm.displayId, but no one is effective.
How can I fix this issue?