大家好!
我使用的是RDK3.5 , TI8127芯片, 我建立的数据链路开头使用的是cameralink,关于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 = 1;
camPrm.vsEnable = FALSE;
camPrm.vstabLinkId = vstabLinkId;
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_YUV422I_UYVY;
pCamInstPrm->numOutput = 2;
pCamInstPrm->standard = SYSTEM_STD_1080P_60;
pCamInstPrm->sensorOutWidth = 1920;
pCamInstPrm->sensorOutHeight = 1080;
pCamOutPrm = &pCamInstPrm->outParams[0];
pCamOutPrm->scEnable = FALSE;
pCamOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
pCamOutPrm->scOutWidth = 1920;
pCamOutPrm->scOutHeight = 1080;
pCamOutPrm->outQueId = 0;
pCamOutPrm = &pCamInstPrm->outParams[1];
pCamOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
pCamOutPrm->scEnable = FALSE;
pCamOutPrm->scOutWidth = 1920;
pCamOutPrm->scOutHeight = 1080;
pCamOutPrm->standard = SYSTEM_STD_NTSC;
pCamOutPrm->outQueId = 1;
System_linkCreate(camLinkId, &camPrm, sizeof(camPrm));
启动相机后,出来的第1路码流是正常的25帧,但第2路只有12帧左右, 不明白为什么第2路的帧率会减半???
后来我在cameralink_drv.c中的link初始化函数中找到如下这样一段代码:
if (pInstPrm->outParams[1].standard == SYSTEM_STD_NTSC)
CameraLink_drvInstSetFrameSkip(pObj, instId, 1, CAMERA_LINK_FRAMESKIPMASK_HALF, CAMERA_LINK_FRAMESKIPMASK_HALF);/* 60=>30 */
如果把上述代码去掉,第2路码流的帧率能恢复到25帧,但播放出来发现画面抖动得非常厉害,
想请教群内的同行, 我怎样才能实现第2路码流为25帧且播放出来的画面正常(码流正常)??先谢谢了