Hi ,
I am doing a composite video capture (480i ) using TVP5147 video decoder on DM8148 EVM . I am using EZSDK 5.04 .
We have added a TVP5147 driver in the hdvpss source . We are able to do 480i video capture successfully using chains application . The chains application captures 480i video on VIP Capture Port 2 and displays on SD display .
here is the Capture driver Statistics is chains application .
[Cortex_M3_ISS] *** Capture Driver Advanced Statistics ***
[Cortex_M3_ISS]
[Cortex_M3_ISS] VIP Parser Reset Count : 0
[Cortex_M3_ISS]
[Cortex_M3_ISS] | Total Even Odd Total Even Odd Min / Max Min / Max Dropped Fid Repeat Frame Error Y/C
[Cortex_M3_ISS] CH | Fields Fields Fields FPS FPS FPS Width Height Fields Count (Desc Error Y/C)
[Cortex_M3_ISS] ------------------------------------------------------------------------------------------------------------
[Cortex_M3_ISS] 200 | 3623 1813 1813 60 30 30 768 / 768 262 / 263 0 0 0/0 (0/0)
[Cortex_M3_ISS]
[Cortex_M3_ISS] VIP Capture Port 2 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
[Cortex_M3_ISS]
[Cortex_M3_ISS] *** Capture List Manager Advanced Statistics ***
[Cortex_M3_ISS]
[Cortex_M3_ISS] List Post Count : 7563
[Cortex_M3_ISS] List Stall Count : 0
[Cortex_M3_ISS] List Post Time (ms) : Max = 0, Min = 0, Avg = 0, Total = 0
[Cortex_M3_ISS] INTC Timeout Count : (0, 0) (Min timeout value = 983, 991)
[Cortex_M3_ISS] Descriptor miss found count : 0
[Cortex_M3_ISS]
[Cortex_M3_ISS]
[Cortex_M3_ISS] VIP and VPDMA registers,
[Cortex_M3_ISS] VIP0 : FIQ_STATUS : 0x4810551c = 0x00000000
[Cortex_M3_ISS] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000
[Cortex_M3_ISS] VPDMA: LIST_BUSY : 0x4810d00c = 0x00000000
[Cortex_M3_ISS] VPDMA: PERF_MON34 = 0x4305ffff, PERF_MON35 = 0x4305ffff, PERF_MON38 = 0x4305ffff, PERF_MON39 = 0x4305ffff
This is the snapshot taken when the chains application is running ,its all fine with the display except the colors are not proper .
Now when I do a 480i capture using OMX application ,I see only half of the display clearly and the other half is noise . The OMX application has got only capture and display components . capture_display omx app does the 480i capture on VIP port 2 and displays on SD display . The OMX CTRL component is able to configure TVP5147 video decoder correctly as i can see from the logs .
Capture driver advanced Statistics for OMX capture_display application .
[Cortex_M3_ISS] *** Capture Driver Advanced Statistics ***
[Cortex_M3_ISS]
[Cortex_M3_ISS] VIP Parser Reset Count : 4
[Cortex_M3_ISS]
[Cortex_M3_ISS] | Total Even Odd Total Even Odd Min / Max Min / Max Dropped Fid Repeat Frame Error Y/C
[Cortex_M3_ISS] CH | Fields Fields Fields FPS FPS FPS Width Height Fields Count (Desc Error Y/C)
[Cortex_M3_ISS] ------------------------------------------------------------------------------------------------------------
[Cortex_M3_ISS] 200 | 6216 6208 8 0 0 0 0 / 858 0 / 263 3116 6204 0/0 (4/0)
[Cortex_M3_ISS]
[Cortex_M3_ISS] VIP Capture Port 2 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
[Cortex_M3_ISS]
[Cortex_M3_ISS] *** Capture List Manager Advanced Statistics ***
[Cortex_M3_ISS]
[Cortex_M3_ISS] List Post Count : 13272
[Cortex_M3_ISS] List Stall Count : 0
[Cortex_M3_ISS] List Post Time (ms) : Max = 0, Min = 0, Avg = 0, Total = 0
[Cortex_M3_ISS] INTC Timeout Count : (0, 0) (Min timeout value = 981, 991)
[Cortex_M3_ISS] Descriptor miss found count : 0
[Cortex_M3_ISS]
[Cortex_M3_ISS]
[Cortex_M3_ISS] VIP and VPDMA registers,
[Cortex_M3_ISS] VIP0 : FIQ_STATUS : 0x4810551c = 0x00000000
[Cortex_M3_ISS] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000
[Cortex_M3_ISS] VPDMA: LIST_BUSY : 0x4810d00c = 0x00060000
[Cortex_M3_ISS] VPDMA: PERF_MON34 = 0x4305ffff, PERF_MON35 = 0x4305ffff, PERF_MON38 = 0x4305ffff, PERF_MON39 = 0x4305ffff
[Cortex_M3_ISS]
As we can see from the above data ,the odd fields are continuously dropped and only even fields are captured .
This is the snapshot taken when doing a 480i video capture using OMX application . As we can see only top half of the display is clear and the bottom half is noise . What could be the reason for odd fields getting dropped when doing capture with OMX application .
I have set pVFCCComPvt->bFieldMerged = OMX_TRUE;
storagePrms.bufferFmt = FVID2_BUF_FMT_FIELD ; (for a field based capture ) ,when i set storagePrms.bufferFmt = FVID2_BUF_FMT_FRAME , I am able to capture only two frames and the application hangs .
Can anyone help us out in understanding the above problem ? what would be the problem in the OMX framework ? any help is appreciated .
Thanks,
N Sivaramkrishna .