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

TVP5150 DM385 加入DEI模块后vpssM3出现unhandle exception

专家好!我在使用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的输入,根据你给的建议修改代码之后,依然是之前的错误。

赞(0)
未经允许不得转载:TI中文支持网 » TVP5150 DM385 加入DEI模块后vpssM3出现unhandle exception
分享到: 更多 (0)