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

📄 tspack.h

📁 有线电视系统前端设备复用器原代码。 用语接受卫星信号
💻 H
📖 第 1 页 / 共 2 页
字号:
/***********************************************************************/
/*                                                                     */
/*   MODULE:  Coder/apps/Tspack/Tspack.h                               */
/*   PURPOSE: Code for TS packing head file in coder application.      */
/*   AHTHOR:  Xiuyan                                                   */
/*   DATE:    2000/09/11                                               */
/*                                                                     */
/*---------------------------------------------------------------------*/
/*                                                                     */
/*           Copyright 1991 - 1998, GaoYang-DiWei, Inc.                */
/*                      ALL RIGHTS RESERVED                            */
/*                                                                     */
/*   Permission is hereby granted to licensees of GaoYang-DiWei,       */
/*   Inc. products to use or abstract this computer program for the    */
/*   sole purpose of implementing a product based on Integrated        */
/*   Systems, Inc. products.   No other rights to reproduce, use,      */
/*   or disseminate this computer program, whether in part or in       */
/*   whole, are granted.                                               */
/*                                                                     */
/*   GaoYang-DiWei, Inc. makes no representation or warranties         */
/*   with respect to the performance of this computer program, and     */
/*   specifically disclaims any responsibility for any damages,        */
/*   special or consequential, connected with the use of this program. */
/*                                                                     */
/*---------------------------------------------------------------------*/
/*                                                                     */
/*                                                                     */
/*                                                                     */
/***********************************************************************/
#ifndef _TSPACK_H_
#define _TSPACK_H_

#pragma	pack(1,1)

/***********************************************************************/
/*                                                                     */
/*  1.传输流分组结构: 节目关联表PAT(Program Associate Table)           */
/*                                                                     */
/***********************************************************************/

#if 0
typedef struct ProgramAssociateTableTag{

	/*-------------------------------------------------*/
	/* TS Packet Head(4 bytes)                         */
	/*-------------------------------------------------*/
	unsigned char  Sync_byte;                         /*      固定为0x47*/
	unsigned short Transport_err_indicator      :1 ;  /* = 0; 没有不可纠正错误*/
	unsigned short Payload_unit_start_indicator :1 ;  /* = 1; 负载中包含一个PAT首部*/
	unsigned short Transport_priority           :1 ;  /* = 0; 普通优先级*/
	unsigned short PID                          :13;  /* = 0; 0表示PAT分组类型*/
	unsigned char  Transport_scambling_control  :2 ;  /* = 0; 0:未加密*/
	unsigned char  Adaption_field_control       :2 ;  /* = 1; 无调整字段,只有有效字段*/
	unsigned char  Continuity_counter           :4 ;

	/*-------------------------------------------------*/
	/* Pointer field(2 bytes)                          */
	/*-------------------------------------------------*/
	unsigned char  Pointer_field ;        /* = 1    指针域 */
	unsigned char  Blank ;                /* = 0    空闲字节*/


	/*-------------------------------------------------*/
	/* PAT Data(8 Byte)                                */
	/*-------------------------------------------------*/
	unsigned char  TableID;                           /* PAT=0x00*/
	unsigned short Section_syntax_indicator  : 1 ;    /* 固定,置为1*/
	unsigned short Zero                      : 1 ;    /* = 0  */
	unsigned short Reserved1                 : 2 ;    /* */
	unsigned short SectionLength             : 12;    /* 长度固定,取13*/
	unsigned short Transport_stream_id;               /* 传送流ID,设置为0*/
	unsigned char  Reserved2                 : 2;     /* */
	unsigned char  Version_number            : 5;
	unsigned char  Current_next_indicator    : 1;     /* = 1;本PAT当前有效*/
	unsigned char  Section_number;
	unsigned char  Last_section_number;


	unsigned char  Data[174];
	

} TSPAT_T;  /* OK*/

#endif
typedef struct ProgramAssociateTableTag{

	/*-------------------------------------------------*/
	/* TS Packet Head(4 bytes)                         */
	/*-------------------------------------------------*/
	unsigned char  Sync_byte;                         /*      固定为0x47*/
	unsigned short Transport_err_indicator      :1 ;  /* = 0; 没有不可纠正错误*/
	unsigned short Payload_unit_start_indicator :1 ;  /* = 1; 负载中包含一个PAT首部*/
	unsigned short Transport_priority           :1 ;  /* = 0; 普通优先级*/
	unsigned short PID                          :13;  /* = 0; 0表示PAT分组类型*/
	unsigned char  Transport_scambling_control  :2 ;  /* = 0; 0:未加密*/
	unsigned char  Adaption_field_control       :2 ;  /* = 1; 无调整字段,只有有效字段*/
	unsigned char  Continuity_counter           :4 ;

	/*-------------------------------------------------*/
	/* Pointer field(2 bytes)                          */
	/*-------------------------------------------------*/
	unsigned char  Pointer_field ;                    /* = 1    指针域 */
	unsigned char  Blank ;                            /* = 0    空闲字节*/

	/*-------------------------------------------------*/
	/* PAT Data(12+4Byte)                              */
	/*-------------------------------------------------*/
	unsigned char  TableID;                           /* PAT=0x00*/
	unsigned short Section_syntax_indicator  : 1 ;    /* 固定,置为1*/
	unsigned short Zero                      : 1 ;    /* = 0  */
	unsigned short Reserved1                 : 2 ;    /* */
	unsigned short SectionLength             : 12;    /* 长度固定,取13*/
	unsigned short Transport_stream_id;               /* 传送流ID,设置为0*/
	unsigned char  Reserved2                 : 2;     /* */
	unsigned char  Version_number            : 5;
	unsigned char  Current_next_indicator    : 1;     /* = 1;本PAT当前有效*/
	unsigned char  Section_number;
	unsigned char  Last_section_number;
	unsigned short Program_number;
	unsigned short Reserved3                 : 3;     /* */
	unsigned short Program_map_PID           : 13;
	unsigned long  CRC_32;

	/*-------------------------------------------------*/
	/* Padding bytes(166).                             */
	/*-------------------------------------------------*/
	unsigned char  Data[166];

} TSPAT_T;  /* OK*/

/***********************************************************************/
/*                                                                     */
/*  2.传输流分组结构: 节目映射表PMT (Program Map Table)                */
/*                                                                     */
/***********************************************************************/
typedef struct ProgramMapTableTag{

	/*-------------------------------------------------*/
	/* TS Packet Head(4 bytes)                         */
	/*-------------------------------------------------*/
	unsigned char  Sync_byte;                         /* 固定为0x47*/
	unsigned short Transport_err_indicator      : 1 ; /* 没有不可纠正错误*/
	unsigned short Payload_unit_start_indicator : 1 ; /* 对于PSI负载,存在一个分组头*/
	unsigned short Transport_priority           : 1 ; /* 普通优先级*/
	unsigned short PID                          : 13; /* 根据网管配置设定*/
	unsigned char  Transport_scambling_control  : 2 ; /* 0:未加密*/
	unsigned char  Adaption_field_control       : 2 ; /* 对于非PCR:0x01 无调整字段,只有有效字段*/
	                                                  /* 对于PCR:  0x10 含调整字段,无有效字段 */
	unsigned char  Continuity_counter           : 4 ;

	/*-------------------------------------------------*/
	/* Pointer field(2 bytes)                          */
	/*-------------------------------------------------*/
	unsigned char  Pointer_field;                     /* 指针域 */
	unsigned char  Blank;                             /* 空闲字节*/

	/*-------------------------------------------------*/
	/* PMT Data(41Byte)                                */
	/*-------------------------------------------------*/
	unsigned char TableID;                            /* 根据节目,调整*/
	unsigned short Section_syntax_indicator: 1 ;      /* 根据实际,调整*/
	unsigned short Zero                    : 1 ;      /* */
	unsigned short Reserved1               : 2 ;      /* */
	unsigned short SectionLength           : 12;      /* ??????????????*/
	unsigned short Program_number;                    /* 根据实际配置 */
	unsigned char  Reserved2               : 2;       /* */
	unsigned char  Version_number          : 5;
	unsigned char  Current_next_indicator  : 1;       /* 本PMT当前有效*/
	unsigned char  Section_number;
	unsigned char  Last_Section_number;
	unsigned short Reserved3               : 3 ;
	unsigned short PCR_PID                 : 13;
	unsigned short Reserved4               : 4 ;
	unsigned short Program_info_length     : 12;
	struct {
		unsigned char  Stream_type;
		unsigned short Reserved5	       : 3 ;
		unsigned short Elelmentary_PID	   : 13;
		unsigned short Reserved6	       : 4 ;
		unsigned short ES_info_length	   : 12;
	} Pmt[5];
	unsigned long  CRC_32;

	/*-------------------------------------------------*/
	/* Fadding byte(141byte)                           */
	/*-------------------------------------------------*/
	unsigned char  Padding[141];

} TSPMT_T;


/***********************************************************************/
/*                                                                     */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -