当前位置:  技术问答>linux和unix

ts包头结构问题

    来源: 互联网  发布时间:2016-11-07

    本文导语:  对于TS包头的结构体如下: typedef struct TS_packet_header { unsigned sync_byte : 8; unsigned transport_error_indicator : 1; unsigned payload_unit_start_indicator : 1; unsigned transport_priority : 1; unsigned PID : 13; unsigned transport_scrambling_control...

对于TS包头的结构体如下:
typedef struct TS_packet_header
{
unsigned sync_byte : 8;
unsigned transport_error_indicator : 1;
unsigned payload_unit_start_indicator : 1;
unsigned transport_priority : 1;
unsigned PID : 13;
unsigned transport_scrambling_control : 2;
unsigned adaption_field_control : 2;
unsigned continuity_counter : 4;
} TS_packet_header; 

解析包头的函数为
void adjust_TS_packet_header(TS_packet_header* pheader)
{
unsigned char buf[4]; 
memcpy(buf, pheader, 4);
pheader->transport_error_indicator = buf[1] >> 7;
pheader->payload_unit_start_indicator = buf[1] >> 6 & 0x01;
pheader->transport_priority = buf[1] >> 5 & 0x01;
pheader->PID = (buf[1] & 0x1F) > 6;
pheader->adaption_field_control = buf[3] >> 4 & 0x03;
pheader->continuity_counter = buf[3] & 0x03;


例如unsigned payload_unit_start_indicator : 1;
是什么意思?
还有pheader->payload_unit_start_indicator = buf[1] >> 6 & 0x01;什么意思

|
unsigned payload_unit_start_indicator : 1;
表示这个变量占用1位 (1 bit)
楼主可以google看看“位域”

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • IP包头在经过路由转发时是否会被修改
  • 什么情况下,系统会设置TCP包头中的PUSH标志位,谢谢!
  • 关于IP包头的极度困惑,在线等。。。。
  • 百思不得其解:从ip包头中取源目地址不正确


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3