首页 > 编程知识 正文

电视机顶盒安装示意图,网络机顶盒原理电路图

时间:2023-05-03 12:56:32 阅读:154141 作者:4740

机顶盒中demux的部分是相对复杂的部分,对于机顶盒软件开发的初学者来说通常在这里会遇到一些困难。 今天特意研究了一下驱动程序层代码,有点自己的理解,所以写下来并记录下学习过程。

机顶盒里的数据如何流动?

清流数据通常流向TS流- -高频头(tuner )过滤(demux )缓冲器(Buffer )中间件、APP

TS流中的数据为经过前一段编码、复用、调制后的数据,机顶盒通过tuner对TS流进行解调,demux解复用后将数据发送给buffer,最后机顶盒读取buffer

这个数据流是如何驱动的呢?

eg:广播节目:

软件在启动时创建许多任务。 其中之一是通过过滤不同的pSI、si表(例如pat/pmt ),循环地向demux请求PSISI表。 主要设定的参数是PID、data、mask。 由于demux的数据是从tuner发送的,所以在请求之前tuner需要锁定频率并进行解调。分析PMT表可以获取音频视频的pid,并将音频视频、PCR的pid发送给播放器进行播放。 当然,在播放过程中,您需要继续基于pid请求音频视频数据。

在demux中数据是如何过滤的?

demux的主要资源是插槽、过滤器和缓冲器

主要分为四个步骤:

1 .判断是否有空闲的过滤器,如果没有就直接退出。 每个数据请求需要占用一个过滤器。 例如,对PAT/PMT等表的请求通常必须始终占用过滤器。

2 .将APP中设置的PID设置在SLOT中,同时设置SLOT的数据输入端口、数据流类型等。 然后,基于该SLOT创建虚拟通道,并将SLOT、filter、buffer等联系起来。

slot.in=DMX_INPUT_PORT;

slot.pid=ReqPid;

slot.type=DMX_CH_TYPE_SECTION;

pid唯一地标识软件包数据,同一类型的软件包只有一个pid。 pid是demux的安装基础,如果不设定demux就无法实现过滤。

slot将此视为一个管理对象,能够管理PID、filter、buffer,一个slot对应一个PID,但能够对应一个filter。

设置过滤器。 首先设定filter的buffer,然后将app设定的data、mask(datamask相与后面过滤数据)设定为filter,filter将过滤后的数据放入buffer。

4 .最后通过回调,将数据抛向APP层。

转载于:https://www.cn blogs.com/thatsmytiger/p/6905121.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。