机顶盒demux的流程
在机顶盒中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中主要的资源有slot、 filter和 buffer
主要分为4个步骤:
1. 判断是否有空闲的filter,没有的话就直接退出了。每一个数据请求需要占用一个filter,如PAT/PMT等表的请求,通常是需要一直占用filter的。
2. 将app设置下来的PID设到SLOT里面,同时设置slot的数据输入端口,数据流的类型等, 然后根据这个slot创建一个虚拟通道,将slot、filter、buffer等联系在一起。
slot.in = DMX_INPUT_PORT;
slot.pid = ReqPid;
slot.type = DMX_CH_TYPE_SECTION;
3. 设置filter。首先设置filter的buffer,然后将app设置下来的data 、mask(data mask相‘与’后来过滤数据)设置到filter中,filter将过滤后的数据放到buffer中。
4. 最后通过回调,将数据抛向app层。
机顶盒demux的流程相关推荐
- 数字有线机顶盒锁频流程
本文所介绍的高频头以DVB-c tuner(数字有线电视)为例 一.硬件解析(对硬件原理不熟悉,只能说个大概) 高频头(tuner),也称之为调频器,主要有三个功能: 1)选择频道即选台,在硬件上应该 ...
- 机顶盒加密系统流程 ECM EMM CW SK
随着数字视频广播(DVB)的发展,观众会面对越来越多的数字电视节目的选择.而广播业者由于投资成本的增加,则要求对用户收取一定的收视费用.条件接收系统(Conditional Access System ...
- Android多媒体软件开发入门(一)
PART 1 OTT 是"Over The Top"的缩写,是指通过互联网向用户提供各种应用服务.目前,典型的OTT业务有互联网电视业务,苹果应用商店等.不少OTT服务商直接面向用 ...
- QIIME 2用户文档. 2插件工作流程概述(2019.7)
前情提要 Nature Biotechnology:QIIME 2可重复.交互和扩展的微生物组数据分析平台 1简介和安装Introduction&Install QIIME 2插件工作流程概述 ...
- FFmpeg 直播黑屏问题分析解决
背景 分析思路 解决思路 背景 FFmpeg是非常优秀的开源框架,在使用其进行二次开发及适配的过程中,难免会遇到各种各样的问题. 这次记录的是基于FFmpeg开发的播放器中,直播黑屏问题分析思路及解决 ...
- 机顶盒+linux服务,应用于低端Linux电视机顶盒内进程通信的系统及方法与流程
本发明涉及低端电视机顶盒通信技术领域,具体涉及一种应用于低端linux电视机顶盒内进程通信的系统及方法. 背景技术: 现有的低端电视机顶盒因内存.flash的限制,一般采用linux操作系统,而lin ...
- 视频编解码(十二):播放器编解码流程source、demux、decoder、output
一.播放器编解码流程source.demux.decoder.output 说白了播放器大致分为4大部分:source.demux.decoder.output. 1.source: 数据源,数据的来 ...
- 机顶盒软件组成及启动流程
1. 软件结构组成 uboot : 一种boot loader,负责机顶盒嵌入式linux的系统引导工作,引导系统启动,已经系统维护(镜像烧写,软件更新). env ...
- ffmpeg对mp3媒体数据的demux和部分decode流程 【ffmpeg-3.3.7】
目录 背景 mp3媒体资源的组成结构 函数调用流程图 ff_id3v2_read_dict id3v2_parse read_ttag mp3数据部分的格式解析 mp3_read_header 背景 ...
最新文章
- Google设想将《黑镜》情节变为现实,但要你的隐私作交换
- 数据库 1205 Error 'Lock wait timeout exceeded; try restarting transaction' on query
- Win64 驱动内核编程-30.枚举与删除线程回调
- hdu 2871 Memory Control(线段树)
- 找不到本地服务器,在本地站点中找不到全局编录服务器
- java this 三种用法
- IntelliJ IDEA tomcat配置
- javascript 判断字符串是否包含某字符串(indexOf)
- 达梦数据库如何连接MySQL_如何创建达梦数据库
- cocos2dx-lua 笔记 方向控制 v2
- Doris之数据模型的选择建议
- 百度ERNIE新突破!登顶中文医疗信息处理权威榜单CBLUE冠军
- JavaScript 作用域
- POJ_2258 The settlers of Catan (DFS)
- WINDOWS编译OpenJDK8的问题及解决办法
- 【转】WIFI-Direct(Wifi直连)、AirPlay、DLAN、Miracast功能介绍
- 如何绘制CIE1931xy色度图
- Alien Skin Exposure v6.x 最新通用完整版汉化补丁
- 产品初探:银行理财产品简介
- 如何按照DocNum+LineNum+流水号生成批次号
热门文章
- PPT设计思维(邵云蛟)读书笔记(一)——形状的功能及字体选择
- 最新远光软件笔试题面试题内容(2)
- MATLAB中ode23函数,龙格库塔函数
- Case ID 00755439 - HPE DL580 Gen9 机器问题
- MySQL的date_format()和str_to_date()
- 拿破仑的格言节选(含我的评论)
- 路由器端口映射帮助文档
- -------------混沌理论(Chaos theory)探讨--------------
- LeetCode 1346、检查整数及其两倍数是否存在
- 基于单片机的车辆防碰撞及自动刹车系统(STC89C52RC芯片+超声波传感器HC-SR04+液晶屏1602+继电器+蜂鸣器)