⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tspack.h

📁 有线电视系统前端设备复用器原代码。 用语接受卫星信号
💻 H
📖 第 1 页 / 共 2 页
字号:
/*  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 + -