硬件:DM8127+tvp5150;开发包:ipnc-rdk3.5
DM8127+tvp5150视频输入不成功,什么原因?如何调试?
tvp5150的驱动是仿照/opt/ipnc/Source/ipnc_rdk/ipnc_mcfw/mcfw/src_linux/devices/tvp5158进行添加,添加以后能正确读写tvp5150的寄存器。tvp5150的视频输入源是PAL制式,640*480分辨率的视频;输出为bt656,至DM8127的接口是VIN[0]A_D[0:7]。
以/opt/ipnc/Source/ipnc_rdk/ipnc_mcfw/mcfw/src_linux/mcfw_api/usecases/multich_encode_decode.c为基础进行例程的修改,captureLink参数设置如下:
CaptureLink_CreateParams capturePrm;
capturePrm.numVipInst = 1;
capturePrm.outQueParams[0].nextLink = gIpcFramesOutVpssToHostId;
capturePrm.tilerEnable = FALSE;
capturePrm.enableSdCrop = FALSE;
capturePrm.numBufsPerCh = 6;
capturePrm.numExtraBufs = 0;
capturePrm.fakeHdMode = FALSE;
capturePrm.doCropInCapture = FALSE;
capturePrm.isPalMode = Vcap_isPalMode();
for(i=0; i<capturePrm.numVipInst; i++)
{
pCaptureInstPrm = &capturePrm.vipInst[i];////
pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;
pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_TVP5150_DRV;
//added by qiu
capturePrm.numVipInst = 1;
//capturePrm.outQueParams[0].nextLink = gIpcOutVpssId;
capturePrm.outQueParams[0].nextLink = gIpcFramesOutVpssToHostId;
capturePrm.tilerEnable = FALSE;
capturePrm.enableSdCrop = FALSE;
capturePrm.numBufsPerCh = 6;
capturePrm.numExtraBufs = 0;
capturePrm.fakeHdMode = FALSE;
capturePrm.doCropInCapture = FALSE;
capturePrm.isPalMode = Vcap_isPalMode();
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
pCaptureInstPrm->standard = SYSTEM_STD_D1;
pCaptureInstPrm->numOutput = 1;
pCaptureOutPrm = &pCaptureInstPrm->outParams[i];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->scOutWidth = 0;
pCaptureOutPrm->scOutHeight = 0;
pCaptureOutPrm->outQueId = 0;
}