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.

DM8148 capture QVGA video without TVP-xxx encoder

Hello TI' teams,
please let me know what I need to do to perform capture from VIP[0] (without TVP encoder) digital video with parameters as are following:

1) total resolution - 432x312

2) active pixels - 320 x 240 (QVGA resolution)

3) 60 fps

4) scan format - progressive

5) pixel clock - 5,0 MHz

6) capture mode - 16 bits

7) embedded sync

I saw that QVGA resolution isn't exist in SYSTEM_Standard enumerator (see "dvr_rdk/mcfw/interfaces/link_api/system_const.h") and
parameters such pixel clock, line length and number of lines in frame aren't available into CaptureLink_VipInstParams for flexible configuration of capture port.


I'm works with dvr-rdk version 3.50 from udworks and my custom board with DM8148 (silicon rev.3)
FPGA device directly connected to VIP[0] and supply digital video signal with enlisted above parameters.
I would be very grateful for any help.

 

  • Hi Marat,

    I will notify our DVR RDK expert for help.

    Regards,
    Pavel

  • Hi Pavel, thanX alot for your reply. I'll wait.....

  • I'll tried to modify mcfw to perform QVGA capture:

    1) in file "hdvpss/packages/ti/psp/vps/fvid2.h" add to end of enumerator "FVID2_Standard" new field: "FVID2_QVGA_PROGRESSIVE_60"
    2) in file "dvr_rdk/mcfw/interfaces/link_api/system_const.h" add to enf of enumerator "SYSTEM_Standard" new field: "SYSTEM_QVGA_PROGRESSIVE_60"
    3) in file "dvr_rdk/mcfw/src_bios6/links_m3vpss/capture/captureLink_drv.c" add to function "CaptureLink_drvCreateInst" into standard switch-case code fragmet as is following:

                case FVID2_QVGA_PROGRESSIVE_60:
                    inScanFormat = FVID2_SF_PROGRESSIVE;
      pVipCreateArgs->videoIfMode = VPS_CAPT_VIDEO_IF_MODE_16BIT;
                    {
                        pInst->maxWidth = 320;
                        pInst->maxHeight = 240;
                    }
                    inWidth = 320;
                    inHeight = 240;
                break;
               
                default: // 1080p by default
                    inScanFormat = FVID2_SF_PROGRESSIVE;
                    {
                        pInst->maxWidth = 1920;
                        pInst->maxHeight = 1080;
                    }
                    inWidth = 1920;
                    inHeight = 1080;

                    break;


    4) configure in my application use-case capture parameter:
         pCaptureInstPrm->standard = SYSTEM_QVGA_PROGRESSIVE_60;
             pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;

    5) rebuild all framework by sys_all and run application.

    I saW that capture isn't started, number of buffers dequeued from capture driver always equal to zero:


    Perform capture from FPGA via VIP0_PORTA
     [m3vpss ]  11782: CAPTURE: Create in progress !!!
     [m3vpss ]  11819: CAPTURE: VIP0 PortA frame size 320 x 240 pixels, PROGRESSIVE
     [m3vpss ]  11819: CAPTURE: VIP0 PortA capture mode is [16-bit, Non-mux Embedded Sync] !!!
     [m3vpss ]  11820: CAPTURE: numStream = 1, inScanFormat = 1 !!!
     [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:5990400
     [m3vpss ]  11834: CAPTURE: Create Done !!!
      ..........
     [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 ]
     [m3vpss ]  VIP Capture Port 0 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
     [m3vpss ]
     [m3vpss ]  *** Capture List Manager Advanced Statistics ***
     [m3vpss ]
     [m3vpss ]  List Post Count        : 440
     [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 = 993, 1000)
     [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 = 0x00420000
     [m3vpss ]
     [m3vpss ]
     [m3vpss ]  16343: CAPTURE: Fields = 0 (fps = 0, CPU Load = 0)
     [m3vpss ]  16343: CAPTURE: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  16343: SYSTEM  : FREE SPACE : System Heap      = 243792 B, Mbx = 10239 msgs)
     [m3vpss ]  16343: SYSTEM  : FREE SPACE : SR0 Heap         = 2716928 B (2 MB)
     [m3vpss ]  16344: SYSTEM  : FREE SPACE : Frame Buffer     = 89353088 B (85 MB)
     [m3vpss ]  16344: SYSTEM  : FREE SPACE : Bitstream Buffer = 67108736 B (63 MB)
     [m3vpss ]  16344: SYSTEM  : FREE SPACE : Tiler 8-bit      = 89128960 B (85 MB)  - TILER ON
     [m3vpss ]  16344: SYSTEM  : FREE SPACE : Tiler 16-bit     = 44040192 B (42 MB)  - TILER ON
     [m3vpss ]
     [m3vpss ]  *** CAPTURE Statistics ***
     [m3vpss ] 16344: CAPTURE: Queued to driver = 10, Dequeued from driver = 0
     [m3vpss ] CAPTURE [0] Buf Q Status
     [m3vpss ] Empty Q -> count 0, wrPtr 0, rdPtr 0
     [m3vpss ] Full Q -> count 0, wrPtr 0, rdPtr 0
    ================================================================================

    Please let me know what is additional actionitem I need to do for proper capture of QVGA (320x240 pixels) resolution in 16 bits mode from VIP?

    unfortunately I havn't HDVPSS register description (because this require NDA agreement with TI), but I would be very grateful if anyone can explain me
    what is "List Post Count" in attached above log? This value always incremented in time. And what is "VPDMA: LIST_BUSY"?
     
    I would be very grateful for any help.