c语言sscanf函数的用法是什么
433
2022-11-15
英创信息技术ESM6802双屏显示(LVDS+HDMI)设置
1、ESM6802显示简介
双屏显示设置包括:
●双屏运行不同的程序(Qt5程序)
●双屏运行相同的程序,程序自身负责同步
●双屏同步播放相同的视频
●一个屏幕运行程序,一个屏幕播放视频
●一个屏幕分块显示多个视频(单屏/双屏通用)
下面先简单介绍一下显示接口的设置。
设置显示接口需要设置U-Boot,我们已有默认设置可以满足大部分用户需求,目前我们的出厂设置是将LCD或者LVDS屏幕作为主屏(mxcfb0),HDMI屏幕作为附屏(mxcfb1),且HDMI屏幕设置为1920x1080M@60,if=RGB24,由于HDMI屏幕显示协议中有一个协商的部分,HDMI显示输出会根据我们的设备以及显示屏幕支持的分辨率进行选择,使用双方都支持的最大分辨率,所以用户一般不需要修改此配置。而修改LCD或者LVDS的配置可以用过我们提供的修改开机画面的命令flash_opt烧写正确分辨率的bmp图片,我们的系统就会在下一次开机自动修改LCD/LVDS屏幕的分辨率设置了。如此设置可以方便用户进行快速修改屏幕设置。
对于需要自行修改设置的用户,下面对设置方法进行简单介绍。开机调试串口显示Hit any key to stop autoboot时按下任意键进入U-Boot环境,输入命令 printenv video 查看默认设置:
=> printenv video
video=video=mxcfb0:dev=ldb,800x600M@60,if=RGB666 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24
=> setenv video video=mxcfb0:dev=ldb,800x600M@60,if=RGB666 video=mxcfb1:dev=hdmi,800x600M@60,if=RGB24
设置的格式为($数字表示变量,需要根据实际情况配置):
video=mxcfb$1:dev=$2,$3x$4M@$5,if=RGB$6
●$1可以取值0或1,单屏显示只需要设置为0, 双屏显示时0为主屏,会输出开机画面,1屏默认开机没有开启,输出显示时会自动打开。
●$2表示输出设备,可选值为lcd—RGB屏,ldb--LVDS屏,hdmi--HDMI屏。
●$3和$4表示屏幕分辨率。
●$5为屏幕刷新频率。
●$6为屏幕输出接口,常用接口为RGB565、RGB666、RGB24。
用户根据自己的实际情况设置此参数后,运行命令saveenv保存,然后运行命令boot开机。开机之后可以运行命令ls /dev/fb* 查看设置是否成功,其中fb0、fb2表示屏幕,fb1是fb0代表屏幕的左上部分。默认fb2没有开启,可以输入下面命令打开:
echo 0 > /sys/class/graphics/fb2/blank
用户在使用中可以让双屏显示不同应用程序或者一个屏幕运行图形界面程序,另外一个屏幕进行视频播放等,具体设置方法将在下面两章节(QT 5支持 和 多媒体音视频 )中分别进行介绍。用户阅读完下面的内容之后可以进行随意组合使用双屏显示不同或相同内容。
2、Qt5支持
/usr/bin/qt5/qmlscene example_billborad.qml
运行效果如下图:
双屏设置:
Qt5运行于eglfs平台,与屏幕设置有关的环境变量为QT_QPA_EGLFS_FB,用户在运行Qt程序之前设置此环境变量就可以实现控制Qt程序在哪个屏幕上进行显示了,如下例在LVDS和HDMI屏幕上运行两个不同的Qt程序:
export QT_QPA_EGLFS_FB=/dev/fb0//第一个程序显示在fb0(LVDS)上
/usr/bin/qt5/qmlscene example_billborad.qml &
export QT_QPA_EGLFS_FB=/dev/fb2 //第二个程序显示在fb2(HDMI)上
./smarthome
运行效果如下图:
3、多媒体音视频
ESM6802支持多种格式的音视频多媒体文件的播放,提供的函数接口是基于gstreamer的,运行命令gst-inspect-1.0 就可以查看系统支持的所有gstreamer plugins。
ESM6802文件系统中的gst-launch-1.0 可以进行简单的播放展示,如果用户不需要对音视频播放进行暂停快进等特殊操作,也可以在应用程序中调用gst-launch-1.0进行简单的多媒体播放。ESM6802支持AVI、MP4、FLV、MPG2、MKV、RMVB常见视频格式最大分辨率1920x1080(1080p)的播放,以及常见音频格式如MP3、WMA和图片格式JPEG、PNG、GIF、BMP。
简单的视频播放可以使用如下命令:
gst-launch-1.0 playbin uri=file:///mnt/cloudy720p.mkv
播放效果如下图:
控制视频在不同屏幕上播放或这同时在两个屏幕上播放需要用到overlaysink插件(系统已经安装),配置overlaysink的文件为/usr/share/imx_6q_display_config , 配置格式如下:
[Display NAME]
必须配置,指明显示名称
device=
必须配置,指明设备文件,如/dev/video17(默认为LVDS/RGB)或/dev/video18(默认为HDMI)
fmt=
可选配置,设置显示格式,如RGBP、RGB565等,默认为RGBP
width=
height=
可选配置,设置显示分辨率
alpha=
可选配置,设置alpha(透明)值,默认0
color_key=
可选配置,颜色配置,默认关闭
具体配置示例如下:
# LVDS display
[master]
device = /dev/video17
fmt = RGBP
width = 1024
height = 768
alpha = 0
# HDMI display
[slave]
device = /dev/video18
fmt = RGBP
width = 1920
height = 1080
根据以上配置在不同屏幕(LVDS+HDMI)上同时播放不同视频的可用命令:
gst-launch-1.0 playbin uri=file:///mnt/cloudy720p.mkv playbin uri=file:///mnt/xpg.mp4 video-sink=”overlaysink display-master=false display-slave=true”
播放效果如下图所示:
如需在不同屏幕上播放相同视频可以运行如下命令:
gst-launch-1.0 playbin uri=file:///mnt/cloudy720p.mkv video-sink=”overlaysink display-master=true display-slave=true”
结合上一章Qt的介绍,可以在一个屏幕上运行程序,在另外一个屏幕上播放视频:
./smarthome &
gst-launch-1.0 playbin uri=file:///mnt/cloudy720p.mkv video-sink=”overlaysink display-master=false display-slave=true”
运行效果如下图:
视频播放还支持一个屏幕播放多个视频,可以使用如下命令:
gst-launch-1.0 playbin uri=file://$FILE1 video-sink=”overlaysink overlay-width=960 overlay-height=540” playbin uri=file://$FILE2 flags=0x41 video-sink=”overlaysink overlay-left=960 overlay-width=960 overlay-height=540” playbin uri=file://$FILE3 flags=0x41 video-sink=”overlaysink overlay-top=540 overlay-width=960 overlay-height=540” playbin uri=file://$FILE4 flags=0x41 video-sink=”overlaysink overlay-left=960 overlay-top=540 overlay-width=960 overlay-height=540”
运行效果如下图:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~