专家好!我在使用DM385开发板上外挂了一个tvp5150片,用来接CVBS摄像头,
tvp5150输出8bit 内嵌同步的CVBS(NTSC或PAL)信号到DM385的VIP1 PORTA的D0~D7位上,软件版本使用的是dvr rdk 4.0;
当我使用数据流:
tvp5150(cvbs) -> capture -> encode -> send
程序可以正确运行,只不过得到的图像只有一半,所以我们认为应该加入DEI模块,
当加入DEI模块后数据流如下:
tvp5150(cvbs) -> capture ->DEI-> encode -> send
代码如下:
/** ============================================================================ * * Chains_SelCapSelRecv.c * * Author:* * Date: June 7, 2015 * * Description: Cap + Enc + Send * Net + Dec + Display * * capture-|-vipInst0->|->dup->enc->send * * * receive->dec->sel-|->swms0->display0 * ============================================================================ */ #include <demos/link_api_demos/common/chains.h> #include <mcfw/interfaces/ti_vcap.h> //#include <> static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl = {.isPopulated = 1,.ivaMap[0] ={.EncNumCh = 1,.EncChList = {0},.DecNumCh = 0,.DecChList = {0},},.ivaMap[1] ={.EncNumCh = 0,.EncChList = {0},.DecNumCh = 1,.DecChList = {0},},.ivaMap[2] ={.EncNumCh = 1,.EncChList = {1},.DecNumCh = 1,.DecChList = {1},}, }; Void Chains_SelCapSelRecv(Chains_Ctrl *chainsCfg) {CaptureLink_CreateParamscapturePrm;DeiLink_CreateParamsdeiPrm;//by ctCaptureLink_VipInstParams*pCaptureInstPrm;CaptureLink_OutParams*pCaptureOutPrm;DupLink_CreateParamsdupPrm;IpcLink_CreateParamsipcOutVpssPrm;IpcLink_CreateParamsipcInVideoPrm;EncLink_CreateParamsencPrm;IpcBitsOutLinkRTOS_CreateParamsipcBitsOutVideoPrm;IpcBitsInLinkHLOS_CreateParamsipcBitsInHostPrm;UInt32 captureId, vipInstId;UInt32 deiId;UInt32 dupId;UInt32 ipcOutVpssId;UInt32 ipcInVideoId;UInt32 encId;UInt32 ipcBitsOutVideoId;UInt32 ipcBitsInHostId;IpcBitsOutLinkHLOS_CreateParamsipcBitsOutHostPrm;IpcBitsInLinkRTOS_CreateParamsipcBitsInVideoPrm;DecLink_CreateParamsdecPrm;IpcLink_CreateParamsipcOutVideoEncPrm;IpcLink_CreateParamsipcInVpssEncPrm;SelectLink_CreateParamsselPrm;SwMsLink_CreateParamsswMsPrm[CHAINS_SW_MS_MAX_DISPLAYS];DisplayLink_CreateParamsdisplayPrm[CHAINS_SW_MS_MAX_DISPLAYS];UInt32 ipcBitsOutHostId;UInt32 ipcBitsInVideoId;UInt32 decId;UInt32 ipcOutVideoEncId;UInt32 ipcInVpssEncId;UInt32 selId;UInt32 swMsId[CHAINS_SW_MS_MAX_DISPLAYS];UInt32 displayId[CHAINS_SW_MS_MAX_DISPLAYS];int i;for(i =0;i<gChains_ctrl.chRecNum;i++){ gChains_ctrl.chCfg[i+gChains_ctrl.chCapNum].channel = i;} Chains_ipcBitsInit();System_linkControl(SYSTEM_LINK_ID_M3VPSS,SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,NULL,0,TRUE); System_linkControl( SYSTEM_LINK_ID_M3VIDEO, SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL, &systemVid_encDecIvaChMapTbl, sizeof(SystemVideo_Ivahd2ChMap_Tbl), TRUE ); /** Local capture + Enc + send*/ VCAP_PARAMS_S prm; Vcap_params_init(&prm); if(chainsCfg->chCapNum > 0) { CHAINS_INIT_STRUCT(CaptureLink_CreateParams,capturePrm);CHAINS_INIT_STRUCT(DeiLink_CreateParams ,deiPrm);//by ct CHAINS_INIT_STRUCT(IpcLink_CreateParams,ipcOutVpssPrm); CHAINS_INIT_STRUCT(IpcLink_CreateParams,ipcInVideoPrm); CHAINS_INIT_STRUCT(EncLink_CreateParams,encPrm); CHAINS_INIT_STRUCT(IpcBitsOutLinkRTOS_CreateParams,ipcBitsOutVideoPrm); CHAINS_INIT_STRUCT(IpcBitsInLinkHLOS_CreateParams,ipcBitsInHostPrm); captureId= SYSTEM_LINK_ID_CAPTURE; dupId=SYSTEM_VPSS_LINK_ID_DUP_0; ipcOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0; ipcInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0; encId= SYSTEM_LINK_ID_VENC_0; ipcBitsOutVideoId= SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0; ipcBitsInHostId= SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0; capturePrm.numVipInst= chainsCfg->chCapNum; capturePrm.tilerEnable= TRUE; capturePrm.numBufsPerCh= 16; capturePrm.numExtraBufs= 0; capturePrm.maxBlindAreasPerCh= 0; capturePrm.isPalMode= TRUE; capturePrm.enableSdCrop= FALSE; capturePrm.doCropInCapture= FALSE; //BY CT BEGIN deiId=SYSTEM_LINK_ID_DEI_0; deiPrm.inQueParams.prevLinkId = captureId;deiPrm.inQueParams.prevLinkQueId = 0;/* Set Output Scaling at DEI based on ratio *///deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].scaleMode = DEI_SCALE_MODE_RATIO;// deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].ratio.widthRatio.numerator = 1;// deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].ratio.widthRatio.denominator = 1;// deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].ratio.heightRatio.numerator = 1;// deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].ratio.heightRatio.denominator = 1;// for (i=1; i < DEI_LINK_MAX_CH; i++)// deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][i] = deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0];deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].scaleMode = DEI_SCALE_MODE_RATIO;deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.heightRatio.numerator = 1;deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.heightRatio.denominator = 1;deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.widthRatio.numerator = 1;deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.widthRatio.denominator = 1;for (i=1; i < DEI_LINK_MAX_CH; i++)deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][i] = deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0];// deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT][0].scaleMode = DEI_SCALE_MODE_RATIO;// deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT][0].ratio.heightRatio.numerator = 1;// deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT][0].ratio.heightRatio.denominator = 2;// deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT][0].ratio.widthRatio.numerator = 1;// deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT][0].ratio.widthRatio.denominator = 2;// for (i=1; i < DEI_LINK_MAX_CH; i++)//deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT][i] = deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT][0];deiPrm.enableOut[DEI_LINK_OUT_QUE_DEI_SC]= FALSE;deiPrm.enableOut[DEI_LINK_OUT_QUE_VIP_SC]= TRUE;deiPrm.enableDeiForceBypass=FALSE;deiPrm.enableOut[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT]= FALSE;//deiPrm.outQueParams[DEI_LINK_OUT_QUE_DEI_SC].nextLink= dupId;deiPrm.outQueParams[DEI_LINK_OUT_QUE_VIP_SC].nextLink= ipcOutVpssId;//deiPrm.outQueParams[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT].nextLink= dupId;deiPrm.tilerEnable[DEI_LINK_OUT_QUE_VIP_SC]= FALSE;deiPrm.comprEnable= FALSE;deiPrm.setVipScYuv422Format= FALSE;deiPrm.inputDeiFrameRate=25u;deiPrm.outputDeiFrameRate=25u; //END for(i=0; i<capturePrm.numVipInst; i++) { #if defined(TI8107_INS) vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA + 2 * gChains_ctrl.chCfg[i].channel; pCaptureInstPrm = &capturePrm.vipInst[i]; pCaptureInstPrm->videoIfMode = SYSTEM_CAPT_VIDEO_IF_MODE_8BIT; #endif prm.channelParams[i].deviceId = vipInstId; prm.enableConfigExtVideoDecoder = TRUE; prm.deviceParams[vipInstId].standard = chainsCfg->chCfg[i].inStd; pCaptureInstPrm->vipInstId= vipInstId%SYSTEM_CAPTURE_INST_MAX; pCaptureInstPrm->inDataFormat= SYSTEM_DF_YUV422P; //pCaptureInstPrm->standard= chainsCfg->chCfg[i].inStd;pCaptureInstPrm->standard=SYSTEM_STD_D1; pCaptureInstPrm->numOutput= 1; pCaptureInstPrm->numChPerOutput= 1; pCaptureOutPrm= &pCaptureInstPrm->outParams[0]; pCaptureOutPrm->dataFormat= SYSTEM_DF_YUV420SP_UV; pCaptureOutPrm->scEnable= FALSE; pCaptureOutPrm->outQueId= 0; } capturePrm.outQueParams[0].nextLink= deiId; //by ct dupPrm.inQueParams.prevLinkId= deiId; //by ct dupPrm.inQueParams.prevLinkQueId= 0; dupPrm.numOutQue= 1; //dupPrm.outQueParams[0].nextLink= ipcOutVpssId; dupPrm.notifyNextLink= TRUE; ipcOutVpssPrm.inQueParams.prevLinkId= deiId; ipcOutVpssPrm.inQueParams.prevLinkQueId = 0; ipcOutVpssPrm.outQueParams[0].nextLink = ipcInVideoId; ipcOutVpssPrm.numOutQue= 1; ipcOutVpssPrm.numChPerOutQue[0]= 0; ipcOutVpssPrm.notifyNextLink= TRUE; ipcOutVpssPrm.notifyPrevLink= FALSE; ipcOutVpssPrm.noNotifyMode= FALSE; ipcOutVpssPrm.equallyDivideChAcrossOutQues = FALSE; ipcInVideoPrm.inQueParams.prevLinkId= ipcOutVpssId; ipcInVideoPrm.inQueParams.prevLinkQueId = 0; ipcInVideoPrm.outQueParams[0].nextLink = encId; ipcInVideoPrm.numOutQue= 1; ipcInVideoPrm.numChPerOutQue[0]= 0; ipcInVideoPrm.notifyNextLink= TRUE; ipcInVideoPrm.notifyPrevLink= FALSE; ipcInVideoPrm.noNotifyMode= FALSE; ipcInVideoPrm.equallyDivideChAcrossOutQues = FALSE; for (i=0; i<chainsCfg->chCapNum; i++) { encPrm.chCreateParams[i].format= chainsCfg->chCfg[i].encFormat; encPrm.chCreateParams[i].profile= chainsCfg->chCfg[i].encProfile; encPrm.chCreateParams[i].dataLayout= IVIDEO_FIELD_SEPARATED; encPrm.chCreateParams[i].fieldMergeEncodeEnable= FALSE; encPrm.chCreateParams[i].enableAnalyticinfo= FALSE; encPrm.chCreateParams[i].enableWaterMarking= FALSE; encPrm.chCreateParams[i].encodingPreset= XDM_USER_DEFINED; encPrm.chCreateParams[i].rateControlPreset= IVIDEO_USER_DEFINED; encPrm.chCreateParams[i].enableHighSpeed= FALSE; encPrm.chCreateParams[i].defaultDynamicParams.interFrameInterval = 1; encPrm.chCreateParams[i].defaultDynamicParams.intraFrameInterval = chainsCfg->chCfg[i].intraFrameInterval; encPrm.chCreateParams[i].defaultDynamicParams.inputFrameRate= chainsCfg->chCfg[i].inFrameRate; encPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate= chainsCfg->chCfg[i].encFrameRate; encPrm.chCreateParams[i].defaultDynamicParams.targetBitRate= chainsCfg->chCfg[i].bitRate; encPrm.chCreateParams[i].defaultDynamicParams.mvAccuracy= IVIDENC2_MOTIONVECTOR_QUARTERPEL; encPrm.chCreateParams[i].defaultDynamicParams.rcAlg= chainsCfg->chCfg[i].rateCtrl; encPrm.chCreateParams[i].defaultDynamicParams.qpMin= 0; encPrm.chCreateParams[i].defaultDynamicParams.qpMax= 51; encPrm.chCreateParams[i].defaultDynamicParams.qpInit= -1; encPrm.chCreateParams[i].defaultDynamicParams.vbrDuration= 8; encPrm.chCreateParams[i].defaultDynamicParams.vbrSensitivity= 0; } encPrm.inQueParams.prevLinkId= ipcInVideoId; encPrm.inQueParams.prevLinkQueId= 0; encPrm.outQueParams.nextLink= ipcBitsOutVideoId; encPrm.numBufPerCh[0]= 0; ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId= encId; ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId= 0; ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink= ipcBitsInHostId; ipcBitsOutVideoPrm.baseCreateParams.numOutQue= 1; ipcBitsOutVideoPrm.baseCreateParams.notifyNextLink= FALSE; ipcBitsOutVideoPrm.baseCreateParams.notifyPrevLink= FALSE; ipcBitsOutVideoPrm.baseCreateParams.noNotifyMode= TRUE; Chains_ipcBitsInitCreateParams_BitsOutRTOS(&ipcBitsOutVideoPrm,FALSE); ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId= ipcBitsOutVideoId; ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId= 0; ipcBitsInHostPrm.baseCreateParams.numOutQue= 1; ipcBitsInHostPrm.baseCreateParams.numChPerOutQue[0]= 0; ipcBitsInHostPrm.baseCreateParams.notifyNextLink= FALSE; ipcBitsInHostPrm.baseCreateParams.notifyPrevLink= FALSE; ipcBitsInHostPrm.baseCreateParams.noNotifyMode= TRUE; Chains_ipcBitsInitCreateParams_BitsInHLOS(&ipcBitsInHostPrm);}//Networkif(chainsCfg->chRecNum > 0){ CHAINS_INIT_STRUCT(IpcBitsOutLinkHLOS_CreateParams,ipcBitsOutHostPrm); CHAINS_INIT_STRUCT(IpcBitsInLinkRTOS_CreateParams,ipcBitsInVideoPrm); CHAINS_INIT_STRUCT(DecLink_CreateParams,decPrm); CHAINS_INIT_STRUCT(IpcLink_CreateParams,ipcOutVideoEncPrm); CHAINS_INIT_STRUCT(IpcLink_CreateParams,ipcInVpssEncPrm);CHAINS_INIT_STRUCT(SelectLink_CreateParams,selPrm); for (i=0; i<CHAINS_SW_MS_MAX_DISPLAYS; i++) { CHAINS_INIT_STRUCT(SwMsLink_CreateParams,swMsPrm[i]); CHAINS_INIT_STRUCT(DisplayLink_CreateParams,displayPrm[i]); } ipcBitsOutHostId= SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0; ipcBitsInVideoId= SYSTEM_VIDEO_LINK_ID_IPC_BITS_IN_0; decId= SYSTEM_LINK_ID_VDEC_0; ipcOutVideoEncId= SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_1; ipcInVpssEncId= SYSTEM_VPSS_LINK_ID_IPC_IN_M3_1;selId= SYSTEM_VPSS_LINK_ID_SELECT_0; swMsId[0]= SYSTEM_LINK_ID_SW_MS_MULTI_INST_0; swMsId[1]= SYSTEM_LINK_ID_SW_MS_MULTI_INST_1; displayId[0]= SYSTEM_LINK_ID_DISPLAY_0; displayId[1]= SYSTEM_LINK_ID_DISPLAY_1;for(i=chainsCfg->chCapNum; i<chainsCfg->chNum; i++){ chainsCfg->displayRes[i-chainsCfg->chCapNum] = chainsCfg->displayRes[i];} Chains_displayCtrlInit(chainsCfg->displayRes); System_LinkQueInfo queInfo; queInfo.numCh = chainsCfg->chRecNum; for (i=0; i<chainsCfg->chRecNum; i++) { queInfo.chInfo[i].bufType= SYSTEM_BUF_TYPE_VIDBITSTREAM; queInfo.chInfo[i].codingformat= chainsCfg->chCfg[i + chainsCfg->chCapNum].encFormat; queInfo.chInfo[i].height= chainsCfg->chCfg[i + chainsCfg->chCapNum].outHeight; queInfo.chInfo[i].width= chainsCfg->chCfg[i + chainsCfg->chCapNum].outWidth; queInfo.chInfo[i].memType= SYSTEM_MT_TILEDMEM; queInfo.chInfo[i].dataFormat= SYSTEM_DF_YUV420P; queInfo.chInfo[i].scanFormat= SYSTEM_SF_PROGRESSIVE; } ipcBitsOutHostPrm.baseCreateParams.numOutQue= 1; ipcBitsOutHostPrm.baseCreateParams.numChPerOutQue[0]= chainsCfg->chRecNum; ipcBitsOutHostPrm.baseCreateParams.outQueParams[0].nextLink= ipcBitsInVideoId; Chains_ipcBitsInitCreateParams_BitsOutHLOS(&ipcBitsOutHostPrm, &queInfo); ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkId= ipcBitsOutHostId; ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId= 0; ipcBitsInVideoPrm.baseCreateParams.numOutQue= 1; ipcBitsInVideoPrm.baseCreateParams.numChPerOutQue[0]= chainsCfg->chRecNum; ipcBitsInVideoPrm.baseCreateParams.outQueParams[0].nextLink= decId; Chains_ipcBitsInitCreateParams_BitsInRTOS(&ipcBitsInVideoPrm, TRUE); for (i=0; i<chainsCfg->chRecNum; i++) { decPrm.chCreateParams[i].format= chainsCfg->chCfg[i + chainsCfg->chCapNum].encFormat; decPrm.chCreateParams[i].profile= IH264VDEC_PROFILE_ANY; decPrm.chCreateParams[i].targetMaxWidth= chainsCfg->chCfg[i + chainsCfg->chCapNum].outWidth; decPrm.chCreateParams[i].targetMaxHeight= chainsCfg->chCfg[i + chainsCfg->chCapNum].outHeight; decPrm.chCreateParams[i].fieldMergeDecodeEnable= FALSE; decPrm.chCreateParams[i].algCreateStatus= DEC_LINK_ALG_CREATE_STATUS_CREATE; decPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate = chainsCfg->chCfg[i + chainsCfg->chCapNum].encFrameRate; decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate= chainsCfg->chCfg[i + chainsCfg->chCapNum].bitRate; decPrm.chCreateParams[i].numBufPerCh= 0; decPrm.chCreateParams[i].tilerEnable= TRUE; } decPrm.inQueParams.prevLinkId= ipcBitsInVideoId; decPrm.inQueParams.prevLinkQueId = 0; decPrm.outQueParams.nextLink= ipcOutVideoEncId; ipcOutVideoEncPrm.inQueParams.prevLinkId= decId; ipcOutVideoEncPrm.inQueParams.prevLinkQueId = 0; ipcOutVideoEncPrm.numOutQue= 1; ipcOutVideoEncPrm.outQueParams[0].nextLink = ipcInVpssEncId; ipcOutVideoEncPrm.notifyNextLink= TRUE; ipcOutVideoEncPrm.notifyPrevLink= FALSE; ipcOutVideoEncPrm.noNotifyMode= FALSE; ipcInVpssEncPrm.inQueParams.prevLinkId= ipcOutVideoEncId; ipcInVpssEncPrm.inQueParams.prevLinkQueId= 0; ipcInVpssEncPrm.numOutQue= 1; ipcInVpssEncPrm.outQueParams[0].nextLink= selId; ipcInVpssEncPrm.notifyNextLink= TRUE; ipcInVpssEncPrm.notifyPrevLink= TRUE;//modify ipcInVpssEncPrm.noNotifyMode= FALSE;selPrm.inQueParams.prevLinkId= ipcInVpssEncId;selPrm.inQueParams.prevLinkQueId= 0;selPrm.numOutQue= chainsCfg->chRecNum;selPrm.outQueParams[0].nextLink= swMsId[0];selPrm.outQueChInfo[0].outQueId= 0;selPrm.outQueChInfo[0].numOutCh= 1;selPrm.outQueChInfo[0].inChNum[0]= 0;selPrm.outQueParams[1].nextLink= swMsId[1];selPrm.outQueChInfo[1].outQueId= 1;selPrm.outQueChInfo[1].numOutCh= 1;selPrm.outQueChInfo[1].inChNum[0]= 1;for (i=0; i<chainsCfg->chRecNum; i++) {swMsPrm[i].numSwMsInst= 1;swMsPrm[i].swMsInstId[0]= (i!=0) ? SYSTEM_SW_MS_SC_INST_VIP1_SC : SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;swMsPrm[i].inQueParams.prevLinkId= selId;swMsPrm[i].inQueParams.prevLinkQueId = i;swMsPrm[i].outQueParams.nextLink= displayId[i];swMsPrm[i].lineSkipMode= FALSE;swMsPrm[i].enableLayoutGridDraw= TRUE;swMsPrm[i].layoutPrm.outputFPS= chainsCfg->chCfg[i + chainsCfg->chCapNum].encFrameRate;swMsPrm[i].maxInputQueLen= SYSTEM_SW_MS_DEFAULT_INPUT_QUE_LEN;swMsPrm[i].maxOutRes= chainsCfg->displayRes[i];swMsPrm[i].numOutBuf= 0;Chains_swMsGenerateLayoutParams(i, 2, &swMsPrm[i]);displayPrm[i].numInputQueues= 1;displayPrm[i].activeQueue= 0;displayPrm[i].inQueParams[0].prevLinkId= swMsId[i];displayPrm[i].inQueParams[0].prevLinkQueId = 0;displayPrm[i].displayRes= chainsCfg->displayRes[i];displayPrm[i].displayId = DISPLAY_LINK_DISPLAY_AUTO_SELECT;displayPrm[i].forceFieldSeparatedInputMode = FALSE;}}/** Create Links*/ if (chainsCfg->chCapNum > 0) { System_linkCreate(captureId, &capturePrm, sizeof(capturePrm));System_linkCreate(deiId, &deiPrm, sizeof(deiPrm)); //System_linkCreate(dupId, &dupPrm, sizeof(dupPrm)); System_linkCreate(ipcOutVpssId, &ipcOutVpssPrm, sizeof(ipcOutVpssPrm)); System_linkCreate(ipcInVideoId, &ipcInVideoPrm, sizeof(ipcInVideoPrm)); System_linkCreate(encId, &encPrm, sizeof(encPrm)); System_linkCreate(ipcBitsOutVideoId, &ipcBitsOutVideoPrm, sizeof(ipcBitsOutVideoPrm)); System_linkCreate(ipcBitsInHostId, &ipcBitsInHostPrm, sizeof(ipcBitsInHostPrm)); }if (chainsCfg->chRecNum > 0){System_linkCreate(ipcBitsOutHostId,&ipcBitsOutHostPrm,sizeof(ipcBitsOutHostPrm));System_linkCreate(ipcBitsInVideoId,&ipcBitsInVideoPrm,sizeof(ipcBitsInVideoPrm));System_linkCreate(decId, &decPrm, sizeof(decPrm));System_linkCreate(ipcOutVideoEncId, &ipcOutVideoEncPrm, sizeof(ipcOutVideoEncPrm));System_linkCreate(ipcInVpssEncId, &ipcInVpssEncPrm, sizeof(ipcInVpssEncPrm));//System_linkCreate(dupEncId, &dupEncPrm, sizeof(dupEncPrm));System_linkCreate(selId, &selPrm, sizeof(selPrm));for(i=0; i<chainsCfg->chRecNum; i++){System_linkCreate(swMsId[i], &swMsPrm[i], sizeof(swMsPrm[i]));System_linkCreate(displayId[i], &displayPrm[i], sizeof(displayPrm[i]));}}/** Start Links*/ if (chainsCfg->chCapNum > 0) { System_linkStart(ipcBitsInHostId); System_linkStart(ipcBitsOutVideoId); System_linkStart(encId); System_linkStart(ipcInVideoId); System_linkStart(ipcOutVpssId); //System_linkStart(dupId);System_linkStart(deiId);//by ct System_linkStart(captureId); Vcap_init(&prm); Vcap_start(); } if (chainsCfg->chRecNum > 0){ for(i=0; i<chainsCfg->chRecNum; i++) { System_linkStart(displayId[i]); } Vdis_start(); for(i=0; i<chainsCfg->chRecNum; i++) { System_linkStart(swMsId[i]); } //System_linkStart(dupEncId);System_linkStart(selId); System_linkStart(ipcInVpssEncId); System_linkStart(ipcOutVideoEncId); System_linkStart(decId); System_linkStart(ipcBitsInVideoId); System_linkStart(ipcBitsOutHostId); } while(1) { char ch; //ch = Chains_SelCapSelRecvmenu();ch = Chains_menuRunTime(); if(ch=='0') break; } Chains_ipcBitsStop();if (chainsCfg->chCapNum > 0) {System_linkStop(captureId);Vcap_stop();System_linkStop(deiId);System_linkStop(dupId);System_linkStop(ipcOutVpssId);System_linkStop(ipcInVideoId);System_linkStop(encId);System_linkStop(ipcBitsOutVideoId);System_linkStop(ipcBitsInHostId);}if (chainsCfg->chRecNum > 0) {System_linkStop(ipcBitsOutHostId);System_linkStop(ipcBitsInVideoId);System_linkStop(decId);System_linkStop(ipcOutVideoEncId);System_linkStop(ipcInVpssEncId);//System_linkStop(dupEncId);System_linkStop(selId);for(i=0; i<chainsCfg->chRecNum; i++){System_linkStop(swMsId[i]);System_linkStop(displayId[i]);}Vdis_stop();}if (chainsCfg->chCapNum > 0) {System_linkDelete(captureId);System_linkDelete(deiId); //by ctSystem_linkDelete(dupId);System_linkDelete(ipcOutVpssId);System_linkDelete(ipcInVideoId);System_linkDelete(encId);System_linkDelete(ipcBitsOutVideoId);System_linkDelete(ipcBitsInHostId);}if (chainsCfg->chRecNum > 0) {System_linkDelete(ipcBitsOutHostId);System_linkDelete(ipcBitsInVideoId);System_linkDelete(decId);System_linkDelete(ipcOutVideoEncId);System_linkDelete(ipcInVpssEncId);//System_linkDelete(dupEncId);System_linkDelete(selId);for(i=0; i<chainsCfg->chRecNum; i++){System_linkDelete(swMsId[i]);System_linkDelete(displayId[i]);}Chains_displayCtrlDeInit();}Chains_ipcBitsExit(); }
结果出现了错误:unhandle exception
追踪代码出现在deiLink_drc.c 中DeiLink_drvReleaseFrames()中的System_sendLinkCmd()中,
麻烦各位帮忙看一下上面的哪些配置是错误的,到底该怎么配置才能让视频通过dei模块? 谢谢!
Chris Meng:
你好,
你能否尝试修改capture link的输出数据格式为pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;,看是否有帮助?
user4516476:
回复 Chris Meng:
改动这个参数设置试过了,还是有错误,错误也没有变。附件是打印信息。
*** Bootargs Validated for mem param *** *** Bootargs Validated for notifyk.vpssm3 params *** Kernel bootargs validated numid=101,iface=MIXER,name='Left PGA Mixer Line2L Switch' ; type=BOOLEAN,access=rw——,values=1 : values=on numid=99,iface=MIXER,name='Left PGA Mixer Line1L Switch' ; type=BOOLEAN,access=rw——,values=1 : values=on [c6xdsp ] Remote Debug Shared Memory @ 0xbfff0000 [m3video] Remote Debug Shared Memory @ 0xbfff5020 [m3vpss ] Remote Debug Shared Memory @ 0xbfffa040 SysLink version : 2.20.02.20 SysLink module created on Date:Jun 4 2015 Time:20:23:45 Trace enabled Trace SetFailureReason enabled Setting L3 bandwidth regulator for [HDVICP0 ] to [press=[3,3] BW=2000, WM Cycl] Setting DMM priority for [DUCATI ] to [0] ( 0x4e000624 = 0x08000000 ) Setting DMM priority for [HDVICP0 ] to [2] ( 0x4e000634 = 0x0000000a ) Attached to slave procId 1. Loaded file ../firmware/dvr_rdk_fw_m3vpss_512M_128M.xem3 on slave procId 1. Started slave procId 1. After Ipc_loadcallback status [0x00000000] [m3vpss ] ISS Freq : 560 MHz After Ipc_startcallback status [0x00000000] [m3vpss ] ***** VPSS Firmware build time 10:56:26 Feb 26 2016 EDG gcc 3.0 mode [m3vpss ] ***** SYSTEM : Frequency <ORG> – 200000000, <NEW> – 280000000 [m3vpss ] notify_attach rtnVal 0 [m3vpss ] initProxyServer rtnVal 0 [m3vpss ] [m3vpss ] *** UTILS: CPU KHz = 560000 Khz *** [m3vpss ] [m3vpss ] 38: SYSTEM : System Common Init in progress !!! [m3vpss ] 38: SYSTEM: IPC init in progress !!! [m3vpss ] 38: SYSTEM: Attaching to [HOST] … [m3vpss ] 40: SYSTEM: Attaching to [HOST] … SUCCESS !!! Attached to slave procId 0. Loaded file ../firmware/dvr_rdk_fw_m3video_512M_128M.xem3 on slave procId 0. Started slave procId 0. After Ipc_loadcallback status [0x00000000] [m3video] ISS Freq : 560 MHz After Ipc_startcallback status [0x00000000DMA: Module install successful, devic ] [m3vpss ] 1DRV: Module install successful 14: SYSTEM: AttaDRV: Module built on Jun 4 2015 20:24:23 ching to [VIDEO-M3] … SUCCESS !!! [m3video] ***** VIDEO Firmware build time 10:57:29 Feb 26 2016 EDG gcc 3.0 moe [m3vpss ] 114: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_2] … [m3video] ***** SYSTEM : Frequency <ORG> – 200000000, <NEW> – 280000000 [m3vpss ] 114: SYSTEM: Creating MsgQ [VPSS-M3_MSGQ] … [m3video] [m3vpss ] 115: SYSTEM: Creating MsgQ [VPSS-M3_ACK_MSGQ] … [m3video] *** UTILS: CPU KHz = 560000 Khz *** [m3vpss ] 116: SYSTEM: Notify register to [HOST] line 0, event 15 … [m3video] [m3vpss ] 117: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 … [m3video] 108: SYSTEM : System Common Init in progress !!! [m3vpss ] 117: SYSTEM: IPC init DONE !!! [m3video] 108: SYSTEM: IPC init in progress !!! [m3video] 108: SYSTEM: Attaching to [HOST] … [m3video] 111: SYSTEM: Attaching to [HOST] … SUCCESS !!! [m3video] 114: SYSTEM: Attaching to [VPSS-M3] … SUCCESS !!! [m3video] 114: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_1] … [m3video] 114: SYSTEM: Creating MsgQ [VIDEO-M3_MSGQ] … [m3video] 115: SYSTEM: Creating MsgQ [VIDEO-M3_ACK_MSGQ] … [m3video] 116: SYSTEM: Notify register to [HOST] line 0, event 15 … [m3video] 117: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 … [m3video] 117: SYSTEM: IPC init DONE !!! [m3video] 123: MEM: Shared Region 2: Base = 0xb6400000, Length = 0x09210000 ( [m3vpss ] 123: MEM: Shared Region 2: Base = 0xb6400000, Length = 0x09210000 ( [m3video] 123: MEM: ERROR: SharedRegion_setEntry (2, 0x2ec33200) FAILED !!! [m3vpss ] 123: MEM: Shared Region 1: Base = 0x88000000, Length = 0x05a00000 ( [m3vpss ] 125: SYSTEM : System Common Init Done !!! [m3vpss ] 125: SYSTEM : System VPSS Init in progress !!! [m3vpss ] 125: SYSTEM: All VPDMA Free !!! [m3vpss ] === I2C0/2 Clk is active === [m3vpss ] 130: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_0] in region 0 … [m3vpss ] 130: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_0] in region 0 … [m3vpss ] 131: SYSTEM: ListElem Shared Addr = 0xbf704680 [m3vpss ] 133: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_1] in region 0 … [m3vpss ] 133: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_1] in region 0 … [m3vpss ] 133: SYSTEM: ListElem Shared Addr = 0xbf707b80 [m3vpss ] 149: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_19] in region 0 … [m3vpss ] 149: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_19] in region 0 … [m3vpss ] 149: SYSTEM: ListElem Shared Addr = 0xbf70b080 [m3vpss ] 152: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_20] in region 0 … [m3vpss ] 152: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_20] in region 0 … [m3vpss ] 152: SYSTEM: ListElem Shared Addr = 0xbf730880 [m3vpss ] 155: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_21] in region 0 … [m3vpss ] 155: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_21] in region 0 … [m3vpss ] 155: SYSTEM: ListElem Shared Addr = 0xbf756080 [m3vpss ] 157: SYSTEM : HDVPSS Drivers Version: HDVPSS_01_00_01_37 [m3vpss ] 157: SYSTEM : FVID2 Init in progress !!! [c6xdsp ] Remote Debug Shared Memory @ 0xbfff0000 [m3video] Remote Debug Shared Memory @ 0xbfff5020 [m3vpss ] Remote Debug Shared Memory @ 0xbfffa040 [m3vpss ] 234: SYSTEM : FVID2 Init in progress DONE !!! [m3vpss ] 234: SYSTEM : Device Init in progress !!! [m3vpss ] 316: SYSTEM : Device Init in progress DONE !!! [m3vpss ] HDVPSS Freq : 240 MHz [m3vpss ] 356: SYSTEM : System VPSS Init Done !!! [m3vpss ] 356: UTILS: DMA: HWI Create for INT63 !!! [m3vpss ] 357: SYSTEM : Initializing Links !!! [m3vpss ] 357: SYSTEM : FREE SPACE : System Heap = 251488 B, Mbx = 1024 [m3vpss ] 357: SYSTEM : FREE SPACE : SR0 Heap = 5852544 B (5 MB) [m3vpss ] 357: SYSTEM : FREE SPACE : Frame Buffer = 148847488 B (141 MB) [m3vpss ] 357: SYSTEM : FREE SPACE : Bitstream Buffer = 94371712 B (89 MB) [m3vpss ] TILER_STATS: CNT :8BIT [m3vpss ] TILER_STATS: CNT RESOLUTION: 16384 x 3840 [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 3836 [m3vpss ] TILER_STATS: NUM FREE BUCKETS: 1 [m3vpss ] Received character 's' [m3vpss ] TILER_STATS: NUM USED BUCKETS: 0 [c6xdsp ] Remote Debug Shared Memory @ 0xbfff0000 [m3video] Remote Debug Shared Memory @ 0xbfff5020 [m3vpss ] Remote Debug Shared Memory @ 0xbfffa040 [m3vpss ] TILER_STATS: TOTAL FREE AREA: 62849024 (99 %) [m3vpss ] TILER_STATS: TOTAL USED AREA: 0 (0 %) [m3vpss ] TILER_STATS: CNT :16BIT [m3vpss ] TILER_STATS: CNT RESOLUTION: 32768 x 1280 [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 1280 [m3vpss ] TILER_STATS: NUM FREE BUCKETS: 1 [m3vpss ] TILER_STATS: NUM USED BUCKETS: 0 [m3vpss ] TILER_STATS: TOTAL FREE AREA: 41943040 (100 %) [m3vpss ] TILER_STATS: TOTAL USED AREA: 0 (0 %) [m3vpss ] 359: SYSTEM : FREE SPACE : Tiler 8-bit = 62849024 B (59 MB) [m3vpss ] 359: SYSTEM : FREE SPACE : Tiler 16-bit = 41943040 B (40 MB) [m3vpss ] 493: SYSTEM : Initializing Links … DONE !!! [m3vpss ] 493: SYSTEM : Set Static L3 pressure for HDVPSS as High [m3video] 1123: MEM: Shared Region 1: Base = 0x88000000, Length = 0x05a00000 [m3video] 1125: SYSTEM : System Common Init Done !!! [m3video] 1125: SYSTEM : System Video Init in progress !!! [m3video] 1125: SYSTEM : System Video Init Done !!! [m3video] 1126: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_0] in region 0 … [m3video] 1126: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_0] in region 0 … [m3video] 1126: SYSTEM: ListElem Shared Addr = 0xbf77b880 [m3video] 1129: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_1] in region 0 … [m3video] 1129: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_1] in region 0 … [m3video] 1129: SYSTEM: ListElem Shared Addr = 0xbf77ed80 [m3video] 1135: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_19] in region 0 … [m3video] 1135: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_19] in region 0 … [m3video] 1136: SYSTEM: ListElem Shared Addr = 0xbf782280 [m3video] 1138: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_20] in region 0 … [m3video] 1138: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_20] in region 0 … [m3video] 1138: SYSTEM: ListElem Shared Addr = 0xbf7a7a80 [m3video] 1141: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_21] in region 0 … [m3video] 1141: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_21] in region 0 … [m3video] 1141: SYSTEM: ListElem Shared Addr = 0xbf7cd280 [m3video] 1156: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_24] in region 0 … [m3video] 1156: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_24] in region 0 … [m3video] 1157: SYSTEM: ListElem Shared Addr = 0xbf7f2a80 [m3video] 1159: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_25] in region 0 … [m3video] 1159: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_25] in region 0 … [m3video] 1159: SYSTEM: ListElem Shared Addr = 0xbf810580 [m3video] 1161: HDVICP: Doing PRCM for IVAHD[0] … [m3video] 1161:[module] vpss probe done. HDVICP: PRCM for IVAHD[0] … DONE. [m3video] 1162: UTILS: DMA: HWI Create for INT62 !!! [m3video] 1163: SYSTEM : ISS Init in progress !!! [m3video] 1163: SYSTEM : ISS Power-ON in progress !!! [m3video] 1172: SYSTEM : ISS Power-ON in progress DONE !!! [m[module] ti81xxfb probe done. 3video] 1173: SYSTEM : ISS Init in progress DONE !!! [m3video] 1173: VCOP BOOST BIT is Set [m3video] 1173: SYSTEM : VCOP Init in progress !!! [m3video] 1173: SYSTEM : VCOP needs 172 B of memory !!! [m3video] 1174: SYSTEM : VCOP Init in progress DONE !!! [m3video] 1174: SYSTEM : Initializing Links !HDMI W1 rev 4.0 !! [m3video] HDMI CEC Spec version 1.2 1174: SYSTEM : FREE SPACE : System Heap = 6264504 B, Mbx = 10240 msgs) [m3vpss ] TILER_STATS: CNT :8BIT [m3video] 1174: SYSTEM : FREE SPACE : SR0 Heap = 5121408 B (4 MB) [m3vpss ] TILER_STATS: CNT RESOLUTION: 16384 x 3840 [m3video] 1175: SYSTEM : FREE SPACE : Frame Buffer = 148847488 B (141 MB [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 3836 [m3video] 1175: SYSTEM : FREE SPACE : Bitstream Buffer = 94371712 B (89 MB) [m3vpss ] TILER_STATS: NUM FREE BUCKETS: 1 [m3video] 1175: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] … [m3video] 1177: SYSTEM : FREE SPACE : Tiler 8-bit = 62849024 B (59 MB) [m3vpss ] TILER_STATS: NUM USED BUCKETS: 0 [m3video] 1177: SYSTEM : FREE SPACE : Tiler 16-bit = 41943040 B (40 MB) [m3vpss ] TILER_STATS: TOTAL FREE AREA: 62849024 (99 %) [m3vpss ] TILER_STATS: TOTAL USED AREA: 0 (0 %) [m3video] 1231: SYSTEM : Initializing Links … DONE !!! [m3video] Received character 's' /home/root/rtp_encode_720p [m3vpss ] TILER_STATS: CNT :16BIT [m3vpss ] TILER_STATS: CNT RESOLUTION: 32768 x 1280 [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 1280 [m3vpss ] TILER_STATS: NUM FREE BUCKETS: 1 [m3vpss ] TILER_STATS: NUM USED BUCKETS: 0 [m3vpss ] TILER_STATS: TOTAL FREE AREA: 41943040 (100 %) [m3vpss ] TILER_STATS: TOTAL USED AREA: 0 (0 %) I2C No Ack HDMI failed to read E-EDID ORG 0x46c00524: 0 NEW 0x46c00524: 2 0: SYSTEM: System Common Init in progress !!! 4: SYSTEM: IPC init in progress !!! 71: SYSTEM: CPU [DSP] is NOT available on this platform !!! 71: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [0] !!! 71: SYSTEM: CPU [VPSS-M3] syslink proc ID is [1] !!! 71: SYSTEM: CPU [HOST] syslink proc ID is [2] !!! 77: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_3] … 88: SYSTEM: Creating MsgQ [HOST_MSGQ] … 89: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] … 90: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] … 90: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] … 91: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 … 93: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 … 94: SYSTEM: IPC init DONE !!! 108: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 … 109: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 … 110: SYSTEM: ListElem Shared Addr = 0x40569300 111: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 … 112: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 … 113: SYSTEM: ListElem Shared Addr = 0x4059e500 118: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 … 120: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 … 121: SYSTEM: ListElem Shared Addr = 0x405d3700 122: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 … 123: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 … 124: SYSTEM: ListElem Shared Addr = 0x40616a00 125: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 … 126: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 … 127: SYSTEM: ListElem Shared Addr = 0x40659d00 147: SYSTEM: System Common Init Done !!! 1: Select Cap + Enc or Select Dec + Dis (VIP: 1x Sii9233a) s: System Settings x: Exit Enter Choice: 1 Enter Number of capture channel encode [Valid values, 0 .. 1] : 1` Entered value = 1 Enter Number of Net channel decode [Valid values, 0 .. 1] : 0 Entered value = 0 [host] Video standard: 0: auto detect 1: 1920x1080P60 2: 1920x1080P50 3: 1920x1080P30 4: 1920x1080P25 5: 1920x1080P24 6: 1920x1080I60 7: 1920x1080I50 8: 1280x720P60 9: 1280x720P50 10: 1280x720P30 11: 1280x720P25 12: 1280x720P24 13: 720x576P50 14: 720x576I50 15: 720x480P60 16: 720x480I60 17: WUXGA(1920×1200)60 18: UXGA+(1600*1200)60 19: SXGA+(1400*1050)60 20: WXGA(1360*768)60 21: SXGA(1280*1024)60 22: WXGA(1280*768)60 23: XGA(1024*768)60 24: SVGA(800*600)60 25: VGA(640*480)60 26: D1(720*576)30 27: D1(720*576)25 28: CIF(352*240)60 29: CIF(352*240)60 Enter Input video standard [Valid values, 0 .. 29] : 13 Entered value = 13 Enter Output video standard [Valid values, 0 .. 29] : WARNING: Invalid value specified, defaulting to value of = 1 Enter transfer protocol <1-tcp 2-rtsp> [Valid values, 1 .. 2] : 2 Entered value = 2 Enter encode format <1-H264HP 2-H264MP 3-H264BP 4-MJPEG> [Valid values, 1 .. 41 Entered value = 1 Enter target frame rate [Valid values, 1 .. 60] : 50 Entered value = 50 Enter intra frame interval [Valid values, 1 .. 60000] : WARNING: Invalid value specified, defaulting to value of = 60 Enter bit rate control algorithm <0-VBR 1-CBR> [Valid values, 0 .. 1] : 1 Entered value = 1 Enter bit rate (unit:kbps) [Valid values, 1 .. 40000] : WARNING: Invalid value specified, defaulting to value of = 8000 [host] CHAINS:Enable file write :(y — yes/n — no):n [host] CHAINS_IPCBITS:Chains_ipcBitsRecvToFileFxn:Entered… [host] server command: /home/root/rtsp_server -f /tmp/serverCh0.h264 -n avstre&sh: /home/root/rtsp_server: No such file or directory [host] Open file /tmp/serverCh0.h264, fd = 20 [m3vpss ] *********************** [m3vpss ] 16878: CAPTURE: Create in progress !!! [m3vpss ] 16889: CAPTURE: VIP0 PortA capture mode is [ 8-bit, Non-mux Embedde [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 58 (58) [m3vpss ] UTILS: DMA: 0 of 4: Allocated PaRAM = 58 (0x49004740) [m3vpss ] UTILS: DMA: 1 of 4: Allocated PaRAM = 64 (0x49004800) [m3vpss ] UTILS: DMA: 2 of 4: Allocated PaRAM = 65 (0x49004820) [m3vpss ] UTILS: DMA: 3 of 4: Allocated PaRAM = 66 (0x49004840) [m3video] 16905: IPC_IN_M3 : Create in progress !!! [m3video] 16905: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_0] … [m3vpss ] CAPTURE::HEAPID:0 USED:328 [m3video] 16905: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_0] … [m3vpss ] 16892: CAPTURE: Create Done !!! [m3vpss ] 16893: DEI : Create in progress !!! [host] IpcBitsInLink_tskMain:Entered [host] 13699: IPC_BITS_IN : Create in progress !!! [host] 13699: IPC_BITS_IN : ListMPOpen start !!! [host] 13699: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_24] … 13701: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_24] … [m3video] 16908: IPC_IN_M3 : Create Done !!! [m3vpss ] *********************dei********************************** [host] 13702: IPC_BITS_IN : ListMPOpen done !!! [m3vpss ] [m3vpss ] DEI:ALLOCINFO:CTXBUF:MVBUF:ChId[0]/BufCnt[0]/Size[55296] [m3vpss ] DEI:ALLOCINFO:CTXBUF:MVBUF:ChId[0]/BufCnt[1]/Size[55296] [m3vpss ] 16903: DEI : Loading Up-scaling Co-effs [m3video] 16908: ENCODE: Create in progress … !!! [m3vpss ] 16903: DEI : Co-effs Loading … DONE !!! [m3video] 16912: ENCODE: All CH Create … DONE !!! [host] 13703: IPC_BITS_IN : System_linkGetInfo done !!! [host] 13703: IPC_BITS_IN : Create Done !!! [m3vpss ] DEI:HEAPID:0 USED:64 [m3video] ENCLINK:HEAPID:0 USED:40 [m3vpss ] DEI:HEAPID:1 USED:5040 [m3video] 16912: ENCODE: Create … DONE !!! [m3vpss ] DEI:HEAPID:4 USED:1631232 [m3video] 16913: IPC_BITS_OUT : Create in progress !!! [m3vpss ] 16903: DEI : Create Done !!! [m3vpss ] [m3vpss ] DEI: Channel Enable/Disable in progress … !!! [m3vpss ] 16904: IPC_OUT_M3 : Create in progress !!! [m3video] 16915: IPC_BITS_OUT : Create Done !!! [m3vpss ] 16905: IPC_OUT_M3 : Create Done !!! [m3vpss ] ************************2016_cmd=1********* [m3vpss ] ************pObj->6,1******** [m3vpss ] ************pObj->6******** [m3vpss ] ************pObj->0******** [m3vpss ] ************pObj->0******** [m3vpss ] 16923: CAPTURE: Start in progress !!! [m3vpss ] 17023: CAPTURE: Enabled Time Stamping !!! [m3vpss ] 17031: CAPTURE: Overflow detected on VIP0, Total Resets = 1 [m3vpss ] 17031: CAPTURE: Overflow detected on VIP1, Total Resets = 1 [m3vpss ] 17047: CAPTURE: Start Done !!! ASSERT (ti_vcap_device.c|Vcap_deviceCreate|161) [m3vpss ] CAPTURE : Capture FPS: 0.0 fps … in 4294950.3 secs ^Croot@ti81xx:~# ./tvp5150_ [m3vpss ] CAPTURE : Capture FPS: 0.0 fps … in 10sxin.sh root@ti81xx:~# [m3vpss ] ****************dei queue 3********** [m3vpss ] ****************dei queue 4********** [m3vpss ] 28976: DEI : Submitting 1 frames !!! [m3vpss ] 28976: DEI : Loading Up-scaling Co-effs [m3vpss ] 28976: DEI : Co-effs Loading … DONE !!! [m3vpss ] ****************dei queue********** [m3vpss ] 28977: DEI : Completed 1 frames !!! [m3vpss ] ***********************dei 3******************* [m3vpss ] *********************dei release 8107*************************** [m3vpss ] 28978: DEI : Released 1 IN frames !!! [m3vpss ] ***************************dei -1************************************ [m3vpss ] ***************************dei -3************************************ [m3vpss ] ***************************dei -4************************************ [m3vpss ] ***************************dei -7************************************ [m3vpss ] ***************************dei -5************************************ [m3vpss ] Unhandled Exception: [m3vpss ] Exception occurred in ThreadType_Task [m3vpss ] handle: 0x2fb8dd70. [m3vpss ] stack base: 0x2fe67020. [m3vpss ] stack size: 0x8000. [m3vpss ] R0 = 0x00000040 R8 = 0x68004808 [m3vpss ] R1 = 0x00000000 R9 = 0x2fe378dc [m3vpss ] R2 = 0x00000010 R10 = 0x8f00a270 [m3vpss ] R3 = 0x00000000 R11 = 0x2fe6ee38 [m3vpss ] R4 = 0x2c01c6b4 R12 = 0x00000000 [m3vpss ] R5 = 0x2fe36680 SP(R13) = 0x2fe6ee28 [m3vpss ] R6 = 0x2fe3a2e8 LR(R14) = 0x8edb06df [m3vpss ] R7 = 0x00000002 PC(R15) = 0x8ed440e6 [m3vpss ] PSR = 0x21000000 [m3vpss ] ICSR = 0x0440f803 [m3vpss ] MMFSR = 0x00 [m3vpss ] BFSR = 0x82 [m3vpss ] UFSR = 0x0000 [m3vpss ] HFSR = 0x40000000 [m3vpss ] DFSR = 0x00000000 [m3vpss ] MMAR = 0x68004824 [m3vpss ] BFAR = 0x68004824 [m3vpss ] AFSR = 0x00000000 [m3vpss ] Terminating Execution…
Chris Meng:
回复 user4516476:
Chen,
你在帖子里提到你的硬件上采集使用的是VIP1 PORTA,但软件里面配置的却是SYSTEM_CAPTURE_INST_VIP0_PORTA,在这点上你是否能再确认一下。
DEI输出使用的SC是否会和你采集的通道有冲突?
user4516476:
回复 Chris Meng:
Chris,
谢谢你的回答,硬件上采集使用的是VIP0 PORTA ,
dei输出使用的sc与采集通道并没有冲突,
Chris Meng:
回复 user4516476:
Chen Chentie,
从下面的log看,是采集出现了Assert,能检查一下原因么?
ASSERT (ti_vcap_device.c|Vcap_deviceCreate|161) [m3vpss ] CAPTURE : Capture FPS: 0.0 fps … in 4294950.3 secs ^Croot@ti81xx:~# ./tvp5150_ [m3vpss ] CAPTURE : Capture FPS: 0.0 fps … in 10sxin.sh
user4516476:
回复 Chris Meng:
Chris Meng,
感谢您的持续回复,希望您能继续关注我的贴子。我们的视频采集是没有问题的,这个功能是我们验证过的,log信息中出现的断言错误以及采集出现的0帧视频只是开始显示的问题,我们确定采集是可以正常进行的,我们跟踪代码发现出现错误是在deilink_drv.c里DeiLink_drvSubmitData()函数里执行下面内容时出错。
/* VIP was reset since last frame processing, so we need to * reload VIP-SC co-effs */ DeiLink_drvSetScCoeffs(pObj, FALSE);
Chris Meng:
回复 user4516476:
Chen Chentie,
DEI是输入50场,输出50帧,下面的配置请修改一下,看是否有帮助。
deiPrm.inputDeiFrameRate =25u; deiPrm.outputDeiFrameRate =25u;
user4516476:
回复 Chris Meng:
这个已经试过,问题换是没有解决
Chris Meng:
回复 user4516476:
Chen Chentie,
请问你输入的是PAL还是NTSC的图像?抱歉之前描述有误,如果是PAL,DEI输入是50场,输出50帧。如果使能第二路输出,可以两路分别25帧。
如果输入是PAL,请问做了如下修改后,目前的错误是什么?
pCaptureInstPrm->standard = SYSTEM_STD_576I;
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;
deiPrm.inputDeiFrameRate =50u;
deiPrm.outputDeiFrameRate =50u;
注释下面的代码:
dupPrm.inQueParams.prevLinkId = deiId; //by ct dupPrm.inQueParams.prevLinkQueId = 0; dupPrm.numOutQue = 1; //dupPrm.outQueParams[0].nextLink = ipcOutVpssId; dupPrm.notifyNextLink = TRUE;
user4516476:
回复 Chris Meng:
Chris Meng,
非常感谢您的耐心回答,我们是pal的输入,根据你给的建议修改代码之后,依然是之前的错误。