我需要从摄像头采集数据,然后将yuv数据送入到FD算法中检测。
dvr_rdk 的版本是02.80.00.10。capture直接和display连接起来没有问题,正常显示。增加一个dup,dup只输出一路直接到display也没有问题。还是正常显示。当dup输出两路时,程序运行就会卡住。我试着再第二路接入了Nulllink,但还是一样的问题。显示卡住,程序也没有打印了。
额外的问题是,为什么我的摄像头采集的图像尺寸是720*288.而不是704*576.这个要如何设置呢。
我创建的link示意图如下:
Capture (YUV422I) 4CH D1 60fps
| |
DUP_LINK—-
| |
| |
| |
| |
| |
display FRAMESOUT(VPSS)
|
|
|
<<<processLink>>>
|
|
|
FramesInDSP
|
|
|
ALG_LINK <FD Algs>
代码如下:
CaptureLink_CreateParams_Init(&capturePrm);
capturePrm.numVipInst = 1;
capturePrm.outQueParams[0].nextLink = dupId;
capturePrm.tilerEnable = FALSE;
capturePrm.enableSdCrop = FALSE;
// capturePrm.numBufsPerCh = 4;
capturePrm.maxBlindAreasPerCh = 4;
pCaptureInstPrm = &capturePrm.vipInst[0];
pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTB;
pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
pCaptureInstPrm->standard = SYSTEM_STD_720P_60;
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;
#ifndef SYSTEM_USE_VIDEO_DECODER
capturePrm.isPalMode = Vcap_isPalMode();
#endif
System_linkCreate(gVcapModuleContext.captureId, &capturePrm, sizeof(capturePrm));
dupPrm.inQueParams.prevLinkId = gVcapModuleContext.captureId;
dupPrm.inQueParams.prevLinkQueId = 0;
dupPrm.numOutQue = 2;
dupPrm.outQueParams[0].nextLink = gVdisModuleContext.displayId[0];
dupPrm.outQueParams[1].nextLink = nullId;gVcapModuleContext.ipcFramesOutVpssId[0];
dupPrm.notifyNextLink = TRUE;
System_linkCreate(dupId , &dupPrm , sizeof(dupPrm));
nulllinkprm.numInQue = 1;
nulllinkprm.inQueParams[0].prevLinkId = dupId;gVcapModuleContext.ipcFramesOutVpssId[0];
nulllinkprm.inQueParams[0].prevLinkQueId = 1;
System_linkCreate(nullId , &nulllinkprm , sizeof(nulllinkprm));
System_linkStart(nullId);
displayPrm[0].inQueParams[0].prevLinkId = dupId;
displayPrm[0].inQueParams[0].prevLinkQueId = 0;
displayPrm[0].displayRes = gVdisModuleContext.vdisConfig.deviceParams[0].resolution;
System_linkCreate(gVdisModuleContext.displayId[0], &displayPrm[0], sizeof(displayPrm[0]));
Vdis_start();
System_linkStart(dupId);
Vcap_start();
buyun ma:
回复 Chris Meng:
使用去交织之后,图像确实正常了。谢谢你的回复!