当前位置:首页 > 电源 > 电源AC/DC
[导读]摘要:随着嵌入式设备应用越来越普及,其对图形处理功能提出了更高的要求。因此轻量、高效的基于Framebuffer的DirectFB库的实现方案受到越来越多的嵌入式工程师的青睐。本文首先对DirectFB进行了介绍,接着提出了一种

摘要:随着嵌入式设备应用越来越普及,其对图形处理功能提出了更高的要求。因此轻量、高效的基于Framebuffer的DirectFB库的实现方案受到越来越多的嵌入式工程师的青睐。本文首先对DirectFB进行了介绍,接着提出了一种新的基于DirectFB的嵌入式播放器设计方案。该方案相比于其他嵌入式GUI开发的播放器能够有效地降低资源的消耗,适用于各种中低端的场合,同时具备良好的可移植性。
关键词:DirectFB图形库;帧缓存;Lite界面开发;FFmpeg多媒体库;Linux操作系统;嵌入式播放器

1 概述
    随着嵌入式的普及和发展,嵌入式设备的功能越来越强大,用户对嵌入式设备的要求也越来越高。各种多媒体应用程序被移植到了嵌入式系统中,是否能够播放音视频是人们衡量和购买嵌入式设备的基本要求之一。本文提出了一种基于DirectFB嵌入式播放器解决方案,有效地降低嵌入式系统的资源消耗,适用于CPU频率小于400MHz的中低端嵌入式系统。DirectFB是一个轻量级的GUI开发库,它通过Framebuffer以及回调函数,实现了对硬件设备的完全抽象,加速和简化了图形操作。
    本文首先对DirectFB进行了详细的介绍,接着提出了一种宽松的、可分解的嵌入式播放器设计方案。该方案资源消耗少、可移植性强、系统各个模块间依赖度小,使得用户能够根据自己的系统需求快速设计满足自己要求的播放器。

2 DirectFB简介
2.1 DirectFB的整体框架
    DirectFB必须通过Linux下Framebuffer驱动来访问硬件设备,它在Framebuffer的基础上提供了图形设备的加速、输入设备处理提取、透明窗口和多重显示层的功能。另外DirectFB设计之初就充分考虑了嵌入式系统的固有特性,体积小巧,资源消耗低。作为嵌入式系统中强大的图形处理库,DirectFB成为Linux下一代处理的一个新标准(CELF AVG1.0标准)。图1是DirectFB的整体框架。


2.2 DirectFB接口描述
    DirectFB提供了一套C接口来方便用户进行界面开发,例如IDirectFBSurface接口提供了对于文本、BILT、画线以及画矩形的操作。IDir ectFBFont接口提供了对字体的操作,而IDirectFBVideo接口提供了对多媒体进行播放控制的操作。表1对DirectFB接口进行了详细的描述。[!--empirenews.page--]



3 播放器的框架
    嵌入式播放器的架构如图2所示。采用DirectFB开发的Lite作为图形界面,与用户进行直接交互;调用DirectFB的Video实现了音视频的插件接口和解码器模块。该接口将FFmpeg、xine、libmpeg3等多媒体库封装成统一接口,具备很强的扩展性;基于Framebuffer的输出,消除了对于特定架构的依赖,有效地增强了系统的可移植性。


    图形界面是以Lite为基础开发的。Lite是基于DirectFB开发的以box为基类的对话框。通过调用Lite可以编写各种暂停、播放、音量等控件,用户使用这些控件与播放器进行直接交互。DirectFB本身并不提供窗口以及对话框管理功能,因而DirectFB更多地被用作底层图形库。参考文献中选择以DirectFB为后端的Cairo图形库进行2D图形开发;参考文献中选择基于GTK+on DirectFB进行嵌入式开发。如今,上层API支持DirectFB的有XDirectFB、DirectFBGL、DFBTerm、DFBSee、DFBPoint、QT on DireelFB、SDL等。采用Lite进行开发的目的,主要是因为它直接使用DirectFB开发对话框,而且源代码只有5 MB左右,具有很快的响应速度,能够有效降低嵌入式设备资源的消耗。
    插件接口将对解码器的操作放到了Video统一的开发式接口中,该接口实现了分离音视频、解码音视频、播放、暂停、调节音量、调整播放速度等各种功能。通过该接口,播放器的扩展性得到了很大的提高,因此该接口是媒体播放器的核心。[!--empirenews.page--]
3.1 插件接口以及编解码
    DirectFB通过对FFmpeg进行封装,形成一组统一接口方便用户调用。插件接口通过以下方法来控制解码器:
    ①Probe函数。通过检查文件扩展名来确定播放器是否支持播放该文件,可以识别的扩展名有wav、au、snd、mp2、mp3、m2a、swf、wma、rm等。用户可以通过添加新的解码器来支持更多新的文件格式。
    ②Construct函数。通过调用FFmpeg的一些库函数,首先将输入的视频文件头信息读取出来,接着把视频文件分离成音频和视频流,并申请音频和视频流的缓冲区,然后识别出音视频解码器。该函数同时会将用户写的一些非标准函数指针赋给标准API函数,方便用户的调用。
    ③FFmpegInput函数。该函数管理将对解码出的音视频包送入各自的FIFO队列,同时设置了一些标志位来管理FIFO队列,例如音视频队列当前的状态,当用户拖动进度条进行偏移时用户需要有一个拖动标志位,拖动的长度用来重新计算播放时间。
    ④FFmpegVideo以及FFmpegAudio函数。这两个函数主要用于播放音频流和数据流,同时有一些用于音视频的同步控制。
    ⑤FFmpeg_PlayTo函数。该函数是给用户提供的接口函数,该接口函数在DirectFB中为PlayTo。在函数中,PlayTo同时启动了3个线程,这3个线程分别调用了FFmpegInpuIt、FFmpegVideo、FFmpegAudio函数,用于将将音视频送入FIFO队列,从FIFO队列取出数据并播放。
播放器的数据流程如图3所示。音视频处理过程是同步进行的。


    此外还有一些控制函数,例如文件播放PlayTo、播放停止Stop、按时间跳转SeekTo、调整音量SetVolume、获取音量GetVolLume、调整播放速度SetSpeed、获取播放速度GetSpeed等函数,这些函数在construct函数中被封装成标准接口便于用户涮用。
3.2 Lite和fusionsound
    Video接口通过调用FFmpeg对音视频解码进行了有效的封装。通过Lite,用户与播放器实现有效交互。Lite弥补DirectFB在工具箱以及窗口管理上的不足,相比于其他的GUI,它在提供对话框和按钮的同时,资源消耗较小,适合嵌入式开发。Fusionsound是一个DirectFB的子库,它基于oss或者alsa驱动。Fusionsound将音频数据输出到了扬声器上,该函数库能够支持一些基本操作,例如WAV格式文件的播放,同时它也提供一系列的声音播放、调节播放速度、调高音量、声音缓冲区管理等接口。
3.3 播放器的流程
    程序运行流程如图4所示。程序首先初始化Lite以及DirectFB库,然后初始化对话框并设置回调函数;接下来初始化一系列的按钮,例如播放、暂停、快进、声音、放大、缩小等,并设置消息触发响应函数。接着调用DirectFB接口中的video接口播放视频文件,然后会进入消息循环,来响应用户各种各样的按键消息。

[!--empirenews.page--]

4 实验结果
    在本实验中,采用TI公司OMAP-L138处理器、64M的内存开发板做实验,内存占用约为5M左右。通过内核设置,将CPU的主频设置为300 MHz,播放器在运行期间CPU的占用率为70%,播放画面十分流畅。DirectFB开发的播放器如图5所示。



结语
    DirectFB是一个轻量、高效的库,但是由于缺少必要的窗口系统导致其开发效率低。搭配由DirectFB开发出的Lite窗口系统,能很有效地进行基于对话框的程序开发。因为Lite和DirectFB本身占用的资源极少,所以十分适合嵌入式开发。本文提供了一套嵌入式开发播放器的新思路,通过对编解码代码的优化,搭载上轻量的图形和窗口管理系统,使其能够适用于各种中低端场合。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能

武汉2024年5月15日 /美通社/ -- 北京时间4月26日-5月4日,2024 VEX 机器人世界锦标赛于美国得克萨斯州达拉斯市举办。本届 VEX 世锦赛为期九天,设有 VIQRC 小学组/初中组、V5RC 初中组/...

关键字: 机器人 BSP RC POWERED

上海2024年5月15日 /美通社/ -- 由生成式人工智能(AI)驱动的临床阶段生物医药科技公司英矽智能宣布,与复星医药(600196.SH;02196.HK)合作开发的潜在"全球首创"候选药物IS...

关键字: ISM BSP PC 人工智能

上海2024年5月13日 /美通社/ -- 5月8日,浦东新区国资委组织陆家嘴集团等9家区属企业与立邦中国召开合作交流会,旨在贯彻落实浦东新区区委、区政府工作要求,进一步放大进博会溢出带动效应,持续扩大区属企业与进博会重...

关键字: BSP 数字化 自动化立体仓库 智慧园区

上海2024年5月13日 /美通社/ -- 在数字化时代,高效的税务管理和ERP系统成为企业发展的关键。为了满足这一需求商应信息科技与Exact Software 易科软件就金四全电票税系统与ERP系统集成及商务合作建立...

关键字: AC 软件 BSP 数字化

北京2024年5月13日 /美通社/ -- 5月11日,鲲鹏昇腾开发者大会2024期间,华为举办"昇思AI框架及大模型技术论坛",软通动力数字基础设施与集成事业部总经理谢睿受邀出席、软通动力...

关键字: AI 模型 BSP 精度
关闭
关闭