首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于S3C6400的移动多媒体广播终端设计
来源:本站整理  作者:佚名  2009-05-07 14:00:27




    主界面完成的具体工作包含:搜索可用的电视频点;选择收看的电视频道;检测当前的信号强度;读取接收到的音视频数据;对接收到的音视频数据进行解码;播放解码后的音视频数据;对当前播放的节目进行录像;调节音量大小;静音功能。
    主界面利用调用泰合电视接收模块SDK,通过SPI驱动程序读写数据,并将接收到的CMMB复用子帧解析成H.264格式的视频数据,AAC格式的音频数据和其他数据。然后调用播放器模块,将H.264格式的视频数据和AAC格式的音频数据解码并播放。
2.2 电视接收模块SDK
    电视接收模块SDK提供对CMMB电视信号的控制,包括:电视芯片的初始化,设置频点,扫描频点;得到频道信息,设置频道;接收及停止音视频数据;测试电视信号强度大小。
    该模块主要由数据处理模块及信号控制模块2个子模块组成。
    数据处理子模块在打开引擎时,会生成一个线程,这个线程用来读取CMMB信号,并进行分析、处理,其流程如图3所示。

这个子模块是一个死循环,在循环中,先通过一个标志进行判断,如果需要处理数据,首先读取一帧数据,如果没有数据,则阻塞在这儿。然后对这帧数据进行分析,分别放入音频,视频,其他数据的缓冲区,最后,调用回调函数对各种数据进行处理,将音视频数据发送给音视频播放模块来播放。
    另一个子模块,信号控制模块主要是提供控制接口让上层调用,以完成对CMMB信号的处理。该子模块主要包含以下功能接口函数:引擎的初始化:创建读数据线程,启动初始化;引擎的打开:对电视芯片初始化;设置频点:设置当前频点;得到ESG信息:从信号中提取ESG信息并分析;关闭引擎:清除用到的资源,硬件重置位;得到频道信息列表:发送请求,分析频道信号;设置频道:设置当前频道;得到参数:能得到信号强度,当前频道等参数。
2.3 音视频播放模块
    音视频播放由3个线程来完成。这3个线程分别为视频处理线程、音频处理线程、数据接收线程。
    视频处理线程:
    (1)先判断缓冲区队列有没有视频数据,如果没有,休眠10 ms;
    (2)有数据的话,因为视频数据是根据时间戳顺序作为队列放在缓冲区的,取出第一帧,判断是否已经过时,如果是很老的数据,已经错过了播放时间,则判断帧类型,如果是关键帧,则解码并显示,否则,丢掉这一帧,然后转到第(1)步;
    (3)否则,判断这一帧是否到了播放时间,如果是,则将这帧数据解码并显示,然后转到第(1)步;
    (4)如果没有到播放时间,则休眠10 ms。然后转到第(1)步。
    音频处理线程:
    (1)先判断缓冲区队列有没有音频数据,如果没有,休眠10 ms;
    (2)有数据的话,因为音频数据是根据时间戳顺序作为队列放在缓冲区的,取出第一帧,判断是否已经过时,如果是很老的数据,已经错过了播放时间,则丢弃,然后转到第(1)步;
    (3)否则,判断是否到了播放时间,如果是,则将这帧数据解码并播放,然后转到第(1)步;
    (4)如果没有到播放时间,则休眠10 ms。然后转到第(1)步。
    数据接收线程:数据接收线程不属于播放器模块,它是电视接收模块的一部分。
    (1)如果有数据到来,判断有没有视频数据,如果有,将它们全部插入到视频缓冲区;

上一页  [1] [2] [3] [4] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:47,843.75000 毫秒