?? tidtv_cc608.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 + -