qt UI can display with HDMI by the OMX ,similarly with the gst demo


My video should display with HDMI by Xorg(X11),and the contral system UI that create by qt5 should overlay the video,

but it should ensure that I can see the video through the Qt-UI.

we know that the gst demo “nvoverlaysink” can have the text or video to overlay my own video with HDMI, “nvoverlaysink” achieves this by the OMX.

so,my question is :

Qt-UI is possible that is displayed similarly with “nvoverlaysink” to overlay my own video with HDMI?

Hi alex_wang,

Since I am not familiar with qt, I suggest you to take a look how qt renders it’s UI onto the screen first.

qt renders UI onto the screen by X windows(X11) for linux;
Do you have any idea about how the demo “nvoverlaysink” renders the video onto the screen?
the way by fb or others?

I am looking into nvoverlaysink for this issue. As I understand your request, you would like to render your own video file and simultaneously overlay a QT UI onto it, right?

yes,thanks for your reply.


Do you expect both the video and qt UI rendered via X11?

yes,the video and qt UI all need rendered via X11.

video : calling the x window api to display
qt UI : use opengl/egl/es that base on the x11

Is there a conclusion?

Hi alex,
We don’t have implementations specific to qt, so your case is not possible. Looks like there is existing implementation of video playback from qt:

Please check if it can be applied to your case.

I understand that I can’t overlay a qt UI onto my own video that render via X11 ?

then ,

Do you have any idea about how the demo “nvoverlaysink” renders the video onto the screen?
the way by fb or others?

You can take a look at TRM of TX1 in ch.25 Display controller. There is a block diagram that tells how the overlay window works.


I have been read ch.24 Display Controller in TRM of TX1,and find that it is possible for solving my case,but before some questions have to solve.

According to ch.24.3.12 Blending, the Tx1 display blender has six stages(layers), and each of the five windows(A,B,C,D,T) is assigned a depth value.The windows are sorted by depth and assigned to a blend stage(layers). The cursor is the last (top) stage. Each stage combines its pixels with the previous stage according to programmed equations.

For example:

Eye is looking down from here
layer 4 ----- cursor
layer 3 ------- windowC
layer 2 ---------- windowB
layer 1 ---------------------- windowA
layer 0 ---------------------- background

so,if qt ui can display on windowC and video display on window A or background or B, my case can be solved.

But questions are coming :

  1. the tx1 dev has only one framebuffer “fb0”,how to display on different layers ?
  2. /dev/fb0 connect windowC or windowB or windowA or other ?
    how to create other fb e.g. fb1/fb2/fb3…?
  3. the demo “nvoverlaysink” can always display onto video via OMX, then the OMX connect which window?


The most important question is if the driver fb can only support one frame buffer.

I create another frame buffer “fb1” via the cmd “sudo mknod /dev/fb1 c 29 1”,and can find it in /dev via the cmd “ls /dev/fb*”.

But when I look over the info about the new frame buffer via the cmd “fbset -fb fb1 --verbose --info --show”,the error approaches towards me:

open fb1: No such device.

Any ideas ?


anyone here???

Hi alex_wang,

There is a similar topic that you can refer my reply there.



It is very similar…