基于MPEG-4-BIFS交互技术的嵌入式流媒体播放器(2)
发布时间:2021-06-08
发布时间:2021-06-08
&$45’67!&5$
!#’6&$78
过控制队列向模块发送命令来动态配置模块,模块也可以把响应发送回应用程序。图中最前面的模块是文件读入模块(只有输出),中间的是解码模块(既有输入也有输入),最后面的模块是视频输出模块(只有输入)。每个模块都工作在线程模式或!"#(!$%&’’()%"&’*+,&#-(%+$&)模式两种模式中的一个。前者适用于纯软件模块(例如解码模块),后者只适用于和硬件有关的模块(例如视频输出模块)。模块管理库使用操作系统提供的线程控制功能使模块工作在线程模式。模块如果有数据输入则工作,否则就放弃./0控制权。
标签和视觉物体同步。鼠标模块是根据鼠标位置信息画出一个鼠标的图形,并通过视频输出模块的叠加层:注1<输出。
1
!"#
2!3"播放器
软件结构
在此介绍的播放器是在4+$(5/.加上一块
!"$物体同步
2!3"播放器使用脚本管理器接收和处理各种
事件,并遍历场景。当脚本管理器得到当前所有需要显示的物体后,调用不同的解码器解码,最后由合成器完成物体合成并输出。事件包括鼠标、时间和脚本事件。在很多网络应用中需要实现多物体的同步,即视频流中的某些帧和其它物体(例如图像和图形)同步,它可以由两种方式实现。第一种方法是使用2!3"命令,在特定时间用!$=&’%,@&A&%&和删除和更新场景中的节点。第二#&)AB,&命令插入、
种方法是使用CB*B",’+)%,在特定时间更新同步网页,网页中可以包含图像和文字信息。图1,D显示的是播放器的多物体同步模型,其中图1对应基于
一部/.!67卡的平台上实现的。它由两部分组成,分运行在4+$(5上,主要完成网络数据接收、解复用、场景图的建立和管理。另一部分2!3"流的解码、主要完成图像、视音频解码,物体运行在67卡上,
合成和输出。在4+$(5这一侧偏重于控制,而在67这边偏重于媒体处理。整个软件的系统框图如图8所示,2!3"播放器作为浏览器的一个插件运行。
4+$(5系统通过流式数据队列向67应用程序
发送大容量媒体数据,通过消息队列发送消息。视音频和图像媒体数据按90:注
;<
(发送,9,,&==0$+%)
2!3"命令的方法,而图D对应着基于CB*B",’+)%的
方法。
送,>窗口帧缓存按帧发送。而2!3"解码器向67应用程序发送图形和媒体的控制信息,包括播放、跳转和停止的控制,以及显示的位置和次序。+/9?遥控器:注8<也通过消息队列发送鼠标的位置信息。当
67应用程序得到以上数据后,通过数据队列向
通过控制队列向6""9模块发6""9模块发送数据,送控制信息。
在图8中,>窗口帧缓存是用来动态地抓取运行在>窗口系统上的浏览器中显示的内容。67上的视频合成模块包括帧缓存合成子模块和图形子模块,它把视觉物体(视频、图像、图形和>窗口帧)同步、合成在一起输出到电视。其中各视觉物体的同步是根据视频流的时间标签,音频流也通过时间
包括解码和显示时间)的数据块,对于视频就是一帧的数据。:注;<90是7/EFGD标准中定义的带有时间标签(
其驱动程序再通过消息队列发送给67应用程:注8<+/9?通过无线网卡和4+$(5系统中的无线网卡通信来传送鼠标信息,序,以此来仿真遥控器。
它们经过合成以后输出。:注1<6’+7&H+B处理器的视频输出包含主层和叠加层两层,
!"#$%&$##’&$%
$()**+,,-./01$()+23)
!"
下一篇:应聘时漂亮的回答,一生受益的语言