Hi,
I used capture/display mode in DM8148, the input was from TVP7002.
When the link is capture ---> display, the video I received is suspended, just a image. I thought maybe it was because I had not enough time to deal the data. Then I changed the link to capture ---> ipcFramesOutVpss ---> display, at the same time there is a processlink in ipcFramesOutVpss: ipcFramesOutVpss ---> ipcFramesIndsp ---> dspAlg. Then I saw the screen black.
Could somebody give me some advices please? Thanks.
My program is:
gVcapModuleContext.ipcFramesOutVpssId[0] = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_0;
gVcapModuleContext.ipcFramesInDspId[0] = SYSTEM_DSP_LINK_ID_IPC_FRAMES_IN_0;
gVcapModuleContext.dspAlgId[0] = SYSTEM_LINK_ID_ALG_0;
capturePrm.outQueParams[0].nextLink = gVcapModuleContext.ipcFramesOutVpssId[0];
pCaptureOutPrm->outQueId = 0;
/* Set ipcFramesOutVpss link info */
ipcFramesOutVpssPrm.baseCreateParams.noNotifyMode = FALSE;
ipcFramesOutVpssPrm.baseCreateParams.notifyPrevLink = TRUE;
ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkId = gVcapModuleContext.captureId;
ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
ipcFramesOutVpssPrm.baseCreateParams.numOutQue = 1;
ipcFramesOutVpssPrm.baseCreateParams.notifyNextLink = TRUE;
ipcFramesOutVpssPrm.baseCreateParams.outQueParams[0].nextLink = gVdisModuleContext.displayId[0];
ipcFramesOutVpssPrm.baseCreateParams.notifyProcessLink = TRUE;
ipcFramesOutVpssPrm.baseCreateParams.processLink = gVcapModuleContext.ipcFramesInDspId;
//prevLink->processLink->nextLink
ipcFramesInDspPrm.baseCreateParams.noNotifyMode = FALSE;
ipcFramesInDspPrm.baseCreateParams.notifyPrevLink = TRUE;
ipcFramesInDspPrm.baseCreateParams.inQueParams.prevLinkId = gVcapModuleContext.ipcFramesOutVpssId[0];
ipcFramesInDspPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
ipcFramesInDspPrm.baseCreateParams.numOutQue = 1;
ipcFramesInDspPrm.baseCreateParams.notifyNextLink = TRUE;
ipcFramesInDspPrm.baseCreateParams.outQueParams[0].nextLink = gVcapModuleContext.dspAlgId[0];
dspAlgPrm.enableOSDAlg = TRUE;
dspAlgPrm.enableSCDAlg = FALSE;
dspAlgPrm.inQueParams.prevLinkId = gVcapModuleContext.ipcFramesInDspId[0];
dspAlgPrm.inQueParams.prevLinkQueId = 0;
dspAlgPrm.outQueParams.nextLink = SYSTEM_LINK_ID_INVALID;
/* display link params */
MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm);
displayPrm.inQueParams[0].prevLinkId = gVcapModuleContext.ipcFramesOutVpssId[0];
displayPrm.inQueParams[0].prevLinkQueId = 0;
displayPrm.displayRes = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_HDMI].resolution;
displayPrm.displayId = DISPLAY_LINK_DISPLAY_SC1;
/* Links Creation */
System_linkCreate(gVcapModuleContext.captureId, &capturePrm, sizeof(capturePrm));
System_linkControl(gVcapModuleContext.captureId, CAPTURE_LINK_CMD_DETECT_VIDEO, NULL, 0, TRUE);
/* IpcFrames link */
System_linkCreate(gVcapModuleContext.ipcFramesOutVpssId[0], &ipcFramesOutVpssPrm, sizeof(ipcFramesOutVpssPrm));
System_linkCreate(gVcapModuleContext.ipcFramesInDspId[0], &ipcFramesInDspPrm, sizeof(ipcFramesInDspPrm));
System_linkCreate(gVcapModuleContext.dspAlgId[0], &dspAlgPrm, sizeof(dspAlgPrm));
/* display link */
System_linkCreate(gVdisModuleContext.displayId[0], &displayPrm, sizeof(displayPrm));