Hi all,
前端视频AD芯片使用的TVP5158连接到DM8148的VIP0_PORTA接口,仅有一路视频源输入。
使用的是DVRRDK4.0的开发环境,link的连接方式为:capture–》sclr–》nsf–》ipcOutVpss–》ipcInVideo–》Encoder–》ipcBitOutVideo–》ipcBitInVideo–》rtp传输。根据4CH 采集编码解码显示的例子,修改了相关的采集的配置,我们的板子视频输入只有一路,所以我想使用tvp5158的non-interleaved模式,于是
将capture的配置设置为DEVICE_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC,且standard设置为SYSTEM_STD_D1。
但是结果没有视频传输出来,但是换成DEVICE_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_PIXEL_MUX_EMBEDDED_SYNC和SYSTEM_STD_MUX_4CH_D1就会有视频传输出来。不知道这是为什么
配置采集参数如下:
CaptureLink_CreateParams_Init(&capturePrm);capturePrm.outQueParams[0].nextLink= gVcapModuleContext.sclrId[0];//+cbl 0813capturePrm.numVipInst= 1;capturePrm.tilerEnable= FALSE;capturePrm.numBufsPerCh= NUM_CAPTURE_BUFFERS;capturePrm.maxBlindAreasPerCh= 4;capturePrm.enableSdCrop= FALSE;//+cbl 0815pCaptureInstPrm= &capturePrm.vipInst[0];pCaptureInstPrm->vipInstId= (SYSTEM_CAPTURE_INST_VIP0_PORTA+vipInstId)%SYSTEM_CAPTURE_INST_MAX;pCaptureInstPrm->videoDecoderId= SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;pCaptureInstPrm->inDataFormat= SYSTEM_DF_YUV422P;pCaptureInstPrm->standard = SYSTEM_STD_D1;//SYSTEM_STD_MUX_4CH_D1;//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;//for(i = 0; i < NUM_CAPTURE_DEVICES; i++){vidDecVideoModeArgs[i].vipInstId= SYSTEM_CAPTURE_INST_VIP0_PORTA;vidDecVideoModeArgs[i].deviceId= DEVICE_VID_DEC_TVP5158_DRV;vidDecVideoModeArgs[i].numChInDevice= 1;//4;vidDecVideoModeArgs[i].modeParams.videoIfMode= DEVICE_CAPT_VIDEO_IF_MODE_8BIT;vidDecVideoModeArgs[i].modeParams.videoDataFormat= SYSTEM_DF_YUV422P;vidDecVideoModeArgs[i].modeParams.standard = SYSTEM_STD_D1;//SYSTEM_STD_MUX_4CH_D1;//vidDecVideoModeArgs[i].modeParams.videoCaptureMode = DEVICE_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;//DEVICE_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_PIXEL_MUX_EMBEDDED_SYNC;vidDecVideoModeArgs[i].modeParams.videoSystem=DEVICE_VIDEO_DECODER_VIDEO_SYSTEM_AUTO_DETECT;vidDecVideoModeArgs[i].modeParams.videoCropEnable= FALSE;vidDecVideoModeArgs[i].modeParams.videoAutoDetectTimeout = -1;}Vcap_configVideoDecoder(vidDecVideoModeArgs, 1);
另外,设置为SYSTEM_STD_D1后编码打印的分辨率怎么是352×288 这是cif的格式啊,不应该是720×576或者704×576吗?
这个也是一个疑问
bolin chen:
刚才测量一下tvp5158的输出时钟OCLK_P为27MHz,而且DVO_A 0-7数据管脚都有信号输出,
但是dm8148貌似没有检测到视频输入,没有任何反应。
Eason Wang:
Hi , 建议参考
multich_hd_sdi_dvr.c 来做修改。 他是采单路的。 我看到的区别是TVP5158 是要做行交织的,所以DM8148这里有硬件去交织的设置。
你可以先尝试把
pCaptureInstPrm->videoDecoderId = 0;
pCaptureInstPrm->inDataFormat = 其他几种422格式看看。
YesDayLucky:
回复 Eason Wang:
HELLO:
能否请教下,硬件去交织的原理。谢谢了。我目前遇到的问题是,如果没有这个硬件,我改如何去交织。
BOBO