This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi all,
I am working on DM8168 with DVRRDK 4.0.
My issue is:
When I run the program first time, it work properly, then exit the program and run it again,
the program is blocked and the m3vpss print "Capture Driver Advanced Statistics" periodically.
The links are connected as below:
ipcBitsOutHost--> ipcBitsInVideo-> Decode--> ipcOutVideo--> ipcInVpss--| |--> SwMs1--> Display1
|-->merge-->select-->|
capture---| |--> SwMs0--> Dup0 -->(1)
|--> Display0
(1)-->|
|--> Nfs--> ipcOutVpss->ipcInVideo-->Encode-->ipcBitsOutVideo-->ipcBitsInHost
Params related to capture are:
capturePrm.numVipInst = gVcapModuleContext.vcapConfig.numChn;
capturePrm.tilerEnable = TRUE;
capturePrm.numExtraBufs = 0;
capturePrm.maxBlindAreasPerCh = 0;
capturePrm.isPalMode = FALSE;
capturePrm.enableSdCrop = FALSE;
capturePrm.doCropInCapture = FALSE;
for (vipInstId = 0; vipInstId < capturePrm.numVipInst; vipInstId++) {
pCaptureInstPrm = &capturePrm.vipInst[vipInstId];
pCaptureInstPrm->vipInstId = (SYSTEM_CAPTURE_INST_VIP0_PORTA + 2 * vipInstId) % SYSTEM_CAPTURE_INST_MAX;
pCaptureInstPrm->videoDecoderId = 0;//SYSTEM_DEVICE_VID_DEC_SII9233A_DRV;
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
pCaptureInstPrm->standard = lnk_prm->m_vcap_prm.m_vid_std[vipInstId];
pCaptureInstPrm->numOutput = 1;
pCaptureInstPrm->numChPerOutput = 1;
pCaptureInstPrm->numBufsPerCh = 16;
pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
#if 0
pCaptureOutPrm->scEnable = FALSE;
#else
pCaptureOutPrm->scEnable = TRUE;
f(vipInstId == 0) {
pCaptureOutPrm->scOutWidth = 1440;
pCaptureOutPrm->scOutHeight = 810;
} else if(vipInstId == 1) {
pCaptureOutPrm->scOutWidth = 480;
pCaptureOutPrm->scOutHeight = 270;
}
#endif
pCaptureOutPrm->outQueId = 0;
Params related to SwMs are:
swMsPrm[0].swMsInstId[0] = SYSTEM_SW_MS_SC_INST_SC5;
swMsPrm[0].swMsInstId[1] = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
swMsPrm[0].numSwMsInst = 2;
swMsPrm[0].swMsInstStartWin[0] = 0;
swMsPrm[0].swMsInstStartWin[1] = 3;
swMsPrm[1].swMsInstId[0] = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
swMsPrm[1].swMsInstId[1] = SYSTEM_SW_MS_SC_INST_VIP1_SC;
swMsPrm[1].numSwMsInst = 1;
swMsPrm[1].swMsInstStartWin[0] = 0;
swMsPrm[1].swMsInstStartWin[1] = 2;
swMsPrm[0].enableProcessTieWithDisplay = FALSE;
swMsPrm[1].enableProcessTieWithDisplay = FALSE;
swMsPrm[0].includeVipScInDrvPath = FALSE;
swMsPrm[1].includeVipScInDrvPath = FALSE;
If I set pCaptureOutPrm->scEnable to FALSE, this issue will not occur;
I also note that the three registers value are different.
The first time program exit, registers value are:
[m3vpss ] VIP0 : FIQ_STATUS : 0x4810551c = 0x00000000
[m3vpss ] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000
[m3vpss ] VPDMA: LIST_BUSY : 0x4810d00c = 0x00000000
The second time I run the program those value changed to:
[m3vpss ] VIP0 : FIQ_STATUS : 0x4810551c = 0x00000010
[m3vpss ] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000
[m3vpss ] VPDMA: LIST_BUSY : 0x4810d00c = 0x00030000
How can I fix this issue?
Any suggestion will be appreciated.
The detailed logs are attached here