section说明.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档