#ifndef _DRV_VIP_INTERNAL_H #define _DRV_VIP_INTERNAL_H #include #include #include #include "drv_types.h" #include #include "drv_vip_external.h" #define ceil(n, d) ((n)/(d) + ((n)%(d) != 0)) #define round(n, d) ((n>0)?((2*(n)+(d))/(2*(d))):((-1)*((-2*(n)+(d))/(2*(d))))) #define mips1_byte(x ,y) { *((UINT8 *)(x))=y; udelay(10); } #define mips1_word(x ,y) { *((UINT32 *)(x))=y; udelay(10); } #define mips1_byte_delay(x ,y) { *((UINT8 *)(x))=y; udelay(10); } #define mips1_word_delay(x ,y) { *((UINT32 *)(x))=y; udelay(10); } #define mips1_byte_nodelay(x ,y) { *((UINT8 *)(x))=y;} #define mips1_word_nodelay(x ,y) { *((UINT32 *)(x))=y;} #define H264 0x1b//for dtv StreamType #define AVS 0x42 //Jimmy 2008-01-22 Add to solve auido problem under PIP/POP mode #define VIP_ProcessDelayTime 16*90 //used by VIP and PQ #ifdef CONFIG_CRYSTAL_USE_24MHZ #define SYSTEM_CLK 24000000 #else #define SYSTEM_CLK 24576000 //24.576MHz #endif #if (CONFIG_CHIPID == 0x131) || (CONFIG_CHIPID == 0x8506) || (CONFIG_CHIPID == 0x6710) #define REFCLK 24000 #else #define REFCLK 24576 #endif #define field_remain_to_resume_PQFun 2 //Why here?? #define RGB 0 #define YCC 1 #define YPP 2 //709 #define YCC_601 1 #define YCC_709 2 #define YUV_422 3 #define YUV_444 4 #define YUV_FCC 5 #define YUV_624 6 #define YUV_170M 7 #define YUV_240M 8 #define YUV_444C10 9 #define YUV_444C8 10 #define YUV_422C10 11 #define YUV_422C8 12 #define YUV_422_888 13 #define YUV_444_888 14 #define DISABLE 0 #define ENABLE 1 #define PROGRESSIVE 0 #define INTERLACE 1 //SYNC processes define #define SYNC_OK 0 #define SYNC_ERR -1 #define SYNC_DETECT_ERR -2 #define SYNC_UNSTABLE -3 //ADC phase detect define #define POS_LINE_MODE 0 #define NEG_LINE_MODE 1 #define ALL_LINE_MODE 2 #define PHASE_SINGLE_LINE_MODE 3 #define PHASE_DOUBLE_LINE_MODE 4 #define PHASE_FRAME_MODE 5 #define PHASE_FRAME_CMP 6 #define PC_POSITION_VER_2 #define VIP_FLIP_FUN 1 #define DYNAMIC_BACKLIGHT #define DISABLE_DEBUG 1 //for 330 code reduced option #define DynamicBacklight_EnergyEfficiency #if CONFIG_CHIPID!=0x330 #define VideoAlignment 16 //16 byte memeory alignment for saving memory usage #define JPEGAlignment 256 #define ENABLE_ADC_FIXED_LINE_WORK_AROUND 1 #else #define VIP_IMPROVE_ITEM_ENABLE_3 0 #define VideoAlignment 256 #endif #if defined CONFIG_SUPPORT_ALL_ACTION_SHOW_BLUE_SCREEN || defined CONFIG_SUPPORT_ACTION_SHOW_BLUE_SCREEN_EXCEPT_MEDIA #define VIP_BLACKSCREEN 0 #else #define VIP_BLACKSCREEN 1 #endif #define ScreenColorInOvsc 1 #define FixWhiteScreen 0 #define ADJUST_NR_By_Yavg #define VIP_MERGE_ADC 1 #define rs 1 #define VIP_IRQ 33 #define VIP_V_SYNC_IRQ 56 #define ENABLE_NXP_UFRC 0 #define DESPERATE_CASE_FURTHER_FETCH 4 //#define VIP_ADAPTIVE_FRAME_RATE #define WORKAROUND_BANDWIDTH_HALF_MOTION //support half-motion function to saving memory usage //#if CONFIG_CHIPID == 0x330 #if defined(CONFIG_VIP_COLOR_FORMAT_Y8BIT) || CHIP_ID_INDEX>=CHIP_ID_533 #define WORKAROUND_BANDWIDTH_Y8 #endif //#define WORKAROUND_BANDWIDTH_LASTNUM #ifdef WORKAROUND_BANDWIDTH_LASTNUM #define set_all_lastnum_to_0 #endif #if defined(CONFIG_FREERUN_MODE)|| defined(CONFIG_FRAMELOCK_CLOSE) || defined(CONFIG_DISABLE_LVDS_CLOCK_CONTROL) #define VIP_FREERUN_MODE #endif #define LOGO_PROLONG #define COMPARE_DROP_FRAME 2 #define VIP_PANORAMIC 0 #define VIP_THUMBNAIL 1 enum{ NO_FLIP, HV_FLIP, H_FLIP, V_FLIP, FLIP_MAX, }; enum{ PTN_DISABLE, PTN_HORIZONTAL, PTN_VERTICAL, }; enum { CENTERING_FAIL, // Centering failed CENTERING_H, // Only horizontal centering OK CENTERING_V, // Only vertical centering OK CENTERING_HV // Both horizontal and vertical centering OK }; //#define Always_define_max_memory #if defined(CONFIG_SUPPORT_ATV_PAL)|| defined(CONFIG_SUPPORT_ATV_SECAM) #define REFERTO_SRC_ASPECT //wss #endif #define myrprintk( fmt, args...) printk(KERN_EMERG"\e[31m [%s-%d] "fmt "\e[0m\n",__FUNCTION__, __LINE__,## args) #define myprintk( fmt, args...) printk(KERN_EMERG"[%s-%d] "fmt " \n",__FUNCTION__, __LINE__,## args) #ifdef __KERNEL__ #ifndef CONFIG_SUPPORT_DEBUG_MESSAGE #define VIPErrorPrint( fmt, args...) //DBG_MSG1(DBGCFG_VIP,fmt,## args) #define VIPFlipDebugPrint(fmt, args...) //DBG_MSG1(DBGCFG_VIP,"[VIP_HW] "fmt"\n",## args) #define KICDebugPrint( fmt, args...) DBG_MSG1(DBGCFG_VIP,"[VIP_KIC] "fmt,## args) #define OB_DebugMsg(fmt, args...) //DBG_MSG1(DBGCFG_VIP,"[VIP_OB] "fmt,## args) #define VIPDebugPrint(fmt, args...) DBG_MSG1(DBGCFG_VIP,"[VIP_HW] %d "fmt"\n",__LINE__,## args) #define TemDebugPrint(fmt, args...) //DBG_MSG1(DBGCFG_VIP,fmt,## args) //joshua remove me!! #else #if DISABLE_DEBUG #define VIPErrorPrint( fmt, args...) DBG_MSG1(DBGCFG_VIP,fmt,## args) #define VIPFlipDebugPrint(fmt, args...) DBG_MSG1(DBGCFG_VIP,"[VIP_HW] "fmt"\n",## args) #define KICDebugPrint( fmt, args...) DBG_MSG1(DBGCFG_VIP,"VIP] "fmt,## args) #define OB_DebugMsg(fmt, args...) DBG_MSG1(DBGCFG_VIP,"[VIP_OB] "fmt,## args) #define VIPDebugPrint(fmt, args...) DBG_MSG1(DBGCFG_VIP,"[VIP_HW] %d "fmt"\n",__LINE__,## args) #define TemDebugPrint(fmt, args...) DBG_MSG1(DBGCFG_VIP,fmt,## args) //joshua remove me!! #else #define VIPErrorPrint( fmt, args...) //DBG_MSG1(DBGCFG_VIP,fmt,## args) #define VIPFlipDebugPrint(fmt, args...) //DBG_MSG1(DBGCFG_VIP,"VIP]"fmt"\n",## args) #define KICDebugPrint( fmt, args...) //DBG_MSG1(DBGCFG_VIP,"VIP]"fmt,## args) #define OB_DebugMsg(fmt, args...) //DBG_MSG1(DBGCFG_VIP,"VIP]"fmt,## args) #define VIPDebugPrint(fmt, args...) //DBG_MSG1(DBGCFG_VIP,"VIP]"fmt"\n",## args) #define TemDebugPrint(fmt, args...) //DBG_MSG1(DBGCFG_VIP,fmt,## args) //joshua remove me!! #endif #endif #endif #define diff(x,y) (x>y?x-y:y-x) enum // Mapping To L1 Driver Definition { EXTS=SOURCE_EXTS,//ADC CVD2=SOURCE_CVD2, MPEG=SOURCE_MPEG, HDMI=SOURCE_HDMI, JPEG=SOURCE_JPEG, PATN=SOURCE_PATTERN, INVALID = SOURCE_NON }; //used by ADC enum { DSUB=0, YPP1, YPP2, YPP3, SCART_RGB1 }; enum { VESA_MODE=0, PRESET_MODE, USER_MODE, USER_NEW_MODE, NEW_MODE, YPP_MODE, SCART_RGB_MODE, UNSUPPORT_MODE, SUPPORT_MODE, UNSTABLE_MODE, NOSIGNAL_MODE=UNSTABLE_MODE }; //used by all drivers enum { NormalScreen, BlueScreen, BlackScreen, }; //08/30/2010 added by cdlin to pass RGB Guatization Range to VIP enum { RGBRange_Default=0, RGBRange_LimitedRange, RGBRange_FullRange, RGBRange_NotDefined, }; //~cdlin //Used by Hdmi for 3D requirement enum { FRAME_PACKING=0, FIELD_ALTERNATIVE, LINE_ALTERNATIVE, SIDE_BY_SIDE_FULL, L_DEPTH, L_DEPTH_GRAPHICS_GRAPHICSDEPTH, TOP_AND_BOTTOM, SIDE_BY_SIDE_HALF=8, NONE_3D=0xf, REGULAR_2D=NONE_3D, AUTO_3D=0x10, SENSIO, RealD, FRAME_SEQUENTIAL, TRANS_2D_TO_3D=0x20, TRANS_3D_TO_2D, //dispaly just one view according to 3d mode sent by source }; enum{ DYNAMIC_BL_FORMAL, DYNAMIC_BL_ENERGY_EFFICIENCY, DYNAMIC_BL_T_P, }; typedef enum _DRV_ADI_SOURCE { eADI_SOURCE_EXTS = 0x00, eADI_SOURCE_CVD2 = 0x01, eADI_SOURCE_MPEG = 0x02, eADI_SOURCE_V656 = 0x04, eADI_SOURCE_HDMI = 0x05, eADI_SOURCE_JPEG = 0x06, eADI_SOURCE_PATTERN = 0x07, eADI_SOURCE_NONE = 0xff, } DRV_ADI_SOURCE; enum { RESMODE_1920X1080, RESMODE_1280X720, RESMODE_720X480, RESMODE_720X576, RESMODE_NON_STD, }; enum { #if (CONFIG_CHIPID == 0x330) VIP_SENDINFO_SPINLOCK, FLIP_SPINLOCK, #endif MUTE_SPINLOCK, MAX_VIP_SPINLOCK }; enum { TimerADCPhaseChange, #ifdef CONFIG_ENABLE_MIR TimerMirTimingChange, #endif MaxTimerNo }; enum //HDMI AVI Scan Information { HDMINONE, HDMIOVERSCAN, HDMIUNDERSCAN, HDMIFUTUREUSE, }; enum { TimerRun, TimerStop, TimeOut }; enum { DEFAULT=0, // default size, no centering CENTER, // default size, image centering AUTO_FIXED, // auto-fixed ratio image to panel H or V max. resolution FULL_SCREEN, }; enum //jpeg & flipQ format { none, RGB888, ARGB888, RGB565, }; #if VIP_UFRC3D_ENABLE || VIP_G3D_ENABLE typedef enum { VIP_BLT_CHANGE_3D_MODE_TO_1080 = 0, //Normal or frame interleaving VIP_BLT_CHANGE_3D_MODE_TO_SBS = 1, // Side By Side VIP_BLT_CHANGE_3D_MODE_TO_TB = 2, // Top/Botton VIP_BLT_CHANGE_3D_MODE_TO_720 = 3, }VIP_3DBltMode; #endif typedef enum _PQTOOL_SOURCE { PQTOOL_SOURCE_ATV, PQTOOL_SOURCE_AV, PQTOOL_SOURCE_SV, PQTOOL_SOURCE_COMPONENT, PQTOOL_SOURCE_HDMI, PQTOOL_SOURCE_DTV, PQTOOL_SOURCE_JPEG, PQTOOL_SOURCE_PC, PQTOOL_SOURCE_DVI, PQTOOL_SOURCE_END = 0xff } PQTOOL_SOURCE; typedef enum { VIP_SUCCESS, VIP_FAIL, }VIP_STATUS; typedef struct _PANEL_SET //for dynamic frame lock 50/60 Hz { UINT32 ulHTotal; UINT32 ulVTotal; UINT8 ucHSyncStart; UINT8 ucHSyncEnd; UINT8 ucVSyncStart; UINT8 ucVSyncEnd; UINT32 ulHStart; UINT32 ulHEnd; UINT32 ulVStart; UINT32 ulVEnd; UINT32 ulReg11C; UINT32 ulReg120; #if CONFIG_CHIPID!=0x330 UINT32 ulReg124; #endif UINT32 ulReg60C; UINT32 ulMaxVTotal; }PANEL_SET,*pPANEL_SET; typedef struct _VIP_MPEG_ASPECT_INFO { UINT8 ucAspectRatio; //pixel aspect ratio from vformat UINT8 ucAFR; UINT32 uiStartLineBottomBar; UINT32 uiEndLineTopBar; UINT32 uiStartPixelRightBar; UINT32 uiEndPixelLeftBar; UINT8 ucStreamType; UINT32 uiSarWidth; UINT32 uiSarHeight; UINT8 ucOverscanApprFlag; }VIP_MPEG_ASPECT_INFO,*PVIP_MPEG_ASPECT_INFO; typedef struct _VIP_InterfaceKIC { UINT8 ucInputSource; // MPEG, HDMI, CVD2, VGA, YPP_INPUT, V656 UINT32 uiHfreq; // H sync frequency UINT32 uiVfreq; // V sync frequency UINT32 uiHtotal; // H total UINT32 uiVtotal; // V total UINT32 uiHactive; // input horizontal resouluton UINT32 uiVactive; // input vertical resolution UINT32 uiHstart; // H start UINT32 uiHend; // H end UINT32 uiVstart; // V start UINT32 uiVend; // V end BOOL ucHpol; // H polarity 1=+, 0=- BOOL ucVpol; // V polarity 1=+, 0=- BOOL bInterlace; // 1=interlaced, 0=progressive UINT8 ucAspectRatio; // 1:1, 4:3, 16:9, 1:2.21, 14:9, Zoom1, Zoom2, and Refer Source Path Spec. UINT8 ucFrameRate; // 24000/1001, 24, 25, 30000/1001, 30, 50, 60 UINT8 ucColorimetry; // RGB, ITU601, ITU709 UINT8 ucDataFormat; // 4:2:0, 4:2:2, 4:4:4 UINT8 ucSubInputSource; // UINT8 ucStdColorSystem; // PAL / NTSC / SECAM UINT8 uc3DStructure; UINT32 ucWidthRatio; UINT32 ucHeightRatio; union { //MPEG info struct { VIP_MPEG_ASPECT_INFO MpegAspect; BOOL bMPEGIFrameOnly; // MPEG I-Frame Only or not UINT32 ucBurstAmplitude; // for MPEG auto-saturation }; //HDMI info struct { BOOL bDviEnable; // 1=DVI, 0=HDMI UINT8 ucR_AVI_S; //scan information (overscan, underscan) UINT8 ucRGBRange; //08/30/2010 added by cdlin to pass RGB Guatization Range to VIP UINT8 ucITC; //input is from PC graphic card (prefer underscan) }; //ADC info struct { UINT32 uiTableHstart; UINT32 uiTableVstart; UINT32 uiHsync_width; UINT8 ucEnlargeWidthRate; }; //cvd2 struct { UINT8 ucSlr_422_en; //to control reg Slr_422_en }; }; UINT32 uiTimingIndex; //Timing Index value BOOL bIsScart; }VIP_InterfaceKIC,*PVIP_InterfaceKIC; typedef struct _SYNC_DETECT { UINT16 usHSyncCnt; UINT16 usVSyncCnt; UINT16 usHFreq; UINT16 usVFreq; UINT8 ucHPol; UINT8 ucVPol; UINT8 ucADCInterlaceMode; }SYNC_DETECT; typedef struct _VIP_RECT { UINT16 ulHStart,ulHEnd; UINT16 ulVStart,ulVEnd; }VIP_RECT,*PVIP_RECT; typedef struct _VIP_ImageInfo { UINT32 uiAddr; UINT32 uiWidth; UINT32 uiHeight; UINT32 uiYLineOffset, uiUVLineOffset, uiYSize, uiUVSize; UINT8 ucColorFormat; }VIP_ImageInfo, *PVIP_ImageInfo; #ifdef CONFIG_AMBIGLOW typedef struct _AMBI_Color { UINT32 ulY,ulU,ulV,ulRed,ulGreen,ulBlue; }VIP_AMBI_Color; #endif typedef struct _VIP_OSD_Bypass_Window { UINT8 ucValid; UINT8 ucEnable; UINT16 x0; UINT16 y0; UINT16 x1; UINT16 y1; }VIP_OSD_Bypass_Window, *pVIP_OSD_Bypass_Window; typedef struct _VIP_FLASH_INFO { UINT32 PANELSET_SHADOWADDR; UINT32 GAMMATABLE_SHADOWADDR; UINT32 LOGO_SHADOWADDR; UINT32 VIPTABLE_SHADOWADDR; UINT32 LUTTABLE_SHADOWADDR; } VIP_FLASH_INFO; typedef struct _VIP_SOURCE_INFO { UINT8 ucUserSource; UINT8 ucSubSource; UINT8 ucAspectRatio; UINT8 ucSrcAspectRatio; UINT8 ucCodedFrame;//for DTV AFD UINT8 ucStreamType;//for DTV UINT8 ucScartPinAspectRatio; UINT16 cHOverScan; UINT16 cVOverScan; UINT16 usTopOverScan; UINT16 usBottomOverScan; UINT16 usLeftOverScan; UINT16 usRightOverScan; BOOL bTTPATMode; INT8 cScreenMode; INT8 cHPos; INT8 cVPos; #if (CONFIG_CHIPID == 0x330) INT8 cHSize; INT8 cVSize; #endif VIP_RECT rcOutput; BOOL bInterlace; UINT16 ulInputHSize; UINT16 ulInputVSize; BOOL bSourceActive; BOOL bVideoFreezed; BOOL bSignalChangedDuringFreeze; UINT32 bDviEnable:1; BOOL bOutputAnyWnd; BOOL bDVDSource; BOOL bNetworkSource; BOOL bOutputAnyWndbyAP; }VIP_SOURCE_INFO; typedef enum { RESOLUTION_SD, RESOLUTION_HD, }VIP_InputResoution; typedef struct _VIP_OSD_EVENT_ { void (*VIP_OsdEventFun1)(void); void (*VIP_OsdEventFun2)(void); }VIP_OSD_EVENT,*PVIP_OSD_EVENT; typedef struct _OutWin { INT16 iHStart,iHEnd; INT16 iVStart,iVEnd; }OutWin,*pOutWin; typedef enum { PE_PLAYBACK_INIT = 0, PE_PLAYBACK_STOP, PE_PLAYBACK_PLAY, PE_PLAYBACK_PAUSE, PE_PLAYBACK_FF, //fast forward PE_PLAYBACK_FB, // fast backward PE_PLAYBACK_SF, //slow forward PE_PLAYBACK_SB, // slow backward } PE_Playback_State_t; enum { PC_HORIZONTAL, PC_VERTICAL, }; void VIP_GetSource(UINT8 *ucUserSource, UINT8 *ucSubSource); void VIP_Close(void); void VIP_EventSourceSelect(UINT8 ucUserInputSource); void VIP_GetScreenStatus(UINT8 *ucScreenMode); void VIP_VformatDirectUnmuteScreen(UINT32 DelayTime); void VIP_MuteScreen (void); void VIP_MuteScreen_ISR(void); void VIP_MuteScreenDirectly(void); void VIP_UnmuteScreen(void); void VIP_EventSetFunction(UINT8 ucFunID, INT32 iValue, INT32 iParm1, INT32 iParm2); void VIP_SetAutoTuneStatus(UINT8 bIsFinished); void VIP_GetAutoTuneStatus(UINT8 *pbRetIsFinished); void VIP_SetMpegAspect(PVIP_MPEG_ASPECT_INFO pMpegAspect); void VIP_GetInputInfo (PVIP_InputInfo pVIP_InputInfo ); void VIP_GetVIPHTotal (UINT16 *wHTotal ); void VIP_SetMuteStatus (UINT8 cmd, UINT32 eMuteStatus, UINT32 iParm1, UINT32 iParm2); void VIP_GetMuteStatus (VIP_Mute_Flag_st *peRetStatus); void VIP_VideoFreeze(BOOL ucEnable); void VIP_SetPreviewWndow(PVIP_RECT pOutput); void VIP_EventControl(UINT8 ucLock, UINT8 ucMode); void VIP_Coefficient_Table(UINT8 ucType); void VIP_SetVP6Flag(UINT8 ucPlayVP6En); #ifdef CONFIG_AMBIGLOW void VIP_SetAmbiInfoFromOsd(VIP_AMBI_Color* Ambi_OsdInfo); void VIP_RegisterAmbiCalculateFun(void *pFunction); #endif void VIP_UpdateInputFrameRate(INT32 iFrameRate_x100); void VIP_SetFrameLock(BOOL fEn); void VIP_SingleColorPatternForOffsetAdjust(UINT8 ucEnable, UINT8 ucRed, UINT8 ucGreen, UINT8 ucBlue); void VIP_SingleColorPatternSetColor(UINT8 ucRed, UINT8 ucGreen, UINT8 ucBlue); void VIP_EventSingleColorPatternFromDpy(UINT16 bEnable,UINT32 uRGB); void VIP_SetDeinterlaceBobTop(UINT8 ucEnable); void VIP_SetOverScanByPixel(UINT16 usVTop, UINT16 usVBottom, UINT16 usHLeft, UINT16 usHRight); void VIP_GetOverScanByPixel(UINT16* usVTop, UINT16* usVBottom, UINT16* usHLeft, UINT16* usHRight, BOOL* fUnitByRatio); void VIP_GetPanelResolution(UINT16* ulWidth, UINT16* wlHeight); void VIP_SetHDMIScreenMode(UINT8 ucMode); /** * @brief JPEG notice VIP that display mode in JPEG source * * This function set the display mode of JPEG * * @param : ucDisplayMode, the adjustment range is 0 to 1, 0 is full screen; 1 is preview mode * @return : n/a */ void VIP_Jpeg_SetDisplayMode(UINT8 ucDisplayMode); /** * @brief get display mode in JPEG source * * This function return the display mode of JPEG * * @param : n/a * @return : 0 is full screen; 1 is preview mode */ UINT8 VIP_Jpeg_GetDisplayMode(void); void VIP_AdiPhaseDetect(UINT8 ucPath, UINT8 ucMode, UINT16 usLine, UINT32 *pulPval, UINT32*pulNval, UINT32 *pulCmp22 ,UINT8 ucDataFormat,UINT8 ucCmpThd); UINT8 VIP_InputActiveDetect(UINT8 ucInputSource); INT8 VIP_InputSyncDetect(UINT8 ucPath, UINT8 ucInputsource,SYNC_DETECT*); void VIP_Clock(INT32); void VIP_ADCIntClear (void); void VIP_ResetADI(void); UINT16 VIP_GetVStart(void); void VIP_Interrupt (INT8 cEnable); void VIP_EXTS_SetOriActive(UINT16 Hactive, UINT16 Vactive); UINT32 VIP_FrameCompare(UINT8 ucFrameCount, UINT8 ucCmpthd); INT8 VIP_TopDetect(UINT8 ucInputsource); void VIP_simulate_Compensation_function(VIP_RECT rcCenter,UINT32 *R,UINT32 *G,UINT32 *B); UINT32 VIP_GetAdiAvgYColor(void); void VIP_MotionCompenCtlWin(UINT8 ucEnable, UINT16 x0, UINT16 y0, UINT16 x1,UINT16 y1); //#ifdef CONFIG_SUPPORT_MHEG5 void VIP_SetOutputWindow(INT16 siX, INT16 siY, UINT16 usWidth, UINT16 usHeight, BOOL fMHEG5Active, UINT8 bInfo); void VIP_OBSetMHEG5(UINT8 ucEnable); UINT8 VIP_OBGetTVAspectRatio ( void ); UINT8 VIP_OBGetAspectMode(void); void VIP_GetFormatConversion(VIP_MHEG5_DecFC *decFC); void VIP_DtvInputVideoOK(void); UINT8 VIP_GetAFDAR(void); void VIP_OBSetVIPUpdate(BOOL fMheg5Active, UINT8 bInfo); void VIP_OBSetSceneAR(VIP_MHEG5_SceneAspectRatio eSceneAR, BOOL fMheg5Active, UINT8 bInfo); void VIP_OBSetWideAlignment(VIP_MHEG5_WideAignment eWideAlignment, BOOL fMheg5Active, UINT8 bInfo); //#endif void VIP_OsdEvenFunc(PVIP_OSD_EVENT pVipOsdEventFun); UINT32 VIP_GetSourcePixelClock(void); void VIP_SetVDIMode(void); UINT8 VIP_GetInputDataFormat(void); void VIP_SetInputDataFormatBGR(BOOL fIsBGR); BOOL VIP_IsInputDataFormatBGR(void); UINT8 VIP_GetInputColorStandard(void); UINT8 VIP_SetInputColorStandard(UINT8 cInputColorStandard); UINT8 VIP_GetInterlaceMode(void); UINT16 VIP_GetlInputCaptureVSize(void); INT32 PQ_GetCurrContrastValue(void); UINT8 VIP_GetScreenOnSt(void); UINT16 VIP_GetInputHSize(void); UINT16 VIP_GetInputVSize(void); UINT16 VIP_GetOutputHSize(void); UINT16 VIP_GetOutputVSize(void); UINT8 VIP_GetInputResMode(void); UINT8 VIP_GetInput3dType(void); UINT8 VIP_GetOutput3dType(void); UINT16 VIP_GetScalerPreScaleH(void); #if (CONFIG_CHIPID == 0x330) UINT16 VIP_GetCHIP_ID(void); #endif UINT8 VIP_GetStdColorSystem(void); UINT8 VIP_GetUserSource(void); BOOL VIP_IsSourceDTV(void); BOOL VIP_IsSourcePvr(void); BOOL VIP_IsPCSource(void); BOOL VIP_IsATVSource(void); BOOL VIP_IsSVSource(void); BOOL VIP_IsAVSource(void); BOOL VIP_IsDVIMode(void); BOOL VIP_GetITCStatus(void); BOOL VIP_IsJPEGSource(void); void VIP_SetSourceIsJPEG(BOOL ucEnable); BOOL VIP_IsSCARTSource(void); UINT16 VIP_GetScalerPreScaleV(void); UINT8 VIP_IsSingleColorOvscInDpyEnable(void); UINT8 VIP_RunDVIMode(void); UINT16 VIP_GetPanelWidth(void); UINT16 VIP_GetPanelHeight(void); void VIP_GetSyncLatchCount(UINT8 ucSource, UINT32* pulHscnt, UINT32* pulVscnt); BOOL VIP_SendInformation(PVIP_InterfaceKIC pInterfaceKIC); void VIP_SetATVSnowSetting(void); BOOL VIP_Centering(VIP_RECT* pRect, BOOL bUseCenteringSize); BOOL VIP_CenteringWindow(VIP_RECT* pRect); void VIP_NoticeModeNotSupport(UINT8 ucPath, BOOL bEnable); UINT8 VIP_GetPanelInvert(void); BOOL VIP_GetDefPanelInvert(void); UINT8 VIP_GetBobTopSt(void); void VIP_GetDispalyWindow(UINT16 *pHStart, UINT16 *pHEnd, UINT16 *pVStart, UINT16 *pVEnd); void VIP_JpegDisplayInit(void); #ifdef CONFIG_SUPPORT_JPEG_ASPECT_RATIO UINT32 VIP_Jpeg_PicsDisplay (UINT32 uiAddr, INT8 cShow, INT8 cMode, UINT32 uiHAddrValid, UINT32 uiVAddrValid, UINT32 uiWidth, UINT32 uiHeight, UINT32 uiLineOffset, UINT32 uiDisplaymode); #else UINT32 VIP_Jpeg_PicsDisplay (UINT32 uiAddr, INT8 cShow, INT8 cMode, UINT32 uiHAddrValid, UINT32 uiVAddrValid, UINT32 uiWidth, UINT32 uiHeight, UINT32 uiLineOffset); #endif UINT16 VIP_Jpeg_GetZoomRatio(void); UINT16 VIP_Jpeg_GetZoomOutRatio(void); UINT32 VIP_Jpeg_SetZoomOut (UINT32 uiAddr, INT8 cShow, INT8 cMode, UINT32 uiHAddrValid, UINT32 uiVAddrValid, UINT32 uiWidth, UINT32 uiHeight, UINT32 uiLineOffset); UINT32 VIP_Jpeg_SetPostScaleMode (INT8 cZoomRatio); UINT32 VIP_Jpeg_SetZoomOutRatio(INT8 cZoomOutRatio); #ifdef CONFIG_SUPPORT_JPEG_ASPECT_RATIO UINT32 VIP_Jpeg_SetAspectRatio (void); #endif UINT32 VIP_Jpeg_SetPan (INT8 cMode, UINT32 uiMovePixel); void VIP_Jpeg_GetPanPixel (UINT32 *uiUp, UINT32 *uiDown, UINT32 *uiLeft, UINT32 *uiRight); void VIP_SetPanelInvert(UINT8 ucEnable); void VIP_SetExtsInputWindow(UINT16 HStart, UINT16 HEnd, UINT16 VStart, UINT16 VEnd); void VIP_GetExtsInputWindow(UINT16 *HStart, UINT16 *HEnd, UINT16 *VStart, UINT16 *VEnd); void VIP_EventDVDSourceSelect(BOOL bIsDVDSource); void VIP_EventNetowrkSourceSelect(BOOL bIsNetworkSource); UINT8 VIP_IsNetworkSource(void); UINT8 VIP_JudgeDVDSource(void);//Differentiate YPbPr and DVD #ifdef CONFIG_ENABLE_MIR void VIP_MIR_SetTVOutFormat(BOOL fMirEn, VIP_TVOut_Timing_t ucMirDpyMode, BOOL fOSDEn); #endif void VIP_SetMPEGResetFlag(BOOL bEnable); void VIP_RgbToYCbCr(UINT8 Red, UINT8 Green, UINT8 Blue, UINT8 *Y, UINT8 *Cb, UINT8 *Cr); void VIP_YCbCrToRgb(UINT8 Y, UINT8 Cb, UINT8 Cr, UINT8 *Red, UINT8 *Green, UINT8 *Blue); void VIP_RgbToYuv(INT32 R, INT32 G, INT32 B, INT32 *Y, INT32 *U, INT32 *V); void VIP_SetTvfeMute(BOOL eStatus); void VIP_SetVIPMute(BOOL eStatus); void VIP_SetAPPMute(BOOL eStatus); #ifdef CONFIG_QSD void VIP_SetMTMute(BOOL eStatus); #endif void VIP_SetVideoResetMute(BOOL bMute); void VIP_SetVideoMuteColor(UINT8 wR, UINT8 wG, UINT8 wB); void VIP_SetTVFEMuteColorByAPP(BOOL fEn); void VIP_WaitScreenMute(void); void VIP_NoticeKmf_UnMute(void); UINT8 VIP_GetFrameBufferNum(void); UINT32 VIP_GetRGB2YCbCrRange(void); UINT32 VIP_GetRGBRange(void); void VIP_SetMonflg(UINT32 dMonflg); void VIP_VDIPause(BOOL cEnable); BOOL VIP_GetVDIPause(void); void VIP_ScreenPauseEnable(BOOL cEnable); void VIP_VDIPause_ISR(BOOL cEnable); void VIP_InitSetting(void); void VIP_SetStopNRAdjustFlag(unsigned char *bFlag); BOOL VIP_GetStopNRAdjustFlag(void); BOOL VIP_IsSupport3D(VIP_InputStruct_3D_t ucUserSet3DType); void VIP_SetZoomStatus (Vip_ZoomWindow vipzoom); BOOL VIP_GetBWModeStatus(void); #if CHIP_ID_INDEX >= CHIP_ID_131 UINT16 VIP_GetVideoDisplayVSize(int InputWidth,int InputHeight); #else UINT16 VIP_GetVideoDisplayVSize(void); #endif void PQ_SetATVStatus(BOOL bstatus); UINT16 VIP_GetVideoDisplayVStart(int InputWidth,int InputHeight); void VIP_PresetInfo(int InputWidth,int InputHeight,int InputFreq); UINT16 VIP_GetPanelVsyncStart(void); void VIP_Ready_to_call_Vformatter_init(int SrcFrom); void VIP_FlipQ_Init(UINT16 ulWidth, UINT16 ulHeight,INT8 cScreenMode,INT8 cDataFormat); void VIP_FlipQ_SetDisplay(UINT16 ulWidth, UINT16 ulHeight,INT8 cScreenMode,INT8 cDataFormat); void VIP_FlipQ_Destory(void); void VIP_FlipQ_SetFrame(INT8 cFrameNum); int VIP_FlipQ_GetFrameMemAddr(INT8 cFrameNum); VIP_InputResoution _VIP_CalcInputResolution(void); UINT8 _VIP_GetPreviewWndowStatus(void); UINT8 VIP_GetFlipMode(void); UINT8 VIP_GetFlipModeInMediaSrc(void); BOOL VIP_GetColorCrossEnable(void); UINT8 VIP_GetAspect(void); void VIP_Media_SetPlayStatus(UINT8 ucPlayStatus); UINT8 VIP_Media_GetPlayStatus(void); /** * @brief get the difference pixel number of previous frame and current frame * * This function count the different pixel of previous frmae and current frame, user can * distinguish recent frame is motion or static through this function * * @param n/a * @return unsigned integer data (0 ~ 1048576, ) */ UINT32 VIP_GetFieldDiff(void); /** * @brief get the status of 2:3 pull down * * This function report if current video processing by 2:3 pull down * * @param n/a * @return 1 as 2:3 pull down processing, 0 as regular processing */ UINT8 VIP_Get23Pulldwon(void); void VIP_SetHVPosition(UINT8 ucMode, INT32 iValue); INT32 VIP_GetHVPosition(UINT8 ucMode); UINT32 VIP_GetInputFramerate(void); #ifdef CONFIG_SUPPORT_MONITOR_POWERSAVE INT32 vip_init_forwakeup(void); #endif int VIP_GetADIDataRValueMax(void); int VIP_GetADIDataGValueMax(void); int VIP_GetADIDataBValueMax(void); int VIP_GetADIDataRValueMin(void); int VIP_GetADIDataGValueMin(void); int VIP_GetADIDataBValueMin(void); BOOL VIP_ReturnFreeRunFlag(void); #endif