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-2009 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 // [apiXC_DWIN_EX.h] 96 // Date: 20120221 97 // Descriptions: structure pool 98 //============================================================================== 99 #ifndef APIXC_DWIN_EX_H 100 #define APIXC_DWIN_EX_H 101 102 // Common Definition 103 #include "MsCommon.h" 104 105 // Api 106 #include "apiXC_EX.h" 107 108 #ifdef __cplusplus 109 extern "C" 110 { 111 #endif 112 113 //#include "mvideo_context_ex.h" 114 //============================================================================== 115 //============================================================================== 116 #ifdef APIXC_DWIN_EX_C//MVIDEO_CONTEXT_C 117 #define INTERFACE 118 #else 119 #define INTERFACE extern 120 #endif 121 122 #define XC_DIP_EX_MAX_BUFF_CNT 8UL 123 #define XC_DIP_EX_AUTO_BUFF_CNT 0UL 124 /// Define window type for DIP 125 typedef enum 126 { 127 E_XC_DIP_EX_DIP_WINDOW = 0, ///< DIP window 128 E_XC_DIP_EX_MAX_WINDOW /// The max support window 129 } XC_DIP_EX_WIN; 130 131 typedef enum 132 { 133 E_XC_DIP_EX_RGB_SWAPTO_BGR = 0, ///< RGB Swap to BGR 134 E_XC_DIP_EX_RGB_SWAP_MAX ///< The max support format 135 } XC_DIP_EX_RGB_SWAP_TYPE; 136 137 /// DIP source data format 138 typedef enum 139 { 140 /// CrYCb domain. 141 E_XC_DIP_EX_DATA_FMT_YUV422 = 0, 142 /// CrYCb domain. 143 E_XC_DIP_EX_DATA_FMT_RGB565, 144 /// RGB domain (CSC bypass). 145 E_XC_DIP_EX_DATA_FMT_ARGB8888, 146 /// YUV420 147 E_XC_DIP_EX_DATA_FMT_YUV420, 148 E_XC_DIP_EX_DATA_FMT_MAX 149 } XC_DIP_EX_DATA_FMT; 150 151 /// DIP scan mode 152 typedef enum 153 { 154 /// progessive. 155 E_XC_DIP_EX_SCAN_MODE_PROGRESSIVE, 156 /// interlace. 157 E_XC_DIP_EX_SCAN_MODE_extern, 158 } XC_DIP_EX_SCAN_MODE; 159 160 typedef enum 161 { 162 E_XC_DIP_EX_CAP_NOT_EXIST = 0x0, 163 E_XC_DIP_EX_CAP_EXIST = 0x1, 164 E_XC_DIP_EX_CAP_420TILE = 0x2, 165 E_XC_DIP_EX_CAP_SCALING_DOWN = 0x4, 166 E_XC_DIP_EX_CAP_MIRROR = 0x8, 167 E_XC_DIP_EX_CAP_DIPR = 0x10, 168 E_XC_DIP_EX_CAP_R2Y = 0x20, 169 E_XC_DIP_EX_CAP_OP1_CAPTURE = 0x40, 170 } XC_DIP_EX_CAP; 171 172 typedef enum 173 { 174 E_XC_DIP_EX_VOP2 =0x00, 175 E_XC_DIP_EX_OP2 =0x01, 176 E_XC_DIP_EX_VIP =0x02, 177 E_XC_DIP_EX_BRI =0x03, 178 } XC_DIP_EX_OP_CAPTURE; 179 180 typedef struct 181 { 182 MS_U8 u8BufCnt; 183 MS_PHY u32YBuf[XC_DIP_EX_MAX_BUFF_CNT]; 184 MS_PHY u32CBuf[XC_DIP_EX_MAX_BUFF_CNT]; 185 } XC_DIP_EX_BUFFER_INFO; 186 187 typedef struct 188 { 189 XC_DIP_EX_WIN eWindow; 190 MS_U32 u32DipChipCaps; 191 } XC_DIP_EX_CHIPCAPS; 192 193 typedef struct 194 { 195 MS_U8 u8BufCnt; 196 MS_U16 u16Width; 197 MS_U16 u16Height; 198 MS_U16 u16Pitch; 199 MS_PHY u32BufStart; 200 MS_PHY u32BufEnd; 201 XC_DIP_EX_SOURCE_TYPE enSource; 202 } XC_DIP_EX_WINPROPERTY; 203 204 typedef struct 205 { 206 MS_U16 u16Width; 207 MS_U16 u16Height; 208 MS_U16 u16Pitch; 209 MS_PHY u32YBufAddr; 210 MS_PHY u32CBufAddr; 211 XC_DIP_EX_DATA_FMT enDataFmt; 212 }XC_DIP_EX_DIPR_PROPERTY; 213 214 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_InitByDIP(XC_DIP_EX_WIN eWindow); 215 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetFrameBufferAddress(MS_PHY u32FBAddress, MS_PHY u32FBSize, XC_DIP_EX_WIN eWindow); 216 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetInputSource(XC_EX_INPUT_SOURCE_TYPE enInputSourceType, XC_DIP_EX_WIN eWindow); 217 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_GetInputSource(XC_EX_INPUT_SOURCE_TYPE *enInputSourceType, XC_DIP_EX_WIN eWindow); 218 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_DisableInputSource(MS_BOOL bDisable, XC_DIP_EX_WIN eWindow); 219 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetWindow(XC_EX_SETWIN_INFO *pstXC_SetWin_Info, MS_U32 u32InitDataLen, XC_DIP_EX_WIN eWindow); 220 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_GetDEWindow(XC_EX_WINDOW_TYPE *psWin, XC_DIP_EX_WIN eWindow); 221 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetCaptureWindowVstart(MS_U16 u16Vstart, XC_DIP_EX_WIN eWindow); 222 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetCaptureWindowHstart(MS_U16 u16Hstart, XC_DIP_EX_WIN eWindow); 223 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetCaptureWindowVsize(MS_U16 u16Vsize, XC_DIP_EX_WIN eWindow); 224 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetCaptureWindowHsize(MS_U16 u16Hsize, XC_DIP_EX_WIN eWindow); 225 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_GetCaptureWindow(XC_EX_WINDOW_TYPE* capture_win, XC_DIP_EX_WIN eWindow); 226 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_EnableR2Y(MS_BOOL benable, XC_DIP_EX_WIN eWindow); 227 228 //==============Set=================== 229 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SWReset(XC_DIP_EX_WIN eWindow); 230 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_FrameRateCtrl(MS_BOOL bEnable,MS_U16 u16In,MS_U16 u16Out, XC_DIP_EX_WIN eWindow); 231 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_CapOneFrame(XC_DIP_EX_WIN eWindow); 232 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_CapOneFrameFast(XC_DIP_EX_WIN eWindow); 233 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetPinpon(MS_BOOL bPinpon,MS_PHY u32PinponAddr,XC_DIP_EX_WIN eWindow); 234 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_ClearInt(MS_U16 u8mask, XC_DIP_EX_WIN eWindow); 235 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_Ena(MS_BOOL bEnable, XC_DIP_EX_WIN eWindow); 236 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_EnaInt(MS_U16 u8mask, MS_BOOL bEnable, XC_DIP_EX_WIN eWindow); 237 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetSourceScanType(XC_DIP_EX_SCAN_MODE enScanMode, XC_DIP_EX_WIN eWindow); 238 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_EnaInterlaceWrite(MS_BOOL bEnable, XC_DIP_EX_WIN eWindow); 239 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetOutputDataFmt(XC_DIP_EX_DATA_FMT fmt, XC_DIP_EX_WIN eWindow); 240 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetDIPWinProperty(XC_DIP_EX_WINPROPERTY *pstDIPWinProperty, XC_DIP_EX_WIN eWindow); 241 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_EnableY2R(MS_BOOL bEnable, XC_DIP_EX_WIN eWindow); 242 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetAlpha(MS_U8 u8AlphaVal, XC_DIP_EX_WIN eWindow); 243 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SwapUV(MS_BOOL bEnable, XC_DIP_EX_WIN eWindow); 244 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SwapYC(MS_BOOL bEnable, XC_DIP_EX_WIN eWindow); 245 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SwapRGB(MS_BOOL bEnable, XC_DIP_EX_RGB_SWAP_TYPE enSwapType, XC_DIP_EX_WIN eWindow); 246 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetWinProperty_Ex(MS_U8 u8BufCnt ,MS_U16 u16Width, MS_U16 u16Height, MS_PHY u32BufStart ,MS_PHY u32BufEnd, XC_DIP_EX_SOURCE_TYPE eSource,XC_DIP_EX_WIN eWindow); 247 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetOutputCapture(MS_BOOL bEnable, XC_DIP_EX_OP_CAPTURE eOpCapture, XC_DIP_EX_WIN eWindow); 248 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetMirror(MS_BOOL bHMirror, MS_BOOL bVMirror, XC_DIP_EX_WIN eWindow); 249 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_SetDIPRProperty(XC_DIP_EX_DIPR_PROPERTY *pstDIPRProperty, XC_DIP_EX_WIN eWindow); 250 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_InterruptAttach(InterruptCb pIntCb,XC_DIP_EX_WIN eWindow); 251 XC_EX_RETURN_VALUE MApi_XC_DIP_EX_InterruptDetach(XC_DIP_EX_WIN eWindow); 252 //==============Get=================== 253 MS_U16 MApi_XC_DIP_EX_GetIntStatus(XC_DIP_EX_WIN eWindow); 254 XC_DIP_EX_BUFFER_INFO MApi_XC_DIP_EX_GetBufInfo(XC_DIP_EX_WIN eWindow); 255 256 #undef INTERFACE 257 258 #ifdef __cplusplus 259 } 260 #endif 261 #endif /* APIXC_DWIN_H */ 262 263