271 lines
8.9 KiB
C
271 lines
8.9 KiB
C
#ifndef __STLLAPI_H
|
|
#define __STLLAPI_H
|
|
//----------------------------------------------------------------------------
|
|
// STLLAPI.H
|
|
//----------------------------------------------------------------------------
|
|
// Description : small description of the goal of the module
|
|
//----------------------------------------------------------------------------
|
|
// Copyright SGS Thomson Microelectronics ! Version alpha ! Jan 1st, 1995
|
|
//----------------------------------------------------------------------------
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Include files
|
|
//----------------------------------------------------------------------------
|
|
#include "stdefs.h"
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Exported Types
|
|
//----------------------------------------------------------------------------
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Exported Variables
|
|
//----------------------------------------------------------------------------
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Exported Constants
|
|
//----------------------------------------------------------------------------
|
|
#define QUANT_TAB_SIZE 64
|
|
|
|
//---- Definition of the STi35xxx memory partitioning
|
|
#define NB_ROW_OF_MB 22 // Number of Rows of Macro blocks for B
|
|
// pictures when optimmization is used
|
|
#ifdef STi3520A
|
|
#define BUF_FULL 0x480// bit buffer occupies 0x480 * 256 bytes (1.75 Mbits)
|
|
#else
|
|
#define BUF_FULL 0x380// bit buffer occupies 0x380 * 256 bytes (1.75 Mbits)
|
|
#endif
|
|
|
|
//---- PAL
|
|
#define PSZ_PAL 0x0980 // Picture size = 720*576*1.5 / 256 = 0x97E
|
|
#define BUFF_A_PAL BUF_FULL+1 //
|
|
#define BUFF_B_PAL (BUFF_A_PAL+PSZ_PAL)
|
|
#define BUFF_C_PAL (BUFF_B_PAL+PSZ_PAL)
|
|
|
|
//---- NTSC
|
|
#define PSZ_NTSC 0x07F0
|
|
#define BUFF_A_NTSC BUF_FULL+1
|
|
#define BUFF_B_NTSC (BUFF_A_NTSC+PSZ_NTSC)
|
|
#define BUFF_C_NTSC (BUFF_B_NTSC+PSZ_NTSC)
|
|
|
|
//---- OSD
|
|
#define OSD_START (BUFF_C + ((NB_ROW_OF_MB*3)/2))*32L
|
|
|
|
#define FORWARD_PRED 0
|
|
#define BACKWARD_PRED 1
|
|
|
|
/************************************/
|
|
/* definition of main start codes */
|
|
/************************************/
|
|
#define PICT 0x0000
|
|
#define USER 0xB200
|
|
#define SEQ 0xB300
|
|
#define SEQ_ERR 0xB400
|
|
#define EXT 0xB500
|
|
#define SEQ_END 0xB700
|
|
#define GOP 0xB800
|
|
|
|
/************************************/
|
|
/* definition of extension codes */
|
|
/************************************/
|
|
#define SEQ_EXT 0x10
|
|
#define SEQ_DISP 0x20
|
|
#define QUANT_EXT 0x30
|
|
#define SEQ_SCAL 0x50
|
|
#define PICT_PSV 0x70
|
|
#define PICT_COD 0x80
|
|
#define PICT_SCAL 0x90
|
|
|
|
/***********************************************/
|
|
/* definition of states of FistVsyncAfterVbv */
|
|
/***********************************************/
|
|
// FistVsyncAfterVbv is a 3 state variable
|
|
// before vbv FistVsyncAfterVbv = NOT_YET_VBV
|
|
// between vbv and following vsync FistVsyncAfterVbv = NOT_YET_VST
|
|
// after vsync following vbv FistVsyncAfterVbv = PAST_VBV_AND_VST
|
|
#define NOT_YET_VBV 0
|
|
#define NOT_YET_VST 1
|
|
#define PAST_VBV_AND_VST 2
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Exported Functions
|
|
//----------------------------------------------------------------------------
|
|
|
|
//----------------------------------------------------------------------------
|
|
// One line function description (same as in .C)
|
|
//----------------------------------------------------------------------------
|
|
// In :
|
|
// Out :
|
|
// InOut :
|
|
// Global :
|
|
// Return :
|
|
//----------------------------------------------------------------------------
|
|
|
|
//---- STINIT
|
|
VOID VideoInitVar(PVIDEO pVideo, U16 StreamType);
|
|
U16 VideoTestReg(PVIDEO pVideo);
|
|
U16 VideoTestMem(PVIDEO pVideo);
|
|
U16 VideoTestInt(PVIDEO pVideo);
|
|
VOID VideoReset35XX(PVIDEO pVideo, U16 StreamType);
|
|
|
|
//---- STISR
|
|
BOOLEAN VideoVideoInt(PVIDEO pVideo);
|
|
|
|
//---- STDISP
|
|
VOID VideoSetPictureSize(PVIDEO pVideo);
|
|
VOID VideoDisplayCtrl(PVIDEO pVideo);
|
|
|
|
//---- STPIPE
|
|
VOID VideoSetRecons(PVIDEO pVideo);
|
|
VOID VideoChooseField(PVIDEO pVideo);
|
|
VOID VideoVsyncRout(PVIDEO pVideo);
|
|
|
|
//---- STHEAD
|
|
VOID VideoUser(PVIDEO pVideo);
|
|
VOID VideoPictExtensionHeader(PVIDEO pVideo);
|
|
VOID VideoSequenceHeader(PVIDEO pVideo);
|
|
VOID VideoExtensionHeader(PVIDEO pVideo);
|
|
VOID VideoGopHeader(PVIDEO pVideo);
|
|
VOID VideoPictureHeader(PVIDEO pVideo);
|
|
|
|
//****************************************
|
|
// NEW : Very Low Level Routines
|
|
//****************************************
|
|
VOID VideoSetBBStart(PVIDEO pVideo, U16);
|
|
U16 VideoGetBBL(VOID);
|
|
VOID VideoSetBBStop(U16);
|
|
VOID VideoSetBBThresh(U16);
|
|
|
|
VOID VideoSetABStart( U16);
|
|
U16 VideoGetABL(VOID);
|
|
VOID VideoSetABStop(U16);
|
|
VOID VideoSetABThresh(U16);
|
|
|
|
U16 VideoBlockMove(PVIDEO pVideo, U32 SrcAddress, U32 DestAddress, U16 Size);
|
|
VOID VideoStartBlockMove(PVIDEO pVideo, U32 SrcAddress, U32 DestAddress, U32 Size);
|
|
VOID VideoCommandSkip(PVIDEO pVideo, U16 Nbpicture);
|
|
VOID VideoSetSRC(PVIDEO pVideo, U16 SrceSize, U16 DestSize);
|
|
VOID VideoLoadQuantTables(PVIDEO pVideo, BOOLEAN Intra, U8 * Table);
|
|
|
|
//**************************
|
|
// CMD , Write
|
|
//**************************
|
|
VOID VideoLaunchHeadSearch(PVIDEO pVideo);
|
|
|
|
//**************************
|
|
// CMD , Read
|
|
//**************************
|
|
U32 VideoReadCDCount(PVIDEO pVideo);
|
|
U32 VideoReadSCDCount(PVIDEO pVideo);
|
|
|
|
//**************************
|
|
// CTL register Routines
|
|
//**************************
|
|
VOID VideoEnableDecoding(PVIDEO pVideo, BOOLEAN OnOff);
|
|
VOID VideoEnableErrConc(PVIDEO pVideo, BOOLEAN OnOff);
|
|
VOID VideoPipeReset(PVIDEO pVideo);
|
|
VOID VideoSoftReset(PVIDEO pVideo );
|
|
VOID VideoEnableInterfaces(PVIDEO pVideo, BOOLEAN OnOff);
|
|
VOID VideoPreventOvf(PVIDEO pVideo, BOOLEAN OnOff);
|
|
VOID VideoSetHalfRes(PVIDEO pVideo);
|
|
VOID VideoSetFullRes(PVIDEO pVideo);
|
|
VOID VideoSelectMpeg2(PVIDEO pVideo, BOOLEAN OnOff);
|
|
VOID VideoSelect8M(PVIDEO pVideo, BOOLEAN OnOff);
|
|
|
|
//**************************
|
|
// DCF registers Routines
|
|
//**************************
|
|
VOID VideoOsdOn(PVIDEO pVideo);
|
|
VOID VideoOsdOff(PVIDEO pVideo);
|
|
VOID VideoSwitchSRC(PVIDEO pVideo);
|
|
VOID VideoSRCOn(PVIDEO pVideo);
|
|
VOID VideoSRCOff(PVIDEO pVideo);
|
|
|
|
//**************************
|
|
// DFA, DFW, DFS registers Routines
|
|
//**************************
|
|
VOID VideoInitDecodeParam(U16 dfa, U16 dfs, U16 dfw);
|
|
//**************************
|
|
// DFP registers Routines
|
|
//**************************
|
|
VOID VideoSetDFP(U16 dfp);
|
|
VOID VideoEnableDisplay(PVIDEO pVideo);
|
|
VOID VideoDisableDisplay(PVIDEO pVideo);
|
|
|
|
//**************************
|
|
// FFP, BFP, RFP registers Routines
|
|
//**************************
|
|
VOID VideoStoreRFBBuf(PVIDEO pVideo, U16 rfp, U16 ffp, U16 bfp);
|
|
|
|
//**************************
|
|
// GCF1 register Routines
|
|
//**************************
|
|
VOID VideoSetDramRefresh(PVIDEO pVideo, U16);
|
|
VOID VideoSelect20M(PVIDEO pVideo, BOOLEAN OnOff);
|
|
VOID VideoSetDFA(PVIDEO pVideo, U16);
|
|
//**************************
|
|
// GCF2 register Routines
|
|
//**************************
|
|
VOID VideoSelectSdram(VOID);
|
|
VOID VideoSelectHdram(VOID);
|
|
VOID VideoInitDisplayParam(U16 xfa, U16 xfs, U16 xfw);
|
|
|
|
//**************************
|
|
// HDF register Routines
|
|
//**************************
|
|
VOID VideoReadHeaderDataFifo(PVIDEO pVideo);
|
|
|
|
//**************************
|
|
// INS1,2 register Routines
|
|
//**************************
|
|
VOID VideoComputeInst(PVIDEO pVideo);
|
|
VOID VideoStoreINS(PVIDEO pVideo);
|
|
VOID VideoWaitDec(PVIDEO pVideo);
|
|
//**************************
|
|
// ITM, ITS register Routines
|
|
//**************************
|
|
VOID VideoMaskInt(PVIDEO pVideo);
|
|
VOID VideoRestoreInt(PVIDEO pVideo);
|
|
VOID VideoSetMask(U16 mask);
|
|
VOID VideoResetMask(U16 mask);
|
|
//**************************
|
|
// DRAM I/O
|
|
//**************************
|
|
VOID VideoSetMWP(U32);
|
|
VOID VideoSetMRP(U32);
|
|
BOOLEAN VideoMemWriteFifoEmpty(VOID);
|
|
BOOLEAN VideoMemReadFifoFull(VOID);
|
|
BOOLEAN VideoHeaderFifoEmpty(VOID);
|
|
BOOLEAN VideoBlockMoveIdle(VOID);
|
|
//**************************
|
|
// OBP / OTP init
|
|
//**************************
|
|
VOID VideoInitOEP(PVIDEO pVideo, U32 point_oep);
|
|
|
|
//**************************
|
|
// PSV register
|
|
//**************************
|
|
VOID VideoSetPSV(PVIDEO pVideo);
|
|
|
|
//**************************
|
|
// XDO, XDS, YDO, YDS
|
|
//**************************
|
|
VOID VideoSetVideoWindow(PVIDEO, U16 a, U16 b, U16 c, U16 d);
|
|
VOID VideoInitXY(PVIDEO pVideo);
|
|
VOID SetXY(PVIDEO pVideo, U16 xds, U16 yds);
|
|
|
|
//**************************
|
|
// PLL initialization
|
|
//**************************
|
|
VOID VideoInitPLL(VOID);
|
|
//**************************
|
|
// PES initialization
|
|
//**************************
|
|
VOID VideoInitPesParser(U16 StreamType);
|
|
U32 VideoReadPTS(VOID );
|
|
BOOLEAN VideoIsValidPTS(VOID );
|
|
|
|
BOOL IsChipSTi3520(VOID);
|
|
|
|
//------------------------------- End of File --------------------------------
|
|
#endif // #ifndef __STLLAPI_H
|