各位大神,你们好!
我使用的是rdk 3.8 (8127芯片),在建立链路过程中用到displayLink(希望从vpss的vout1输出一路数据),这个支路为cameralink –> displaylink
但启动链路后总报如下错误:
[m3vpss ] 6072: Assertion @ Line: 1031 in links_m3vpss/display/displayLink_drv.c: pObj->displayHndl != NULL : failed !!!
pObj->displayHndl = FVID2_create(FVID2_VPS_DISP_DRV,
pObj->displayInstId,
&pObj->displayCreateArgs,
&pObj->displayCreateStatus, &cbParams);
UTILS_assert(pObj->displayHndl != NULL); // line 1031
跟踪到hdvpss下,具体在如下的地方报错:
retVal = Dc_getPathInfo(instObj->dcHandle, &instObj->dcPathInfo);
此函数返回值为-1
我的cameralink和displaylink代码如下,请各位大神指点下:
关于cameraLink:
CameraLink_CreateParams camPrm;
CameraLink_VipInstParams * pCamInstPrm;
CameraLink_OutParams * pCamOutPrm;
CameraLink_CreateParams_Init(&camPrm);
camPrm.outQueParams[0].nextLink = nextLinkId1;
camPrm.outQueParams[1].nextLink = nextLinkId2;
camPrm.ispLinkId = ispLinkId;
camPrm.glbceLinkId = glbceLinkId;
camPrm.captureMode = CAMERA_LINK_CAPMODE_ISIF;
camPrm.numAudioChannels = 0;
camPrm.vsEnable = FALSE;
camPrm.vstabLinkId = SYSTEM_LINK_ID_INVALID;
camPrm.t2aConfig.n2A_vendor = UI_AEWB_ID_NONE;
camPrm.t2aConfig.n2A_mode = UI_AEWB_OFF;
camPrm.numVipInst = 1;
camPrm.tilerEnable = FALSE;
// CameraLink_VipInstParams
pCamInstPrm = &camPrm.vipInst[0];
pCamInstPrm->vipInstId = SYSTEM_CAMERA_INST_VP_CSI2;
pCamInstPrm->videoDecoderId = decoderId;
//pCamInstPrm->inDataFormat = SYSTEM_DF_BAYER_RAW;
pCamInstPrm->inDataFormat = SYSTEM_DF_YUV422I_UYVY;
pCamInstPrm->numOutput = 2;
pCamInstPrm->standard = SYSTEM_STD_1080P_60;
pCamInstPrm->sensorOutWidth = 1920;
pCamInstPrm->sensorOutHeight = 1080;
// CameraLink_OutParams
pCamOutPrm = &pCamInstPrm->outParams[0];
pCamOutPrm->scEnable = FALSE;
pCamOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
pCamOutPrm->scOutWidth = 1920;
pCamOutPrm->scOutHeight = 1080;
pCamOutPrm->outQueId = 0;
if (pCamInstPrm->numOutput == 2)
{
pCamOutPrm = &pCamInstPrm->outParams[1];
pCamOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
pCamOutPrm->scEnable = FALSE;
pCamOutPrm->scOutWidth = 1920;
pCamOutPrm->scOutHeight = 1080;
pCamOutPrm->standard = SYSTEM_STD_1080P_60;
pCamOutPrm->outQueId = 1;
}
System_linkCreate(camLinkId, &camPrm, sizeof(camPrm));
System_linkControl(camLinkId, CAMERA_LINK_CMD_DETECT_VIDEO, NULL, 0, TRUE);
关于displayLink:
DisplayLink_CreateParams displayPrm;
MULTICH_INIT_STRUCT(DisplayLink_CreateParams, displayPrm);
displayPrm.inQueParams[0].prevLinkId = prevLinkId;
displayPrm.inQueParams[0].prevLinkQueId = prevLinkQueId;
displayPrm.displayRes = SYSTEM_STD_1080P_60;// VSYS_STD_1080P_30;
displayPrm.displayId = DISPLAY_LINK_DISPLAY_SC1;/*DISPLAY_LINK_DISPLAY_AUTO_SELECT;*//*DISPLAY_LINK_DISPLAY_SC2;*/ /*DISPLAY_LINK_DISPLAY_BP0;*/
System_linkCreate(dispLinkId, &displayPrm, sizeof(displayPrm));
Chris Meng:
你好,
你有参考过 multich_CaptureDisplay.c么?
jensen zhang:
回复 Chris Meng:
看了这个文件的,没发现什么不对的地方.Chris Meng,我的相关代码在帖子中,麻烦你帮我看看我哪个地方设置有问题的?