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

📄 tidtv_cc608.h

📁 ti的数字电视芯片 tvp9000的源码
💻 H
字号:
/*******************************************************************************
*	@ModuleName	:: TiDTV_Cc608.h
*	
*	@Copyright	:: Copyright 2003- Texas Instruments, Inc.
*	
*	@Description:: Definitions for EIA608B Decoder
*	
*	@History	::
*---------------------------------------
*	11-24-2003	W.Shi	Created
*	02-20-2005	W.Shi	Porting to TVP9000
*******************************************************************************/

#ifndef	_TI_DTV_CC608_H_
#define	_TI_DTV_CC608_H_

#define	TI_DTV_CC608_DECODE_OK					0
#define	TI_DTV_CC608_DECODE_NULL				1
#define	TI_DTV_CC608_DECODE_DIFF_CHANNEL  		2
#define	TI_DTV_CC608_DECODE_NG					(-1)
#define	TI_DTV_CC608_PARITY_ERR					(-2)
#define	TI_DTV_CC608_CTRL_CODE_UNKNOWN			(-3)
#define	TI_DTV_CC608_CHAR2_ERR					(-4)

//----------------------------------------------------------
#define	TI_DTV_MAX_NUM_CAPTION_ROW				4			// max number of Caption Rows appeared
#define	TI_DTV_MAX_CC608_DISPLAY_HEIGHT			15			// max number of Rows for CC displayed Memory
#define	TI_DTV_MAX_CC608_TEXT_WIDTH				32			// max line length of CC Characters

//----------------------------------------------------------
// EIA608 Two-Byte Data Structure
//
typedef union _TI_DTV_CC608_CODE_ {
	USHORT	Data;											// Two-Byte Data
	UCHAR	Byte[2];										// Bytes Array
} TI_DTV_CC608_CODE;

//----------------------------------------------------------
#define	TI_DTV_CC608_TEXT_FLAG					0x08

enum _TI_DTV_CC608_MODE_CTRL_enum_ {
	TI_DTV_CC608_CC1 = 2,									// CC1: Field 1, Data Channel 1
	TI_DTV_CC608_CC2,										// CC2: Field 1, Data Channel 2
	TI_DTV_CC608_CC3,										// CC3: Field 2, Data Channel 1
	TI_DTV_CC608_CC4,										// CC4: Field 2, Data Channel 2
	
	// T-1: Field 1, Data Channel 1
	TI_DTV_CC608_T1 = TI_DTV_CC608_TEXT_FLAG | TI_DTV_CC608_CC1,
	TI_DTV_CC608_T2,										// T-2: Field 1, Data Channel 2
	TI_DTV_CC608_T3,										// T-3: Field 2, Data Channel 1
	TI_DTV_CC608_T4											// T-4: Field 2, Data Channel 2
};

//----------------------------------------------------------
typedef struct _TI_DTV_CC608_DEC_CTRL_ {
	UCHAR	CcModeCtrl;										// Closed Caption flag for mode control
	char	MaxHeightTextMode;								// Maximum Display Height for Text Mode
	TI_DTV_CC608_CODE		CurCode;						// Current processing EIA-608-B Two-Byte Data
//----------------------------------------------------------
	TI_DTV_XDS_PKT_CTRL		XdsPktCtrlStatus;				// XDS control/status for packet extraction
	
	TI_DTV_XDS_V_CHIP		XdsVChip;						// V-Chip
	TI_DTV_XDS_CGMS_A		XdsCgmsA;						// CGMS-A
	TI_DTV_XDS_TIME_OF_DAY	XdsTimeOfDay;					// Time of Day
	char	XdsLocalTimeZone;								// Local Time Zone
	char	NetworkName[16];								// Network name
	
	TI_DTV_XDS_PACKET		*pXdsPacket;					// pointer to arbitrary packet to be extracted
} TI_DTV_CC608_DEC_CTRL;

//----------------------------------------------------------
#define	TI_DTV_MAX_CC608_DATA_BUF_SIZE			128			// max buffer size: > 0.433sx60fps*2

typedef struct _TI_DTV_CC608_DATA_BUF_ {
	OS_EVENT	*pCountSem;									// the Counting Semaphore
	
	UINT8		ReadPtr;									// Read Pointer
	UINT8		WritePtr;									// Write Pointer
	TI_DTV_CC608_CODE	CodeBuf[TI_DTV_MAX_CC608_DATA_BUF_SIZE];
} TI_DTV_CC608_DATA_BUF;

//----------------------------------------------------------
// Defined in 'TiDTV_Cc608Decoder.c'
//
extern TI_DTV_CC608_DEC_CTRL TiDTV_Cc608DecCtrl;				// EIA-608B decoder management

int TiDTV_SetCc608Service(int ServiceNo, int MaxHeightTextMode);
int TiDTV_Cc608DecField1(void);
int TiDTV_Cc608DecField2(void);
void TiDTV_MemSwap(void *pDestAddr, void *pSrcAddr, int ByteSize);

//----------------------------------------------------------
// Defined in 'TiDTV_Cc608CcDecoder.c'
//
void TiDTV_Cc608EraseWindow(char WinID);

//----------------------------------------------------------
// Defined in 'TiDTV_Cc608.c'
//
extern TI_DTV_CC608_DATA_BUF TiDTV_Cc608DataBuf[2];			// EIA-608B data buffers

int    TiDTV_Cc608PutData(int Field, UINT16 Cc608Data);
UINT16 TiDTV_Cc608GetData(int Field);

#endif	/* _TI_DTV_CC608_H_ */

⌨️ 快捷键说明

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