- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
section说明
关于section的说明
在做项目过程中,我们经常接触到创建DEMUX,注册Filter过滤数据,通过回调过滤出section数据,然后我们对section数据做具体的解析或者其他操作。
我们这里说的section就是段的概念,一个section可能包含一个或者多个TS包,我们可以这样理解,TS是对数据内容发封装,属于传输层的格式,规定了传输数据的格式,它以188字节为单位组成一个TS包,在这一层,它不管封装的内容是什么,就是在传输的内容前加上4个字节的头信息组成包。而我们filter过滤出来的section数据是去掉了TS包头的的有效数据,可能是多个TS包组成起来的有效数据,我们解复用DEMUX中也包括对接收到的TS包数据,根据不同的PID来过滤出相应的TS包,然后去掉包头,把相关的多个TS包有效数据组织起来形成section数据返回给应用开发者调用。
下图是我自己做的关于表,段,TS包的结构关系:
一个表由一个或多个段构成(具有相同的table_id和table_id_extension,不同section_number来区分,并且由last_section_number确定该表的最大section的数目);每个段由一个或多个TS数据包的数据组成,比如一个新的section数据,那么第一个TS包的payload_unit_start_indicator一般为1,后续该section的TS包的payload_unit_start_indicator为0,直到另外的section数据到来时候TS包的payload_unit_start_indicator才变为1(同时也说明该section数据结束,新section数据的开始),而continuity_counter随着具有相同PID的TS包的增加而增加,这样我们就可以方便我们组织各个TS包来获取section数据。同时我们的section数据就是去掉各个TS包头后组织起来的有效载荷数据,我们可以对比码流分析仪来分析。
一般一个section的长度是1024,而TS包是188,所以一般都是一个section是由多个TS包组成,当然也有可能一个section就是由一个TS的有效载荷数据组成(想PAT表一般都是这样)
?
具体代码分析我们可以参考 E:\SDMC\SDMC数字电视自学笔记\TS代码解流及说明\MpegSystem.c
?
二.表的构成(强化section的理解)
????表是组成SI信息的一种数据结构。在TS中有很多不同节目的数据包,解码器如何确定哪个数据包属于某个节目?其答案就是在TS中的PSI和SI信息里,这些信息精确地指引出获得某节目与该节目数据包的PID之间的关系。
????由MPEG-2定义的TS里面,数据包携带了两类信息:一是音、视频等素材的数据,二是PSI表。具有给定PID的数据包的有序排列就形成了TS 流。PSI表里的承载的内容主要是TS(本节目流)的描述参数。由MPEG-2定义的PSI主要包含有三个表:PAT、PMT、CAT。每个表都可作为一个或多个TS包的净荷插入TS中传送。
????一个TS数据包的净荷为188个字节,当一个PSI/SI表的字节长度大于184字节时,就要对这个表进行分割,形成段(section)来传送。分段机制主要是将一个数据表分割成多个数据段。在PSI/SI表到TS包的转换过程中,段起到了中介的作用。由于一个数据包只有188字节,而段的长度是可变的,EIT表的段限长4096字节,其余PSI/SI表的段限长为1024字节。因此,一个段要分成几部分插入到TS包的净荷中。
?PSI/SI表的构成是:一个表由一个或多个子表构成,表用table_id来标识;不同的子表由table_id和 table_id_extension来区分(具有相同的table_id和不同的table_id_extension);一个子表由一个或多个段构成(具有相同的table_id和table_id_extension,不同section_number来区分);每个段由多个TS数据包的数据组成,是TS数据包的数据,去掉了各个TS包的包头后的有效数据组成,然后会形成对应的表格式,然后我们可以通过filter过滤出来的section数据参考表格式对section数据来解析。比如PAT的section表格式如下:
每个段具有一个完整的数据结构,表的重要参数----描述符在段里传送。图3所示是SDT表的结构。
子表大于1024时,可把子表分割成两个或更多个段,并通过section_number来区分,如图3-1所示。
?
???不同的信息表在TS中通过PID来区分,具有相同PID的不同表由table_id(table_id是表标识)来区分,属于同一个tab
您可能关注的文档
最近下载
- 一种重组肉毒杆菌毒素及其制备方法.pdf VIP
- 6万吨重型非标化工装备制造项目立项投资可行性论证分析报告.doc VIP
- 以生为本 探究成长——初中历史项目式教学应用分析-来源:文科爱好者(教育教学版)(第2022002期)-成都大学.pdf VIP
- 2.5跨学科实践:制作隔音房间模型 课件-人教版物理八年级上册第二章.pptx VIP
- 电气控制及S7-1200 PLC应用技术.ppt VIP
- 网渔网咖网鱼员工手册.pdf
- 胺碘酮药液外渗护理病历讨论ppt.pptx
- 初中英语课题中期研究报告(共10篇).docx
- 2024-2025学年江苏省宿迁市高三上学期第一次调研考试地理试卷含详解.docx
- 超星网课《汽车之旅》超星尔雅答案2023章节测验答案.doc
文档评论(0)