Hi,
Please help find outproblem with video capture from VIN[0]A port. I am working with my own design board where i am trying to capture any video from sensor which provide BT.656 with embedded sync. When i read VIP_PARSER_output_port_a_src0_size register i see that PRTA_SRC0_WIDTH field are correct, but HEIGHT are always 1.
There is my chain code:
void chain_create(void) {
DisplayLink_CreateParams displayPrm_SD; CaptureLink_CreateParams capParams; CaptureLink_VipInstParams *pCaptureInstPrm; CaptureLink_OutParams *pCaptureOutPrm; printf("%s: CHAIN CREATE START\n", __func__); printf("%s: CMD TO M3VPSS > reset devices\n", __func__); System_linkControl(SYSTEM_LINK_ID_M3VPSS, SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES, NULL, 0, TRUE); chain.cameraId = SYSTEM_LINK_ID_CAMERA; chain.displayId[1] = SYSTEM_LINK_ID_DISPLAY_2; // SD VOUT chain.captureId = SYSTEM_LINK_ID_CAPTURE; CaptureLink_CreateParams_Init(&capParams); capParams.enableSdCrop = FALSE; capParams.doCropInCapture = FALSE; capParams.numBufsPerCh = 10; //6 capParams.numVipInst = 1; capParams.outQueParams[0].nextLink = chain.displayId[1]; pCaptureInstPrm = &capParams.vipInst[0]; pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA; pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P; pCaptureInstPrm->standard = SYSTEM_STD_NTSC; pCaptureInstPrm->numOutput = 1; pCaptureInstPrm->videoDecoderId = 0; pCaptureOutPrm = &(pCaptureInstPrm->outParams[0]); pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV; pCaptureOutPrm->scEnable = FALSE; pCaptureOutPrm->scOutWidth = 720; pCaptureOutPrm->scOutHeight = 240; pCaptureOutPrm->outQueId = 0; DisplayLink_CreateParams_Init(&displayPrm_SD); displayPrm_SD.inQueParams[0].prevLinkId = chain.captureId; displayPrm_SD.inQueParams[0].prevLinkQueId = 0; displayPrm_SD.displayRes = VSYS_STD_NTSC; displayPrm_SD.displayId = DISPLAY_LINK_DISPLAY_SD; printf("%s: capture link create\n", __func__); System_linkCreate(chain.captureId, &capParams, sizeof(capParams)); printf("%s: display link create 1\n", __func__); System_linkCreate(chain.displayId[1], &displayPrm_SD, sizeof(displayPrm_SD)); printf("%s: CHAIN CREATE DONE\n", __func__); }
When i stop application i received this information:
[ 94.222105] autorun_user.sh[119]: [m3vpss ] *** Capture Driver Advanced Statistics ***
[ 94.222606] autorun_user.sh[119]: [m3vpss ]
[ 94.223050] autorun_user.sh[119]: [m3vpss ] VIP Parser Reset Count : 0
[ 94.223496] autorun_user.sh[119]: [m3vpss ]
[ 94.223922] autorun_user.sh[119]: [m3vpss ] | Total Even Odd Total Even Odd Min / Max Min / Max Dropped Fid Repeat Frame Error Y/C
[ 94.224366] autorun_user.sh[119]: [m3vpss ] CH | Fields Fields Fields FPS FPS FPS Width Height Fields Count (Desc Error Y/C)
[ 94.224812] autorun_user.sh[119]: [m3vpss ] ------------------------------------------------------------------------------------------------------------
[ 94.225255] autorun_user.sh[119]: [m3vpss ] 000 | 1506 753 753 125 62 62 65535 / 1 2 / 2 590 783 0/0 (0/0)
[ 94.225692] autorun_user.sh[119]: [m3vpss ]
[ 94.226104] autorun_user.sh[119]: [m3vpss ] VIP Capture Port 0 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
[ 94.227900] autorun_user.sh[119]: [m3vpss ]
[ 94.228570] autorun_user.sh[119]: [m3vpss ] *** Capture List Manager Advanced Statistics ***
[ 94.229160] autorun_user.sh[119]: [m3vpss ]
[ 94.229760] autorun_user.sh[119]: [m3vpss ] List Post Count : 1509
[ 94.230477] autorun_user.sh[119]: [m3vpss ] List Stall Count : 0
[ 94.231049] autorun_user.sh[119]: [m3vpss ] List Post Time (ms) : Max = 0, Min = 0, Avg = 0, Total = 0
[ 94.231601] autorun_user.sh[119]: [m3vpss ] INTC Timeout Count : (0, 0) (Min timeout value = 994, 996)
[ 94.232144] autorun_user.sh[119]: [m3vpss ] Descriptor miss found count : 0
[ 94.232679] autorun_user.sh[119]: [m3vpss ]
[ 94.233231] autorun_user.sh[119]: [m3vpss ]
[ 94.233756] autorun_user.sh[119]: [m3vpss ] VIP and VPDMA registers,
[ 94.234293] autorun_user.sh[119]: [m3vpss ] VIP0 : FIQ_STATUS : 0x4810551c = 0x00000000
[ 94.234831] autorun_user.sh[119]: [m3vpss ] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000
[ 94.235362] autorun_user.sh[119]: [m3vpss ] VPDMA: LIST_BUSY : 0x4810d00c = 0x00000000
[ 94.235928] autorun_user.sh[119]: [m3vpss ]
[ 94.236449] autorun_user.sh[119]: [m3vpss ]
[ 94.236966] autorun_user.sh[119]: [m3vpss ] 46315: CAPTURE: Fields = 916 (fps = 75, CPU Load = 11)
[ 94.237504] autorun_user.sh[119]: [m3vpss ] 46316: CAPTURE: Num Resets = 0 (Avg 0 ms per reset)
[ 94.238114] autorun_user.sh[119]: [m3vpss ] 46316: SYSTEM : FREE SPACE : System Heap = 1675440 B, Mbx = 10238 msgs)
[ 94.238695] autorun_user.sh[119]: [m3vpss ] 46316: SYSTEM : FREE SPACE : SR0 Heap = 14772608 B (14 MB)
[ 94.239240] autorun_user.sh[119]: [m3vpss ] 46317: SYSTEM : FREE SPACE : Frame Buffer = 98251648 B (93 MB)
[ 94.239782] autorun_user.sh[119]: [m3vpss ] 46317: SYSTEM : FREE SPACE : Bitstream Buffer = 61865856 B (58 MB)
[ 94.240432] autorun_user.sh[119]: [m3vpss ] 46317: SYSTEM : FREE SPACE : Tiler Buffer = 128 B (0 MB) - TILER OFF
[ 94.240995] autorun_user.sh[119]: [m3vpss ] 46318: CAPTURE: Delete in progress !!!
[ 94.241650] autorun_user.sh[119]: [m3vpss ] CAPTURELINK: !!WARN. Mismatch FrameAddr:b8811240,OrigAddr:0
[ 94.242264] autorun_user.sh[119]: [m3vpss ] CAPTURELINK: !!WARN. Mismatch FrameAddr:5c0,OrigAddr:0
[ 94.242830] autorun_user.sh[119]: [m3vpss ] 46319: CAPTURE: Delete Done !!!
[ 94.243381] autorun_user.sh[119]: [m3vpss ] 46320: DISPLAY: UNDERFLOW COUNT: HDMI(BP0) 755, HDDAC(BP0) 755, DVO2(BP1) 755, SDDAC(SEC1) 726
[ 94.243931] autorun_user.sh[119]: [m3vpss ] tiedVencs VPS_DC_VENC_HDMI | VPS_DC_VENC_HDCOMP
[ 94.244503] autorun_user.sh[119]: [m3vpss ] VPS_DCTRL_INST_0
[ 94.245035] autorun_user.sh[119]: [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_DVO2
[ 94.245561] autorun_user.sh[119]: [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_HDMI
[ 94.246093] autorun_user.sh[119]: [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_SD
[ 94.246624] autorun_user.sh[119]: [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_HDCOMP
[ 94.247155] autorun_user.sh[119]: [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_CLK_SRC VPS_DC_VENC_HDMI | VPS_DC_VENC_HDCOMP
[ 94.580204] autorun_user.sh[119]: [m3vpss ] HDCOMPCLK
[ 94.580795] autorun_user.sh[119]: [m3vpss ] 67199: CAPTURE: Create in progress !!!
[ 94.581406] autorun_user.sh[119]: [m3vpss ] 67237: CAPTURE: VIP0 PortA capture mode is [ 8-bit, Non-mux Embedded Sync] !!!
[ 94.581972] autorun_user.sh[119]: [m3vpss ] CAPTURE:Create args numBufsPerCh[10] > max[8]Overriding create args
[ 94.582516] autorun_user.sh[119]: [m3vpss ] CAPTURE::HEAPID:0 USED:192
[ 94.583129] autorun_user.sh[119]: [m3vpss ] 67261: CAPTURE: Create Done !!!
[ 94.583676] autorun_user.sh[119]: [m3vpss ] 67262: DISPLAY: Start in progress !!!
[ 94.584216] autorun_user.sh[119]: [m3vpss ] 67315: DISPLAY: Start Done !!!
[ 94.584754] autorun_user.sh[119]: [m3vpss ] 67316: DISPLAY: SDDAC(SEC1): 6796 fps, Latency (Min / Max) = ( 0 / 33 ), Callback Interval (Min / Max) = ( 33 / 37 ) !!!
[ 94.585324] autorun_user.sh[119]: [m3vpss ] 67316: CAPTURE: Start in progress !!!
[ 94.585863] autorun_user.sh[119]: [m3vpss ] 67316: CAPTURE: Start Done !!!
[ 94.586404] autorun_user.sh[119]: [m3vpss ] 67434: CAPTURE: Fields = 0 (fps = 0), Total Resets = 0 (Avg 0 ms per reset)
Register dump when usecase are running:
root@ti81xx:/opt/ipnc# ./bin/mem_rdwr.out --rd 48105500 56
[host]
0x48105500: 00000002
0x48105504: 0000A100
0x48105508: 00000000
0x4810550c: 00000000
0x48105510: 00000000
0x48105514: 003FFC03
0x48105518: 00000000
0x4810551c: 00000000
0x48105520: FFFFFFFC
0x48105524: FFFFFFFC
0x48105528: FFFFFFFF
0x4810552c: FFFFFFFF
0x48105530: 03590001
0x48105534: 00000000
0x48105538: 00000000
0x4810553c: 00000000
0x48105540: 00000000
0x48105544: 00000000
0x48105548: 00000000
0x4810554c: 00000000
0x48105550: 00000000
0x48105554: 00000000
0x48105558: 00000000
0x4810555c: 00000000
0x48105560: 00000000
0x48105564: 00000000
0x48105568: 00000000
0x4810556c: 00000000
0x48105570: 00000000
0x48105574: 00000000
0x48105578: 00000000
0x4810557c: 00000000
0x48105580: 00000000
0x48105584: 00000000
0x48105588: 00000000
0x4810558c: 00000000
0x48105590: 00000000
0x48105594: 00000000
0x48105598: 00000000
0x4810559c: 00000000
0x481055a0: 00000000
0x481055a4: 00000000
0x481055a8: 00000000
0x481055ac: 00000000
0x481055b0: 00000000
0x481055b4: 00000000
0x481055b8: 00000000
0x481055bc: 00000000
0x481055c0: 00000000
0x481055c4: 00000000
0x481055c8: 00000000
0x481055cc: 00000000
0x481055d0: 00000000
0x481055d4: 00000000
0x481055d8: FFFFFFFF
0x481055dc: FFFFFFFF
Image what i am receiving from SD port. You can see small white-black line in left top corner before green line. Only these lines are changing.