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.
I am using DVR RDK 4.0. I meet a problem with capture.
In my use case:
chain is capturelink ---> displaylink.
but it seems not easy to create capturelink. I can only create the chain by
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P; or pCaptureInstPrm->inDataFormat = SYSTEM_DF_RGB24_888;
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;
if I set pCaptureInstPrm->inDataFormat pCaptureOutPrm->dataFormat to other parameters.
It stopped at:
captureLink_drv.c
pInst->captureVipHandle = FVID2_create( FVID2_VPS_CAPT_VIP_DRV,
pInst->instId,
pVipCreateArgs,
&pInst->createStatus, &pInst->cbPrm);
and m3vpss report as below:
161: MCFW : CPU Revision [ES2.0] !!!
[m3vpss ] 4793: CAPTURE: Create in progress !!!
[m3vpss ] 4823: CAPTURE: VIP0 PortA capture mode is [16-bit, Non-mux Embedded Sync] !!!
[m3vpss ] 4823: Assertion @ Line: 832 in links_m3vpss/capture/captureLink_drv.c: pInst->captureVipHandle != NULL : failed !!!
It confused me a lot! I wish how to solve the problem, a direction will be cool too! all my caputurelink parameters has showed below:
CaptureLink_CreateParams_Init(&capturePrm);
capturePrm.numVipInst = 1;
capturePrm.outQueParams[0].nextLink = gVdisModuleContext.displayId[0];
capturePrm.tilerEnable = FALSE;
capturePrm.enableSdCrop = FALSE;
for(vipInstId=0; vipInstId<capturePrm.numVipInst; vipInstId++)
{
pCaptureInstPrm = &capturePrm.vipInst[vipInstId];
pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;
pCaptureInstPrm->videoDecoderId = 0;
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422SP_UV;//
pCaptureInstPrm->standard = SYSTEM_STD_1080P_30; // SYSTEM_STD_MUX_4CH_D1;
pCaptureInstPrm->numOutput = 1;
pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->scOutWidth = 0;
pCaptureOutPrm->scOutHeight = 0;
pCaptureOutPrm->outQueId = 0;
}
static inline void CaptureLink_CreateParams_Init(CaptureLink_CreateParams *pPrm)
{
UInt32 i;
memset(pPrm, 0, sizeof(*pPrm));
pPrm->numVipInst = 0;
pPrm->tilerEnable = FALSE;
pPrm->fakeHdMode = FALSE;
pPrm->enableSdCrop = TRUE;
pPrm->doCropInCapture = TRUE;
pPrm->numBufsPerCh = CAPTURE_LINK_NUM_BUFS_PER_CH_DEFAULT;
pPrm->numExtraBufs = 0;
pPrm->overrideNumBufsInInstPrms = 0;
for (i=0; i<SYSTEM_CAPTURE_INST_MAX; i++)
{
pPrm->vipInst[i].numChPerOutput = 0;
pPrm->vipInst[i].enableTimestampInInterrupt = TRUE;
pPrm->vipInst[i].videoCaptureMode = SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;
pPrm->vipInst[i].videoIfMode = SYSTEM_CAPT_VIDEO_IF_MODE_16BIT;
pPrm->vipInst[i].inScanFormat = SYSTEM_SF_PROGRESSIVE;
pPrm->vipInst[i].muxModeStartChId = 0;
pPrm->vipInst[i].useAdvancedParams = FALSE;
pPrm->vipInst[i].advancedParams.clipActive = FALSE;
pPrm->vipInst[i].advancedParams.clipBlank = FALSE;
pPrm->vipInst[i].advancedParams.ctrlChanSel = SYSTEM_VIP_CTRL_CHAN_SEL_7_0;
pPrm->vipInst[i].advancedParams.ancChSel8b = SYSTEM_VIP_ANC_CH_SEL_8B_LUMA_SIDE;
pPrm->vipInst[i].advancedParams.pixClkEdgePol = SYSTEM_VIP_PIX_CLK_EDGE_POL_RISING;
pPrm->vipInst[i].advancedParams.invertFidPol = FALSE;
pPrm->vipInst[i].advancedParams.embSyncErrCorrEnable = FALSE;
pPrm->vipInst[i].advancedParams.embSyncSrcNumPos = SYSTEM_VIP_SRC_NUM_POS_LS_NIBBLE_OF_CODEWORD;
pPrm->vipInst[i].advancedParams.embSyncIsMaxChan3Bits = FALSE;
pPrm->vipInst[i].advancedParams.disSyncFidSkewPostCnt = 0;
pPrm->vipInst[i].advancedParams.disSyncFidSkewPreCnt = 0;
pPrm->vipInst[i].advancedParams.disSyncLineCaptureStyle = SYSTEM_VIP_LINE_CAPTURE_STYLE_ACTVID;
pPrm->vipInst[i].advancedParams.disSyncFidDetectMode = SYSTEM_VIP_FID_DETECT_MODE_PIN;
pPrm->vipInst[i].advancedParams.disSyncActvidPol = SYSTEM_VIP_POLARITY_HIGH;
pPrm->vipInst[i].advancedParams.disSyncVsyncPol = SYSTEM_VIP_POLARITY_LOW;
pPrm->vipInst[i].advancedParams.disSyncHsyncPol = SYSTEM_VIP_POLARITY_LOW;
pPrm->vipInst[i].advancedParams.cscBypass = TRUE;
pPrm->vipInst[i].advancedParams.cscMode = SYSTEM_CSC_MODE_HDTV_GRAPHICS_R2Y;
}
}