(3)Audio-Decoder模块
在MAI开始链接各模块时已确定了音视频的解码格式,因此音视频的解码模块在链接时已确定下来。此时的音频解码Audio-Decoder模块就是处理音频解码的模块,依据不同的数字电视格式,该音频解码格式可能是mp3或ac3等。音频解码后,音频数据送往Audio-Render模块驱动硬件发出声音。
(4)Video-Decoder模块
视频解码Video-Decoder模块也是进行确定编码格式的解码工作。对于MPEG2的编码格式,Video-Decoder将数据交给MAE的前端处理,由MAE送到显示屏上显示。对于其他不能使用MAE前端进行处理的视频格式(如H264等),必须由软件进行解码,形成YUV数据,然后将YUV数据输入到MAE的后端处理。
3.3 数字电视播放效果
需要对搭建起的数字电视播放系统进行测试。通过测试,数字电视设备接口的数据缓冲区需要设置为256KB,如果存储容量允许采用512 KB到1 MB更好。在数字电视模块采用USB接口进行播放时,播放流畅,音视频同步,数字电视的实际播放达到了预期的效果。
3.4 增加对其他媒体格式的支持
对于其他常见的媒体文件格式,如flv和rmvb等,也可以通过增加该格式的 Demux和Decoder实现播放。由于视频Decoder解码后得到的是YUV数据,因此直接将该数据交给MAE-BE端处理。音视频同步方面,需要在提交YUV数据给MAE-BE端处理时,将当前帧的时间戳一并提交给MAE,即可由MAE内部实现音视频同步。当然也可以自己在程序中进行音视频同步,这需要在提交YUV前从MAE取得音频播放的时间戳,然后与当前视频帧的时间戳比较,进行必要的延时操作。
结 语
本文详细介绍了数字电视播放系统的建立过程。该系统基于AU1200芯片,结合软硬件优势,实现了数字电视TS流的播放功能。通过对媒体播放程的扩展,还可以实现如flv和rmvb等多种媒体格式的解码播放。