1 //<MStar Software> 2 //****************************************************************************** 3 // MStar Software 4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5 // All software, firmware and related documentation herein ("MStar Software") are 6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7 // law, including, but not limited to, copyright law and international treaties. 8 // Any use, modification, reproduction, retransmission, or republication of all 9 // or part of MStar Software is expressly prohibited, unless prior written 10 // permission has been granted by MStar. 11 // 12 // By accessing, browsing and/or using MStar Software, you acknowledge that you 13 // have read, understood, and agree, to be bound by below terms ("Terms") and to 14 // comply with all applicable laws and regulations: 15 // 16 // 1. MStar shall retain any and all right, ownership and interest to MStar 17 // Software and any modification/derivatives thereof. 18 // No right, ownership, or interest to MStar Software and any 19 // modification/derivatives thereof is transferred to you under Terms. 20 // 21 // 2. You understand that MStar Software might include, incorporate or be 22 // supplied together with third party`s software and the use of MStar 23 // Software may require additional licenses from third parties. 24 // Therefore, you hereby agree it is your sole responsibility to separately 25 // obtain any and all third party right and license necessary for your use of 26 // such third party`s software. 27 // 28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29 // MStar`s confidential information and you agree to keep MStar`s 30 // confidential information in strictest confidence and not disclose to any 31 // third party. 32 // 33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34 // kind. Any warranties are hereby expressly disclaimed by MStar, including 35 // without limitation, any warranties of merchantability, non-infringement of 36 // intellectual property rights, fitness for a particular purpose, error free 37 // and in conformity with any international standard. You agree to waive any 38 // claim against MStar for any loss, damage, cost or expense that you may 39 // incur related to your use of MStar Software. 40 // In no event shall MStar be liable for any direct, indirect, incidental or 41 // consequential damages, including without limitation, lost of profit or 42 // revenues, lost or damage of data, and unauthorized system use. 43 // You agree that this Section 4 shall still apply without being affected 44 // even if MStar Software has been modified by MStar in accordance with your 45 // request or instruction for your use, except otherwise agreed by both 46 // parties in writing. 47 // 48 // 5. If requested, MStar may from time to time provide technical supports or 49 // services in relation with MStar Software to you for your use of 50 // MStar Software in conjunction with your or your customer`s product 51 // ("Services"). 52 // You understand and agree that, except otherwise agreed by both parties in 53 // writing, Services are provided on an "AS IS" basis and the warranty 54 // disclaimer set forth in Section 4 above shall apply. 55 // 56 // 6. Nothing contained herein shall be construed as by implication, estoppels 57 // or otherwise: 58 // (a) conferring any license or right to use MStar name, trademark, service 59 // mark, symbol or any other identification; 60 // (b) obligating MStar or any of its affiliates to furnish any person, 61 // including without limitation, you and your customers, any assistance 62 // of any kind whatsoever, or any information; or 63 // (c) conferring any license or right under any intellectual property right. 64 // 65 // 7. These terms shall be governed by and construed in accordance with the laws 66 // of Taiwan, R.O.C., excluding its conflict of law rules. 67 // Any and all dispute arising out hereof or related hereto shall be finally 68 // settled by arbitration referred to the Chinese Arbitration Association, 69 // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70 // Rules of the Association by three (3) arbitrators appointed in accordance 71 // with the said Rules. 72 // The place of arbitration shall be in Taipei, Taiwan and the language shall 73 // be English. 74 // The arbitration award shall be final and binding to both parties. 75 // 76 //****************************************************************************** 77 //<MStar Software> 78 //////////////////////////////////////////////////////////////////////////////// 79 // 80 // Copyright (c) 2008-2010 MStar Semiconductor, Inc. 81 // All rights reserved. 82 // 83 // Unless otherwise stipulated in writing, any and all information contained 84 // herein regardless in any format shall remain the sole proprietary of 85 // MStar Semiconductor Inc. and be kept in strict confidence 86 // ("MStar Confidential Information") by the recipient. 87 // Any unauthorized act including without limitation unauthorized disclosure, 88 // copying, use, reproduction, sale, distribution, modification, disassembling, 89 // reverse engineering and compiling of the contents of MStar Confidential 90 // Information is unlawful and strictly prohibited. MStar hereby reserves the 91 // rights to any and all damages, losses, costs and expenses resulting therefrom. 92 // 93 //////////////////////////////////////////////////////////////////////////////// 94 95 /////////////////////////////////////////////////////////////////////////////////////////////////// 96 /// file Mdrv_sc_3d.h 97 /// @brief Driver Interface 98 /// @author MStar Semiconductor Inc. 99 /////////////////////////////////////////////////////////////////////////////////////////////////// 100 101 #ifndef _MDRV_SC_3D_H_ 102 #define _MDRV_SC_3D_H_ 103 #undef INTERFACE 104 #ifdef DRV_SC_3D_C 105 #define INTERFACE 106 #else 107 #define INTERFACE extern 108 #endif 109 110 #ifndef DISABLE_3D_FUNCTION 111 112 #if HW_2DTO3D_SUPPORT 113 #define NBLK_H_MAX 120 114 #define NBLK_V_MAX 68 115 #define YMAX 0 116 #define YMIN 1 117 #define YCTRS 2 118 #define BLUE 3 119 #define YAVG 4 120 #define HEDGE 5 121 #define VEDGE 6 122 #define GREEN 7 123 #define BUILDING 8 124 #define YAVGEDGE 9 125 #define CBAVG 10 126 #define CRVG 11 127 #define OBJIBNDRY 12 128 #define OBJIDENT 13 129 #define YMAXBUFINDEX 9 130 #define YMINBUFINDEX 12 131 #define YAVGBUFINDEX 15 132 #define YHEDGEBUFINDEX 28 133 #define YVEDGEBUFINDEX 29 134 #define HBLOCKNUM 60 135 #define VBLOCKNUM 34 136 #define MAXINDEX 256 137 #define MAXARTGAIN 15 138 #define ELEMENTNUM 14 139 #define DDBANKOFFSET 0x00010000; //64K 140 #endif 141 142 143 typedef struct _PIXEL_DATA 144 { 145 MS_U16 R; 146 MS_U16 G; 147 MS_U16 B; 148 }PIXEL; 149 150 #define IS_INPUT_FRAME_PACKING(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_FRAME_PACKING)) 151 #define IS_INPUT_FIELD_ALTERNATIVE(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_FIELD_ALTERNATIVE)) 152 #define IS_INPUT_LINE_ALTERNATIVE(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_LINE_ALTERNATIVE)) 153 #define IS_INPUT_SIDE_BY_SIDE_FULL(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_SIDE_BY_SIDE_FULL)) 154 #define IS_INPUT_L_DEPTH(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_L_DEPTH)) 155 #define IS_INPUT_L_DEPTH_GFX_GFX_DEPTH(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_L_DEPTH_GRAPHICS_GRAPHICS_DEPTH)) 156 #define IS_INPUT_TOP_BOTTOM(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_TOP_BOTTOM)) 157 #define IS_INPUT_SIDE_BY_SIDE_HALF(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_SIDE_BY_SIDE_HALF)) 158 #define IS_INPUT_MODE_NONE(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_MODE_NONE)) 159 #define IS_INPUT_FRAME_ALTERNATIVE(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_FRAME_ALTERNATIVE)) 160 #define IS_INPUT_SIDE_BY_SIDE_HALF_INTERLACE(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_SIDE_BY_SIDE_HALF_INTERLACE)) 161 #define IS_INPUT_FRAME_PACKING_OPT(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_FRAME_PACKING_OPT )) 162 #define IS_INPUT_TOP_BOTTOM_OPT(eWin) ((pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_TOP_BOTTOM_OPT )) 163 #define IS_INPUT_NORMAL_2D(eWin) (pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_NORMAL_2D ) 164 #define IS_INPUT_NORMAL_2D_INTERLACE(eWin) (pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_NORMAL_2D_INTERLACE ) 165 #define IS_INPUT_NORMAL_2D_INTERLACE_PTP(eWin) (pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_NORMAL_2D_INTERLACE_PTP ) 166 #define IS_INPUT_SIDE_BY_SIDE_HALF_INTERLACE_OPT(eWin) (pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_SIDE_BY_SIDE_HALF_INTERLACE_OPT ) 167 #define IS_INPUT_NORMAL_2D_HW(eWin) (pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_NORMAL_2D_HW ) 168 #define IS_INPUT_CHECK_BOARD(eWin) (pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_CHECK_BORAD) 169 #define IS_INPUT_PIXEL_ALTERNATIVE(eWin) (pXCResourcePrivate->stdrvXC_3D._eInput3DMode[eWin] == E_XC_3D_INPUT_PIXEL_ALTERNATIVE) 170 171 #define IS_OUTPUT_MODE_NONE() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_MODE_NONE)) 172 #define IS_OUTPUT_LINE_ALTERNATIVE() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_LINE_ALTERNATIVE)) 173 #define IS_OUTPUT_TOP_BOTTOM() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_TOP_BOTTOM)||(pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_TOP_TOP)||(pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_BOTTOM_BOTTOM)) 174 #define IS_OUTPUT_SIDE_BY_SIDE_HALF() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_SIDE_BY_SIDE_HALF)||(pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_LEFT_LEFT)||(pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_RIGHT_RIGHT)) 175 #define IS_OUTPUT_FRAME_ALTERNATIVE() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_FRAME_ALTERNATIVE)) 176 #define IS_OUTPUT_FRAME_L() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_FRAME_L)) 177 #define IS_OUTPUT_FRAME_R() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_FRAME_R)) 178 #define IS_OUTPUT_FRAME_ALTERNATIVE_NOFRC() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_FRAME_ALTERNATIVE_NOFRC )) 179 #define IS_OUTPUT_LINE_ALTERNATIVE_HW() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_LINE_ALTERNATIVE_HW)) 180 #define IS_OUTPUT_PIXEL_ALTERNATIVE_HW() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_PIXEL_ALTERNATIVE_HW)) 181 #define IS_OUTPUT_CHECKBOARD_HW() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_CHECKBOARD_HW)) 182 #define IS_OUTPUT_FRAME_L_HW() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_FRAME_L_HW)) 183 #define IS_OUTPUT_FRAME_R_HW() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_FRAME_R_HW)) 184 #define IS_OUTPUT_FRAME_ALTERNATIVE_HW() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_FRAME_ALTERNATIVE_HW)) 185 #define IS_OUTPUT_TOP_BOTTOM_HW() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_TOP_BOTTOM_HW)) 186 #define IS_OUTPUT_SIDE_BY_SIDE_HALF_HW() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_SIDE_BY_SIDE_HALF_HW)) 187 #define IS_OUTPUT_FRAME_PACKING() ((pXCResourcePrivate->stdrvXC_3D._eOutput3DMode == E_XC_3D_OUTPUT_FRAME_PACKING)) 188 #define IS_OUTPUT_4K1K_120HZ_PANEL()\ 189 ((pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Width >= XC_4K2K_WIDTH_MIN) \ 190 && (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Height >= XC_FHD_HIGH_MIN) \ 191 && (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Height <= XC_FHD_HIGH_MAX) \ 192 && (1180 < pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16DefaultVFreq) \ 193 && (1220 > pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16DefaultVFreq)) 194 #define IS_OUTPUT_4K0_5K_240HZ_PANEL()\ 195 ((pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Width >= XC_FHD_HIGH_MAX) \ 196 && (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Height >= XC_4K_HALFK_HIGH_MIN) \ 197 && (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Height <= XC_4K_HALFK_HIGH_MAX) \ 198 && (2380 < pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16DefaultVFreq) \ 199 && (2420 > pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16DefaultVFreq)) 200 #define IS_OUTPUT_4K2K_60HZ_PANEL()\ 201 ((pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Width >= XC_4K2K_WIDTH_MIN) \ 202 && (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Height >= XC_4K2K_HIGH_MIN) \ 203 && (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Height <= XC_4K2K_HIGH_MAX) \ 204 && (580 < pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16DefaultVFreq) \ 205 && (620 > pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16DefaultVFreq) \ 206 && (!IsVBY1_16LANE((MS_U8)pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.eLPLL_Type))) 207 208 // 3d internal internal interface 209 INTERFACE MS_BOOL MDrv_SC_3D_IsOutputVfreq48hz(void *pInstance, SCALER_WIN eWindow, MS_U16 u16InputVFreq); 210 INTERFACE MS_BOOL MDrv_SC_3D_AdjustPreVerSrcForFramepacking(void *pInstance, SCALER_WIN eWindow); 211 INTERFACE MS_BOOL MDrv_SC_3D_IsIPMFetchNoLimitCase(void *pInstance, SCALER_WIN eWindow); 212 INTERFACE void MDrv_SC_3D_Variable_Init(void *pInstance); 213 INTERFACE void MDrv_SC_3D_Adjust_FillLBMode(void *pInstance, SCALER_WIN eWindow); 214 INTERFACE void MDrv_SC_3D_Adjust_PreVLength(void *pInstance, INPUT_SOURCE_TYPE_t enInputSourceType, 215 XC_InternalStatus *pSrcInfo, 216 SCALER_WIN eWindow); 217 INTERFACE void MDrv_SC_3D_Adjust_PreHorDstSize(void *pInstance, INPUT_SOURCE_TYPE_t enInputSourceType, 218 XC_InternalStatus *pSrcInfo, 219 SCALER_WIN eWindow); 220 INTERFACE void MDrv_SC_3D_Adjust_SubLineBufferOffset(void *pInstance, INPUT_SOURCE_TYPE_t enInputSourceType, 221 XC_InternalStatus *pSrcInfo, 222 SCALER_WIN eWindow); 223 INTERFACE MS_U16 MDrv_SC_3D_Adjust_PreVerDstSize(void *pInstance, INPUT_SOURCE_TYPE_t enInputSourceType, 224 XC_InternalStatus *pSrcInfo, 225 MS_U16 u16ScaleDst, 226 SCALER_WIN eWindow); 227 INTERFACE MS_U16 MDrv_SC_3D_Adjust_PostHorDstSize(void *pInstance, XC_InternalStatus *pSrcInfo, 228 MS_U16 u16ScaleDst, 229 SCALER_WIN eWindow); 230 INTERFACE MS_U16 MDrv_SC_3D_Adjust_PostHorSrcSize(void *pInstance, XC_InternalStatus *pSrcInfo, 231 MS_U16 u16ScaleSrc, 232 SCALER_WIN eWindow); 233 INTERFACE MS_U16 MDrv_SC_3D_Adjust_PostVerSrcSize(void *pInstance, XC_InternalStatus *pSrcInfo, 234 MS_U16 u16ScaleSrc, 235 SCALER_WIN eWindow); 236 INTERFACE void MDrv_SC_3D_Adjust_PostVLength(void *pInstance, XC_InternalStatus *pSrcInfo, 237 SCALER_WIN eWindow); 238 INTERFACE XC_FRAME_STORE_NUMBER MDrv_SC_3D_Adjust_FrameNum(void *pInstance, XC_FRAME_STORE_NUMBER u8FBNumType, 239 SCALER_WIN eWindow); 240 INTERFACE void MDrv_SC_3D_Adjust_DNRBase(void *pInstance, MS_PHY *pu32DNRBase0, 241 MS_PHY *pu32DNRBase1, 242 SCALER_WIN eWindow); 243 INTERFACE void MDrv_SC_3D_Adjust_OPMBase(void *pInstance, MS_PHY *pu32OPMBase0, 244 MS_PHY *pu32OPMBase1, 245 MS_PHY *pu32OPMBase2, 246 MS_PHY u32Offset, 247 SCALER_WIN eWindow); 248 INTERFACE void MDrv_SC_3D_Adjust_FetchOffset(void *pInstance, XC_InternalStatus *pSrcInfo, 249 SCALER_WIN eWindow); 250 INTERFACE MS_BOOL MDrv_SC_3D_FormatValidation(void *pInstance, XC_InternalStatus *pSrcInfo, 251 SCALER_WIN eWindow); 252 INTERFACE void MDrv_SC_3D_SetWriteMemory(void *pInstance, SCALER_WIN eWindow); 253 INTERFACE void MDrv_SC_3D_Adjust_MirrorDNROffset(void *pInstance, XC_InternalStatus *pSrcInfo, 254 MS_U16 *pu16V_SizeAfterPreScaling, 255 MS_U16 *pu16DNROffset, 256 MS_U16 *pu16Ratio, 257 SCALER_WIN eWindow); 258 INTERFACE void MDrv_SC_3D_AdjustMirrorCrop(void *pInstance, XC_InternalStatus *pSrcInfo,SCALER_WIN eWindow); 259 INTERFACE void MDrv_SC_3D_Adjust_DNROffset(void *pInstance, MS_U16 *pu16DNROffsetTemp,MS_U16 *pu16DNROffset, SCALER_WIN eWindow); 260 INTERFACE void MDrv_SC_3D_Adjust_CropWinWidth(void *pInstance, MS_U16 *pu16CropWinWidth,SCALER_WIN eWindow); 261 INTERFACE void MDrv_SC_3D_Adjust_DualOPMFetch(void *pInstance, MS_U16 *pu16Fetch,SCALER_WIN eWindow); 262 INTERFACE void MDrv_SC_3D_Adjust_PixelOffset(void *pInstance, XC_InternalStatus *pSrcInfo,MS_PHY *pu32FRCM_RPixelOffset,MS_U16 *pu16FRCM_ROffset,MS_U16 *pu16FRCM_ROffset3D, MS_BOOL bLeftSide, SCALER_WIN eWindow); 263 264 INTERFACE void MDrv_SC_3D_GetFP_Info(void *pInstance, XC_InternalStatus *pSrcInfo, 265 MS_U16 *pu16VactVideo, 266 MS_U16 *pu16VactSpace, 267 MS_BOOL bPreVscalingEna); 268 INTERFACE void MDrv_SC_3D_Disable_Crop(void *pInstance, XC_InternalStatus *pSrcInfo, SCALER_WIN eWindow); 269 INTERFACE MS_BOOL MDrv_XC_3D_LoadReg(void *pInstance, E_XC_3D_INPUT_MODE eInputMode, E_XC_3D_OUTPUT_MODE eOutputMode, XC_InternalStatus *pSrcInfo, SCALER_WIN eWindow); 270 INTERFACE MS_BOOL MDrv_SC_3D_Is2Dto3DCase(void *pInstance, E_XC_3D_INPUT_MODE e3dInputMode, 271 E_XC_3D_OUTPUT_MODE e3dOutputMode); 272 INTERFACE MS_BOOL MDrv_SC_3D_IsUseSameBuffer(void *pInstance); 273 INTERFACE void MDrv_SC_3D_CloneMainSettings(void *pInstance, XC_InternalStatus *pSrcInfo, 274 SCALER_WIN eWindow); 275 INTERFACE MS_BOOL MDrv_SC_3D_Is_LR_Sbs2Line(void *pInstance); 276 INTERFACE void MDrv_SC_3D_AdjustHShift(void *pInstance, XC_InternalStatus *pSrcInfo, SCALER_WIN eWindow); 277 INTERFACE void MDrv_SC_3D_Adjust_BytesPer2Pixel(void *pInstance, MS_U8 *u8BytesPer2PixelTemp,SCALER_WIN eWindow); 278 INTERFACE MS_BOOL MDrv_SC_3D_Is2TapModeSupportedFormat(void *pInstance, XC_InternalStatus *pSrcInfo, SCALER_WIN eWindow); 279 INTERFACE MS_BOOL MDrv_SC_3D_Set2TapMode(void *pInstance, XC_InternalStatus *pSrcInfo, SCALER_WIN eWindow); 280 INTERFACE MS_BOOL MDrv_SC_3D_PostPQSetting(void *pInstance, XC_InternalStatus *pSrcInfo, SCALER_WIN eWindow); 281 INTERFACE MS_BOOL MDrv_SC_3D_IsDoubleAlign(void *pInstance); 282 INTERFACE MS_BOOL MDrv_SC_3D_IsSupportFBL3D(void); //NO_NEED for get chip cap 283 INTERFACE MS_BOOL MDrv_XC_Enable_3D_LR_Sbs2Line(void *pInstance, MS_BOOL bEnable); 284 INTERFACE MS_U16 MDrv_XC_Get_3D_HShift(void *pInstance); 285 INTERFACE MS_BOOL MDrv_XC_Is3DFormatSupported(void *pInstance, E_XC_3D_INPUT_MODE e3dInputMode, E_XC_3D_OUTPUT_MODE e3dOutputMode); 286 INTERFACE E_XC_3D_PANEL_TYPE MDrv_XC_Get_3D_Panel_Type(void *pInstance); 287 INTERFACE E_XC_3D_OUTPUT_MODE MDrv_XC_Get_3D_Output_Mode(void *pInstance); 288 INTERFACE E_XC_3D_INPUT_MODE MDrv_XC_Get_3D_Input_Mode(void *pInstance, SCALER_WIN eWindow); 289 INTERFACE MS_U16 MDrv_XC_Get_3D_HW_Version(void); //NO_NEED 290 INTERFACE MS_BOOL MDrv_XC_3D_IsHWDepthAdjSupported(void *pInstance, E_XC_3D_INPUT_MODE e3dInputMode, 291 E_XC_3D_OUTPUT_MODE e3dOutputMode, 292 SCALER_WIN eWindow); 293 INTERFACE MS_BOOL MDrv_XC_Get_3D_IsSupportedHW2DTo3D(void); //NO_NEED 294 INTERFACE MS_BOOL MDrv_XC_EnableT3D(void *pInstance, MS_BOOL bEnable); 295 INTERFACE MS_BOOL MDrv_SC_3D_IsFramePaking(void *pInstance, MS_U16 u16Width, MS_U16 u16Height, MS_BOOL bInterlace); 296 INTERFACE MS_BOOL MDrv_XC_Set_3D_HShift(void* pInstance, MS_U16 u16HShift); 297 #undef INTERFACE 298 #endif 299 #endif 300 301