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.

ti8148 , run vcsdk demo: capture->display demo, frame rate only 23fps

when I run capture->display demo, capture 2 channel 1080P30 and display 2 channel 1080p30,  I get the following message

[m3vpss ] *** Display Link Latency Statistics ***
[m3vpss ] Max Latency:0
[m3vpss ] Avg Latency:24.398977
[m3vpss ] 917754: DISPLAY: HDDAC(BP0) : 23 fps, Latency (Min / Max) = ( 12 / 42 ), Callback Interval (Min / Max) = ( 42 / 43 ) !!!
[m3vpss ] *** Display Link Latency Statistics ***
[m3vpss ] Max Latency:0
[m3vpss ] Avg Latency:24.320410
[m3vpss ] 917754: DISPLAY: UNDERFLOW COUNT: HDMI(BP0) 471, HDDAC(BP0) 0, DVO2(BP1) 471, SDDAC(SEC1) 948
[m3vpss ] 917754: SYSTEM : FREE SPACE : System Heap = 182176 B, Mbx = 10240 msgs)
[m3vpss ] 917755: SYSTEM : FREE SPACE : SR0 Heap = 1231360 B (1 MB)
[m3vpss ] 917755: SYSTEM : FREE SPACE : Frame Buffer = 419396480 B (399 MB)
[m3vpss ] 917755: SYSTEM : FREE SPACE : Bitstream Buffer = 87992192 B (83 MB)
[m3vpss ] 917756: SYSTEM : FREE SPACE : Tiler 8-bit = 134217728 B (128 MB) - TILER ON
[m3vpss ] 917756: SYSTEM : FREE SPACE : Tiler 16-bit = 134217728 B (128 MB) - TILER ON
[m3vpss ] 917924: DISPLAY: DVO2(BP1) : 23 fps, Latency (Min / Max) = ( 12 / 42 ), Callback Interval (Min / Max) = ( 42 / 43 ) !!!
[m3vpss ] *** Display Link Latency Statistics ***
[m3vpss ] Max Latency:0
[m3vpss ] Avg Latency:24.319263

why it can't  reach 30 fps?

OPPS is 166, and ARM to 1000MHz, DDR 533M, DSP 750M, HDVICP 450M, L3 220M, HDVPSS 220M.   

When run demo "2: VC Demo-RTP Loopback :   AVCAP->AVENC->RTP_Tx<->RTP_Rx->AVDEC->VDIS-1080p60/APLAY" (my capture and display is configured to 1080p30, and 1 channel capture, 1 channel display),  frame rate also less than 18fps, and frame drop.

Any help or comment is welcome.

Best Regards,

  • This is display input frame rate, not the display frame rate. It means display is getting frames at 23fps rate, so there is a repeatation of frames. Please check why display is not able to get frames in time.
    Rgds,Brijesh
  • I tried to print the capture statistics information every 10s through calling interface Vps_captPrintAdvancedStatistics in file vpsdrv_captureApi.c,  the information as following:

    [m3vpss ] *** Capture Driver Advanced Statistics ***
    [m3vpss ]
    [m3vpss ] VIP Parser Reset Count : 0
    [m3vpss ]
    [m3vpss ]        | Total  Even Odd  Total Even Odd Min / Max Min / Max Dropped Fid Repeat Frame Error Y/C
    [m3vpss ] CH | Fields Fields Fields FPS FPS FPS Width Height Fields Count (Desc Error Y/C)
    [m3vpss ] ------------------------------------------------------------------------------------------------------------
    [m3vpss ] 000 | 29723 29723 0 23 23 0 1920 / 1920 1080 / 1080 1 0 0/0 (0/0)
    [m3vpss ]
    [m3vpss ] VIP Capture Port 0 | DescMissMatch1 = 5, DescMissMatch2 = 0 , DescMissMatch3 = 0
    [m3vpss ]
    [m3vpss ] *** Capture List Manager Advanced Statistics ***
    [m3vpss ]
    [m3vpss ] List Post Count : 157632
    [m3vpss ] List Stall Count : 0
    [m3vpss ] List Post Time (ms) : Max = 0, Min = 0, Avg = 0, Total = 0
    [m3vpss ] INTC Timeout Count : (0, 0) (Min timeout value = 987, 996)
    [m3vpss ] Descriptor miss found count : 0
    [m3vpss ]
    [m3vpss ]
    [m3vpss ] VIP and VPDMA registers,
    [m3vpss ] VIP0 : FIQ_STATUS : 0x4810551c = 0x00000000
    [m3vpss ] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000
    [m3vpss ] VPDMA: LIST_BUSY : 0x4810d00c = 0x00160000
    [m3vpss ]
    [m3vpss ]
    [m3vpss ]
    [m3vpss ] *** Capture Driver Advanced Statistics ***
    [m3vpss ]
    [m3vpss ] VIP Parser Reset Count : 0
    [m3vpss ]
    [m3vpss ]        | Total Even Odd Total Even Odd Min / Max Min / Max Dropped Fid Repeat Frame Error Y/C
    [m3vpss ] CH | Fields Fields Fields FPS FPS FPS Width Height Fields Count (Desc Error Y/C)
    [m3vpss ] ------------------------------------------------------------------------------------------------------------
    [m3vpss ] 000 | 29959 29959 0 23 23 0 1920 / 1920 1080 / 1080 1 0 0/0 (0/0)
    [m3vpss ]
    [m3vpss ] VIP Capture Port 0 | DescMissMatch1 = 5, DescMissMatch2 = 0 , DescMissMatch3 = 0
    [m3vpss ]
    [m3vpss ] *** Capture List Manager Advanced Statistics ***
    [m3vpss ]
    [m3vpss ] List Post Count : 158883
    [m3vpss ] List Stall Count : 0
    [m3vpss ] List Post Time (ms) : Max = 0, Min = 0, Avg = 0, Total = 0
    [m3vpss ] INTC Timeout Count : (0, 0) (Min timeout value = 987, 996)
    [m3vpss ] Descriptor miss found count : 0
    [m3vpss ]
    [m3vpss ]
    [m3vpss ] VIP and VPDMA registers,
    [m3vpss ] VIP0 : FIQ_STATUS : 0x4810551c = 0x00000000
    [m3vpss ] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000
    [m3vpss ] VPDMA: LIST_BUSY : 0x4810d00c = 0x00060000
    [m3vpss ]
    [m3vpss ]
    [m3vpss ]
    [m3vpss ] *** Capture Driver Advanced Statistics ***
    [m3vpss ]
    [m3vpss ] VIP Parser Reset Count : 0
    [m3vpss ]
    [m3vpss ]        | Total Even Odd Total Even Odd Min / Max Min / Max Dropped Fid Repeat Frame Error Y/C
    [m3vpss ] CH | Fields Fields Fields FPS FPS FPS Width Height Fields Count (Desc Error Y/C)
    [m3vpss ] ------------------------------------------------------------------------------------------------------------
    [m3vpss ] 000 | 30195 30195 0 23 23 0 1920 / 1920 1080 / 1080 1 0 0/0 (0/0)
    [m3vpss ]
    [m3vpss ] VIP Capture Port 0 | DescMissMatch1 = 5, DescMissMatch2 = 0 , DescMissMatch3 = 0
    [m3vpss ]
    [m3vpss ] *** Capture List Manager Advanced Statistics ***
    [m3vpss ]
    [m3vpss ] List Post Count : 160134
    [m3vpss ] List Stall Count : 0
    [m3vpss ] List Post Time (ms) : Max = 0, Min = 0, Avg = 0, Total = 0
    [m3vpss ] INTC Timeout Count : (0, 0) (Min timeout value = 987, 996)
    [m3vpss ] Descriptor miss found count : 0
    [m3vpss ]
    [m3vpss ]
    [m3vpss ] VIP and VPDMA registers,
    [m3vpss ] VIP0 : FIQ_STATUS : 0x4810551c = 0x00000000
    [m3vpss ] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000
    [m3vpss ] VPDMA: LIST_BUSY : 0x4810d00c = 0x00060000
    [m3vpss ]
    [m3vpss ]
    [m3vpss ]
    [m3vpss ] *** Capture Driver Advanced Statistics ***
    [m3vpss ]
    [m3vpss ] VIP Parser Reset Count : 0
    [m3vpss ]
    [m3vpss ]        | Total Even Odd Total Even Odd Min / Max Min / Max Dropped Fid Repeat Frame Error Y/C
    [m3vpss ] CH | Fields Fields Fields FPS FPS FPS Width Height Fields Count (Desc Error Y/C)
    [m3vpss ] ------------------------------------------------------------------------------------------------------------
    [m3vpss ] 000 | 30431 30431 0 23 23 0 1920 / 1920 1080 / 1080 1 0 0/0 (0/0)
    [m3vpss ]
    [m3vpss ] VIP Capture Port 0 | DescMissMatch1 = 5, DescMissMatch2 = 0 , DescMissMatch3 = 0
    [m3vpss ]
    [m3vpss ] *** Capture List Manager Advanced Statistics ***
    [m3vpss ]
    [m3vpss ] List Post Count : 161385
    [m3vpss ] List Stall Count : 0
    [m3vpss ] List Post Time (ms) : Max = 0, Min = 0, Avg = 0, Total = 0
    [m3vpss ] INTC Timeout Count : (0, 0) (Min timeout value = 987, 996)
    [m3vpss ] Descriptor miss found count : 0
    [m3vpss ]
    [m3vpss ]
    [m3vpss ] VIP and VPDMA registers,
    [m3vpss ] VIP0 : FIQ_STATUS : 0x4810551c = 0x00000000
    [m3vpss ] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000
    [m3vpss ] VPDMA: LIST_BUSY : 0x4810d00c = 0x00160000

    Through these informations, it indicated that every 10s, there only 236 frames are captured. The timing of videio source in is 74.25M, and the capture mode is "16-bit, Non-mux Embedded Sync".

    What can I do for the next to fix this problem?

    Thanks & Regards

  • Capture is receiving data at 23fps. If you see in the statistics, total_fps is 23fps and there is no field repeat or any other error. It means port itself is receiving frames at 23 frames per second rate.
    Regards,Brijesh
  • After some experiments, I found that, when I called following procedure,

    if(Clock_getTicks() - curtime > 100 * 1000)// per 100s  print the statistics
    {
    Vps_captPrintAdvancedStatistics(curtime);
    curtime = Clock_getTicks();
    }
    Acturally it only takes nearly 80s
    when calling following procedure,
    if(Clock_getTicks() - curtime >10 * 1000)   // per 10s print the statistics
    {
    Vps_captPrintAdvancedStatistics(curtime);
    curtime = Clock_getTicks();
    }
    It takes nearly 8s.
    How to fix this problem? In my environment, CPU freq is 1000M.
    Best regards