本帖最后由 一只耳朵怪 于 2018-5-29 11:22 编辑
DM8147 VIP0的portA接
FPGA无法接收到数据。
我们使用FPGA接4个AP0101,把四个数据通过FPGA合成一个之后通过VIP0的portA传给DM8147的HDVPSS,我们将ISS的初始化代码注释了,但是现在capturelink一直采集不到数据,请大神帮忙分析一下原因。
开发包IPNC_RDK3.5
现在我们用FPGA输出YUV数据,使用16根数据线,输入格式为SYSTEM_DF_YUV422P SYSTEM_STD_1080P_30 使用CLK HSYNC
以下是对程序的修改:
【ipnc_rdk中修改的内容】
文件captureLink_drv.c
Int32 CaptureLink_drvCreateInst(CaptureLink_Obj * pObj, UInt16 ins
tid)
[
。。。
pVipCreateArgs->videoCaptureMode = VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC;
pVipCreateArgs->videoIfMode = VPS_CAPT_VIDEO_IF_MODE_16BIT;
。。。
]
并将system_m3vpss.c文件中Int32 System_init()中有关iss的代码都注释掉
【HDVPSS中修改的内容】
文件:vpsdrv_captureVip.c中修改的内容(函数Vps_captVipParserConfigSetup中)
vipPortConfig->disConfig.fidDetectMode = VPS_VIP_FID_DETECT_MODE_VSYNC;//zzh
vipPortConfig->disConfig.actvidPol = VPS_VIP_POLARITY_HIGH;
vipPortConfig->disConfig.vsyncPol = VPS_VIP_POLARITY_HIGH;
vipPortConfig->disConfig.hsyncPol = VPS_VIP_POLARITY_HIGH;
usecase:
CaptureLink_CreateParams_Init(&capturePrm);
capturePrm.numVipInst = 1; //1个采集口
//capturePrm.outQueParams[0].nextLink = nNullID;
capturePrm.outQueParams[0].nextLink = gVencModuleContext.ipcM3OutId;//gVcapModuleContext.nsfId[0];// gMultiCh_VsrcVencObj.ipcOutVpssId;////下一个linkID
capturePrm.tilerEnable = FALSE; //停用tiler
capturePrm.fakeHdMode = FALSE; //是否启用模拟1080P输出
capturePrm.enableSdCrop = FALSE; //是否启用裁剪 采集为D1时有用 将720裁剪为704
capturePrm.doCropInCapture = FALSE; //是否启用裁剪 采集为D1时有用 将720裁剪为704 通过调整指针的方式实现 //采集通道参数设置
for(vipInstId=0; vipInstId
[
pCaptureInstPrm = &capturePrm.vipInst[vipInstId];
pCaptureInstPrm->vipInstId = (SYSTEM_CAPTURE_INST_VIP0_PORTA+vipInstId)%SYSTEM_CAPTURE_INST_MAX;/*ID设置*/
pCaptureInstPrm->videoDecoderId = 0; /* Need to change based on actual HD video decoder */
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;//SYSTEM_DF_YUV422I_YUYV;
//pCaptureInstPrm->standard = SYSTEM_STD_1944P_14;
pCaptureInstPrm->standard = SYSTEM_STD_1080P_30; /* Need to change based on actual HD video decoder */
pCaptureInstPrm->numOutput = 1; /* Need to change based on actual HD video decoder */
pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;//SYSTEM_DF_YUV420SP_UV;//
pCaptureOutPrm->scEnable = FALSE; /* Need to change based on actual HD video decoder */
pCaptureOutPrm->scOutWidth = 1920; /* Need to change based on actual HD video decoder */
pCaptureOutPrm->scOutHeight = 1080; /* Need to change based on actual HD video decoder */
pCaptureOutPrm->outQueId = 0;
]
设备启动时的打印信息
********** FULL FEATURE USECASE ********
[host] ********* Entered MultiCh_createTriStreamFullFtr ********
[host] 143: MCFW : CPU Revision [ES2.1] !!!
[host] 144: MCFW : Detected [UNKNOWN] Board !!!
[host] 144: MCFW : Base Board Revision [REV A] !!!
[m3vpss ] VPS_DCTRL_INST_0
[m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_DVO2
[m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_HDMI
[m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_SD
[m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_CLK_SRC VPS_DC_VENC_HDMI | VPS_DC_VENC_DVO2
[m3vpss ] 11676: CAPTURE: Create in progress !!!
[m3vpss ] Vps_captCreate ## start ...
[m3vpss ] ################## pInstPrm->standard : default
[m3vpss ] 11714: CAPTURE: VIP0 PortA capture mode is [16-bit, Non-mux Discrete Sync - ACTVID_VSYNC] !!!
[m3vpss ] Vps_captCreate ## start ...
[m3vpss ] Vps_captCreate ## 1
[m3vpss ] Vps_captCreate ## 2
[m3vpss ] Vps_captCreate ## 3
[m3vpss ] Vps_captCreate ## 4
[m3vpss ] Vps_captCreate ## 5
[m3vpss ] Vps_captCreate ## 6
[m3vpss ] Vps_captCreate ## 7
[m3vpss ] Vcore_vipResAllocPath ### input source is single-channel YUV422 ...
[m3vpss ] Vps_captCreateChObj ## VPDMA CH ID vChannelId[0]:104
[m3vpss ] Vps_captCreateChObj ## VPDMA CH ID vChannelId[1]:105
[m3vpss ] Vps_captCreate ## 7 - 1
[m3vpss ] ----------------------------------------------------
[m3vpss ] drivers/capture/src/vpsdrv_captureVip.c:334
[m3vpss ] vipInstConfig->intfMode : 1
[m3vpss ] vipInstConfig->vipConfig.clipActive : 0
[m3vpss ] vipInstConfig->vipConfig.clipBlank : 0
[m3vpss ] ----------------------------------------------------
[m3vpss ] vipPortConfig->syncType : 4
[m3vpss ] vipPortConfig->ctrlChanSel : 1
[m3vpss ] vipPortConfig->ancChSel8b : 0
[m3vpss ] vipPortConfig->pixClkEdgePol : 0
[m3vpss ] vipPortConfig->invertFidPol : 0
[m3vpss ] vipPortConfig->invertFidPol : 0
[m3vpss ] vipPortConfig->enablePort : 1
[m3vpss ] vipPortConfig->clrAsyncFifoRd : 0
[m3vpss ] vipPortConfig->clrAsyncFifoWr : 0
[m3vpss ] vipPortConfig->discreteBasicMode : 1
[m3vpss ] ----------------------------------------------------
[m3vpss ] vipPortConfig->disConfig.fidSkewPostCnt : 0
[m3vpss ] vipPortConfig->disConfig.fidSkewPreCnt : 0
[m3vpss ] vipPortConfig->disConfig.lineCaptureStyle : 1
[m3vpss ] vipPortConfig->disConfig.fidDetectMode : 1
[m3vpss ] vipPortConfig->disConfig.actvidPol : 1
[m3vpss ] vipPortConfig->disConfig.vsyncPol : 1
[m3vpss ] vipPortConfig->disConfig.hsyncPol : 1
[m3vpss ] ----------------------------------------------------
[m3vpss ] Vps_captCreate ## 7 - 2
[m3vpss ] Vps_captCreate ## 7 - 3
[m3vpss ] Vps_captCreate ## 7 - 4
[m3vpss ] Vps_captCreate ## 7 - 5
[m3vpss ] Vps_captCreate ## 7 - 6
[m3vpss ] Vps_captCreate ## 7 - 7
[m3vpss ] Vps_captCreate ## 7 - 8
[m3vpss ] Vps_captCreate ## 8
[m3vpss ] Disable VIP cropping ## 393:Vps_captCreate
[m3vpss ] Vps_captCreate ## end ...
[host] I
PCBitsInLink_tskMain:Entered
[host] 556: IPC_BITS_IN : Create in progress !!!
[host] 556: IPC_BITS_IN : ListMPOpen start !!!
[host] 556: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_28] ...
[m3video] 11974: IPC_IN_M3 : Create in progress !!!
[m3video] 11974: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_0] ...
[m3video] 11975: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_0] ...
[m3vpss ] CAPTURE::HEAPID:0 USED:192
[m3video] 11978: IPC_IN_M3 : Create Done !!!
[m3vpss ] 11970: CAPTURE: Create Done !!!
[m3video] 11978: ENCODE: Create in progress ... !!!
[m3vpss ] 11971: IPC_OUT_M3 : Create in progress !!!
[m3video] 12007: ENCODE: Creating CH0 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED ], bitrate = 8000 Kbps ...
[m3vpss ] numCh: 0,frameSkipCtx.inputFrameRate: 30,frameSkipCtx.outputFrameRate:30
[m3vpss ] bufType = 0
[m3vpss ] codingformat = 0
[m3video] ENCLINK_H264:HEAPID:0 USED:13808
[m3vpss ] dataFormat = 7
[m3video] 12071: ENCODE: All CH Create ... DONE !!!
[m3vpss ] memType = 0
[m3vpss ] startX = 0
[m3vpss ] startY = 0
[m3video] ENCLINK:HEAPID:0 USED:14048
[m3vpss ] width = 1920
[m3video] 12074: ENCODE: Create ... DONE !!!
[m3vpss ] height = 1080
[m3video] 12074: IPC_BITS_OUT : Create in progress !!!
[m3vpss ] pitch[0] = 1920
[m3vpss ] pitch[1] = 1920
[m3vpss ] pitch[2] = 0
[m3video] 12077: IPC_BITS_OUT : Create Done !!!
[m3vpss ] scanFormat = 1
[m3vpss ] 11973: IPC_OUT_M3 : Create Done !!!