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

📄 tvpvideo_fw.h

📁 ti的数字电视芯片 tvp9000的源码
💻 H
字号:
/********************************************************************* 
*    Property of Texas Instruments Incorporated, Copyright 2004
*    All rights reserved
**********************************************************************/

/*********************************************************************
*
* Description:
*   public include file for the video decoder
*   It includes only the definitions that are needed for the API
*   
**********************************************************************/
/**********************************************************************
*  
* $Revision: $ 
* 
* $History: TvpVideo_fw.h $   
* 
**********************************************************************/

#ifndef TVP_VIDEO_FW_DOT_H_IS_DEFINED
#define TVP_VIDEO_FW_DOT_H_IS_DEFINED


typedef struct 
{
   unsigned short    displayWidth;          // Width of screen
   unsigned short    displayHeight;
   TvpVidARDisplay   displayAspectRatio;
   unsigned short    videoLayerWidth;       // Width of video layer
   unsigned short    videoLayerHeight;
   unsigned short    adjustedOutputWidth;   // Width of active video output
   unsigned short    adjustedOutputHeight;
   unsigned short    inputWidth;            // Width of input video stream
   unsigned short    inputHeight;
   unsigned short    adjustedInputWidth;    // Width of active input video stream
   unsigned short    adjustedInputHeight;
   TvpVidARDisplay   inputAspectRatio;
   unsigned short    horizPos;
   unsigned short    vertPos;
   unsigned char     inputProgressiveFlag;
   unsigned char     displayProgressiveFlag;
   unsigned char     eightxtwo_mode;
   unsigned char     previousCommand;
   TvpVidARMethod    prefOut;
   TvpVidCoefArray   coefArray;
   unsigned long     *coefBufferAddr;
   unsigned char     coefArrayLoaded;
   unsigned char     chanChange;
   unsigned char     WaitingForVBI;
   unsigned char     WaitingForSeqHdr;
   TvpIntNum         intNum;
   TvpVidIntEvent    *status;
   TvpVidIntEvent    intConfig;
   unsigned long     skipCount;
   unsigned long     repeatCount; 
   unsigned long     previousColorSpace;
   unsigned long     coefBufferSpace;
   unsigned long     videoLayerOffset;
   unsigned long     HdEncReg10Update;
   unsigned long     NtscEncReg0Update;
   unsigned long     NtscEncOff1CUpdate;   // v02.05.29_97
   TvpEncHdMode      hdMode;			       // v02.08.29_97
   unsigned long     HdEncReg10User;			// v02.09.29_97 
   unsigned long     HdEncReg10UserAdd;			// v02.09.29_97
   unsigned long     NtscEncReg0UserNtscSlow;	// v02.09.29_97
   unsigned long     NtscEncReg0UserNtscFast;	// v02.09.29_97
   unsigned long     NtscEncOff1CUserNtscSlow;	// v02.09.29_97
   unsigned long     NtscEncOff1CUserNtscFast;	// v02.09.29_97
   unsigned long     NtscEncReg0UserPalSlow;	// v02.09.29_97
   unsigned long     NtscEncReg0UserPalFast;	// v02.09.29_97
   unsigned long     NtscEncOff1CUserPalSlow;	// v02.09.29_97
   unsigned long     NtscEncOff1CUserPalFast;	// v02.09.29_97
   unsigned long     prevOsdBgColor;
   unsigned short    horizCrop;
   unsigned short    vertCrop;
   unsigned char     palDeinterlaceSupport;
   unsigned char     vidReset;
} TvpVideoGlbl_s;

typedef enum
{
   TVP_VID_720_MAX_PIXELS  = 0x200,
   TVP_VID_1280_MAX_PIXELS = 0x400,
   TVP_VID_1920_MAX_PIXELS = 0x600   
} TvpVidMaxWidth;

typedef struct 
{
   unsigned long address;
   unsigned long data;  
} TvpVcProgram_s;

typedef struct 
{
   unsigned long TopMotionSum;
   unsigned long BottomMotionSum;
   unsigned long NoiseThresholdLow;
   unsigned long NoiseThresholdHigh;
   unsigned char Phase;
   unsigned char State;
   unsigned int  DetectCount;
   unsigned long Time;
} TvpFilmModeDebug_s;


/*------------------------------------------------------------------------------------**
** MAX_ARRAY is 3 command size words, 17 Progressive commands, 17 interlace commands, **
**              the end of programming indicator, and the 8x1 Line out word           **
**      3 + 17 + 17 + 1 + 1 = 39, so the array is from 0 to 38 inclusive              **
**------------------------------------------------------------------------------------*/
#define TVP_MAX_VC_ARRAY          (38 + 14)

#define TVP_VC_PROGRAM_AVAILABLE  0xffffffff

#define TVP_VID_COEF_OFFSET_WORDS 0x200        // 0x800 bytes

/*------------**
** Prototypes **
**------------*/
static void tvpVidCoefTableLoad_l(TvpVidCoefData *coefIData, TvpVidCoefData *coefPData, 
                                   unsigned long *coefBuffer);
static TVP_FERROR tvpVidControlProgram_l(TvpVidCoefData *coefIData, TvpVidCoefData *coefPData);
void  tvpVidIsr(void);
void  tvpFilmMode(void);
static void tvpVidAdjustInOutSize_l(TvpVidARDisplay displayAspectRatio, TvpVidARDisplay inputAspectRatio,
                              TvpVidARMethod prefOut, unsigned short *inputHeight,
                              unsigned short *inputWidth, unsigned short *outputHeight, 
                              unsigned short *outputWidth);
static void tvpVidIntSet_l(TvpVidIntEvent int_reason);
static TVP_FERROR tvpVcWrite_l(unsigned long address, unsigned long data);
static TVP_FERROR tvpVcWriteQueue_l(unsigned long address, unsigned long data);
static TVP_FERROR tvpVidModPicFormat_l(TvpVidPicFormat *pPicSize);
void tvpResetVideo_l(void);
TVP_FERROR tvpVidStcValid(Tvp_True_False valid);
TVP_FERROR tvpVidForceRepeat(void);
TVP_FERROR tvpVidForceSkip(void);
TVP_FERROR tvpVidChangeDeinterlaceMode(unsigned long mode);
TVP_FERROR tvpVidInitCommon_l(unsigned char *coefBuffer);

#endif

⌨️ 快捷键说明

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