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.

Linux/AM5728: Deinterlacing two videos in VPE

Part Number: AM5728


Tool/software: Linux

Hello.

I wonder how to deinterlace two video with ti-processor-sdk-linux-am57xx-evm-03.01.00.06 at AM5728 Borad.


I completed as below it with two video(60FPS).

  -  one video decode(ducati) -> VPE(deinterlace with v4l2) -> drm display(drmModeAtomicCommit)
  -  the other video decode(ducati) -> drm display(drmModeAtomicCommit).


but, i think vpe driver have problem, as below it.


  -  one video decode(ducati) -> VPE(deinterlace with v4l2) -> drm display(drmModeAtomicCommit)

  -  the other video decode(ducati) -> VPE(deinterlace with v4l2) -> drm display(drmModeAtomicCommit)

I find that ioctl(VIDIOC_DQBUF) don't get input(YUV drm fd) of VIDIOC_QBUF(YUV drm fd) properly.


Can you explain how to deinterlace two video with VPE ?


if i upgrade PSDK version, can i solve it ?

Thanks a lot.

  • The vide4o experts have been notified. They will respond here.
  • Seems like you are using lower level APIs like XDIAS, V4L2 and DRM to develop your application and not gstreamer framework. Please confirm.

    Are these de-interlaced output going to two different displays? 

    Is VPE and DSS driver sharing the video  buffers? Is the video buffers for VPE allocated using omapdrm or V4L2?

    Please have a look at this wiki page. Look at the driver architecture section.

  • Yes. I don't use gstreamer framework. because I have my own demuxer and gstreamer have heavily performance.
    also, i need three different display for video(60fps), gstreamer don't satisfy it.
    VPE and DSS driver share video buffers that allocated with omap_bo_new.
    I understand VPE architecture that your help(Linux Core VPE User).

    I summarize as understanding and below it.
    - VPDMA is advanced enough to support multiple clients like a system DMA.
    - Multiple V4L2 device context supported.

    I wonder if B thread call VIDIODC_QBUF(src is NV12) before A thread get deinterlace(VIDIOC_DQBUF) one frame and then, Is VPDMA of VPE work properly ? Does VPDMA identify diffenent source(video source of A thread, video source of B thread) ?

    I will test testvpem2m(TI example program) to sure work properly VPE(two deinterlace) at the same time.
    I will let you know its result.

    Thanks a lot.
  • Hi.

    testvpem2m is completed to save deinterlace with two different source(YUV) without no problem.

    but, I hope that testvpem2m will show it on TV and LCD. but I will it.

    Thanks a lot.