CaptureLink_CreateParams_Init(&capturePrm);
capturePrm.outQueParams[0].nextLink =AVST_DisplaySclrLinkId;
capturePrm.numVipInst = 1;
capturePrm.tilerEnable = FALSE;
capturePrm.numBufsPerCh = NUM_CAPTURE_BUFFERS;
capturePrm.maxBlindAreasPerCh = 4;
pCaptureInstPrm = &capturePrm.vipInst[0];
pCaptureInstPrm->vipInstId = (SYSTEM_CAPTURE_INST_VIP0_PORTA+
vipInstId)%SYSTEM_CAPTURE_INST_MAX;
pCaptureInstPrm->videoDecoderId = 0; //SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;
pCaptureInstPrm->inDataFormat = SYSTEM_DF_RGB24_888;//SYSTEM_DF_YUV422P;
pCaptureInstPrm->standard =SYSTEM_STD_1080P_30;
pCaptureInstPrm->numOutput = 1;
pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;//SYSTEM_DF_YUV422I_YUYV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->scOutWidth = 0;
pCaptureOutPrm->scOutHeight = 0;
pCaptureOutPrm->outQueId = 0;
pCaptureInstPrm->videoCaptureMode = SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC;//SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC
pCaptureInstPrm->videoIfMode = SYSTEM_CAPT_VIDEO_IF_MODE_24BIT;//SYSTEM_CAPT_VIDEO_IF_MODE_16BIT;
pCaptureInstPrm->inScanFormat = SYSTEM_SF_PROGRESSIVE;
采集参数及格式如上,在CaptureLink_drvProcessData函数中添加打印frameList.numFrames的值一直是0.我的理解是采集link没能采集到数据。看了一下采集参数没发现什么毛病。
yong yang2:
回复 Chris Meng:
谢谢您的指点。 测量的同步时钟时对的。我看了一下参数,
采集参数pCaptureInstPrm->vipInstId = (SYSTEM_CAPTURE_INST_VIP0_PORTA+vipInstId)%SYSTEM_CAPTURE_INST_MAX;
与
采集参数pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;
是完全等价的。
至于您说的"硬件HDMI转RGB888输出后是接在VIP0的portA上",没看懂。您能说的再详细一点吗?谢谢。
yong yang2:
回复 Chris Meng:
vipInstId = 0;
gVcapModuleContext.captureId = SYSTEM_LINK_ID_CAPTURE;
gVdisModuleContext.displayId[0] = SYSTEM_LINK_ID_DISPLAY_0; /* ON AND OFF CHIP HDMI */ gVdisModuleContext.displayId[1] = SYSTEM_LINK_ID_DISPLAY_2; /* SDTV */
CaptureLink_CreateParams_Init(&capturePrm); capturePrm.outQueParams[0].nextLink =AVST_DisplaySclrLinkId; capturePrm.numVipInst = 1; capturePrm.tilerEnable = FALSE; capturePrm.numBufsPerCh = NUM_CAPTURE_BUFFERS; capturePrm.maxBlindAreasPerCh = 4;
pCaptureInstPrm = &capturePrm.vipInst[0]; pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA; pCaptureInstPrm->videoDecoderId = DEVICE_VID_DEC_TVP7002_DRV; //=0; pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;//SYSTEM_DF_RGB24_888;// pCaptureInstPrm->standard =SYSTEM_STD_1080P_30; pCaptureInstPrm->numOutput = 1;
pCaptureOutPrm = &pCaptureInstPrm->outParams[0]; pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;//SYSTEM_DF_YUV422I_YUYV; pCaptureOutPrm->scEnable = FALSE; pCaptureOutPrm->scOutWidth = 0; pCaptureOutPrm->scOutHeight = 0; pCaptureOutPrm->outQueId = 0;
pCaptureInstPrm->videoCaptureMode = SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC;//SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC pCaptureInstPrm->videoIfMode = SYSTEM_CAPT_VIDEO_IF_MODE_24BIT;//SYSTEM_CAPT_VIDEO_IF_MODE_16BIT; pCaptureInstPrm->inScanFormat = SYSTEM_SF_PROGRESSIVE;
您好,刚才回复的有点问题。SiI1161采集本身就有问题。现在换成tvp7002了,这是重新配置的参数。这个测试是有时钟信号的。在CaptureLink_drvProcessData函数里面打印frameList.numFrames一直是0.这是不是代表没有采集到数据。
TI中文支持网

