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

📄 video.h

📁 realtek LCD monitor, TV开发源代码
💻 H
字号:
//**********************************************************************************************************
//  The  Software  is  proprietary,  confidential,  and  valuable to Realtek Semiconductor
//  Corporation  ("Realtek").  All  rights, including but not limited  to  copyrights,
//  patents,  trademarks, trade secrets, mask work rights, and other similar rights and interests,
//  are reserved to Realtek. Without  prior  written  consent  from  Realtek,  copying, reproduction,
//  modification,  distribution,  or  otherwise  is strictly prohibited. The Software  shall  be
//  kept  strictly  in  confidence,  and  shall  not be  disclosed to or otherwise accessed by
//  any third party. @ <2003> - <2008>   The Software is provided "AS IS" without any warranty of any kind,
//  express, implied, statutory or otherwise.
//**********************************************************************************************************
//----------------------------------------------------------------------------------------------------
// ID Code      : Video.h No.0000
// Update Note  :
//----------------------------------------------------------------------------------------------------

#if(_VIDEO_SUPPORT == _ON)

//----------------------------------------------------------------------------------------------------

//--------------------------------------------------
// Definitions of
//--------------------------------------------------
#define _VIDEO_DEVICE               0x42    //SAA7114 & SAA7118
#define _VIDEO_50HZ                 0
#define _VIDEO_60HZ                 1
#define _AV_CHANNEL                 0
#define _SV_CHANNEL                 1
#define _VIDEO_NOT_EXIST            _MODE_NOSIGNAL
#define _VIDEO_EXIST                _MODE_EXIST

#define _AV_PORT                     0xc5    // Refer to SAA7114 Spec
#define _SV_PORT                     0xc7    // Refer to SAA7114 Spec


//----------------------------------------------------------------------------------------------------

#ifdef __VIDEO__

//--------------------------------------------------
// Video Tables
//--------------------------------------------------
BYTE code tVIDEO_TABLE_COLOR_STANDARD[2][2][5][9] =             // Color standard setting
{
    // SAA7114 from 0x08
    {
        {
            // AV 50HZ
            {0x98,0x40,0x80,0x3E,0x40,0x00,0x01,0x2A,0x06},     // _PAL_BGDHI
            {0x98,0x40,0x80,0x3E,0x40,0x00,0x19,0x2A,0x0e},     // _NTSC_443_50
            {0x98,0x40,0x80,0x3E,0x40,0x00,0x21,0x2A,0x06},     // _PAL_N
            {0x98,0x40,0x80,0x3E,0x40,0x00,0x39,0x2A,0x0e},     // _NTSC_N
            {0x98,0x3B,0x80,0x3E,0x40,0x00,0x58,0x80,0x00},     // _SECAM
        },

        {
            // AV 60HZ
            {0xD8,0x40,0x80,0x3E,0x40,0x00,0x09,0x2A,0x0e},     // _NTSC_M
            {0xD8,0x40,0x80,0x3E,0x40,0x00,0x11,0x2A,0x06},     // _PAL_443
            {0xD8,0x40,0x80,0x3E,0x40,0x00,0x29,0x2A,0x0e},     // _NTSC_443_60
            {0xD8,0x40,0x80,0x3E,0x40,0x00,0x31,0x2A,0x06},     // _PAL_M
            {0xD8,0x40,0x80,0x3E,0x40,0x00,0x49,0x2A,0x0e},     // _NTSC_JAPAN
        },
    },

    {
        {
            // SV 50HZ
            {0x98,0x80,0x80,0x3E,0x40,0x00,0x00,0x2A,0x06},     // _PAL_BGDHI
            {0x98,0x80,0x80,0x3E,0x40,0x00,0x18,0x2A,0x0e},     // _NTSC_443_50
            {0x98,0x80,0x80,0x3E,0x40,0x00,0x20,0x2A,0x06},     // _PAL_N
            {0x98,0x80,0x80,0x3E,0x40,0x00,0x38,0x2A,0x0e},     // _NTSC_N
            {0x98,0xAB,0x80,0x3E,0x40,0x00,0x58,0x80,0x00},     // _SECAM
        },

        {
            // SV 60HZ
            {0xD8,0x80,0x80,0x3E,0x40,0x00,0x08,0x2A,0x0e},     // _NTSC_M
            {0xD8,0x80,0x80,0x3E,0x40,0x00,0x10,0x2A,0x06},     // _PAL_443
            {0xD8,0x80,0x80,0x3E,0x40,0x00,0x28,0x2A,0x0e},     // _NTSC_443_60
            {0xD8,0x80,0x80,0x3E,0x40,0x00,0x30,0x2A,0x06},     // _PAL_M
            {0xD8,0x80,0x80,0x3E,0x40,0x00,0x48,0x2A,0x0e},     // _NTSC_JAPAN
        },
    },
};

BYTE code tVIDEO_TABLE_INITIAL_SAA7114[] =
{
    // 0x00~0x0f
    0x00,0x08,0xc9,0x00,0x90,0x90,0xeb,0xe0,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


    // 0x10~0x1f
/*
    0x0e,0x00,0xd9,0x10,0x24,0x00,0x10,0x00,
    0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
*/
    0x0e,0x00,0xc9,0x10,0x24,0x00,0x10,0x00,
    0x40,0x80,0x00,0x00,0x00,0x00,0x00,0xc8,

    // 0x20~0x2f
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    // 0x30~0x3f
    0xbc,0xdf,0x02,0x00,0xcd,0xcc,0x3a,0x00,
    0x03,0x20,0x03,0x00,0x00,0x00,0x00,0x00,

    // 0x40~0x4f
    0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    // 0x50~0x5f
    0x00,0x00,0x00,0x00,0x5f,0xff,0xff,0xff,
    0x00,0x47,0x06,0x03,0x00,0x00,0x00,0x00,

    // 0x60~0x6f
    0x00,0x05,0xa0,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    // 0x70~0x7f
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    // 0x80~0x8f
    0x12,0x00,0x00,0x01,0x01,0x04,0x45,0x01, //0x83
    0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    // 0x90~0x9f
/*
    0x00,0x08,0x09,0x40,0x08,0x00,0xbc,0x02,
    0x00,0x00,0xf0,0x00,0xbc,0x02,0xf0,0x00,
*/
    0x00,0x08,0x09,0xc0,0x08,0x00,0xd0,0x02,
    0x10,0x00,0xf0,0x00,0xd0,0x02,0xf0,0x00,

    // 0xa0~0xaf
    0x01,0x00,0x00,0x00,0x80,0x40,0x40,0x00,
    0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,

    // 0xb0~0xbf
    0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    // 0xc0~0xcf
    0x00,0x08,0x10,0x81,0x10,0x00,0xd0,0x02,
    0x0a,0x00,0x20,0x01,0xd0,0x02,0x20,0x01,

    // 0xd0~0xdf
    0x01,0x00,0x00,0x00,0x80,0x40,0x40,0x00,
    0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,

    // 0xe0~0xef
    0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

BYTE code tVIDEO_TABLE_FIELD[][6] =
{
    // SAA7114 from 0x9A
    {0x38,0x01,0xbc,0x02,0x38,0x01},    // 50hz
    {0x04,0x01,0xbc,0x02,0x04,0x01},    // 60hz
};

BYTE code tVIDEO_TABLE_SET_SCALER[] =
{

    7,  _AUTOINC,       _VGIP_CTRL_10,                  0x09,0x01,0x00,0x47,

    4,  _NON_AUTOINC,   _IPH_ACT_WID_H_16,              0x08,
#if(_SCALER_TYPE == _RTD2472D)
    4,  _NON_AUTOINC,   _IPV_ACT_STA_H_18,              0x00,//Anderson 080422
#endif
    4,  _NON_AUTOINC,   _SCALE_CTRL_32,                 0x80,
    4,  _NON_AUTOINC,   _SYNC_CTRL_49,                  0x05,


//Anderson 080108 for Different Register Mapping Start
#if(_SCALER_TYPE == _RTD2472D)
    4,  _NON_AUTOINC,   _YUV2RGB_CTRL_9C,            0x02,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0x0C,0x04,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0x1C,0x00,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0x2C,0x05,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0x3C,0x9B,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0x4C,0x01,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0x5C,0x56,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0x6C,0x02,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0x7C,0xDB,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0x8C,0x07,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0x9C,0x16,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0xAC,0x00,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0xBC,0x00,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0xCC,0x00,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0xDC,0x00,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0xEC,0x00,
    5,  _AUTOINC,       _YUV_RGB_ACCESS_9D,          0xFC,0x00,
    4,  _NON_AUTOINC,   _YUV_RGB_ACCESS_9D,          0x0c,
    4,  _NON_AUTOINC,   _YUV2RGB_CTRL_9C,            0x01,
#elif((_SCALER_TYPE == _RTD2545LR) || (_SCALER_TYPE == _RTD247xRD) || (_SCALER_TYPE == _RTD248xRD))
//Anderson 080422 for Video 8 Start
    //4,    _NON_AUTOINC,   _V8_YUV_CONVERSION_1F,       0x08, // 422->444
    4,  _NON_AUTOINC,   _PAGE_SELECT_9F,             _PAGE7,
    4,  _NON_AUTOINC,   _P7_YUV2RGB_CTRL_BF,         0x02,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x06,0x04,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x0E,0xa7,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x16,0x05,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x1E,0x9B,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x26,0x01,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x2E,0x56,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x36,0x02,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x3E,0xDB,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x46,0x07,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x4E,0x16,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x56,0x00,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x5E,0x00,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x66,0x00,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x6E,0x00,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x76,0x00,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x7E,0x00,
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x86,0x02, // R Gain HByte
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x8E,0x00, // R Gain LByte
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x96,0x02, // G Gain HByte
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0x9E,0x00, // G Gain LByte
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0xA6,0x02, // B Gain HByte
    5,  _AUTOINC,       _P7_YUV2RGB_ACCESS_C0,       0xAE,0x00, // B Gain LByte
    4,  _NON_AUTOINC,   _P7_YUV2RGB_ACCESS_C0,       0x06,
    4,  _NON_AUTOINC,   _P7_YUV2RGB_CTRL_BF,         0x01,
#else
    No Setting !!
#endif
//Anderson 080422 for Video 8 End
//Anderson 080108 for Different Register Mapping End

    _END
};

WORD code tVIDEO_TABLE_INPUT_INFO[][5] =
{
    // IHTotal, IHStart, IHWidth, IVStart, IVHeight
    {    864,     159,     672,     27,     274 },  // 50HZ
    {    858,     141,     704,     27,     236 },  // 60HZ
//    {    1716,     282,     1440,     54,     236 },  // 60HZ

};

//--------------------------------------------------
// Global Variables
//--------------------------------------------------
bit bVideoType;


//--------------------------------------------------
// Function Prototypes
//--------------------------------------------------
void CVideoInitial(void);
bit CVideoColorFormatProc(void);
bit CVideoIsExist(void);
bit CVideoIsChange(void);
void CVideoDisplaySet(void);


#else

//--------------------------------------------------
// Extern Global Variables
//--------------------------------------------------
extern bit bVideoType;


//--------------------------------------------------
// Extern Function Prototypes
//--------------------------------------------------
extern void CVideoInitial(void);
extern bit CVideoIsExist(void);
extern bit CVideoIsChange(void);
extern void CVideoDisplaySet(void);


#endif // End of #ifdef __VIDEO__



//----------------------------------------------------------------------------------------------------

//--------------------------------------------------
// Macro of Input Sync Type
//--------------------------------------------------
#define ADDRESS(x)                  (x)
#define CHECK60HZ()                 (bVideoType == _VIDEO_60HZ)
#define CHECK50HZ()                 (bVideoType == _VIDEO_50HZ)
#define SET60HZ()                   (bVideoType = _VIDEO_60HZ)
#define SET50HZ()                   (bVideoType = _VIDEO_50HZ)


#endif  // #if(_VIDEO_SUPPORT == _ON)

⌨️ 快捷键说明

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