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

📄 tidtv_psip.h

📁 ti的数字电视芯片 tvp9000的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
	UINT32	CRC32;
} TI_DTV_PSIP_TABLE;

//----------------------------------------------------------
// Table ID Ranges and Values (p.16, Table 4.2)
//
#define	TI_DTV_PID_PAT				0x0000	// Program Association Table (PAT) Packet ID
#define	TI_DTV_PID_CAT				0x0001	// Conditional Access Table (CAT) Packet ID
#define	TI_DTV_PID_PSIP_BASE		0x1FFB	// Program and System Information Protocol (PSIP) base Packet ID

#define	TI_DTV_ISO_TABLE_ID_PAT		0x00	// Program Association Table (PAT) ID
#define	TI_DTV_ISO_TABLE_ID_CAT		0x01	// Conditional Access Table (CAT) ID
#define	TI_DTV_ISO_TABLE_ID_PMT		0x02	// TS Program Map Table (PMT) ID

#define	TI_DTV_PSIP_TABLE_ID_MGT	0xC7	// Master Guide Table (MGT) ID
#define	TI_DTV_PSIP_TABLE_ID_TVCT	0xC8	// Terrestrial Virtual Channel Table (TVCT) ID
#define	TI_DTV_PSIP_TABLE_ID_CVCT	0xC9	// Cable Virtual Channel Table (CVCT) ID
#define	TI_DTV_PSIP_TABLE_ID_RRT	0xCA	// Rating Region Table (RRT) ID
#define	TI_DTV_PSIP_TABLE_ID_EIT	0xCB	// Event Information Table (EIT) ID
#define	TI_DTV_PSIP_TABLE_ID_ETT	0xCC	// Extended Text Table (ETT) ID
#define	TI_DTV_PSIP_TABLE_ID_STT	0xCD	// System Time Table (STT) ID

#define	TI_DTV_PSIP_TABLE_ID_ANY	0xFF	// Invalid ID

//----------------------------------------------------------
// Bit Stream Syntax for the System Time Table (p.22, Table 6.1)
//
typedef struct _TI_DTV_PSIP_STT_DATA_ {
	UINT32	SystemTime;						// System time: GPS seconds since 00:00:00 Jan. 6, 1980
	UINT8	GpsUtcOffset;
	
	union {
		UINT16	Data;
		
		struct {
			UINT	Status:			1;
			UINT	Reserved:		2;
			UINT	DayOfMonth:		5;
			UINT	Hour:			8;
		} Bits;
	} DaylightSavings;
} TI_DTV_PSIP_STT_DATA;

//----------------------------------------------------------
// Bit Stream Syntax for the Master Guide Table (p.25, Table 6.2)
//
typedef struct _TI_DTV_PSIP_MGT_DATA_ {
	UINT16	TableType;
	
	union {
		UINT16	Data;
		
		struct {
			UINT	Reserved:		3;
			UINT	TableTypePID:	13;
		} Bits;
	} Var1;
	
	union {
		UINT8	Data;
		
		struct {
			UINT    Reserved:		3;
			UINT    TableTypeVerNo:	5;
		} Bits;
	} Var2;
	
	UINT32 NumberBytes;
	
	union {
		UINT16	Data;
		
		struct {
			UINT   Reserved:			4;
			UINT   TableTypeDescLength:	12;
		} Bits;
	} Var3;
	
	UCHAR	*pDescriptors;
} TI_DTV_PSIP_MGT_DATA;

#define	TI_DTV_PSIP_TABLE_TYPE_TVCT		0x0000
#define	TI_DTV_PSIP_TABLE_TYPE_CVCT		0x0002
#define	TI_DTV_PSIP_TABLE_TYPE_ETT		0x0004
#define	TI_DTV_PSIP_TABLE_TYPE_EIT0		0x0100
#define	TI_DTV_PSIP_TABLE_TYPE_EIT3		0x0103
#define	TI_DTV_PSIP_TABLE_TYPE_EIT127	0x017F
#define	TI_DTV_PSIP_TABLE_TYPE_ETT0		0x0200
#define	TI_DTV_PSIP_TABLE_TYPE_ETT3		0x0203
#define	TI_DTV_PSIP_TABLE_TYPE_ETT127	0x027F
#define	TI_DTV_PSIP_TABLE_TYPE_RRT1		0x0301
#define	TI_DTV_PSIP_TABLE_TYPE_RRT255	0x03FF

//----------------------------------------------------------
// Bit Stream Syntax for the Terrestrial Virtual Channel Table(p.29, Table 6.4)
//
typedef struct _TI_DTV_PSIP_TVCT_DATA_ {
	UCHAR	ShortName[8];
	
	union {
		UINT32	Data;
		
		struct {
			UINT	Reserved:			4;
			UINT	MajorChanNo:		10;
			UINT	MinorChanNo:		10;
			UINT	ModulationMode:		8;
		} Bits;
	} Var1;
	
	UINT32	CarrierFreq;
	UINT16	ChanTSID;
	UINT16	ProgramNo;
	
	union {
		UINT16	Data;
		
		struct {
			UINT	EtmLocation:		2;
			UINT	AccessControlled:	1;
			UINT	Hidden:				1;
			UINT	Reserved1:			2;
			UINT	HideGuide:			1;
			UINT	Reserved2:			3;
			UINT	ServiceType:		6;
		} Bits;
	} Var2;
	
	UINT16	SourceID;
	
	union {
		UINT16	Data;
		
		struct {
			UINT	Reserved:			6;
			UINT	DescLength:			10;
		} Bits;
	} Var3;
	
	UCHAR	*pDescriptors;
} TI_DTV_PSIP_TVCT_DATA;

enum _TI_DTV_MODULATION_MODE_enum_ {
	TI_DTV_MODULATION_MODE_RESERVED,
	TI_DTV_MODULATION_MODE_ANALOG,
	TI_DTV_MODULATION_MODE_SCTE_1,			// 64-QAM
	TI_DTV_MODULATION_MODE_SCTE_2,			// 256-QAM
	TI_DTV_MODULATION_MODE_ATSC_8VSB,
	TI_DTV_MODULATION_MODE_ATSC_16VSB
};

enum _TI_DTV_SERVICE_TYPE_enum_ {
	TI_DTV_SERVICE_TYPE_RESERVED,
	TI_DTV_SERVICE_TYPE_ANALOG_TV,
	TI_DTV_SERVICE_TYPE_VIDEO,
	TI_DTV_SERVICE_TYPE_AUDIO,
	TI_DTV_SERVICE_TYPE_DATA_ONLY
};

enum _TI_DTV_RATING_enum_ {
	TI_DTV_RATING_TV_Y,
	TI_DTV_RATING_TV_Y7,
	TI_DTV_RATING_TV_G,
	TI_DTV_RATING_TV_PG,
	TI_DTV_RATING_TV_14,
	TI_DTV_RATING_TV_MA,
	TI_DTV_RATING_MOVIE,
	TI_DTV_RATING_FORALL,
	TI_DTV_RATING_UNRATED
};

//----------------------------------------------------------
// Bit Stream Syntax for the Event Information Table (p.41, Table 6.11)
//
typedef struct _TI_DTV_PSIP_EIT_DATA_ {
	union {
		UINT16	Data;
		
		struct {
			UINT	Reserved:			2;
			UINT	EventID:			14;
		} Bits;
	} Var1;
	
	UINT32   StartTime;
	
	union {
		UINT32	Data;
		
		struct {
			UINT	Reserved:			2;
			UINT	EtmLocation:		2;
			UINT	LengthInSeconds:	20;
			UINT    TitleLength:        8;
		} Bits;
	} Var2;
	
	UCHAR	*pTitleText;					// Multiple String Structure
	
	union {
		UINT16	Data;
		
		struct {
			UINT	Reserved:			4;
			UINT	DescLength:			12;
		} Bits;
	} Var3;
	
	UCHAR	*pDescriptors;
} TI_DTV_PSIP_EIT_DATA;

//----------------------------------------------------------
// Bit Stream Syntax for the Extended Text Table (p.43, Table 6.13)
//
typedef struct _TI_DTV_PSIP_ETT_DATA_ {
	UINT32	EtmID;							// Extended Text Message ID
	UCHAR	*pExtTextMsg;					// Multiple String Structure
} TI_DTV_PSIP_ETT_DATA;

//==========================================================
// Defined in 'TiDTV_PSIP.c'
//
extern TI_DTV_PSIP_CTRL		TiDTV_PsipCtrl;
extern TI_DTV_PSIP_STT_DATA PsipSttData;	// STT Data
extern TI_DTV_ISO_PAT_DATA	TiDTV_PatData[TI_DTV_MAX_NUM_PROGRAM];	// PAT Table Data
extern TI_DTV_PROGRAM_TABLE TiDTV_ProgTable[TI_DTV_MAX_NUM_PHY_CHANNEL];
extern TI_DTV_PROGRAM_TABLE TiDTV_ProgramTable;

void TiDTV_PsipDispatch(void);
void TiDTV_ResetPsipStatus(void);
void TiDTV_SortProgTable(void);

void TiDTV_PsipSttParser(UCHAR *pPsipTable);
void TiDTV_IsoPatParser(UCHAR *pPsipTable);
void TiDTV_IsoPmtParser(UCHAR *pPsipTable);
void TiDTV_PsipMgtParser(UCHAR *pPsipTable);
void TiDTV_PsipTvctParser(UCHAR *pPsipTable);
void TiDTV_PsipRrtParser(UCHAR *pPsipTable);
void TiDTV_PsipEitParser(UCHAR *pPsipTable);
void TiDTV_PsipEttParser(UCHAR *pPsipTable);

void TiDTV_PsipEitParserInit(int EitSlotIndex);
void TiDTV_PsipEttParserInit(int EttSlotIndex);

int  TiDTV_GetProgIndexViaProgNoInPAT(UINT16 ProgramNo);
int  TiDTV_GetProgIndexViaRfChanNo(UINT16 RfChanNo);

int  TiDTV_GetAudioIndexViaPID(TI_DTV_PROGRAM_DEF *pProgDef, UINT16 AudioPID);
void TiDTV_Unicode2Ascii(UCHAR *pAsciiStr, UCHAR *pUnicodeStr, int CodeSize);
void TiDTV_UpdateProgram(TI_DTV_PSIP_TVCT_DATA *pPsipTvctData, int ProgIndex);
void TiDTV_UpdateProgTable(void);

void TiDTV_GetAudioInfo(UCHAR *pDescriptors, UINT16 InfoLength, UCHAR *pLangCode);
void TiDTV_GetProgramInfo(UCHAR *pDescriptors, UINT16 InfoLength, int ProgIndex);
void TiDTV_ParseServiceLocation(UCHAR *pDescriptors, TI_DTV_PROGRAM_DEF *pProgDef);

void TiDTV_GpsTime2LocalTime(UINT32 GpsTime, TI_DTV_SYS_DATE_TIME *pSysDateTime);

//----------------------------------------------------------
// Defined in 'TiDTV_PSIP_HW.c'
//
void TiDTV_InitFilter(void);
void TiDTV_PatSetHwFilter(void);

int TiDTV_EnableIsoPatHwFilter(void);
int TiDTV_DisableIsoPatHwFilter(void);

int TiDTV_EnableIsoPmtHwFilter(int HwFilterIndex, UINT16 ProgramNo, UINT16 PmtPID);
int TiDTV_DisableIsoPmtHwFilter(int HwFilterIndex);
int TiDTV_DisableAllIsoPmtFilters(void);

int TiDTV_EnableMgtHwFilter(void);
int TiDTV_DisableMgtHwFilter(void);

int TiDTV_EnableTvctHwFilter(void);
int TiDTV_DisableTvctHwFilter(void);

int TiDTV_EnableEitHwFilter(int EitSlotIndex);
int TiDTV_DisableEitHwFilter(int EitSlotIndex);
int TiDTV_DisableAllEitHwFilters(void);

int TiDTV_DisableAllHwFilters(void);

#endif	/* _TI_DTV_PSIP_H_ */

⌨️ 快捷键说明

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