video flickering during play with qmlvideo example on eglfs

Discussion in 'Yocto' started by Mauro, Jul 20, 2018.

  1. Mauro

    Mauro New Member

    Jul 20, 2018
    Likes Received:

    I already posted this problem in QT forums and mailing list but without a response, so I'm trying here. I googled a lot for a solution, but I haven't found anything.

    I'm developing an embedded board based on iMX6SX SOC (the same of Udoo NEO); due to some issues on video reproduction, I switched to a Udoo NEO board to do some tests, and also here I'm facing the same issues. So I decided to write here to warn this community about this behavior (and to try to solve it).

    On this board I sucessfully configured, built and installed a Linux image using Yocto project using your tutorials; this image runs without graphical server (X11 nor wayland) but directly on framebuffer with the OpenGL ES support. I also added gstreamers and gstreamer-plugins-imx, with also libav support to software decode mp4 videos (iMX6SX doesn't have a VPU).
    This image integrates also meta-qt5 layer (version 5.7) configured with gstreamer support.

    On this board I would play simple short videos from a qml application, so as a first step I compiled with the generated toolchain the qmlvideo example from QT, but playing a sample video (h264 720x480@25fps) I have a heavy flickering: it seems that video went decoded well, but went blanked by some black frames, generating a "stroboscopic" effect. Framerate reported by qmlvideo during play is right (approx. 26fps). If needed I can provide a video that shows what I mean.

    If I reporduce the same video using GStreamer from command-line, video is shown right (again I can provide a video).

    CPU load is approximately the same both with qmlvideo and gstreamer, and stay low (~30%, due to sw decoding).

    I already tried to set QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1 to disable multi-buffering, but without result.
    If I set GST_DEBUG=2, logs regarding video stream are quite the same both in qmlvideo and gstreamer, and without errors.

    Just for information, on my custom board I run Yocto at rocko version with QT5.9 on a LCD display, and behavior is the same.

    Anyone here faced the same problem? Any idea if the problem on what side of the SW chain the problem could be (QT or NXP, OpenGL, gstreamer, GPU driver or other)?

    Thanks in advance, regards.


Share This Page