This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DVRRDK_03.50.00.05 :- Running demo application with capture --> Dei --> dispaly


Hi  all ,

  I was working in DVR_RDK_3.50.00.05 . In which, i was trying to run the demo application with capture --> dei --> display usecase . for that i modified the usecase vcap_venc_vdec_vdis from the demo application into my usecase . but the  problem is i am not able to get the application running . below are the logs .


 =========
 Main Menu
 =========

 1: VCAP + VENC + VDEC + VDIS  - Progressive SD Encode + Decode
 2: VCAP + VENC        + VDIS  - SD Encode ONLY
 3: VCAP + VENC        + VDIS  - HD Encode ONLY
 4:               VDEC + VDIS  - SD/HD Decode ONLY

 e: Exit

 Enter Choice: 1
--------------- CHANNEL DETAILS-------------
Capture Channels => 16
Enc Channels => Primary 16, Secondary 16
Dec Channels => 16
Disp Channels => 32
-------------------------------------------
 0: SYSTEM: System Common Init in progress !!!
 0: SYSTEM: IPC init in progress !!!
 16: SYSTEM: CPU [DSP] syslink proc ID is [0] !!!
 16: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [1] !!!
 16: SYSTEM: CPU [VPSS-M3] syslink proc ID is [2] !!!
 16: SYSTEM: CPU [HOST] syslink proc ID is [3] !!!
 16: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_3] ...
 19: SYSTEM: Creating MsgQ [HOST_MSGQ] ...
 20: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ...
 22: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
 22: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
 23: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
 24: SYSTEM: Notify register to [DSP] line 0, event 15 ...
 24: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ...
 25: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ...
 25: SYSTEM: IPC init DONE !!!
 27: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ...
 29: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ...
 30: SYSTEM: ListElem Shared Addr = 0x407fbd00
 31: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ...
 33: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ...
 34: SYSTEM: ListElem Shared Addr = 0x40819800
 36: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ...
 38: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ...
 39: SYSTEM: ListElem Shared Addr = 0x40837300
 40: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ...
 42: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ...
 44: SYSTEM: ListElem Shared Addr = 0x4085ab80
 45: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ...
 47: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ...
 48: SYSTEM: ListElem Shared Addr = 0x4087e400
 65: SYSTEM: System Common Init Done !!!
 
 Enable file write (YES - y / NO - n) : n
 
 File write DISABLED !!!
 

 [host] MCFW_IPCBITS:VcapVencVdecVdis_ipcBitsSendFxn:Entered...

 AUDIO: Do you enable Audio <Y/N>: n
 [FBDEV]
 [FBDEV] FB: Starting !!!
 [FBDEV] FB: OpeVPSS_GRPX : (2)- region(720x576) out of frame(720x480).
ned device [/dev/fb2] (fd=0) !!!
 [FBDEV] ERROR: FB: FBIOPUT_VSCREENINFO !!!
 [FBDEV]
 [FBDEV] Fix Screen Info
 [FBDEV] ---------------
 [FBDEV] Line Length - 2880
 [FBDEV] Physical Address = 8fa00000
 [FBDEV] Buffer Length = 4194304
 [FBDEV]
 [FBDEV]
 [FBDEV] Var Screen Info
 [FBDEV] ---------------
 [FBDEV] Xres - 720
 [FBDEV] Yres - 480
 [FBDEV] Xres Virtual - 720
 [FBDEV] Yres Virtual - 480
 [FBDEV] Bits Per Pixel - 32
 [FBDEV] Pixel Clk - 4629
 [FBDEV] Rotation - 0
 [FBDEV]
 [FBDEV]
 [FBDEV] Reg Params Info
 [FBDEV] ---------------
 [FBDEV] region 0, postion 0 x 0, prioirty 1
 [FBDEV] first 1, last 1
 [FBDEV] sc en 0, sten en 0
 [FBDEV] tran en 0, type 0, key 0
 [FBDEV] blend 0, alpha 0
 [FBDEV] bb en 0, alpha 0
 [FBDEV]
 [FBDEV]
 [FBDEV] ### BUF SIZE = 1382400 Bytes !!!
 [FBDEV]
 [FBDEV]
 [FBDEV] Fix Screen Info
 [FBDEV] ---------------
 [FBDEV] Line Length - 2880
 [FBDEV] Physical Address = 8fa00000
 [FBDEV] Buffer Length = 4194304
 [FBDEV]
 [FBDEV]
 [FBDEV] Var Screen Info
 [FBDEV] ---------------
 [FBDEV] Xres - 720
 [FBDEV] Yres - 480
 [FBDEV] Xres Virtual - 720
 [FBDEV] Yres Virtual - 480
 [FBDEV] Bits Per Pixel - 32
 [FBDEV] Pixel Clk - 4629
 [FBDEV] Rotation - 0
 [FBDEV]
 [FBDEV]
 [FBDEV] Reg Params Info
 [FBDEV] ---------------
 [FBDEV] region 0, postion 0 x 0, prioirty 1
 [FBDEV] first 1, last 1
 [FBDEV] sc en 0, sten en 0
 [FBDEV] tran en 0, type 0, key 0
 [FBDEV] blend 0, alpha 0
 [FBDEV] bb en 0, alpha 0
 [FBDEV]
 [FBDEV]
 [FBDEV] ### BUF SIZE = 1382400 Bytes !!!
 [FBDEV]
 [FBDEV] FB: Start DONE !!!
 [FBDEV]

 [host]
 Enable SCD block Motion Tracking On Display (Only On ON-CHIP HDMI)

 
 Enable Motion Tracking On Display (YES - y / NO - n) : n
 
 Motion Tracking DISABLED !!!
 

****************** Entered usecase 16CH Progressive <816x> Cap/Display use-case

 2917: MCFW  : CPU Revision [ES2.0] !!!
 2917: MCFW  : Detected [(null)] Board !!!
 2917: MCFW  : Base Board Revision [DVR] !!!
 2917: MCFW  : Daughter Card Revision [DVR] !!!
J: I2C open status: 0x16
J:ADV7181 driver create exit
J:Chip ID 19
 VCAP: DEVICE-0 (0x21): Chip ID 0x0019, Rev 0x0000, Firmware 0x0000 !!!
 VCAP: DEVICE-0 (0x21):  NO Video Detected !!!
0x16,0x21,29,71,1
 [m3vpss ]  29502: CAPTURE: Create in progress !!!
 [m3vpss ]  29532: CAPTURE: VIP0 PortB capture mode is [ 8-bit, Non-mux Embedded Sync] !!!
 [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)
 [m3vpss ] CAPTURE::HEAPID:0    USED:328
 [m3vpss ] CAPTURE::HEAPID:4    USED:10930176
 [m3vpss ]  29565: CAPTURE: Create Done !!!
 [m3vpss ]  29566: DEI    : Create in progress !!!
 [m3vpss ]  29593: DEI     : Loading Up-scaling Co-effs
 [m3vpss ]  29593: DEI     : Co-effs Loading ... DONE !!!
 [m3vpss ] DEI:HEAPID:0 USED:64
 [m3vpss ] DEI:HEAPID:1 USED:5216
 [m3vpss ] DEI:HEAPID:4 USED:5471232
 [m3vpss ]  29594: DEI    : Create Done !!!
 [m3vpss ]  29594: DISPLAY: Create in progress !!!
 [m3vpss ] ########################3IN func DisplayLink_drvSetFmt   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< added by me
 [m3vpss ]  29595: Assertion @ Line: 942 in links_m3vpss/display/displayLink_drv.c: status == FVID2_SOK : failed !!!


        looks like its failing because of setting the format under display link . Adding my  code section for create and delete the link is given below . Please verify the

 functions  and any comments on this will be appreciated .

Void MultiCh_createProgressiveVcapVencVdecVdis()
{
	CaptureLink_CreateParams    capturePrm;
	CaptureLink_VipInstParams         *pCaptureInstPrm;
	CaptureLink_OutParams             *pCaptureOutPrm;

#ifdef USE_SCLR_FOR_SCD
	NsfLink_CreateParams            nsfParam;
//	SclrLink_CreateParams           sclrPrm;
#endif
	DeiLink_CreateParams        deiPrm;
	DisplayLink_CreateParams    displayPrm[VDIS_DEV_MAX];
	VCAP_DEVICE_CREATE_PARAM_S  vidDecVideoModeArgs[MAX_NUM_CAPTURE_DEVICES];

	UInt32 i, chId;
//	UInt32 numSubChains;
	Bool   enableSdtv;
	UInt32 deviceId;
	UInt32 numCaptureDevices;
	VCAP_VIDEO_SOURCE_STATUS_S vidSourceStatus;
	/* Disabling SDTV temporarily to enable ratio based resolution setting in DEI;
	 * should be fixed */
	enableSdtv = TRUE;
#ifdef USE_SCLR_FOR_SCD
	MULTICH_INIT_STRUCT(NsfLink_CreateParams,nsfParam);
#endif
	for (i = 0; i < VDIS_DEV_MAX;i++)
	{
		MULTICH_INIT_STRUCT(DisplayLink_CreateParams ,displayPrm[i]);
	}
	 MULTICH_INIT_STRUCT(DeiLink_CreateParams, deiPrm);
	printf("\n****************** Entered usecase 16CH Progressive <816x> Cap/Display use-case\n\n");

	MultiCh_detectBoard();

	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
			);
	gVcapModuleContext.captureId    = SYSTEM_LINK_ID_CAPTURE;
#ifdef USE_SCLR_FOR_SCD
	gVcapModuleContext.nsfId[0]     = SYSTEM_LINK_ID_NSF_0;
	gVcapModuleContext.sclrId[0]       = SYSTEM_LINK_ID_SCLR_INST_0;
#endif
	gVcapModuleContext.deiId[0]     = SYSTEM_LINK_ID_DEI_HQ_0;

	gVdisModuleContext.displayId[0] = SYSTEM_LINK_ID_DISPLAY_0; /* ON CHIP HDMI */
//	gVdisModuleContext.displayId[1] = SYSTEM_LINK_ID_DISPLAY_1; /* OFF CHIP HDMI */
//	gVdisModuleContext.displayId[2] = SYSTEM_LINK_ID_DISPLAY_2; /* OFF CHIP HDMI */
	CaptureLink_CreateParams_Init(&capturePrm);
	capturePrm.outQueParams[0].nextLink   = gVcapModuleContext.deiId[0];
	capturePrm.numVipInst                 = 1;

	capturePrm.tilerEnable                = FALSE;
	capturePrm.numBufsPerCh               = 16;
//	capturePrm.numExtraBufs               = 6;
//	capturePrm.maxBlindAreasPerCh       = 4;

	pCaptureInstPrm                     = &capturePrm.vipInst[0];
	pCaptureInstPrm->vipInstId          = ( SYSTEM_CAPTURE_INST_VIP0_PORTB );
	pCaptureInstPrm->videoDecoderId     = SYSTEM_DEVICE_VID_DEC_ADV7181_1_DRV;
	pCaptureInstPrm->inDataFormat       = SYSTEM_DF_YUV422P;
	pCaptureInstPrm->standard           = SYSTEM_STD_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;

	numCaptureDevices = 1 ;
	deviceId = DEVICE_VID_DEC_ADV7181_1_DRV;

	for(i = 0; i < 1; i++)
	{
		vidDecVideoModeArgs[i].vipInstId        = SYSTEM_CAPTURE_INST_VIP0_PORTB+i;
		vidDecVideoModeArgs[i].deviceId         = DEVICE_VID_DEC_ADV7181_1_DRV;
		vidDecVideoModeArgs[i].numChInDevice    = 1;

		vidDecVideoModeArgs[i].modeParams.videoIfMode        = DEVICE_CAPT_VIDEO_IF_MODE_8BIT;
		vidDecVideoModeArgs[i].modeParams.videoDataFormat    = SYSTEM_DF_YUV422P;
		vidDecVideoModeArgs[i].modeParams.standard           = SYSTEM_STD_D1;
		vidDecVideoModeArgs[i].modeParams.videoCaptureMode   = DEVICE_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_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 );
	Vcap_getVideoSourceStatus(&vidSourceStatus);
	Vcap_setVideoSourceStatus(&vidSourceStatus);

	DeiLink_CreateParams_Init(&deiPrm);
	deiPrm.inQueParams.prevLinkId = gVcapModuleContext.captureId;
	deiPrm.inQueParams.prevLinkQueId  = 0;
	deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].scaleMode = DEI_SCALE_MODE_ABSOLUTE;
#if 0
	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;
#endif
	deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].absoluteResolution.outWidth = 704;
	deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].absoluteResolution.outHeight = 576;
	for (chId=1; chId < DEI_LINK_MAX_CH; chId++)
		deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][chId] = deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0];

	deiPrm.enableOut[DEI_LINK_OUT_QUE_VIP_SC]                        = TRUE;

	deiPrm.outQueParams[DEI_LINK_OUT_QUE_VIP_SC].nextLink = gVdisModuleContext.displayId[0];
	deiPrm.comprEnable                                   = FALSE;
	deiPrm.setVipScYuv422Format                          = FALSE;
	deiPrm.tilerEnable[DEI_LINK_OUT_QUE_VIP_SC] = FALSE;
#ifndef SYSTEM_USE_VIDEO_DECODER
	    capturePrm.isPalMode = Vcap_isPalMode();
#endif
		System_linkCreate (gVcapModuleContext.captureId, &capturePrm, sizeof(capturePrm));
		/**After Capture is created set capture fps */
		multich_progressive_set_capture_fps(&gProgressiveDVRUsecaseContext.captureFps);
		 System_linkCreate(gVcapModuleContext.deiId[0] , &deiPrm, sizeof(deiPrm));

		// displayPrm[0].forceFieldSeparatedInputMode = TRUE;
		 displayPrm[0].numInputQueues = 1;
		 displayPrm[0].activeQueue    = 0;
		 displayPrm[0].displayRes     = VSYS_STD_PAL;

		 displayPrm[0].inQueParams[0].prevLinkId = gVcapModuleContext.deiId[0];
		 displayPrm[0].inQueParams[0].prevLinkQueId = 0;


		 for(i=0; i<1; i++)
			 System_linkCreate(gVdisModuleContext.displayId[i], &displayPrm[i], sizeof(displayPrm[i]));
//		 System_linkCreate(gVdisModuleContext.displayId[2], &displayPrm[2], sizeof(displayPrm[2]));
		 gVdisModuleContext.setMosaicFxn     = MultiCh_progressiveDVRSetMosaicParams;
		 Vdis_getMosaicParams(VDIS_DEV_HDMI,&gProgressiveDVRUsecaseContext.vdisMosaicPrms[VDIS_DEV_HDMI]);
		 Vdis_getMosaicParams(VDIS_DEV_DVO2,&gProgressiveDVRUsecaseContext.vdisMosaicPrms[VDIS_DEV_DVO2]);
		 Vdis_setMosaicParams(VDIS_DEV_HDMI,&gProgressiveDVRUsecaseContext.vdisMosaicPrms[VDIS_DEV_HDMI]);
		 Vdis_setMosaicParams(VDIS_DEV_DVO2,&gProgressiveDVRUsecaseContext.vdisMosaicPrms[VDIS_DEV_DVO2]);


}

Void MultiCh_deleteProgressiveVcapVencVdecVdis()
{
	UInt32 i;
	Bool   enableSdtv  = TRUE;
	UInt32 numSubChains = 2;
	System_linkDelete(gVcapModuleContext.captureId);
	System_linkDelete(gVcapModuleContext.deiId[0]);
#if 0
		for(i=0; i<numSubChains; i++)
#endif			System_linkDelete(gVdisModuleContext.displayId[i]);

	if(enableSdtv)
	{
		System_linkDelete(gVdisModuleContext.displayId[0]);
	}
	/* Print the HWI, SWI and all tasks load */
	/* Reset the accumulated timer ticks */
	MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE);

	Vcap_deleteVideoDecoder();
	gVdisModuleContext.setMosaicFxn     = NULL;
}