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.

A question about IPC



Hi

    print:

[m3vpss ] 13381: CAPTURE: Create in progress !!!
[m3vpss ] 13412: CAPTURE: VIP0 PortA capture mode is [ 8-bit, Non-mux Discrete Sync - ACTVID_VSYNC] !!!
[m3vpss ] 13716: CAPTURE: VIP0 PortB capture mode is [ 8-bit, Non-mux Discrete Sync - ACTVID_VSYNC] !!!
[m3vpss ] 14020: CAPTURE: VIP1 PortA capture mode is [ 8-bit, Non-mux Discrete Sync - ACTVID_VSYNC] !!!
[m3vpss ] 14324: CAPTURE: VIP1 PortB capture mode is [ 8-bit, Non-mux Discrete Sync - ACTVID_VSYNC] !!!
[m3vpss ] UTILS: DMA: Allocated CH (TCC) = 58 (58)


2950:!!!SLAVE CORE [VPSS-M3] DOWN!!!
SystemLink_copySlaveCoreExceptionContext:146
mmap of [0xbe9e0000:36864]
mmap virt addresss:0x40086000
munmap of [0x40086000:36864]
SystemLink_copySlaveCoreExceptionContext:153
[m3vpss ] CAPTURE::HEAPID:0 USED:992
[m3vpss ] CAPTURE::HEAPID:3 USED:66355200
[m3vpss ] CAPTURE::HEAPID:4 USED:203673600
[m3vpss ] 14629: CAPTURE: Create Done !!!
[m3vpss ] 14630: IPC_FRAMES_OUT : Create in progress !!!
[m3vpss ] 14631: Assertion @ Line: 279 in links_common/ipcFramesOut/ipcFramesOutLink_tsk.c: inChId < tempVal : failed !!!

    My code:

--------

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 = VSYS_STD_1080P_30;
pCaptureInstPrm->numOutput = 1;
pCaptureInstPrm->numChPerOutput = 1;
pCaptureInstPrm->frameCaptureMode = FALSE;
pCaptureInstPrm->fieldsMerged = FALSE;

pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->outQueId = 0;
}
capturePrm.outQueParams[0].nextLink = ipcFrameOutVpssId;

ipcFrameOutVpssPrm.baseCreateParams.inQueParams.prevLinkId = captureId;
ipcFrameOutVpssPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
ipcFrameOutVpssPrm.baseCreateParams.numChPerOutQue[0] = 1;
ipcFrameOutVpssPrm.baseCreateParams.numOutQue = 1;
ipcFrameOutVpssPrm.baseCreateParams.outQueParams[0].nextLink = ipcFrameInHostId;
ipcFrameOutVpssPrm.baseCreateParams.equallyDivideChAcrossOutQues = FALSE;
ipcFrameOutVpssPrm.baseCreateParams.inputFrameRate = 30;
ipcFrameOutVpssPrm.baseCreateParams.notifyNextLink = TRUE;
ipcFrameOutVpssPrm.baseCreateParams.notifyPrevLink = FALSE;
ipcFrameOutVpssPrm.baseCreateParams.noNotifyMode = FALSE;
ipcFrameOutVpssPrm.baseCreateParams.outputFrameRate = 30;

ipcFrameInHostPrm.baseCreateParams.inQueParams.prevLinkId = ipcFrameOutVpssId;
ipcFrameInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
ipcFrameInHostPrm.baseCreateParams.numChPerOutQue[0] = 1;
ipcFrameInHostPrm.baseCreateParams.numOutQue = 1;
ipcFrameInHostPrm.baseCreateParams.equallyDivideChAcrossOutQues = FALSE;
ipcFrameInHostPrm.baseCreateParams.inputFrameRate = 30;
ipcFrameInHostPrm.baseCreateParams.noNotifyMode = FALSE;
ipcFrameInHostPrm.baseCreateParams.notifyPrevLink = FALSE;
ipcFrameInHostPrm.baseCreateParams.outputFrameRate = 30;

--------

I want to capture the frame and move into cortex_a8 without codec.

But my ipc chains do not work.

And I have not find the documents about how to use IPC in DVR_RDK_03.00.00.00.

Looking forward to your answer,thanks!