📄 msapi_vd.h
字号:
#ifndef MSAPI_VD_H
#define MSAPI_VD_H
#include "Bin_ID.h"
#include "drvvd.h"
/********************************************************************************/
/* Macro */
/* ******************************************************************************/
#define VD_INPUT_STABLE_COUNT 25
#define ATV_INPUT_STABLE_COUNT 25
//*************************************************************************
// Enums
//*************************************************************************
typedef enum
{
VD_BIN_SEL_AUTO = BIN_ID_CODE_VD_DSP,
VD_BIN_SEL_NTSC = BIN_ID_CODE_VD_DSP_NTSC,
VD_BIN_SEL_PAL = BIN_ID_CODE_VD_DSP,
} VD_BIN_SEL_TYPE;
//*************************************************************************
// Structures
//*************************************************************************
#ifdef MSAPI_VD_C
#define INTERFACE
#else
#define INTERFACE extern
#endif
typedef enum
{
VD_STATE_NONE,
VD_STATE_STABLE,
VD_STATE_UNSTABLE_0,
VD_STATE_UNSTABLE_1,
VD_STATE_SET_MODE_SYNC,
VD_STATE_SET_MODE_NO_SYNC,
} EN_VD_TIMING_MONITOR_STATE;
/********************************************************************************/
/* Function Prototypes */
/********************************************************************************/
INTERFACE void msAPI_VD_BIN_Select (VD_BIN_SEL_TYPE vdBinSel);
INTERFACE void msAPI_VD_Init ( void );
INTERFACE void msAPI_VD_InitVariable();
INTERFACE void msAPI_VD_ChangeSource ( MS_SYS_INFO *penMsSysInfo );
INTERFACE void msAPI_VD_SetRegFromDSP ( void );
INTERFACE U16 msAPI_VD_GetStatus ( void );
INTERFACE BOOLEAN msAPI_VD_IsSyncLock( void );
INTERFACE EN_VD_TIMING_MONITOR_STATE msAPI_VD_TimingMonitor( void );
INTERFACE U16 msAPI_VD_GetWSS( void );
INTERFACE U8 msAPI_VD_GetVideoSystem( U16 u16VideoStatus );
#if 1
INTERFACE U16 msAPI_VD_ChkStatusLoop(void);
#else
INTERFACE U16 msAPI_VD_ChkStatusLoop(U16 u16StableCount, U16 u16MaxCheckTimer);
#endif
INTERFACE U16 msAPI_VD_GetHWHSYNC( void );
INTERFACE U8 msAPI_VD_CheckIsTVSys( void );
INTERFACE void msAPI_VD_ProgramDiffField ( EN_VD_SIGNALTYPE enSignalType, MS_SYS_INFO *penMsSysInfo );
INTERFACE void msAPI_VD_MonitorSignal(MS_SYS_INFO *penMsSysInfo, EN_ASPECT_RATIO_TYPE VideoScreen);
INTERFACE U16 msAPI_VD_GetVTotal(void);
INTERFACE void msAPI_VD_Parameter_Initial(void);
INTERFACE void msAPI_EnableOutputVideo(MS_SYS_INFO *penMsSysInfo);
//LACHESIS_070110
INTERFACE void msAPI_VD_SetBlacklevel( U16 u16Blacklevel );
INTERFACE void msAPI_VD_SetRegister(U16 reg_offset, U8 value, U8 bit_mask);
/* H sensitivity related APIs */
#define msAPI_VD_Hsen_Set_Detect_Win(u8DetectWinBeforeLock, u8DetectWinAfterLock) MDrv_VD_Hsen_Set_Detect_Win(u8DetectWinBeforeLock, u8DetectWinAfterLock)
#define msAPI_VD_Hsen_Set_Cntr_Before_Lock(u8CntrFail, u8CntrSync) MDrv_VD_Hsen_Set_Cntr_Before_Lock(u8CntrFail, u8CntrSync)
#define msAPI_VD_Hsen_Set_Cntr_After_Lock(u8CntrSync) MDrv_VD_Hsen_Set_Cntr_After_Lock(u8CntrSync)
/* H/V slice level related APIs */
typedef enum
{
VD_SLICE_MODE_V_MANUAL = 1,
VD_SLICE_MODE_H_MANUAL = 2,
} VD_SLICE_MODE_TYPE;
typedef enum
{
VD_SLICE_LEVEL_2_8 = 0,
VD_SLICE_LEVEL_4_8 = 1,
VD_SLICE_LEVEL_5_8 = 2,
VD_SLICE_LEVEL_6_8 = 3,
} VD_SLICE_LEVEL_TYPE;
#define msAPI_VD_Slice_Set_Mode(u8SliceMode) MDrv_VD_Slice_Set_Mode(u8SliceMode)
#define msAPI_VD_Slice_Set_V_Level(u8VLevel) MDrv_VD_Slice_Set_V_Level(u8VLevel)
#define msAPI_VD_Slice_Set_H_Level(u8HLevel) MDrv_VD_Slice_Set_H_Level(u8HLevel)
/* AGC related APIs */
typedef enum
{
VD_AGC_MODE_AUTO_0 = 0,
VD_AGC_MODE_AUTO_1 = 1,
VD_AGC_MODE_AUTO_2 = 2,
VD_AGC_MODE_MANUAL = 3, // manual mode
} VD_AGC_MODE_TYPE;
typedef enum
{
VD_AGC_COARSE_GAIN_X_0_5 = 0, // x0.5
VD_AGC_COARSE_GAIN_X_1 = 1, // x1
VD_AGC_COARSE_GAIN_X_2 = 2, // x2
VD_AGC_COARSE_GAIN_X_4 = 3, // x4
} VD_AGC_COARSE_GAIN_TYPE;
typedef U16 VD_AGC_FINE_GAIN_TYPE; // the value decrease and the gain increase
#define VD_AGC_FINE_GAIN_X_2 0x500 // x2
#define VD_AGC_FINE_GAIN_X_1 0xE00 // x1
#define msAPI_VD_AGC_Set_Mode(u8AgcMode) MDrv_VD_AGC_Set_Mode(u8AgcMode)
#define msAPI_VD_AGC_Set_Coarse_Gain(u8AgcCoarseGain) MDrv_VD_AGC_Set_Coarse_Gain(u8AgcCoarseGain)
#define msAPI_VD_AGC_Set_Fine_Gain(u16AgcFineGain) MDrv_VD_AGC_Set_Fine_Gain(u16AgcFineGain)
/* Color kill level control related APIs */
typedef enum
{
VD_COLOR_KILL_LEVEL_2_PERCENT = 0x10,
VD_COLOR_KILL_LEVEL_3_PERCENT = 0x20,
VD_COLOR_KILL_LEVEL_4_PERCENT = 0x30,
VD_COLOR_KILL_LEVEL_5_PERCENT = 0x50,
VD_COLOR_KILL_LEVEL_6_PERCENT = 0x70,
VD_COLOR_KILL_LEVEL_7_PERCENT = 0x90,
VD_COLOR_KILL_LEVEL_8_PERCENT = 0xD0,
VD_COLOR_KILL_LEVEL_9_PERCENT = 0xFF,
} VD_COLOR_KILL_LEVEL_TYPE;
#define msAPI_VD_Color_Kill_Level(u8ColorKillLevel) MDrv_VD_Color_Kill_Level(u8ColorKillLevel)
#undef INTERFACE
#endif /* MSAPI_VD_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -