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; }