TS流解析之PAT表格解析

TS流解析之PAT表格解析

ID:37904428

大小:32.00 KB

页数:4页

时间:2019-06-02

TS流解析之PAT表格解析_第1页
TS流解析之PAT表格解析_第2页
TS流解析之PAT表格解析_第3页
TS流解析之PAT表格解析_第4页
资源描述:

《TS流解析之PAT表格解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、TS流解析之PAT表格解析2009-03-1816:54:59

2、分类:视频编解码阅读2112评论1字号:大中小订阅PAT表格定义如下:typedefstructTS_PAT_Program{unsignedprogram_number:16;//节目号unsignedprogram_map_PID:13;//节目映射表的PID,节目号大于0时对应的PID,每个节目对应一个}TS_PAT_Program;//PAT表结构体typedefstructTS_PAT{unsignedtable_id:8;//固定为0x00,标志是该表是PATunsignedsection_syntax_in

3、dicator:1;//段语法标志位,固定为1unsignedzero:1;//0unsignedreserved_1:2;//保留位unsignedsection_length:12;//表示这个字节后面有用的字节数,包括CRC32unsignedtransport_stream_id:16;//该传输流的ID,区别于一个网络中其它多路复用的流unsignedreserved_2:2;//保留位unsignedversion_number:5;//范围0-31,表示PAT的版本号unsignedcurrent_next_indicator:1;//发送的PAT是当前有效还是下一个P

4、AT有效unsignedsection_number:8;//分段的号码。PAT可能分为多段传输,第一段为00,以后每个分段加1,最多可能有256个分段unsignedlast_section_number:8;//最后一个分段的号码std::vectorprogram;unsignedreserved_3:3;//保留位unsignednetwork_PID:13;//网络信息表(NIT)的PID,节目号为0时对应的PID为network_PIDunsignedCRC_32:32;//CRC32校验码}TS_PAT;解析代码如下:HRESULTCTS

5、_Stream_Parse::adjust_PAT_table(TS_PAT*packet,unsignedchar*buffer){packet->table_id=buffer[0];packet->section_syntax_indicator=buffer[1]>>7;packet->zero=buffer[1]>>6&0x1;packet->reserved_1=buffer[1]>>4&0x3;packet->section_length=(buffer[1]&0x0F)<<8

6、buffer[2];packet->transport_stream_id=buffer[3

7、]<<8

8、buffer[4];packet->reserved_2=buffer[5]>>6;packet->version_number=buffer[5]>>1&0x1F;packet->current_next_indicator=(buffer[5]<<7)>>7;packet->section_number=buffer[6];packet->last_section_number=buffer[7];intlen=0;len=3+packet->section_length;packet->CRC_32=(buffer[len-4]&0x000000FF)<<24

9、(bu

10、ffer[len-3]&0x000000FF)<<16

11、(buffer[len-2]&0x000000FF)<<8

12、(buffer[len-1]&0x000000FF);intn=0;for(n=0;nsection_length-12;n+=4){unsignedprogram_num=buffer[8+n]<<8

13、buffer[9+n];packet->reserved_3=buffer[10+n]>>5;packet->network_PID=0x00;if(program_num==0x00){packet->network_PID=(buffer[10+n

14、]&0x1F)<<8

15、buffer[11+n];TS_network_Pid=packet->network_PID;//记录该TS流的网络PIDTRACE("packet->network_PID%0x",packet->network_PID);}else{TS_PAT_ProgramPAT_program;PAT_program.program_map_PID=(buffer[10+n]&0x1F)<<8

16、buffer[11+n];PAT_p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。