基于嵌入式Linux的视频采集系统6----视频在LCD上的实时显示

2019-07-13 08:55发布

本文来自:
http://blog.chinaunix.net/uid-23093301-id-86395.html

MiniGUI的移植

● MiniGUI图形支持库的组成 本课题选用MiniGUI的版本为libMiniGUI-1.6.10 。 编译完成后生成三个库:它们分别是libMiniGUI、libmgext以及libvcongui。 1) libMiniGUI 为MiniGUI的核心库,提供标准控件。 2) libmgext 是MiniGUI 的扩展库,提供“文件打开”、“颜 {MOD}选择”等高级对话框等; 3)  libvcongui 支持虚拟控制台窗口的函数库。 ● 移植资源文件 本课题选用MiniGUI的版本为MiniGUI-res-1.6.10 资源文件包括基本字体、图标、位图和鼠标光标。 ●  MiniGUI所依赖函数库 MiniGUI需要交叉编译其依赖的以下函数库: 1) zlib库,zlib是提供数据压缩用的函式库,zlib使用DEFLATE算法。 2) png库,png 图片支持库。 3) jpeg库,jpeg 图片支持库 4) ttf库,TrueType 字体的支持库 编译libMiniGUI,需要添加必须的交叉编译选项。 ./configure --prefix=/root/MiniGUI/arm/target  --host=arm-linux  --target=arm-linux  --build=i386-linux  --with-osname=linux  --with-style=classic  --with-targetname=fbcon  --enable-autoial  --enable-rbf16  --disable-vbfsupport  CC=arm-linux-gcc # make # make install ● 复制MiniGUI相关文件到嵌入式系统根文件系统 主要是将MiniGUI库文件、资源文件、和MiniGUI所依赖的函数库复制到指定的嵌入式系统根文件系统目录。 ● 复制和修改MiniGUI的配置文件 MiniGUI的配置文件为MiniGUI.cfg ,一般将其此文件放置到/etc目录下。需要根据我们的开发板进行修改,主要是设置图形设备引擎、输入设备及图形设备大小和显示位数。需要修改的字段如下: 1)  gal_engine=fbcon 设置图形引擎为帧缓冲控制台fbcon 2)ial_engine=cosole 设置输入引擎为控制台 3)mdev=dummy 不需要鼠标输入 4)Defaultmode选项用于设置显示器分辨率,由于本课题选用的是3.5 寸液晶LCD,故设置为:Defaultmode=320x240-16bpp。

3.1.2 基于MiniGUI的显示模块实现

MiniGUI的显示模块初始化一个320*240的窗口,然后创建一个环形缓冲区,当缓冲区有数据时,MiniGUI立即将其显示,如果缓冲区无视频数据,则MiniGUI模块阻塞在条件变量上,当有图像数据到达时,条件变量被激活,MiniGUI立即将视频图像显示到LCD上。 MiniGUI显示模块程序流程图所示: