Hello everyone,
I added one chain in my usecase:
capture -> nsf -> ipc-out -> ipc-in-a8
but did not see any frame out. Could anyone give me some hints?
CaptureLink_CreateParams_Init(&capturePrm);
capturePrm.numVipInst = 1;
capturePrm.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.nsfVpssId;
capturePrm.tilerEnable = FALSE;
capturePrm.numBufsPerCh = NUM_CAPTURE_BUFFERS;
capturePrm.maxBlindAreasPerCh = 4;
for(vipInstId=0; vipInstId<capturePrm.numVipInst; vipInstId++)
{
pCaptureInstPrm = &capturePrm.vipInst[vipInstId];
pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA+vipInstId;
pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
pCaptureInstPrm->standard = SYSTEM_STD_MUX_4CH_D1;
pCaptureInstPrm->numOutput = 1;
pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->scOutWidth = 0;
pCaptureOutPrm->scOutHeight = 0;
pCaptureOutPrm->outQueId = 0;
}
for(i = 0; i < NUM_CAPTURE_DEVICES; i++)
{
vidDecVideoModeArgs[i].vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA+i;
vidDecVideoModeArgs[i].deviceId = DEVICE_VID_DEC_TVP5158_DRV;
vidDecVideoModeArgs[i].numChInDevice = 4;
vidDecVideoModeArgs[i].modeParams.videoIfMode = DEVICE_CAPT_VIDEO_IF_MODE_8BIT;
vidDecVideoModeArgs[i].modeParams.videoDataFormat = SYSTEM_DF_YUV422P;
vidDecVideoModeArgs[i].modeParams.standard = SYSTEM_STD_MUX_4CH_D1;
vidDecVideoModeArgs[i].modeParams.videoCaptureMode =
DEVICE_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_PIXEL_MUX_EMBEDDED_SYNC;
vidDecVideoModeArgs[i].modeParams.videoSystem =
DEVICE_VIDEO_DECODER_VIDEO_SYSTEM_AUTO_DETECT;
vidDecVideoModeArgs[i].modeParams.videoCropEnable = FALSE;
vidDecVideoModeArgs[i].modeParams.videoAutoDetectTimeout = -1;
}
Vcap_configVideoDecoder(vidDecVideoModeArgs, NUM_CAPTURE_DEVICES);
nsfVpssPrm.bypassNsf = TRUE;
nsfVpssPrm.tilerEnable = FALSE;
nsfVpssPrm.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.captureId;
nsfVpssPrm.inQueParams.prevLinkQueId = 0;
nsfVpssPrm.numOutQue = 1;
nsfVpssPrm.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.ipcFramesOutVpssToHostId;
ipcFramesOutVpssToHostPrm.baseCreateParams.noNotifyMode = FALSE;
ipcFramesOutVpssToHostPrm.baseCreateParams.notifyNextLink = TRUE;
ipcFramesOutVpssToHostPrm.baseCreateParams.notifyPrevLink = TRUE;
ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.nsfVpssId;
ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
ipcFramesOutVpssToHostPrm.baseCreateParams.numOutQue = 1;
ipcFramesOutVpssToHostPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.ipcFramesInHostFromVpssId;
ipcFramesInHostFromVpssPrm.baseCreateParams.noNotifyMode = FALSE;
ipcFramesInHostFromVpssPrm.baseCreateParams.notifyNextLink = FALSE;
ipcFramesInHostFromVpssPrm.baseCreateParams.notifyPrevLink = TRUE;
ipcFramesInHostFromVpssPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcFramesOutVpssToHostId;
ipcFramesInHostFromVpssPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
ipcFramesInHostFromVpssPrm.baseCreateParams.numOutQue = 1;
ipcFramesInHostFromVpssPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;
ipcFramesInHostFromVpssPrm.exportOnlyPhyAddr = TRUE;
ipcFramesInHostFromVpssPrm.cbFxn = &MyDataInNotify;
ipcFramesInHostFromVpssPrm.cbCtx = &myDataInNotifySem;