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

📄 drvvop.h

📁 mstar 776 开发的车载dvd
💻 H
字号:
////////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2006-2007 MStar Semiconductor, Inc.
// All rights reserved.
//
// Unless otherwise stipulated in writing, any and all information contained
// herein regardless in any format shall remain the sole proprietary of
// MStar Semiconductor Inc. and be kept in strict confidence
// (¨MStar Confidential Information〃) by the recipient.
// Any unauthorized act including without limitation unauthorized disclosure,
// copying, use, reproduction, sale, distribution, modification, disassembling,
// reverse engineering and compiling of the contents of MStar Confidential
// Information is unlawful and strictly prohibited. MStar hereby reserves the
// rights to any and all damages, losses, costs and expenses resulting therefrom.
//
////////////////////////////////////////////////////////////////////////////////

#ifndef MDRV_VOP_H
#define MDRV_VOP_H

#include "datatype.h"
#include "drvAnalog_DataType.h"



#define VOP_VBlank  45
#define VOP_HBlank_SD  150
#define VOP_HBlank_HD  300
#define DC_BaseClock  86400 //86.4*1000

/// VOP scan type
typedef enum
{
    VOPSCAN_720x480_59I,    ///< 0
    VOPSCAN_704x480_60I,    ///< 1
    VOPSCAN_704x480_59I,
    VOPSCAN_640x480_60I,
    VOPSCAN_640x480_59I,

    VOPSCAN_544x480_60I,    ///< 2
    VOPSCAN_544x480_59I,
    VOPSCAN_528x480_60I,    ///< 3
    VOPSCAN_528x480_59I,
    VOPSCAN_352x480_59I,
    VOPSCAN_480x480_59I,
    VOPSCAN_352X240_29P,

    VOPSCAN_720x480_60P,    ///< 4
    VOPSCAN_704x480_60P,    ///< 5
    VOPSCAN_720x480_59P,
    VOPSCAN_704x480_59P,
    VOPSCAN_720x480_30P,

    VOPSCAN_704x480_30P,
    VOPSCAN_720x480_29P,
    VOPSCAN_704x480_29P,
    VOPSCAN_720x480_24P,
    VOPSCAN_704x480_24P,

    VOPSCAN_704x480_23P,
    VOPSCAN_720x480_23P,
    VOPSCAN_544x480_23P,
    VOPSCAN_528x480_23P,
    VOPSCAN_352x480_23P,

    VOPSCAN_720x480_48I,
    VOPSCAN_704x480_47I,
    VOPSCAN_544x480_47I,
    VOPSCAN_528x480_47I,
    VOPSCAN_352x480_47I,

    VOPSCAN_640x480_60P,    ///< 5
    VOPSCAN_640x480_59P,
    VOPSCAN_640x480_30P,
    VOPSCAN_640x480_29P,
    VOPSCAN_640x480_24P,

    VOPSCAN_640x480_23P,

    VOPSCAN_720x576_50I,    ///< 6
    VOPSCAN_704x576_50I,    ///< 7
    VOPSCAN_544x576_50I,    ///< 8
    VOPSCAN_480x576_50I,
    VOPSCAN_720x576_50P,    ///< 9
    VOPSCAN_704x576_50P,    ///< 10
    VOPSCAN_720x576_25P,    ///< 9
    VOPSCAN_704x576_25P,    ///< 10

    VOPSCAN_1280x720_60P,    ///< 11
    VOPSCAN_1280x720_59P,
    VOPSCAN_1280x720_30P,
    VOPSCAN_1280x720_29P,

    VOPSCAN_1280x720_24P,
    VOPSCAN_1280x720_23P,
    VOPSCAN_1920x1080_60I,    ///< 13
    VOPSCAN_1920x1080_59I,
    VOPSCAN_1920x1088_60I,    ///< 14

    VOPSCAN_1920x1080_30P,
    VOPSCAN_1920x1080_29P,
    VOPSCAN_1920x1080_24P,
    VOPSCAN_1920x1080_23P,
    VOPSCAN_1440x1089_30P,

    VOPSCAN_1440x1080_29P,
    VOPSCAN_1440x1080_24P,
    VOPSCAN_1440x1080_23P,
    VOPSCAN_1440x1080_60I,
    VOPSCAN_1440x1080_59I,

    VOPSCAN_1920x1088_59I,

    VOPSCAN_1280x720_50P,    ///< 12
    VOPSCAN_1920x1080_50I,    ///< 15
    VOPSCAN_1920x1088_50I,    ///< 16

    VOPSCAN_NUM
} VOPSCANTYPE;

/// VOP input mode
typedef enum
{
    VOPINPUT_HARDWIRE = 0,        //!< hardwire mode (MVD)
    VOPINPUT_HARDWIRECLIP = 1,    //!< hardware clip mode (MVD)
    VOPINPUT_MCUCTRL = 2,        //!< MCU control mode (M4VD, JPG)
} VOPINPUTMODE;

/// VOP input parameter
typedef struct
{
    U32 u32YOffset;
    U32 u32UVOffset;
    U16 u16HSize;
    U16 u16VSize;
    U16 u16StripSize;

    BOOLEAN bYUV422;    //!< YUV422 or YUV420
    BOOLEAN bSD;        //!< SD or HD
    BOOLEAN bProgressive;   //!< Progressive or Interlace

    // in func MDrv_VOP_Input_Mode(), bSD is used to set dc_strip[7:0].
    // in func MDrv_VOP_Input_Mode_Ext(), bSD is don't care and
    //    dc_strip[7:0] is set according to Hsize
    BOOLEAN bUV7bit;        // +Saturn2, UV 7 bit or not
    BOOLEAN bDramRdContd;   // +Saturn2, continue read out or jump 32
    BOOLEAN bField;         // +Saturn2, Field 0 or 1
    BOOLEAN b422pack;       // +Saturn2, YUV422 pack mode

} VOPINPUTPARAM;

/// Interrupt mask
typedef enum
{
    VOPINTR_BUFFER_UNDERFLOW = 0x1,  //!< DC buffer underflow interrupt mask
    VOPINTR_BUFFER_OVERFLOW = 0x2,   //!< DC buffer overflow interrupt mask
    VOPINTR_VSYNC = 0x4,             //!< DC2MA VSYNC interrupt mask
    VOPINTR_HSYNC = 0x8,             //!< DC2MA HSYNC interrupt mask
    VOPINTR_READY = 0x10,            //!< DC ready interrupt mask
    VOPINTR_FIELD_CHANGE = 0x20,     //!< DC field change interrupt mask
} VOPINTRTYPE;


extern void MDrv_VOP_Init ();
extern void MDrv_VOP_SetBlackBG ( void );
extern void MDrv_VOP_SetClipWindow ( U8 u8VideoFormat );
extern void MDrv_VOP_SetClipVSize (U16 u16VSize);
extern void MDrv_VOP_EnableClipWindow ( U8 u8OnOffMode );

extern void MDrv_VOP_Intr_Enable ( VOPINTRTYPE type, BOOLEAN bEnable );
extern void MDrv_VOP_Intr_Clear ( VOPINTRTYPE type );
#ifdef MDrv_VOP_Isr
extern void MDrv_VOP_Isr ();
#endif
extern VOPINTRTYPE MDrv_VOP_Intr_GetStatus ();

extern void MDrv_VOP_Enable ( BOOLEAN bEnable );

extern void MDrv_VOP_Input_Mode ( VOPINPUTMODE mode, VOPINPUTPARAM *pparam );
extern void MDrv_VOP_Input_Mode_Ext ( VOPINPUTMODE mode, VOPINPUTPARAM *pparam );

extern void MDrv_VOP_Output_EnableHDup ( BOOLEAN bEnable );
extern void MDrv_VOP_Output_EnableVDup ( BOOLEAN bEnable );
extern void MDrv_VOP_Output_EnableInterlace ( BOOLEAN bEnable );
extern void MDrv_VOP_Output_EnableCCIR656 ( BOOLEAN bEnable );

extern void MDrv_VOP_SetOutputTiming ( MS_VOP_TIMING *ptiming );
extern void MDrv_VOP_SetVOPSynClk ( MS_VOP_TIMING *ptiming );
extern void MDrv_VOP_SetVOPSynClkEable ( BOOLEAN bEnable );

extern void MDrv_VOP_SetJPEGBuffAddr ( U32 u32YAddr, U32 u32UVAddr );
extern void MDrv_VOP_SetJPEGSize ( U16 u16HSize, U16 u16VSize );
extern void MDrv_VOP_JPEGInit ( void );
extern void MDrv_VOP_JPEGCmdFire ( void );

extern void MDrv_VOP_TestSetting ();     // Temporary

extern void MDrv_VOP_EnableBlackBG ( void );
extern void MDrv_VOP_SetImageStart(S16 s16H_start, S16 s16V_start);
extern void MDrv_VOP_DumpReg();

extern S32 gVOP_FPLL_Synthesizer;


#endif

⌨️ 快捷键说明

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