PMT定义如下: 各字段含义如下:
table_id: 8bits的ID,应该是0x02
section_syntax_indicator: 1bit的段语法标志,应该是''1''''0'':固定是''0'',如果不是说明数据有错.
reserved: 2bits保留位,应该是''00''
section_length: 16bits段长度,从program_number开始,到CRC_32(包含)的字节总数.
program_number: 16bits的频道号码,表示当前的PMT关联到的频道.换句话就是说,
当前描述的是program_number频道的信息.
reserved: 2bits保留位,应该是''00''
version_number: 版本号码,如果PMT内容有更新,则version_number会递增1
通知解复用程序需要重新接收节目信息,否则version_number是固定不变的.
current_next_indicator: 当前未来标志符,一般是0
section_number: 当前段号码
last_section_number: 最后段号码,含义和PAT中的对应字段相同,请参考PAT部分.
reserved: 3bits保留位,一般是''000''.
PCR_PID: 13bits的PCR PID,具体请参考ISO13818-1,解复用程序不使用该参数.
reserved: 4bits保留位,一般是''0000''
program_info_length: 节目信息长度(之后的是N个描述符结构,一般可以忽略掉
,这个字段就代表描述符总的长度,单位是Bytes)紧接着就是
频道内部包含的节目类型和对应的PID号码了.
stream_type: 8bits流类型,标志是Video还是Audio还是其他数据.
reserved: 3 bits保留位.
elementary_PID: 13bits对应的数据PID号码(如果stream_type是Video,
那么这个PID就是VideoPID,如果stream_type标志是Audio,
那么这个PID就是Audio PID)
reserved: 4 bits保留位.
ES_info_length: 和program_info_length类似的信息长度(其后是N2个描述符号)
CRC_32: 32bits段末尾是本段的CRC校验值