论文部分内容阅读
网络电视机顶盒是以家用电视机作为终端显示设备,通过数字电视广播和互联网来提供数字电视、网页浏览、在线游戏等多种娱乐服务,实现电视和用户间的互动。本文研究的是网络电视机顶盒的用户界面设计和媒体播放器的构建两部分。硬件平台是Intel公司的基于CE3100芯片的硬件参考板。CE3100芯片是Intel最新推出的基于X86架构的消费类电子SoC芯片。它内置Pentium Dothan处理器核心,全高清1080P硬件解码器及2D/3D图形加速引擎。同时提供了完善的软件开发包。软件平台的设计由Clutter和Gstreamer构成。Clutter是一个开源的图形库,使用OpenGL进行图形渲染,隐藏了内部封装的OpenGL函数接口的复杂性。开发者能够通过Clutter快速创建拥有硬件加速的炫丽3D用户界面。Gstreamer是开源的媒体应用框架,基于管道软件架构。对不同的媒体格式,只需编写和添加相应的解复用元件和解码元件即可实现播放。Clutter和Gstreamer都构建在Glib面向对象的基础C语言库上,两者能够使用Glib提供的基础数据结构、事件传递和线程等,进行快速的编码。本文主要成果如下:(1)本文编写了从底层的依赖库glib、pango、cairo到上层的clutter、gst-plugin-*、gst-ffmpeg等的自动编译脚本,修复了软件包的一些问题,实现了整套开发环境的自动化交叉编译功能。(2)本文使用Clutter构建一套稳定易操作的用户操作界面,主菜单包括“电影”、“音乐”、“图片”、“游戏”、“设置”五大功能项。实现键盘到界面的操作。(3)本文使用Gstreamer编写了媒体播放器,实现对存储在本地媒体文件进行播放及控制。因为涉及知识产权问题,代码的编写中侧重的实现了对开源的容器Ogg,视频格式Theora,音频格式Vorbis, FLAC, Speex文件播放支持。对其他的商业媒体格式如RM,MP4等,使用gst-ffmpeg里面的解复用器和解码器实现播放。(4)本文对Ogg/Vorbis/Theora的媒体格式进行了原理性分析,对Glib/Gsteamer的使用方法展开了细致的研究。