710 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			710 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||
| //
 | ||
| //
 | ||
| // 	MODULE		:	STi3520A.H
 | ||
| // 	PURPOSE		:  STi3520A Register Description
 | ||
| // 	AUTHOR 		:  JBS Yadawa
 | ||
| // 	CREATED		:	12-26-96
 | ||
| //
 | ||
| //	Copyright (C) 1996-1997 SGS-THOMSON microelectronics
 | ||
| //
 | ||
| //	REVISION HISTORY:
 | ||
| //
 | ||
| // 	DATE			:
 | ||
| // 	COMMENTS		:
 | ||
| //
 | ||
| //
 | ||
| //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 | ||
| 
 | ||
| 
 | ||
| #ifndef __STI3520A_H__
 | ||
| #define __STI3520A_H__
 | ||
| 
 | ||
| #define 	MEM_SIZE			0x2000L
 | ||
| #define	PSZ_NTSC			0x07E9L
 | ||
| #define	PSZ_PAL				0x097EL
 | ||
| #include "stdefs.h"
 | ||
| //General MPEG2 definitions
 | ||
| #define FRAME_PERIOD	3003
 | ||
| #define FIELD_PERIOD	3003
 | ||
| 
 | ||
| //Start code found in the video bitstream.
 | ||
| 
 | ||
| #define SEQUENCE_SC				0xB3
 | ||
| #define GOP_SC					0xB8
 | ||
| #define PICTURE_SC				0x00
 | ||
| #define SLICESTART_SC			0x01
 | ||
| #define SLICEEND_SC				0xAF
 | ||
| #define SLICE_SC					0x58
 | ||
| #define USER_SC					0xB2
 | ||
| #define SEQUENCE_ERROR_SC		0xB4
 | ||
| #define EXTENSION_SC			0xB5
 | ||
| #define SEQUENCE_END_SC		0xB7
 | ||
| #define HACKED_SC				0xB1
 | ||
| 
 | ||
| 
 | ||
| //Extension IDS
 | ||
| 
 | ||
| #define SEQUENCE_EXTENSION_ID						0x01
 | ||
| #define SEQUENCE_DISPLAY_EXTENSION_ID 			0x02
 | ||
| #define QUANT_MATRIX_EXTENSION_ID					0x03	
 | ||
| #define COPYRIGHT_EXTENSION_ID						0x04
 | ||
| #define	SEQUENCE_SCALABLE_EXTENSION_ID			0x05
 | ||
| #define	PICTURE_DISPLAY_EXTENSION_ID				0x07
 | ||
| #define	PICTURE_CODING_EXTENSION_ID				0x08
 | ||
| #define	PICTURE_SPATIAL_SCALABLE_EXTENSION_ID	0x09
 | ||
| #define	PICTURE_TEMPORAL_SCALABLE_EXTENSION_ID	0x0A
 | ||
| 
 | ||
| typedef enum tagVideoState {
 | ||
| 	videoPowerUp = 0,
 | ||
| 	videoStartUp,
 | ||
| 	videoInit,
 | ||
| 	videoPlaying,
 | ||
| 	videoPaused,
 | ||
| 	videoStopped,
 | ||
| 	videoRepeatPlay,
 | ||
| 	videoErrorRecover,
 | ||
| 	videoFirstFrameDecoded,
 | ||
| 	videoEOS
 | ||
| } VIDEOSTATE;
 | ||
| 
 | ||
| typedef enum tagSkipMode {
 | ||
| 	skipNone = 0,
 | ||
| 	skipOneFrame,
 | ||
| 	skipTwoFields,
 | ||
| 	skipSecondField,
 | ||
| 	skipDone
 | ||
| } SKIPMODE;
 | ||
| typedef enum tagPictType {
 | ||
| 	IFrame = 0,
 | ||
| 	PFrame,
 | ||
| 	BFrame
 | ||
| } FRAMETYPE;
 | ||
| 
 | ||
| 
 | ||
| typedef enum tagPictureStruct {
 | ||
| 	TOP_FIELD = 1,
 | ||
| 	BOT_FIELD,
 | ||
| 	FRAME
 | ||
| } PICTURESTRUCT;
 | ||
| 
 | ||
| 
 | ||
| typedef enum tagField {
 | ||
| 	TOP = 0,	// Top Field
 | ||
| 	BOT,		// Bottom Field
 | ||
| 	FRM 		// Frame Picture
 | ||
| } FIELD;
 | ||
| 
 | ||
| typedef enum tagCommand {
 | ||
| 	cmdNone = 0,
 | ||
| 	cmdPlay,
 | ||
| 	cmdPause,
 | ||
| 	cmdStop,
 | ||
| 	cmdSeek,
 | ||
| 	cmdEOS
 | ||
| } COMMAND;
 | ||
| typedef enum tagErrCode {
 | ||
| 	errNoError = 0,
 | ||
| 	errHeaderFifoEmpty,
 | ||
| 	errPipeline,
 | ||
| 	errSerious,
 | ||
| 	errStartCode,
 | ||
| 	errUnknownInterrupt,
 | ||
| 	errInvalidPictureType
 | ||
| 
 | ||
| }	ERRORCODE;
 | ||
| 
 | ||
| typedef enum tagCodingStandard {
 | ||
| 	MPEG1 = 0,
 | ||
| 	MPEG2
 | ||
| } CODINGSTANDARD;
 | ||
| // sequence releted definition
 | ||
| 
 | ||
| #define QMSIZE			64
 | ||
| 
 | ||
| typedef struct tagSeqHeader {
 | ||
| 	DWORD		horSize;
 | ||
| 	DWORD		verSize;
 | ||
| 	DWORD		aspectRatio;
 | ||
| 	DWORD		frameRate;
 | ||
| 	DWORD		bitRate;
 | ||
| 	DWORD		vbvBufferSize;
 | ||
| 	DWORD		constrainedFlag;
 | ||
| 	DWORD		loadIntra;
 | ||
| 	BYTE		intraQuantiserMatrix[QMSIZE];
 | ||
| 	DWORD		loadNonIntra;
 | ||
| 	BYTE		nonIntraQuantiserMatrix[QMSIZE];
 | ||
| 	
 | ||
| } SEQUENCEHEADER, FARPTR * PSEQUENCEHEADER;
 | ||
| 
 | ||
| 
 | ||
| // gop releted stuff
 | ||
| 
 | ||
| typedef struct tagGopHeader {
 | ||
| 	DWORD		timeCode;
 | ||
| 	DWORD		closedGOP;
 | ||
| 	DWORD		brokenLink;
 | ||
| }	GOPHEADER, FARPTR	*PGOPHEADER;
 | ||
| 
 | ||
| 
 | ||
| //picture releted stuff
 | ||
| 
 | ||
| typedef struct tagPictureHeader {
 | ||
| 	DWORD			temporalReference;
 | ||
| 	DWORD			pictureCodingType;
 | ||
| 	DWORD			vbvDelay;
 | ||
| 	DWORD			fFcode;
 | ||
| 	DWORD			bFcode;
 | ||
| }	PICTUREHEADER, FARPTR *PPICTUREHEADER;
 | ||
| 
 | ||
| //Extension fields
 | ||
| 
 | ||
| typedef struct tagSequenceExtension {
 | ||
| 	DWORD		extensionSCID;
 | ||
| 	DWORD		profileAndLevel;
 | ||
| 	DWORD		progressiveSequence;
 | ||
| 	DWORD		chromaFormat;
 | ||
| 	DWORD		horSizeExtension;
 | ||
| 	DWORD		verSizeExtension;
 | ||
| 	DWORD		bitRateExtension;
 | ||
| 	DWORD		vbvBufSizeExtension;
 | ||
| 	DWORD		lowDelay;
 | ||
| 	DWORD		frameRateExtensionN;
 | ||
| 	DWORD		frameRateExtensionD;
 | ||
| 	
 | ||
| }	SEQUENCEEXTENSION, FARPTR * PSEQUENCEEXTENSION;
 | ||
| 
 | ||
| 
 | ||
| // sequence display extension
 | ||
| 
 | ||
| typedef struct tagSequnceDisplayExtension {
 | ||
| 
 | ||
| 	DWORD		videoFormat;
 | ||
| 	DWORD		colorDescription;
 | ||
|  	DWORD		colorPrimaries;
 | ||
| 	DWORD		transferCharacteristic;
 | ||
| 	DWORD		matrixCoefficients;
 | ||
| 	DWORD		displayHorSize;
 | ||
| 	DWORD		displayVerSize;
 | ||
| 
 | ||
| } SEQUENCEDISPLAYEXTENSION, FARPTR * PSEQUENCEDISPLAYEXTENSION;
 | ||
| 
 | ||
| 
 | ||
| // Picture coding extension
 | ||
| 
 | ||
| typedef struct tagPictureCodingExtension {
 | ||
| 	BYTE		fCode[2][2];
 | ||
| 	DWORD		intraDCPrecision;
 | ||
| 	DWORD		pictureStructure;
 | ||
| 	DWORD		topFieldFirst;
 | ||
| 	DWORD		framePredFrameDCT;
 | ||
| 	DWORD		concealmentMotionVectors;
 | ||
| 	DWORD		qScaleType;
 | ||
| 	DWORD		intraVLCFormat;
 | ||
| 	DWORD		alternateScan;
 | ||
| 	DWORD		repeatFirstField;
 | ||
| 	DWORD		chroma420Type;
 | ||
| 	DWORD		progressiveFrame;
 | ||
| 	DWORD		compositeDisplayFlag;
 | ||
| 	DWORD		vAxis;
 | ||
| 	DWORD		fieldSequence;
 | ||
| 	DWORD		subCarrier;
 | ||
| 	DWORD		burstAmplitude;
 | ||
| 	DWORD		subCarrierPhase;
 | ||
| }	PICTURECODINGEXTENSION, FARPTR * PPICTURECODINGEXTENSION;
 | ||
| 
 | ||
| 
 | ||
| // quant matrix
 | ||
| typedef struct tagQuantMatrixExtension {
 | ||
| 	DWORD		loadIntraQuantMatrix;
 | ||
| 	BYTE		intraQuantMatrix[64];
 | ||
| 	DWORD		loadNonIntraQuantMatrix;
 | ||
| 	BYTE		nonIntraQuantMatrix[64];
 | ||
| 	DWORD		loadChromaIntraQuantMatrix;
 | ||
| 	BYTE		chromaIntraQuantMatrix[64];
 | ||
| 	DWORD		loadChromaNonIntraQuantMatrix;
 | ||
| 	BYTE		chromaNonIntraQuantMatrix[64];
 | ||
| }	QUANTMATRIXEXTENSION, FARPTR * PQUANTMATRIXEXTENSION;
 | ||
| 
 | ||
| // Pan Scan Vectors
 | ||
| typedef struct tagPictureDisplayExtension {
 | ||
| 
 | ||
| 	DWORD		horOffset;
 | ||
| 	DWORD		verOffset;
 | ||
| 
 | ||
| } PICTUREDISPLAYEXTENSION, FARPTR * PPICTUREDISPLAYEXTENSION;
 | ||
| 
 | ||
| #define XOFFSET			100
 | ||
| #define YOFFSET			30
 | ||
| #define XDS_CONST			726
 | ||
| #define YDS_CONST			129
 | ||
| 
 | ||
| // RegisterManual
 | ||
| 
 | ||
| 
 | ||
| // VideoRegisters
 | ||
| #define	CFG_MCF							0x00
 | ||
| 	#define	MCF_M20								0x00
 | ||
| 	#define	MCF_REFRESH							0x24
 | ||
| 
 | ||
| #define	CFG_CCF							0x01
 | ||
| 	#define	CCF_EVI								0x01
 | ||
| 	#define	CCF_EDI								0x02
 | ||
| 	#define	CCF_ECK								0x04
 | ||
| 	#define	CCF_EC2								0x08
 | ||
| 	#define	CCF_EC3								0x10
 | ||
| 	#define	CCF_PBO								0x20
 | ||
| 	#define	CCF_M16								0x40
 | ||
| 	#define	CCF_M32								0x80
 | ||
| #define			VID_CTL					0x02
 | ||
| 	#define		CTL_EDC							0x01
 | ||
| 	#define		CTL_SRS							0x02
 | ||
| 	#define		CTL_PRS							0x04
 | ||
| 	#define		CTL_ERP							0x08
 | ||
| 	#define		CTL_DEC							0x10
 | ||
| 	#define		CTL_CFB							0x20
 | ||
| 	#define		CTL_ERS							0x40
 | ||
| 	#define		CTL_ERU							0x80
 | ||
| #define	VID_TIS							0x03
 | ||
| 	#define		TIS_EXE							0x01
 | ||
| 	#define		TIS_RPT							0x02
 | ||
| 	#define		TIS_FIS							0x04
 | ||
| 	#define		TIS_OVW							0x08
 | ||
| 	#define		TIS_NO_SKIP						0x00
 | ||
| 	#define		TIS_SKIP1P						0x10
 | ||
| 	#define		TIS_SKIP2P	 					0x20
 | ||
| 	#define		TIS_SKIPSTOP					0x30
 | ||
| 	#define		TIS_MP2							0x40
 | ||
| #define	VID_PFH							0x04
 | ||
| #define	VID_PFV							0x05
 | ||
| #define	VID_PPR1							0x06
 | ||
| #define	VID_PPR2							0x07
 | ||
| 	#define		PPR2_AZZ							0x01
 | ||
| 	#define		PPR2_IVF							0x02
 | ||
| 	#define		PPR2_QST							0x04
 | ||
| 	#define		PPR2_CMV							0x08
 | ||
| 	#define		PPR2_FRM							0x10
 | ||
| 	#define		PPR2_TFF							0x20
 | ||
| #define	CFG_MRF							0x08
 | ||
| #define	CFG_MWF							0x08
 | ||
| #define	CFG_BMS							0x09
 | ||
| #define	CFG_MRP							0x0A
 | ||
| #define	CFG_MWP							0x0B
 | ||
| #define	VID_DFP1							0x0C
 | ||
| #define	VID_DFP0							0x0D
 | ||
| #define	VID_RFP1							0x0E
 | ||
| #define	VID_RFP0							0x0F
 | ||
| #define	VID_FFP1							0x10
 | ||
| #define	VID_FFP0							0x11
 | ||
| #define	VID_BFP1							0x12
 | ||
| #define	VID_BFP0							0x13
 | ||
| #define	VID_VBG1							0x14
 | ||
| #define	VID_VBG0							0x15
 | ||
| #define	VID_VBL1							0x16
 | ||
| #define	VID_VBL0							0x17
 | ||
| #define	VID_VBS1							0x18
 | ||
| #define	VID_VBS0							0x19
 | ||
| #define	VID_VBT1							0x1A
 | ||
| #define	VID_VBT0							0x1B
 | ||
| #define	VID_ABG1							0x1C
 | ||
| #define	VID_ABG0							0x1D				
 | ||
| #define	VID_ABL1							0x1E				
 | ||
| #define	VID_ABL0							0x1F
 | ||
| #define	VID_ABS1							0x20				
 | ||
| #define	VID_ABS0							0x21				
 | ||
| #define	VID_ABT1							0x22
 | ||
| #define	VID_ABT0							0x23
 | ||
| #define	VID_DFS							0x24
 | ||
| #define	VID_DFW							0x25
 | ||
| #define	VID_DFA							0x26
 | ||
| #define	VID_XFS							0x27
 | ||
| #define	VID_XFW							0x28
 | ||
| #define	VID_XFA							0x29
 | ||
| #define	VID_OTP							0x2A
 | ||
| #define	VID_OBP							0x2B
 | ||
| #define	VID_PAN1							0x2C
 | ||
| #define	VID_PAN0							0x2D
 | ||
| #define	VID_SCN1							0x2E
 | ||
| #define	VID_SCN0							0x2F
 | ||
| #define	CKG_PLL							0x30
 | ||
| 	#define PLL_SELECT_PIXCLK					0xC0
 | ||
| 	#define PLL_DEVIDE_BY_N						0x10
 | ||
| 	#define PLL_MULT_FACTOR						0x09
 | ||
| #define	CKG_CFG							0x31
 | ||
| 	#define CFG_INTERNAL_AUDCLK				0x01
 | ||
| 	#define CFG_INTERNAL_CLK					0x02
 | ||
| 	#define CFG_PIXCLK_INPUT					0x00
 | ||
| 	#define CFG_PCMCLK_INPUT					0x00
 | ||
| 	#define CFG_MEMCLK_INPUT					0x00
 | ||
| 	#define CFG_AUDCLK_OUTPUT					0x80
 | ||
| #define	CKG_AUD							0x32
 | ||
| #define	CKG_VID							0x33
 | ||
| #define	CKG_PIX							0x34
 | ||
| #define	CKG_PCM							0x35
 | ||
| #define	CKG_MCK							0x36
 | ||
| #define	CKG_AUX							0x37
 | ||
| #define	CFG_DRC							0x38
 | ||
| 	#define	DRC_SDR								0x01
 | ||
| 	#define	DRC_HPO								0x02
 | ||
| 	#define	DRC_CLK								0x04
 | ||
| 	#define	DRC_SGR								0x08
 | ||
| 	#define	DRC_MRS								0x20
 | ||
| 	#define	DRC_NDP								0x40
 | ||
| #define	CFG_BFS							0x39
 | ||
| 	#define	BFS_CHR								0x40
 | ||
| #define	VID_SCM							0x3A
 | ||
| #define	VID_STA2							0x3B
 | ||
| #define	VID_ITM2							0x3C
 | ||
| 	#define		ITM_ABE							0x01
 | ||
| 	#define		ITM_WFN							0x02
 | ||
| 	#define		ITM_RFN							0x04
 | ||
| 	#define		ITM_ABF							0x08
 | ||
| 	#define		ITM_HAF							0x10
 | ||
| 	#define		ITM_SCR							0x20
 | ||
| 	#define		ITM_ERR							0x40
 | ||
| 	#define		ITM_NDP							0x80
 | ||
| #define	VID_ITS2							0x3D
 | ||
| #define	PES_CF1							0x40
 | ||
| 	#define 	CF1_IVI								0x20
 | ||
| 	#define 	CF1_SDT								0x80
 | ||
| #define	PES_CF2							0x41
 | ||
| 	#define 	CF2_IAI								0x10
 | ||
| 	#define 	CF2_SS								0x20
 | ||
| 	#define 	CF2_AUTO								0x00
 | ||
| 	#define 	CF2_MP1SYS							0x40
 | ||
| 	#define 	CF2_MP2PES							0x80
 | ||
| 	#define 	CF2_MP2SYS							0xC0	
 | ||
| #define	PES_STA							0x43
 | ||
| 	#define		STA_MP2							0x80
 | ||
| #define	PES_SC1							0x44
 | ||
| #define	PES_SC2							0x45
 | ||
| #define	PES_SC3							0x46
 | ||
| #define	PES_SC4							0x47
 | ||
| #define	PES_SC5							0x48
 | ||
| #define	PES_TS1							0x49
 | ||
| #define	PES_TS2							0x4A
 | ||
| #define	PES_TS3							0x4B
 | ||
| #define	PES_TS4							0x4C
 | ||
| #define	PES_TS5							0x4D
 | ||
| #define	VID_ITM1							0x60
 | ||
| #define	VID_ITM0							0x61
 | ||
| 	#define		ITM_SCH							0x0001
 | ||
| 	#define		ITM_BFF							0x0002
 | ||
| 	#define		ITM_HFE							0x0004
 | ||
| 	#define		ITM_BBF							0x0008
 | ||
| 	#define		ITM_BBE							0x0010
 | ||
| 	#define		ITM_VSB							0x0020
 | ||
| 	#define		ITM_VST							0x0040
 | ||
| 	#define		ITM_PSD							0x0080
 | ||
| 	#define		ITM_PER							0x0100
 | ||
| 	#define		ITM_PID							0x0200
 | ||
| 	#define		ITM_WFE							0x0400
 | ||
| 	#define		ITM_RFF							0x0800
 | ||
| 	#define		ITM_HFF							0x1000
 | ||
| 	#define		ITM_BMI							0x2000
 | ||
| 	#define		ITM_SER							0x4000
 | ||
| 	#define		ITM_PDE							0x8000
 | ||
| #define	VID_ITS1							0x62
 | ||
| #define	VID_ITS0							0x63
 | ||
| #define	VID_STA1							0x64
 | ||
| #define	VID_STA0							0x65
 | ||
| #define	VID_HDF							0x66
 | ||
| #define	VID_CD							0x67
 | ||
| #define	VID_SCD							0x68
 | ||
| #define	VID_HDS							0x69
 | ||
| 	#define		HDS_HDS							0x01
 | ||
| 	#define		HDS_QMI_INTRA					0x02
 | ||
| 	#define		HDS_QMI_NON_INTRA  			0x00
 | ||
| #define	VID_LSO							0x6A
 | ||
| #define	VID_LSR0							0x6B
 | ||
| #define	VID_CSO							0x6C
 | ||
| #define	VID_LSR1							0x6D
 | ||
| 	#define		LSR1_BS							0x02
 | ||
| #define	VID_YDO							0x6E
 | ||
| #define	VID_YDS							0x6F
 | ||
| #define	VID_XDO1							0x70
 | ||
| #define	VID_XDO0							0x71
 | ||
| #define	VID_XDS1							0x72
 | ||
| #define	VID_XDS0							0x73
 | ||
| #define			VID_DCF1					0x74
 | ||
| 	#define		DCF1_FLD							0x01
 | ||
| 	#define		DCF1_DAM							0x0E
 | ||
| 	#define		DCF1_FRZ							0x10
 | ||
| 	#define		DCF1_OAM							0x20
 | ||
| 	#define		DCF1_OAD							0xC0
 | ||
| #define			VID_DCF0							0x75
 | ||
| 	#define		DCF0_VCFFULLRESLRWI					0x00
 | ||
| 	#define		DCF0_VCFFULLRESLR					0x01
 | ||
| 	#define		DCF0_VCFFULLRESFRWI					0x02
 | ||
| 	#define		DCF0_VCFFULLRESFR					0x03
 | ||
| 	#define		DCF0_VCFHALFRESCI					0x04
 | ||
| 	#define		DCF0_VCFHALFRESCR					0x05
 | ||
| 	#define		DCF0_VCFHALFRESLI				0x06
 | ||
| 	#define		DCF0_DSR							0x08
 | ||
| 	#define		DCF0_EOS							0x10
 | ||
| 	#define		DCF0_EVD							0x20
 | ||
| 	#define		DCF0_PXD							0x40
 | ||
| 	#define		DCF0_USR							0x80
 | ||
| #define	VID_QMW							0x76
 | ||
| #define	VID_REV							0x78
 | ||
| 
 | ||
| //Note - JBS
 | ||
| //Audio Reg is 0x80 + Audio Reg on cpq board
 | ||
| 
 | ||
| // AUDIO REGISTER DESCRIPTION
 | ||
| #define AUD_ANC0	0x86
 | ||
| #define AUD_ANC8	0x87
 | ||
| #define AUD_ANC16	0x88
 | ||
| #define AUD_ANC24	0x89
 | ||
| #define AUD_ESC0	0x8A
 | ||
| #define AUD_ESC8	0x8B
 | ||
| #define AUD_ESC16	0x8C
 | ||
| #define AUD_ESC24	0x8D
 | ||
| #define AUD_ESC32	0x8E
 | ||
| #define AUD_ESCX0	0x8F
 | ||
| #define AUD_LRP	0x91
 | ||
| #define AUD_FFL0	0x94
 | ||
| #define AUD_FFL8	0x95
 | ||
| #define AUD_P18	0x96
 | ||
| #define AUD_CDI0	0x98
 | ||
| #define AUD_FOR	0x99
 | ||
| #define AUD_ITR0	0x9A
 | ||
| #define AUD_ITR8	0x9B
 | ||
| #define AUD_ITM0	0x9C
 | ||
| #define AUD_ITM8	0x9D
 | ||
| #define AUD_LCA	0x9E
 | ||
| #define AUD_EXT	0x9F
 | ||
| #define AUD_RCA	0xA0
 | ||
| #define AUD_SID	0xA2
 | ||
| #define AUD_SYN	0xA3
 | ||
| #define AUD_IDE	0xA4
 | ||
| #define AUD_SCM	0xA5
 | ||
| #define AUD_SYS	0xA6
 | ||
| #define AUD_SYE	0xA7
 | ||
| #define AUD_LCK	0xA8
 | ||
| #define AUD_CRC	0xAA
 | ||
| #define AUD_SEM	0xAC
 | ||
| #define AUD_PLY	0xAE
 | ||
| #define AUD_MUT	0xB0
 | ||
| #define AUD_SKP	0xB2
 | ||
| #define AUD_ISS	0xB6
 | ||
| #define AUD_ORD	0xB8
 | ||
| #define AUD_LAT	0xBC
 | ||
| #define AUD_RES	0xC0
 | ||
| #define AUD_RST	0xC2
 | ||
| #define AUD_SFR	0xC4
 | ||
| #define AUD_DEM	0xC6
 | ||
| #define AUD_IFT	0xD2
 | ||
| #define AUD_SCP	0xD3
 | ||
| #define AUD_ITS	0xDB
 | ||
| #define AUD_IMS	0xDC
 | ||
| #define AUD_HDR0	0xDE
 | ||
| #define AUD_HDR1	0xDF
 | ||
| #define AUD_HDR2	0xE0
 | ||
| #define AUD_HDR3	0xE1
 | ||
| #define AUD_PTS0	0xE2
 | ||
| #define AUD_PTS1	0xE3
 | ||
| #define AUD_PTS2	0xE4
 | ||
| #define AUD_PTS3	0xE5
 | ||
| #define AUD_PTS4	0xE6
 | ||
| #define AUD_ADA	0xEC
 | ||
| #define AUD_REV	0xED
 | ||
| #define AUD_DIV	0xEE
 | ||
| #define AUD_DIF	0xEF
 | ||
| #define AUD_BBE	0xF0
 | ||
| 
 | ||
| typedef struct tagHeaderParser {
 | ||
| 	BYTE b, next;
 | ||
| 	BOOL	first, second;
 | ||
| }	HEADERPARSER, FARPTR *PHEADERPARSER;
 | ||
| 
 | ||
| typedef struct tagPictureBuffer {
 | ||
| 	DWORD			adr;
 | ||
| 	DWORD			pts;
 | ||
| 	DWORD			tref;
 | ||
| 	DWORD			panHor;
 | ||
| 	DWORD			panVer;
 | ||
| 	DWORD			nTimesDisplayed;
 | ||
| 	DWORD			nTimesToDisplay;
 | ||
| 	FIELD			curField;
 | ||
| 	FIELD			firstField;
 | ||
| 	FRAMETYPE	frameType;
 | ||
| 	
 | ||
| } PICTUREBUFFER, FARPTR *PPICTUREBUFFER;
 | ||
| 
 | ||
| 
 | ||
| typedef struct tagSTi3520A {
 | ||
| //Different registers
 | ||
| 	DWORD										itm, its, bbl, abl;
 | ||
| 	DWORD										tis, ppr1, ppr2, pfv, pfh;
 | ||
| 	DWORD										rfp, bfp, ffp, dfp, dcf, ctl;
 | ||
| 	FRAMETYPE									frameType;
 | ||
| // Buffer sizes
 | ||
| 	DWORD										videoBufferSize;
 | ||
| 	DWORD										audioBufferSize;
 | ||
| 	DWORD										spBufferSize;
 | ||
| 	DWORD										prevBuf;
 | ||
| 	PICTUREBUFFER							bufABC[3];
 | ||
| 	FIELD										curImage;
 | ||
| 	FIELD										thisField;
 | ||
| 	PPICTUREBUFFER							pDecodedFrame;
 | ||
| 	PPICTUREBUFFER							pDisplayedFrame;
 | ||
| 	PPICTUREBUFFER							pNextFrame;
 | ||
| 	DWORD										nTimesDisplayed;
 | ||
| 	DWORD										nTimesToDisplay;
 | ||
| // MPEG1 OR MPEG2
 | ||
| 	CODINGSTANDARD								codingStandard;
 | ||
| 
 | ||
| 	SEQUENCEHEADER								sequence;
 | ||
| 	PSEQUENCEHEADER								pSequence;
 | ||
| 	GOPHEADER									gop;
 | ||
| 	PGOPHEADER									pGop;
 | ||
| 	PICTUREHEADER								picture;
 | ||
| 	PPICTUREHEADER								pPicture;
 | ||
| 	SEQUENCEEXTENSION							sequenceExtension;
 | ||
| 	PSEQUENCEEXTENSION							pSequenceExtension;
 | ||
| 	SEQUENCEDISPLAYEXTENSION					sequenceDisplayExtension;
 | ||
| 	PSEQUENCEDISPLAYEXTENSION					pSequenceDisplayExtension;
 | ||
| 	PICTURECODINGEXTENSION						pictureCodingExtension;
 | ||
| 	PPICTURECODINGEXTENSION						pPictureCodingExtension;
 | ||
| 	QUANTMATRIXEXTENSION						quantMatrixExtension;	
 | ||
| 	PQUANTMATRIXEXTENSION						pQuantMatrixExtension;	
 | ||
| 	PICTUREDISPLAYEXTENSION						pictureDisplayExtension;
 | ||
| 	PPICTUREDISPLAYEXTENSION					pPictureDisplayExtension;
 | ||
| 	HEADERPARSER								headerParser;
 | ||
| 	PHEADERPARSER								pHeaderParser;
 | ||
| 	ERRORCODE									errorCode;
 | ||
| 	VIDEOSTATE									state;
 | ||
| 	DWORD										nDecodedFrames;
 | ||
| 	DWORD										nDisplayedFrames;
 | ||
| 	COMMAND										command;
 | ||
| 	BOOL										firstPPictureFound;
 | ||
| 	BOOL										displayEnabled;
 | ||
| 	BOOL										skipRequest;
 | ||
| 	BOOL										repeatRequest;
 | ||
| 	DWORD										nRepeat;
 | ||
| 	BOOL										starving;
 | ||
| 	DWORD										scdCount;
 | ||
| 	DWORD										prevScdCount;
 | ||
| 	DWORD										cdCount;
 | ||
| 	DWORD										prevCdCount;
 | ||
| 	BOOL										validPTS;
 | ||
| 	DWORD										framePTS;
 | ||
| 	DWORD										pts;
 | ||
| 	DWORD										prevPTS;
 | ||
| 	BOOL										instructionComputed;
 | ||
| 	BOOL									 	sync;
 | ||
| 	BOOL										swAC3;
 | ||
| 	FIELD										curField;
 | ||
| 	FIELD										frozenField;
 | ||
| 	FIELD										firstField;
 | ||
| 	SKIPMODE									skipMode;
 | ||
| 	DWORD										skipCount;
 | ||
| 	BOOL										panScan;
 | ||
| 	BOOL										stillDecode;
 | ||
| 	DWORD										firstFramePTS;
 | ||
| 	BOOL										firstPtsFound;
 | ||
| 	BOOL										lastFrameDecoded;
 | ||
| 	DWORD										nVsyncsWithoutDsyncs;
 | ||
| 	BOOL										resetAndRestart;
 | ||
| 	BOOL										waitForLastFrame;
 | ||
| 	BOOL										prevVsyncTop;
 | ||
| }	VIDEO, FARPTR * PVIDEO;
 | ||
| 
 | ||
| 
 | ||
| PVIDEO VideoOpen(void);
 | ||
| BOOL	VideoPause(void);
 | ||
| BOOL	VideoPlay(void);
 | ||
| BOOL VideoStop(void);
 | ||
| BOOL VideoSeek(void);
 | ||
| BOOL	VideoInitialize(void);
 | ||
| BOOL VideoEnableDramInterface(void);
 | ||
| BOOL VideoSetBufferSize (void);
 | ||
| BOOL VideoInitPLL(void);
 | ||
| BOOL	VideoWaitTillHDFNotEmpty (void);
 | ||
| BOOL	VideoInitHeaderParser (void);
 | ||
| BOOL VideoInterrupt(void);
 | ||
| BOOL	VideoDsyncInterrupt(void);
 | ||
| BOOL	VideoVsyncInterrupt(BOOL Top);
 | ||
| BOOL VideoErrorInterrupt(void);
 | ||
| BOOL VideoHeaderHit (void);
 | ||
| BOOL VideoNextHeaderByte (void);
 | ||
| BOOL VideoNextSC (void);
 | ||
| BOOL VideoSequenceHeader (void);
 | ||
| BOOL VideoGopHeader (void);
 | ||
| BOOL  VideoPictureHeader (void);
 | ||
| BOOL VideoParsePictureHeader (void);
 | ||
| BOOL VideoExtensionHeader (void);
 | ||
| BOOL VideoSequenceEnd(void);
 | ||
| BOOL VideoSequenceError(void);
 | ||
| BOOL VideoUserData(void);
 | ||
| BOOL VideoSequenceExtensionHeader (void);
 | ||
| BOOL VideoSequenceDisplayExtensionHeader(void);
 | ||
| BOOL VideoSequenceScalableExtensionHeader(void);
 | ||
| BOOL VideoCopyrightExtensionHeader(void);
 | ||
| BOOL VideoQuantMatrixExtensionHeader(void);
 | ||
| BOOL VideoPictureCodingExtensionHeader(void);
 | ||
| BOOL VideoPictureDisplayExtensionHeader(void);
 | ||
| BOOL VideoPictureSpatialScalableExtensionHeader(void);
 | ||
| BOOL VideoPictureTemporalScalableExtensionHeader(void);
 | ||
| BOOL VideoLoadQuantMatrix(BOOL);
 | ||
| BOOL VideoSetReconstructionBuffer (FRAMETYPE frame);
 | ||
| BOOL VideoSetDisplayBuffer (FRAMETYPE frame);
 | ||
| BOOL VideoSoftReset(void);
 | ||
| BOOL VideoProgramDisplayWindow(void);
 | ||
| BOOL VideoMaskInterrupt(void);
 | ||
| BOOL VideoUnmaskInterrupt(void);
 | ||
| BOOL VideoStoreInstruction(void);
 | ||
| BOOL VideoComputeInstruction(void);
 | ||
| BOOL VideoGetBBL(void);
 | ||
| BOOL VideoSwitchSRC(BOOL on);
 | ||
| BOOL VideoSetSRC(DWORD, DWORD);
 | ||
| BOOL VideoFinishDecoding(void);
 | ||
| BOOL	VideoGetABL(void);
 | ||
| BOOL VideoReadSCD(void);
 | ||
| BOOL	VideoAssociatePTS(void);
 | ||
| BOOL VideoProgramPanScanVectors(void);
 | ||
| DWORD VideoGetPTS(void);
 | ||
| BOOL VideoInitDecoder(void);
 | ||
| BOOL VideoClose(void);
 | ||
| BOOL VideoComputePictureBuffers(void);
 | ||
| BOOL VideoSkipOrDecode(void);
 | ||
| BOOL VideoStillDecode(void);
 | ||
| BOOL VideoNormalDecode(void);
 | ||
| BOOL VideoConvertSixteenByNineToFourByThree(void);
 | ||
| BOOL VideoForceBKC(BOOL on);
 | ||
| BOOL VideoResetPSV(void);
 | ||
| void VideoUnFreeze(void);
 | ||
| void VideoFreeze(BOOL Top);
 | ||
| void VideoDisplaySingleField(BOOL Top);
 | ||
| BOOL VideoTestReg(void);
 | ||
| ULONGLONG GetCCTime();
 | ||
| #endif // __STI3520A_H__
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 													
 | ||
|  |