PAT 表头:
Table_id: 为8bit字段,该字段标识节目关联分段,对于PAT,置为0x00。
Section_syntax_indicator: 1bit字段,对于PAT,置为0x01。
Reserved: 2bit保留字段,用于将来扩展,置为11。
Section_length: 12bit字段,指示当前section的长度,计数值
从分段长度下一个字节开始,包括CRC校验的4个字节,
开头两位置为00,因此其大小不超过1021。
Transport_stream_id: 16bit字段,当前TS流的ID,与网络中其他TS流相区别,由运营商指定。
Reserved: 2bit保留字段,用于将来扩展,置为11。
Version_number: 5bit字段,指出PAT表的版本号,一旦PAT表有变化,其版本号增1,
当增至31时,恢复至0。
Current_next_indicator: 1bit,置为1时,表示传送的PAT当前有效,置为0表示PAT下一次有效。
Section_number: 8bit字段,表示section的数目,从0x00开始。
Last_section_number: 8bit字段,指出最后一个section号,即PAT表section的最大数目。
Program_number: 16bit字段,指出了节目对于哪一个PMTPID是可用的,当为0x00时,
后面的PID对应于NIT。
Reserved: 3bit保留字段,用于将来扩展,置为111。
Network_id: 13bit字段,NIT PID。
Program_map_PID: 13bit字段,对应于program_number所指定的节目的program_map_section的PID,
从上面可看出:一个program用4字节来表示(包括16bit的program_number与13bit的PID)。
CRC: 用来证实数据正确性的循环冗余校验码。
(section_number和last_section_number的功能是当PAT内容>184字节时,PAT表会分成多个段(sections),解复用程序必须在全部接收完成后再进行PAT的分析)