📄 drvvop.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 + -