📄 tspack.h
字号:
/* 3.传输流分组结构: 节目时钟参考PCR(Program Clock Reference) */
/* */
/***********************************************************************/
typedef struct ProgramClockReferenceTag{
/*-------------------------------------------------*/
/* TS Packet Head(4 bytes) */
/*-------------------------------------------------*/
unsigned char Sync_byte; /* 固定为0x47*/
unsigned short Transport_err_indicator : 1 ; /* =0 没有不可纠正错误*/
unsigned short Payload_unit_start_indicator : 1 ;
unsigned short Transport_priority : 1 ; /* =0 普通优先级*/
unsigned short PID : 13; /* 根据网管设定*/
unsigned char Transport_scambling_control : 2 ; /* =0 未加密*/
unsigned char Adaption_field_control : 2 ; /* =2 对于非PCR:01b 无调整字段,只有有效字段*/
/* 对于PCR: 10b 含调整字段,无有效字段 */
unsigned char Continuity_counter : 4 ;
/*-------------------------------------------------*/
/* Adaptation Field(2 Byte) */
/*-------------------------------------------------*/
unsigned char Adaptation_field_legth;
unsigned char Disontinuity_indicator : 1 ;
unsigned char Random_access_indicator : 1 ;
unsigned char Elementary_stream_priority_indicator : 1 ;
unsigned char PCR_flag : 1 ; /* = 1 */
unsigned char OPCR_flag : 1 ;
unsigned char Splicing_point_flag : 1 ;
unsigned char Transport_private_data_flag : 1 ;
unsigned char Adaptation_field_extension_flag : 1 ;
/*-------------------------------------------------*/
/* PCR Field(6 Byte) */
/*-------------------------------------------------*/
unsigned long Program_clock_reference_base1;
unsigned char Program_clock_reference_base2 : 1 ;
unsigned char Reserved : 6 ;
unsigned char Program_clock_reference_externsion1 : 1;
unsigned char Program_clock_reference_externsion2;
/*-------------------------------------------------*/
/* Padding bytes(176). */
/*-------------------------------------------------*/
unsigned char Padding[176];
} TSPCR_T;
/***********************************************************************/
/* */
/* 4.传输流分组结构: 空分组 BP(Blank Packet) */
/* */
/***********************************************************************/
typedef struct TransportStreamBlankPacketTag{
/*-------------------------------------------------*/
/* TS Packet Head(4 bytes) */
/*-------------------------------------------------*/
unsigned char Sync_byte; /* 固定为0x47*/
unsigned short Transport_err_indicator : 1 ; /* = 0没有不可纠正错误*/
unsigned short Payload_unit_start_indicator : 1 ; /* = 空分组本项为0*/
unsigned short Transport_priority : 1 ; /* = 普通优先级*/
unsigned short PID : 13; /* = 0x1FFF: 空白分组;*/
unsigned char Transport_scambling_control : 2 ; /* = 0 :未加密*/
unsigned char Adaption_field_control : 2 ; /* = 1对于非PCR:0x01 无调整字段,只有有效字段*/
/* 对于PCR: 0x10 含调整字段,无有效字段 */
unsigned char Continuity_counter : 4 ;
/*-------------------------------------------------*/
/* Flag and IP address (5). */
/*-------------------------------------------------*/
unsigned char UserFlag; /* = 0xBA */
unsigned long IpAddr;
/*-------------------------------------------------*/
/* Padding bytes(179). */
/*-------------------------------------------------*/
unsigned char Padding[179]; /*空白数据,可以为任意值*/
} TSBP_T;
/***********************************************************************/
/* */
/* 5.传输流分组结构: 业务数据分组 */
/* */
/***********************************************************************/
typedef struct TransportStreamPacketofPESTag{
/*-------------------------------------------------*/
/* TS Packet Head(4 bytes) */
/*-------------------------------------------------*/
unsigned char Sync_byte; /* 同步字节*/
unsigned short Transport_err_indicator : 1; /* 没有不可纠正错误*/
unsigned short Payload_unit_start_indicator : 1;
unsigned short Transport_priority : 1; /* 普通优先级*/
unsigned short PID : 13; /* 根据网管设定*/
unsigned char Transport_scambling_control : 2 ; /* 0:未加密*/
unsigned char Adaption_field_control : 2 ; /* 对于非PCR:01b 无调整字段,只有有效字段*/
/* 对于PCR: 10b 含调整字段,无有效字段 */
unsigned char Continuity_counter : 4 ;
/*-------------------------------------------------*/
/* Data space(184). */
/*-------------------------------------------------*/
unsigned char Data[184]; /*空白数据,可以为任意值*/
} TSPES_T;
/***********************************************************************/
/* */
/* 6.传输流分组结构: 私有数据分组 */
/* */
/***********************************************************************/
typedef struct TransportStreamPacketofPrivateDataTag{
/*-------------------------------------------------*/
/* TS Packet Head(4 bytes) */
/*-------------------------------------------------*/
unsigned char Sync_byte; /* 同步字节*/
unsigned short Transport_err_indicator : 1; /* 没有不可纠正错误*/
unsigned short Payload_unit_start_indicator : 1;
unsigned short Transport_priority : 1; /* 普通优先级*/
unsigned short PID : 13; /* 根据网管设定*/
unsigned char Transport_scambling_control : 2 ; /* 0:未加密*/
unsigned char Adaption_field_control : 2 ; /* 对于非PCR:01b 无调整字段,只有有效字段*/
unsigned char Continuity_counter : 4 ;
/*------------------------------------------------------------------------*/
/* 调整字段,2字节 */
/*------------------------------------------------------------------------*/
unsigned char Adaptation_field_legth;
unsigned char Disontinuity_indicator : 1 ;
unsigned char Random_access_indicator : 1 ;
unsigned char Elementary_stream_priority_indicator : 1 ;
unsigned char PCR_flag : 1 ;
unsigned char OPCR_flag : 1 ;
unsigned char Splicing_point_flag : 1 ;
unsigned char Transport_private_data_flag : 1 ;
unsigned char Adaptation_field_extension_flag : 1 ;
/*-------------------------------------------------*/
/* Data space(181). */
/*-------------------------------------------------*/
unsigned char Data[182]; /*空白数据,可以为任意值*/
} TSPDAT_T;
#if 0
/*-----------------------------------------------------------------------*/
/*私有分段,3字节,放在有效负载的开头 */
/*-----------------------------------------------------------------------*/
unsigned char Table_id;
unsigned short Section_syntax_indicator :1; /* 必须置0 */
unsigned short Private_indicator :1;
unsigned short Reserved :2;
unsigned short Private_section_length :12;
# endif
/***********************************************************************/
/* */
/* 7.原始流分组结构: Packetized Elementary Stream(PES) */
/* */
/***********************************************************************/
typedef struct PacketizedElementaryStreamHeadTag{
unsigned long Packet_start_code_prefix : 24;
unsigned long Stream_id : 8;
unsigned short PES_packet_length;
unsigned char Data;
} PES_T;
/***********************************************************************/
/* */
/* 8.传输流分组结构: 调整字段 */
/* */
/***********************************************************************/
typedef struct TSAdaptationFieldHeadTag{
unsigned char Adaptation_field_legth;
unsigned char Disontinuity_indicator : 1 ;
unsigned char Random_access_indicator : 1 ;
unsigned char Elementary_stream_priority_indicator : 1 ;
unsigned char PCR_flag : 1 ;
unsigned char OPCR_flag : 1 ;
unsigned char Splicing_point_flag : 1 ;
unsigned char Transport_private_data_flag : 1 ;
unsigned char Adaptation_field_extension_flag : 1 ;
} TSAF_T;
#pragma pack(0)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -