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.

关于qt和视频同时使用一个显示设备的问题

尊敬的各位老师专家:

请教大家一个菜鸟问题

我在dvsdk4的dvsdk-demos_4_02_00_01例子代码里看到,qt应用程序和视频编解码同时使用一个显示设备,而这个设备可以是composite,component,lcd,dvi等。我的概念里,一直认为qt只能在lcd上显示,现在看来我的理解是错误的,从demo程序看,qt程序甚至可以在composite等(如监视器)设备上使用。不知我的理解对不对?

其次,当视频播放输出到显示设备时,是否会覆盖qt界面程序,如何可以保持qt界面一直在前面,不知哪位老师做过qt和视频同时用一个显示设备的,请指教。

第三,关于显示格式的问题,我读dvsdk4 demo代码,发现decode是直接把解码后的流送显示设备的,也就是说NV12直接送显示设备--composite,component,lcd,dvi等。而qt绘制窗口是什么格式的,为什么也能直接送显示设备呢(demo代码里我看到直接启动qt程序,没有管格式不格式的)?还是我们根本不需要管qt和显示设备的交互,反正qt应用程序可以显示在各种显示设备上(如composite,component,lcd,dvi等)。

这些问题比较迷糊,请哪位专家老师指点。

谢谢

  • 1. composite,component,lcd,dvi这些是显示的硬件接口,至于显示在这个接口上的东西是什么,要看你往这个接口上送的数据是什么,请看DM36x VPBE手册图表3

    2. QT是跑在osd层上的,如果你要在显示osd内容的同时显示视频,你可以同时把视频送到video层上,各个层次之间的关系请参考DM36x VPBE手册图标40

    3. 关于色度空间转换,DM36x内部是通过硬件转换成YUV444做处理的,不需要软件干预转换过程,但是osd和video层支持的色度空间是不同的,请参考DM36x VPBE手册4.4章节表30

    希望上面有助于你的理解,有问题请讨论,谢谢

  • 感谢Tuff Li老师的指点。

  • QT是要放在OSD层的,视频在VID层 QT在前。当需要显示视频时,设一下OSD的属性层,这样QT就是透明的了,就可以显示视频了。送显示本身已经合成了,这个是在芯片里做的,不是LCD做的。

  • 你好,我知道要想使OSD0透明,应该通过设置属性层OSD1,请问如何设置OSD1使得OSD0透明?

  • 您好,我现在遇到这样的问题,我的qt是显示在osd层上,但是这个osd有一层灰度,这样qt界面才能显示出来,看到的视频也就是有一层灰色,如果我设置这个osd为完全透明的,视频是清晰的,但是qt界面就无法显示出来了。又想显示qt界面,又想界面透明的能看到视频,能有什么办法么