TI中文支持网
TI专业的中文技术问题搜集分享网站

DM8148 DEI link 与 CaptureLink 数据交互的疑问

DM8148分别对7002和5158模块同时进行视频采集,CaptureLink中有2个instance,一个用于7002,另一个用于5158,CaptureLink的下一个link就是DEI link,由于5158采集的PAL视频需要经过去隔行处理,因此CaptureLink下一个link必须是DEI link,但是由于CaptureLink中又包含了VGA的视频数据,这个是不需要去隔行处理的,然而在DEI link的参数中没有找到可以针对某个输入的CaptureLink进行使能去隔行或失能去隔行的开关变量,也就是说,CaptureLink传入DEI link的视频数据,要么全部被去隔行处理,要么被旁路处理,这就导致5158和7002采集到的视频无法同时处理,有什么好的解决方法吗?

一下为源代码:

#define CAP_DEV_TVP5158
#define CAP_DEV_ADV7611_GV7601_TVP7002_16BIT

CaptureLink_CreateParams capPrm;DeiLink_CreateParamsdeiPrm;IpcLink_CreateParamsipcOutVpssPrm;IpcLink_CreateParamsipcInVideoPrm;EncLink_CreateParamsencPrm;IpcBitsOutLinkRTOS_CreateParamsipcBitsOutVideoPrm;IpcBitsInLinkHLOS_CreateParamsipcBitsInHostPrm;DisplayLink_CreateParamsdisPrm;SwMsLink_CreateParamsswmsPrm;MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcOutVpssPrm);MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcInVideoPrm);MULTICH_INIT_STRUCT(IpcBitsOutLinkRTOS_CreateParams,ipcBitsOutVideoPrm);MULTICH_INIT_STRUCT(IpcBitsInLinkHLOS_CreateParams,ipcBitsInHostPrm);MULTICH_INIT_STRUCT(EncLink_CreateParams, encPrm);MULTICH_INIT_STRUCT(DeiLink_CreateParams, deiPrm);MULTICH_INIT_STRUCT(DisplayLink_CreateParams, disPrm);MULTICH_INIT_STRUCT(SwMsLink_CreateParams ,swmsPrm);/* links in chain */gVcapModuleContext.captureId= SYSTEM_LINK_ID_CAPTURE;gVcapModuleContext.deiId[0]= SYSTEM_LINK_ID_DEI_0;gVencModuleContext.encId= SYSTEM_LINK_ID_VENC_0;gVdisModuleContext.swMsId[0]= SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;gVdisModuleContext.displayId[0] = SYSTEM_LINK_ID_DISPLAY_0; /* ON AND OFF CHIP HDMI */gVencModuleContext.ipcBitsOutRTOSId  = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;gVencModuleContext.ipcBitsInHLOSId= SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;UInt32 ipcOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0;UInt32 ipcInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0;UInt32 mergeId = SYSTEM_VPSS_LINK_ID_MERGE_1;/* capture link init */CaptureLink_CreateParams_Init(&capPrm);capPrm.outQueParams[0].nextLink = gVcapModuleContext.deiId[0];capPrm.numVipInst= 1;capPrm.tilerEnable= FALSE;capPrm.numBufsPerCh= 8;capPrm.maxBlindAreasPerCh= 4;capPrm.isPalMode = Vcap_isPalMode();

#if ! defined CAP_DEV_TVP5158capPrm.doCropInCapture= FALSE;capPrm.enableSdCrop= FALSE;
#endif/* capture instance init */CaptureLink_VipInstParams *prm_cap_inst = &capPrm.vipInst[0];prm_cap_inst->vipInstId= (SYSTEM_CAPTURE_INST_VIP0_PORTA + 0 ) % SYSTEM_CAPTURE_INST_MAX;prm_cap_inst->inDataFormat= SYSTEM_DF_YUV422P;prm_cap_inst->numOutput= 1;

#if defined CAP_DEV_TVP5158prm_cap_inst->videoDecoderId= SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;prm_cap_inst->standard= SYSTEM_STD_MUX_4CH_D1;  // set input mode as 4 input with D1 resolution
#endif

#if defined CAP_DEV_ADV7611_GV7601_TVP7002_16BITprm_cap_inst->standard= SYSTEM_STD_1080P_60;prm_cap_inst->videoIfMode= DEVICE_CAPT_VIDEO_IF_MODE_16BIT;prm_cap_inst->videoCaptureMode  = DEVICE_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;
#endif

#if defined CAP_DEV_ADV7611_8BITprm_cap_inst->useAdvancedParams = TRUE;prm_cap_inst->advancedParams.pixClkEdgePol = SYSTEM_VIP_PIX_CLK_EDGE_POL_FALLING;prm_cap_inst->standard= SYSTEM_STD_1080P_30;prm_cap_inst->videoIfMode= DEVICE_CAPT_VIDEO_IF_MODE_8BIT;prm_cap_inst->videoCaptureMode  = DEVICE_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;
#endif

#if defined CAP_DEV_GV7601_8BITprm_cap_inst->standard= SYSTEM_STD_1080P_30;prm_cap_inst->videoIfMode= DEVICE_CAPT_VIDEO_IF_MODE_8BIT;prm_cap_inst->videoCaptureMode  = SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC;
#endif/* capture out init */CaptureLink_OutParams *prm_cap_out = &prm_cap_inst->outParams[0];prm_cap_out->scEnable= FALSE;prm_cap_out->scOutWidth= 0;prm_cap_out->scOutHeight= 0;prm_cap_out->outQueId= 0;prm_cap_out->dataFormat= SYSTEM_DF_YUV422I_YUYV;/* DEI link */deiPrm.inQueParams.prevLinkId= gVcapModuleContext.captureId;deiPrm.inQueParams.prevLinkQueId= 0;deiPrm.enableOut[DEI_LINK_OUT_QUE_DEI_SC]= TRUE;deiPrm.enableOut[DEI_LINK_OUT_QUE_VIP_SC]= TRUE;deiPrm.enableOut[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT]  = FALSE;deiPrm.outQueParams[DEI_LINK_OUT_QUE_DEI_SC].nextLink= gVdisModuleContext.swMsId[0];deiPrm.outQueParams[DEI_LINK_OUT_QUE_VIP_SC].nextLink= mergeId;deiPrm.tilerEnable[DEI_LINK_OUT_QUE_VIP_SC]= FALSE;deiPrm.comprEnable= FALSE;deiPrm.setVipScYuv422Format= FALSE;
#if ! defined CAP_DEV_TVP5158deiPrm.enableDeiForceBypass = TRUE;
#endif

Chris Meng:

你好,

1. 标清可以不去隔行,在编码的时候使用隔行编码。

2. 请问两路采集是用的两个VIP口么?如果是,两个VIP口输出可以接不同的link吧。

赞(0)
未经允许不得转载:TI中文支持网 » DM8148 DEI link 与 CaptureLink 数据交互的疑问
分享到: 更多 (0)