欢迎来到天天文库
浏览记录
ID:14077107
大小:221.50 KB
页数:7页
时间:2018-07-25
《基于quartusii的数字电路仿真实验报告手册》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、摘要:本文以无线多媒体终端项目的需求为背景,提出了一种适用于嵌入式系统的媒体播放器架构设计方案论文给出了一种嵌入式系统中音视频同步的解决方案,有效的提高了嵌入式媒体播放器软件的音视频同步性能,在此基础上设计并实现了基于Linux/Qt的嵌入式媒体播放器,实现了基于Qt的嵌入式媒体播放器系统关键词:Qt;嵌入式Linux;媒体播放器;音视频同步1引言随着用户要求的不断提高,越来越多的嵌入式设备使用功能强大、价格低廉的嵌入式Linux作为操作系统并开始采用较为复杂的图形用户界面Qt以其强大的功能、良好的可移植性逐渐成为一种被广泛使用的GUI系统正是由于嵌入式操作系统及其
2、相应图形用户界面的不断发展,嵌入式软件的开发显得越来越重要其中嵌入式媒体播放器由于能够满足人们的视听享受已经逐渐成为了系统中不可或缺的重要组成部分,在嵌入式系统上开发媒体播放器已经成为了一个技术热点,当前许多嵌入式产品中都包含媒体播放器因此在基于Qt的嵌入式系统中实现媒体播放器具有深刻的意义和实用价值2嵌入式媒体播放器系统设计2.1架构设计嵌入式媒体播放器架构设计方案如图1所示通过使用纯C++语言开发来支持嵌入式Linux系统,采用Qt/Embedded作为GUI来提供强大的用户界面,实现一个开放式的插件接口来增强扩展性,利用内核帧缓冲来输出,消除对特定架构的依赖,
3、从而保证可移植性媒体播放器属于上层应用程序,位于Linux用户空间这样设计的目的是为了系统移植性图形用户界面窗口以Qt/Embedded为基础开发,通过调用Qt/Embedded提供的类库根据需要设计可以管理多媒体文件的基本窗口,包括打开、删除、显示文件长度、显示播放时间等窗口,以及为方便用户设定的管理播放列表、进行播放控制的窗口,这些都是直接和用户打交道的由于采用了Qt/Embedded作为GUI,移植性可以得到保证文件输入主要是对用户指定的文件进行读取和解析,将获得的文件长度、播放时间、编码格式、音视频帧率、文件标题等内容,结合MIME的处理,显示在预先设计的窗
4、口中插件接口调用主要是把所有对解码器的操作整合到一个统一的开放式接口当中,根据上一部分解析出的文件信息去查找相应的解码器插件并调用,如果没有找到可用的解码器可以返回信息提醒用户添加相应的插件通过实现这样一个接口可以使播放器的扩展性大大提高,因此本部分是媒体播放器的核心文件解码和输出主要负责通过调用解码器对音视频数据流进行解码,然后利用QT/Embedded可以直接操纵内核帧缓冲FrameBuffer的特性,将解码之后的数据通过FrameBuffer直接送到输出设备输出,避免对DirectShow、OpenGL等特定架构的依赖,进一步增强可移植性图1嵌入式媒体播放器的
5、架构3插件接口模块和解码库模块3.1插件接口模块设计插件接口模块是整个播放器的核心部分,它封装了对具体解码器的操作,从而在输入和输出模块之间搭起一座桥梁,确保数据的正常流动插件接口模块主要提供了以下方法来控制解码器:1)文件支持性函数boolisFileSupported(constQString&filename);通过检查文件的扩展名来确定待播放的文件是否被播放器支持,若是返回真,否则返回假可识别的扩展名有asf、avi、dat、mp2、mp3、mpeg、mpg、ogg、wav等如果添加了新的解码器插件以后可以识别新的文件格式,只需要将其扩展名添加到此函数的支持
6、列表中2)获取文件信息函数constQString&fileInfo();用于获得文件的各种信息并将结果保存在一个常量字符串中,便于其他函数调用这些信息包括:播放时间、音频格式、音频比特率、音频通道、音频频率、视频格式、视频比特率、视频高度、视频宽度等3)读取音频采样函数boolaudioReadSamples(short*outputintchannelslongsampleslong&samplesReadint);调用解码器对音频采样数据进行读取,是音频数据处理的核心部分output表示待输出文件指针,channels表示通道数,samples表示采样数,sa
7、mplesRead表示待读取采样数4)读取视频帧函数boolvideoReadScaledFrame(unsignedchar**output_rowsintintintin_wintin_hintout_wintout_hColorFormatfmtint);调用解码器对视频帧进行读取,是视频数据处理的核心部分参数output_rows表示输出列地址的指针,in_w、in_h、out_w、out_h分别表示输入和输出帧数据的宽度和高度,fmt表示采用的色彩模式,返回值用来判断执行是否成功5)音视频同步函数定义:intSync(File*fpintauIndex
此文档下载收益归作者所有