xref: /utopia/UTPA2-700.0.x/mxlib/include/apiXC_DWIN.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi //    Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi //    No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi //    modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi //    supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi //    Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi //    Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi //    obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi //    such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi //    MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi //    confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi //    third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi //    without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi //    intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi //    and in conformity with any international standard.  You agree to waive any
38*53ee8cc1Swenshuai.xi //    claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi //    incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi //    In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi //    consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi //    revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi //    You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi //    even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi //    request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi //    parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi //    services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi //    MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi //    ("Services").
52*53ee8cc1Swenshuai.xi //    You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi //    writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi //    disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi //    or otherwise:
58*53ee8cc1Swenshuai.xi //    (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi //        mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi //    (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi //        including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi //        of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi //    (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi //    of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi //    Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi //    settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi //    Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi //    with the said Rules.
72*53ee8cc1Swenshuai.xi //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi //    be English.
74*53ee8cc1Swenshuai.xi //    The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
79*53ee8cc1Swenshuai.xi //
80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81*53ee8cc1Swenshuai.xi // All rights reserved.
82*53ee8cc1Swenshuai.xi //
83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient.
87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
92*53ee8cc1Swenshuai.xi //
93*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
94*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
95*53ee8cc1Swenshuai.xi ///
96*53ee8cc1Swenshuai.xi /// @file   apiXC_DWIN.h
97*53ee8cc1Swenshuai.xi /// @brief  MStar XC_DWIN Driver Interface
98*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc.
99*53ee8cc1Swenshuai.xi /// @version 1.0
100*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
101*53ee8cc1Swenshuai.xi 
102*53ee8cc1Swenshuai.xi //-------------------------------------------------
103*53ee8cc1Swenshuai.xi /*! \defgroup Video Video modules
104*53ee8cc1Swenshuai.xi 
105*53ee8cc1Swenshuai.xi 	* \defgroup XC_DWIN XC_DWIN interface
106*53ee8cc1Swenshuai.xi 	* \ingroup Video
107*53ee8cc1Swenshuai.xi 
108*53ee8cc1Swenshuai.xi 	DIP is a video capture function ,the whole function block separate four part,source select, clip window, HV scaling down , output window.\n
109*53ee8cc1Swenshuai.xi 
110*53ee8cc1Swenshuai.xi 	<b> Fucntion block </b> \n
111*53ee8cc1Swenshuai.xi 	\image html apiXC_DWIN_pic1.png
112*53ee8cc1Swenshuai.xi 
113*53ee8cc1Swenshuai.xi 	<b> Source select </b> \n
114*53ee8cc1Swenshuai.xi 	\image html apiXC_DWIN_pic3.png
115*53ee8cc1Swenshuai.xi 
116*53ee8cc1Swenshuai.xi 	<b> Clip window , HV scaling down , output window</b> \n
117*53ee8cc1Swenshuai.xi 	\image html apiXC_DWIN_pic4.png
118*53ee8cc1Swenshuai.xi 
119*53ee8cc1Swenshuai.xi 	<b> API call flow  </b> \n
120*53ee8cc1Swenshuai.xi 	\image html apiXC_DWIN_pic2.png
121*53ee8cc1Swenshuai.xi 
122*53ee8cc1Swenshuai.xi 	* \defgroup DIP_INIT DIP init related functions
123*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
124*53ee8cc1Swenshuai.xi 
125*53ee8cc1Swenshuai.xi 	* \defgroup DIP_RESOURCE DIP resource related functions
126*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
127*53ee8cc1Swenshuai.xi 
128*53ee8cc1Swenshuai.xi 	* \defgroup DIP_SET_WINDOW DIP set window related functions
129*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
130*53ee8cc1Swenshuai.xi 
131*53ee8cc1Swenshuai.xi 	* \defgroup DIP_SET_PROPERTY DIP set properity related functions
132*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
133*53ee8cc1Swenshuai.xi 
134*53ee8cc1Swenshuai.xi 	* \defgroup DIP_SET_COLOR_TRANSFORM  DIP set color transform properity functions
135*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
136*53ee8cc1Swenshuai.xi 
137*53ee8cc1Swenshuai.xi 	* \defgroup DIP_SET_WINPROPERTY DIP set window properity related functions
138*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
139*53ee8cc1Swenshuai.xi 
140*53ee8cc1Swenshuai.xi 	* \defgroup DIP_INTERRUPT DIP interrupt related functions
141*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
142*53ee8cc1Swenshuai.xi 
143*53ee8cc1Swenshuai.xi 	* \defgroup DIP_TRIGGER DIP trigger related functions
144*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
145*53ee8cc1Swenshuai.xi 
146*53ee8cc1Swenshuai.xi 	* \defgroup DIP_GET_BUFINFO DIP get info related functions
147*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
148*53ee8cc1Swenshuai.xi 
149*53ee8cc1Swenshuai.xi 	* \defgroup DIP_POWER_STATE DIP suspend and resume related functions
150*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
151*53ee8cc1Swenshuai.xi 
152*53ee8cc1Swenshuai.xi 	* \defgroup DIP_ToBeRemove DIP api to be removed
153*53ee8cc1Swenshuai.xi 	* \ingroup   XC_DWIN
154*53ee8cc1Swenshuai.xi 
155*53ee8cc1Swenshuai.xi   */
156*53ee8cc1Swenshuai.xi //-------------------------------------------------
157*53ee8cc1Swenshuai.xi 
158*53ee8cc1Swenshuai.xi 
159*53ee8cc1Swenshuai.xi 
160*53ee8cc1Swenshuai.xi 
161*53ee8cc1Swenshuai.xi #ifndef APIXC_DWIN_H
162*53ee8cc1Swenshuai.xi #define APIXC_DWIN_H
163*53ee8cc1Swenshuai.xi #ifdef __cplusplus
164*53ee8cc1Swenshuai.xi extern "C"
165*53ee8cc1Swenshuai.xi {
166*53ee8cc1Swenshuai.xi #endif
167*53ee8cc1Swenshuai.xi #include "MsCommon.h"
168*53ee8cc1Swenshuai.xi #include "mhal_cmdq.h"
169*53ee8cc1Swenshuai.xi //#include "mvideo_context.h"
170*53ee8cc1Swenshuai.xi //==============================================================================
171*53ee8cc1Swenshuai.xi 
172*53ee8cc1Swenshuai.xi #include "ULog.h"
173*53ee8cc1Swenshuai.xi 
174*53ee8cc1Swenshuai.xi // Debug Logs, level form low(INFO) to high(FATAL, always show)
175*53ee8cc1Swenshuai.xi // Function information, ex function entry
176*53ee8cc1Swenshuai.xi #define XC_INFO(x, args...) ULOGI("DIP API", x, ##args)
177*53ee8cc1Swenshuai.xi // Warning, illegal paramter but can be self fixed in functions
178*53ee8cc1Swenshuai.xi #define XC_WARN(x, args...) ULOGW("DIP API", x, ##args)
179*53ee8cc1Swenshuai.xi //  Need debug, illegal paramter.
180*53ee8cc1Swenshuai.xi #define XC_DBUG(x, args...) ULOGD("DIP API", x, ##args)
181*53ee8cc1Swenshuai.xi // Error, function will be terminated but system not crash
182*53ee8cc1Swenshuai.xi #define XC_ERR(x, args...) ULOGE("DIP API", x, ##args)
183*53ee8cc1Swenshuai.xi // Critical, system crash. (ex. assert)
184*53ee8cc1Swenshuai.xi #define XC_FATAL(x, args...) ULOGF("DIP API", x, ##args)
185*53ee8cc1Swenshuai.xi 
186*53ee8cc1Swenshuai.xi //==============================================================================
187*53ee8cc1Swenshuai.xi #define MAX_BUFF_CNT 8UL
188*53ee8cc1Swenshuai.xi #define AUTO_BUFF_CNT 0UL
189*53ee8cc1Swenshuai.xi /// Define window type for DIP
190*53ee8cc1Swenshuai.xi typedef enum
191*53ee8cc1Swenshuai.xi {
192*53ee8cc1Swenshuai.xi     DIP_WINDOW = 0,         ///< DIP window
193*53ee8cc1Swenshuai.xi     DWIN0_WINDOW = 1,
194*53ee8cc1Swenshuai.xi     DWIN1_WINDOW = 2,
195*53ee8cc1Swenshuai.xi     MAX_DIP_WINDOW          /// The max support window
196*53ee8cc1Swenshuai.xi }SCALER_DIP_WIN;
197*53ee8cc1Swenshuai.xi 
198*53ee8cc1Swenshuai.xi typedef enum
199*53ee8cc1Swenshuai.xi {
200*53ee8cc1Swenshuai.xi     E_XC_DIP_RGB_SWAPTO_BGR = 0,         ///< RGB Swap to BGR
201*53ee8cc1Swenshuai.xi     E_XC_DIP_RGB_SWAP_MAX                ///< The max support format
202*53ee8cc1Swenshuai.xi }EN_XC_DIP_RGB_SWAP_TYPE;
203*53ee8cc1Swenshuai.xi 
204*53ee8cc1Swenshuai.xi /// DIP source data format
205*53ee8cc1Swenshuai.xi typedef enum
206*53ee8cc1Swenshuai.xi {
207*53ee8cc1Swenshuai.xi     /// YCrYCb.
208*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YUV422 = 0,
209*53ee8cc1Swenshuai.xi     /// RGB domain
210*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_RGB565,
211*53ee8cc1Swenshuai.xi     /// RGB domain
212*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_ARGB8888,
213*53ee8cc1Swenshuai.xi     /// YUV420 HVD tile
214*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YUV420,
215*53ee8cc1Swenshuai.xi     /// YC separate 422
216*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YC422,
217*53ee8cc1Swenshuai.xi     /// YUV420 H265 tile
218*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YUV420_H265,
219*53ee8cc1Swenshuai.xi     /// YUV420 H265_10bits tile
220*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YUV420_H265_10BITS,
221*53ee8cc1Swenshuai.xi     /// YUV420 planer
222*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YUV420_PLANER,
223*53ee8cc1Swenshuai.xi     /// YUV420 semi planer
224*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YUV420_SEMI_PLANER,
225*53ee8cc1Swenshuai.xi     /// YUV422 2.5D DI Top field
226*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YUV422_MED_DI_FIELDTYPE_TOP,
227*53ee8cc1Swenshuai.xi     /// YUV422 2.5D DI Bottom field
228*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YUV422_MED_DI_FIELDTYPE_BOTTOM,
229*53ee8cc1Swenshuai.xi     /// YUV420 2.5D DI Top field
230*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YUV420_MED_DI_FIELDTYPE_TOP,
231*53ee8cc1Swenshuai.xi     /// YUV420 2.5D DI Bottom field
232*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_YUV420_MED_DI_FIELDTYPE_BOTTOM,
233*53ee8cc1Swenshuai.xi     DIP_DATA_FMT_MAX
234*53ee8cc1Swenshuai.xi } EN_XC_DIP_DATA_FMT;
235*53ee8cc1Swenshuai.xi 
236*53ee8cc1Swenshuai.xi /// DIP tile block
237*53ee8cc1Swenshuai.xi typedef enum
238*53ee8cc1Swenshuai.xi {
239*53ee8cc1Swenshuai.xi     DIP_TILE_BLOCK_R_NONE  = 0x0,
240*53ee8cc1Swenshuai.xi     DIP_TILE_BLOCK_W_NONE  = 0x1,
241*53ee8cc1Swenshuai.xi     DIP_TILE_BLOCK_R_16_32 = 0x2,
242*53ee8cc1Swenshuai.xi     DIP_TILE_BLOCK_W_16_32 = 0x3,
243*53ee8cc1Swenshuai.xi     DIP_TILE_BLOCK_R_32_16 = 0x4,
244*53ee8cc1Swenshuai.xi     DIP_TILE_BLOCK_W_32_16 = 0x5,
245*53ee8cc1Swenshuai.xi     DIP_TILE_BLOCK_R_32_32 = 0x6,
246*53ee8cc1Swenshuai.xi     DIP_TILE_BLOCK_W_32_32 = 0x7,
247*53ee8cc1Swenshuai.xi }EN_XC_DIP_TILE_BLOCK;
248*53ee8cc1Swenshuai.xi /// DIP scan mode
249*53ee8cc1Swenshuai.xi typedef enum
250*53ee8cc1Swenshuai.xi {
251*53ee8cc1Swenshuai.xi     /// progessive.
252*53ee8cc1Swenshuai.xi     DIP_SCAN_MODE_PROGRESSIVE,
253*53ee8cc1Swenshuai.xi     /// interlace.
254*53ee8cc1Swenshuai.xi     DIP_SCAN_MODE_extern,
255*53ee8cc1Swenshuai.xi } EN_XC_DIP_SCAN_MODE;
256*53ee8cc1Swenshuai.xi 
257*53ee8cc1Swenshuai.xi typedef enum
258*53ee8cc1Swenshuai.xi {
259*53ee8cc1Swenshuai.xi     DIP_CAP_NOT_EXIST = 0x0,
260*53ee8cc1Swenshuai.xi     DIP_CAP_EXIST =     0x1,
261*53ee8cc1Swenshuai.xi     DIP_CAP_420TILE =   0x2,
262*53ee8cc1Swenshuai.xi     DIP_CAP_SCALING_DOWN =   0x4,
263*53ee8cc1Swenshuai.xi     DIP_CAP_MIRROR =    0x8,
264*53ee8cc1Swenshuai.xi     DIP_CAP_DIPR    =   0x10,
265*53ee8cc1Swenshuai.xi     DIP_CAP_R2Y     =   0x20,
266*53ee8cc1Swenshuai.xi     DIP_CAP_OP1_CAPTURE    = 0x40,
267*53ee8cc1Swenshuai.xi     //not support OP1 capture when traveling main source with PIP mode
268*53ee8cc1Swenshuai.xi     DIP_CAP_OP1_CAPTURE_V1 = 0x40,
269*53ee8cc1Swenshuai.xi     //support OP1 capture in all case
270*53ee8cc1Swenshuai.xi     DIP_CAP_OP1_CAPTURE_V2 = 0x80,
271*53ee8cc1Swenshuai.xi     DIP_CAP_SCALING_UP = 0x100,
272*53ee8cc1Swenshuai.xi     DIP_CAP_OSD_BLENDING = 0x200,
273*53ee8cc1Swenshuai.xi     DIP_CAP_OC_CAPTURE = 0x400,
274*53ee8cc1Swenshuai.xi     DIP_CAP_SC2_NON_SCALING = 0x800,
275*53ee8cc1Swenshuai.xi }EN_XC_DIP_CAP;
276*53ee8cc1Swenshuai.xi 
277*53ee8cc1Swenshuai.xi typedef enum
278*53ee8cc1Swenshuai.xi {
279*53ee8cc1Swenshuai.xi     E_XC_DIP_VOP2   =0x00,
280*53ee8cc1Swenshuai.xi     E_XC_DIP_OP2    =0x01,
281*53ee8cc1Swenshuai.xi     E_XC_DIP_VIP    =0x02,
282*53ee8cc1Swenshuai.xi     E_XC_DIP_BRI    =0x03,
283*53ee8cc1Swenshuai.xi     E_XC_DIP_NONE   ,
284*53ee8cc1Swenshuai.xi }EN_XC_DIP_OP_CAPTURE;
285*53ee8cc1Swenshuai.xi 
286*53ee8cc1Swenshuai.xi typedef enum
287*53ee8cc1Swenshuai.xi {
288*53ee8cc1Swenshuai.xi     E_XC_DIP_ROTATION_270   =0x00,
289*53ee8cc1Swenshuai.xi     E_XC_DIP_ROTATION_90    =0x01,
290*53ee8cc1Swenshuai.xi }EN_XC_DIP_ROTATION;
291*53ee8cc1Swenshuai.xi 
292*53ee8cc1Swenshuai.xi // Define DEBUG level.
293*53ee8cc1Swenshuai.xi typedef enum
294*53ee8cc1Swenshuai.xi {
295*53ee8cc1Swenshuai.xi     // DIP DEBUG LEVEL LOW. Just printf error message.
296*53ee8cc1Swenshuai.xi     E_XC_DIP_Debug_Level_LOW   = 0,
297*53ee8cc1Swenshuai.xi     // GOP DEBUG LEVEL Medium. printf warning message and error message.
298*53ee8cc1Swenshuai.xi     E_XC_DIP_Debug_Level_MED   = 1,
299*53ee8cc1Swenshuai.xi     // GOP DEBUG LEVEL hIGH. printf all message with function.
300*53ee8cc1Swenshuai.xi     E_XC_DIP_Debug_Level_HIGH   = 2,
301*53ee8cc1Swenshuai.xi } EN_XC_DIP_DEBUG_LEVEL;
302*53ee8cc1Swenshuai.xi 
303*53ee8cc1Swenshuai.xi typedef enum
304*53ee8cc1Swenshuai.xi {
305*53ee8cc1Swenshuai.xi     E_XC_DIP_CMDQ_BEGIN = 0,
306*53ee8cc1Swenshuai.xi     E_XC_DIP_CMDQ_END = 1,
307*53ee8cc1Swenshuai.xi }EN_XC_DIP_CMDQ_ACTION;
308*53ee8cc1Swenshuai.xi 
309*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
310*53ee8cc1Swenshuai.xi {
311*53ee8cc1Swenshuai.xi     MS_U8               u8BufCnt;
312*53ee8cc1Swenshuai.xi     MS_PHY              u32YBuf[MAX_BUFF_CNT];
313*53ee8cc1Swenshuai.xi     MS_PHY              u32CBuf[MAX_BUFF_CNT];
314*53ee8cc1Swenshuai.xi } BUFFER_INFO;
315*53ee8cc1Swenshuai.xi 
316*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
317*53ee8cc1Swenshuai.xi {
318*53ee8cc1Swenshuai.xi     SCALER_DIP_WIN      eWindow;
319*53ee8cc1Swenshuai.xi     MS_U32              u32DipChipCaps;
320*53ee8cc1Swenshuai.xi } ST_XC_DIP_CHIPCAPS;
321*53ee8cc1Swenshuai.xi 
322*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
323*53ee8cc1Swenshuai.xi {
324*53ee8cc1Swenshuai.xi     MS_U8  u8BufCnt;
325*53ee8cc1Swenshuai.xi     MS_U16 u16Width;
326*53ee8cc1Swenshuai.xi     MS_U16 u16Height;
327*53ee8cc1Swenshuai.xi     MS_U16 u16Pitch;
328*53ee8cc1Swenshuai.xi     MS_PHY u32BufStart;
329*53ee8cc1Swenshuai.xi     MS_PHY u32BufEnd;
330*53ee8cc1Swenshuai.xi     SCALER_DIP_SOURCE_TYPE enSource;
331*53ee8cc1Swenshuai.xi }ST_XC_DIP_WINPROPERTY;
332*53ee8cc1Swenshuai.xi 
333*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
334*53ee8cc1Swenshuai.xi {
335*53ee8cc1Swenshuai.xi     MS_U16 u16Width;
336*53ee8cc1Swenshuai.xi     MS_U16 u16Height;
337*53ee8cc1Swenshuai.xi     MS_U16 u16Pitch;
338*53ee8cc1Swenshuai.xi     MS_PHY u32YBufAddr;
339*53ee8cc1Swenshuai.xi     MS_PHY u32CBufAddr;
340*53ee8cc1Swenshuai.xi     EN_XC_DIP_DATA_FMT enDataFmt;
341*53ee8cc1Swenshuai.xi     MS_PHY u32YBufAddr10Bits;
342*53ee8cc1Swenshuai.xi     MS_PHY u32CBufAddr10Bits;
343*53ee8cc1Swenshuai.xi }ST_XC_DIPR_PROPERTY;
344*53ee8cc1Swenshuai.xi 
345*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
346*53ee8cc1Swenshuai.xi {
347*53ee8cc1Swenshuai.xi     MS_U32 ID[4];
348*53ee8cc1Swenshuai.xi } DIPRESOURCE;
349*53ee8cc1Swenshuai.xi 
350*53ee8cc1Swenshuai.xi // Define DIP version control
351*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
352*53ee8cc1Swenshuai.xi {
353*53ee8cc1Swenshuai.xi     MS_U32 u32version;
354*53ee8cc1Swenshuai.xi     MS_U32 u32size;
355*53ee8cc1Swenshuai.xi } ST_DIPR_VER_CRL;
356*53ee8cc1Swenshuai.xi 
357*53ee8cc1Swenshuai.xi typedef enum
358*53ee8cc1Swenshuai.xi {
359*53ee8cc1Swenshuai.xi     E_DIP_MFEDC_TILE_16_32     =0x00,
360*53ee8cc1Swenshuai.xi     E_DIP_MFEDC_TILE_32_16     =0x01,
361*53ee8cc1Swenshuai.xi     E_DIP_MFEDC_TILE_32_32     =0x02,
362*53ee8cc1Swenshuai.xi }EN_MFDEC_TILE_MODE;
363*53ee8cc1Swenshuai.xi 
364*53ee8cc1Swenshuai.xi typedef enum
365*53ee8cc1Swenshuai.xi {
366*53ee8cc1Swenshuai.xi     E_XC_DIP_H26X_MODE     =0x00,
367*53ee8cc1Swenshuai.xi     E_XC_DIP_VP9_MODE      =0x01,
368*53ee8cc1Swenshuai.xi }EN_MFDEC_VP9_MODE;
369*53ee8cc1Swenshuai.xi 
370*53ee8cc1Swenshuai.xi // Define DIP version control for MFDec
371*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
372*53ee8cc1Swenshuai.xi {
373*53ee8cc1Swenshuai.xi     MS_U32 u32version;
374*53ee8cc1Swenshuai.xi     MS_U32 u32size;
375*53ee8cc1Swenshuai.xi } ST_MFDEC_HTLB_VER_CRL;
376*53ee8cc1Swenshuai.xi 
377*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
378*53ee8cc1Swenshuai.xi {
379*53ee8cc1Swenshuai.xi     ST_MFDEC_HTLB_VER_CRL stMFDec_HTLB_VerCtl;
380*53ee8cc1Swenshuai.xi     MS_PHY u32HTLBEntriesAddr;
381*53ee8cc1Swenshuai.xi     MS_U8  u8HTLBEntriesSize;
382*53ee8cc1Swenshuai.xi     MS_U8  u8HTLBTableId;
383*53ee8cc1Swenshuai.xi     void* pHTLBInfo;
384*53ee8cc1Swenshuai.xi } ST_DIP_MFDEC_HTLB_INFO;
385*53ee8cc1Swenshuai.xi 
386*53ee8cc1Swenshuai.xi // Define DIP version control
387*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
388*53ee8cc1Swenshuai.xi {
389*53ee8cc1Swenshuai.xi     MS_U32 u32version;
390*53ee8cc1Swenshuai.xi     MS_U32 u32size;
391*53ee8cc1Swenshuai.xi } ST_MFDEC_VER_CRL;
392*53ee8cc1Swenshuai.xi 
393*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
394*53ee8cc1Swenshuai.xi {
395*53ee8cc1Swenshuai.xi     ST_MFDEC_VER_CRL stMFDec_VerCtl;
396*53ee8cc1Swenshuai.xi     MS_BOOL bMFDec_Enable;
397*53ee8cc1Swenshuai.xi     MS_U8 u8MFDec_Select;
398*53ee8cc1Swenshuai.xi     MS_BOOL bHMirror;
399*53ee8cc1Swenshuai.xi     MS_BOOL bVMirror;
400*53ee8cc1Swenshuai.xi     EN_MFDEC_TILE_MODE enMFDec_tile_mode;
401*53ee8cc1Swenshuai.xi     MS_BOOL bUncompress_mode;
402*53ee8cc1Swenshuai.xi     MS_BOOL bBypass_codec_mode;
403*53ee8cc1Swenshuai.xi     EN_MFDEC_VP9_MODE en_MFDecVP9_mode;
404*53ee8cc1Swenshuai.xi     MS_PHY phyLuma_FB_Base;
405*53ee8cc1Swenshuai.xi     MS_PHY phyChroma_FB_Base;
406*53ee8cc1Swenshuai.xi     MS_U16 u16FB_Pitch;
407*53ee8cc1Swenshuai.xi     MS_U16 u16StartX;
408*53ee8cc1Swenshuai.xi     MS_U16 u16StartY;
409*53ee8cc1Swenshuai.xi     MS_U16 u16HSize;
410*53ee8cc1Swenshuai.xi     MS_U16 u16VSize;
411*53ee8cc1Swenshuai.xi     MS_PHY phyBitlen_Base;
412*53ee8cc1Swenshuai.xi     MS_U16 u16Bitlen_Pitch;
413*53ee8cc1Swenshuai.xi     ST_DIP_MFDEC_HTLB_INFO stMFDec_HTLB_Info;
414*53ee8cc1Swenshuai.xi     void* pMFDecInfo;
415*53ee8cc1Swenshuai.xi } ST_DIP_MFDEC_INFO;
416*53ee8cc1Swenshuai.xi 
417*53ee8cc1Swenshuai.xi typedef enum
418*53ee8cc1Swenshuai.xi {
419*53ee8cc1Swenshuai.xi     //one top field in one address
420*53ee8cc1Swenshuai.xi     E_DIP_3DDI_TOP_SINGLE_FIELD        =0x00,
421*53ee8cc1Swenshuai.xi     //one bottom field in one address
422*53ee8cc1Swenshuai.xi     E_DIP_3DDI_BOTTOM_SINGLE_FIELD     =0x01,
423*53ee8cc1Swenshuai.xi     //stagger Both field in one address, keep top field
424*53ee8cc1Swenshuai.xi     E_DIP_3DDI_TOP_BOTH_FIELD_STAGGER        =0x02,
425*53ee8cc1Swenshuai.xi     //stagger Both field in one address, keep bottom field
426*53ee8cc1Swenshuai.xi     E_DIP_3DDI_BOTTOM_BOTH_FIELD_STAGGER     =0x03,
427*53ee8cc1Swenshuai.xi     //stagger Both field in one address, DIP 2.5D DI top field
428*53ee8cc1Swenshuai.xi     E_DIP_MED_DI_TOP_BOTH_FIELD_STAGGER       =0x04,
429*53ee8cc1Swenshuai.xi     //stagger Both field in one address, DIP 2.5D DI bottom field
430*53ee8cc1Swenshuai.xi     E_DIP_MED_DI_BOTTOM_BOTH_FIELD_STAGGER    =0x05,
431*53ee8cc1Swenshuai.xi     //two field in two address, DI top field
432*53ee8cc1Swenshuai.xi     E_DIP_MED_DI_TOP_BOTH_FIELD_SEPARATE       =0x06,
433*53ee8cc1Swenshuai.xi     //two field in two address, DI bottom field
434*53ee8cc1Swenshuai.xi     E_DIP_MED_DI_BOTTOM_BOTH_FIELD_SEPARATE    =0x07,
435*53ee8cc1Swenshuai.xi }EN_DIP_DI_FIELD;
436*53ee8cc1Swenshuai.xi 
437*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
438*53ee8cc1Swenshuai.xi {
439*53ee8cc1Swenshuai.xi     MS_PHY phyDIInitAddr;
440*53ee8cc1Swenshuai.xi     MS_U32 u32DIInitSize;
441*53ee8cc1Swenshuai.xi }ST_DIPR_DI_INIT_INFO;
442*53ee8cc1Swenshuai.xi 
443*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
444*53ee8cc1Swenshuai.xi {
445*53ee8cc1Swenshuai.xi     MS_PHY phyDI_BufAddr; //DI buf address
446*53ee8cc1Swenshuai.xi     MS_U32 u32DI_BufSize; //DI buf size
447*53ee8cc1Swenshuai.xi     MS_U8 u8DIBufCnt;
448*53ee8cc1Swenshuai.xi }ST_DIP_DI_NWAY_BUF_INFO;
449*53ee8cc1Swenshuai.xi 
450*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
451*53ee8cc1Swenshuai.xi {
452*53ee8cc1Swenshuai.xi     MS_BOOL bEnableDI;
453*53ee8cc1Swenshuai.xi     MS_BOOL bInitDI;
454*53ee8cc1Swenshuai.xi     ST_DIPR_DI_INIT_INFO stInitInfo;
455*53ee8cc1Swenshuai.xi     MS_U8 u8NwayIndex;
456*53ee8cc1Swenshuai.xi     EN_DIP_DI_FIELD enDI_Field;
457*53ee8cc1Swenshuai.xi     MS_PHY phyBotYBufAddr;
458*53ee8cc1Swenshuai.xi     MS_PHY phyBotCBufAddr;
459*53ee8cc1Swenshuai.xi     MS_PHY phyBotYBufAddr10Bits;
460*53ee8cc1Swenshuai.xi     MS_PHY phyBotCBufAddr10Bits;
461*53ee8cc1Swenshuai.xi     MS_BOOL bEnableBob;
462*53ee8cc1Swenshuai.xi     MS_BOOL bEnaNwayInfoRefresh;
463*53ee8cc1Swenshuai.xi     ST_DIP_DI_NWAY_BUF_INFO *stDINwayBufInfo;
464*53ee8cc1Swenshuai.xi     MS_U8 u8NwayBufCnt;
465*53ee8cc1Swenshuai.xi } ST_DIP_DI_SETTING;
466*53ee8cc1Swenshuai.xi 
467*53ee8cc1Swenshuai.xi // Define DIP version control
468*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
469*53ee8cc1Swenshuai.xi {
470*53ee8cc1Swenshuai.xi     MS_U32 u32version;
471*53ee8cc1Swenshuai.xi     MS_U32 u32size;
472*53ee8cc1Swenshuai.xi } ST_DIPR_3DDI_VER_CRL;
473*53ee8cc1Swenshuai.xi 
474*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
475*53ee8cc1Swenshuai.xi {
476*53ee8cc1Swenshuai.xi     ST_DIPR_3DDI_VER_CRL stDipr3DDI_VerCtl;
477*53ee8cc1Swenshuai.xi     void* pDIPR3DDISetting;
478*53ee8cc1Swenshuai.xi } ST_DIP_DIPR_3DDI_SETTING;
479*53ee8cc1Swenshuai.xi 
480*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
481*53ee8cc1Swenshuai.xi {
482*53ee8cc1Swenshuai.xi     ST_DIPR_VER_CRL stDIPR_VerCtl;
483*53ee8cc1Swenshuai.xi     ST_XC_DIPR_PROPERTY stDIPRProperty;
484*53ee8cc1Swenshuai.xi     ST_DIP_MFDEC_INFO stDIPR_MFDecInfo;
485*53ee8cc1Swenshuai.xi     ST_DIP_DIPR_3DDI_SETTING stDIPR3DDISetting;
486*53ee8cc1Swenshuai.xi     void* pDIPRSetting;
487*53ee8cc1Swenshuai.xi }ST_XC_DIPR_PROPERTY_EX;
488*53ee8cc1Swenshuai.xi 
489*53ee8cc1Swenshuai.xi //-----------------
490*53ee8cc1Swenshuai.xi // DIP_RESOURCE
491*53ee8cc1Swenshuai.xi //-----------------
492*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
493*53ee8cc1Swenshuai.xi /// Query DIP resource avaliable or not
494*53ee8cc1Swenshuai.xi /// @ingroup DIP_RESOURCE
495*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
496*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
497*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
498*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
499*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_QueryResource(SCALER_DIP_WIN eWindow);
500*53ee8cc1Swenshuai.xi 
501*53ee8cc1Swenshuai.xi 
502*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
503*53ee8cc1Swenshuai.xi /// Get DIP resource
504*53ee8cc1Swenshuai.xi /// @ingroup DIP_RESOURCE
505*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
506*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
507*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
508*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
509*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_GetResource(SCALER_DIP_WIN eWindow);
510*53ee8cc1Swenshuai.xi 
511*53ee8cc1Swenshuai.xi 
512*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
513*53ee8cc1Swenshuai.xi /// Release DIP resource
514*53ee8cc1Swenshuai.xi /// @ingroup DIP_RESOURCE
515*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
516*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
517*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
518*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
519*53ee8cc1Swenshuai.xi typedef MHAL_CMDQ_CmdqInterface_t cmd_mload_utopia_interface;
520*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_ReleaseResource(SCALER_DIP_WIN eWindow);
521*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_CMDQ_SetAction( EN_XC_DIP_CMDQ_ACTION eAction, SCALER_DIP_WIN eWindow);
522*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_CMDQ_SetOperations(cmd_mload_utopia_interface *pOps, MS_BOOL bEnable,SCALER_DIP_WIN eWindow);
523*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_InitByDIP(SCALER_DIP_WIN eWindow);
524*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetFrameBufferAddress(MS_PHY u32FBAddress, MS_PHY u32FBSize, SCALER_DIP_WIN eWindow);
525*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetInputSource(INPUT_SOURCE_TYPE_t enInputSourceType, SCALER_DIP_WIN eWindow);
526*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_GetInputSource(INPUT_SOURCE_TYPE_t *enInputSourceType, SCALER_DIP_WIN eWindow);
527*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_DisableInputSource(MS_BOOL bDisable, SCALER_DIP_WIN eWindow);
528*53ee8cc1Swenshuai.xi //-----------------
529*53ee8cc1Swenshuai.xi // DIP_SET_WINDOW
530*53ee8cc1Swenshuai.xi //-----------------
531*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
532*53ee8cc1Swenshuai.xi /// Set DIP Clip and Scaling window
533*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_WINDOW
534*53ee8cc1Swenshuai.xi /// @param  pstXC_SetWin_Info   \b IN: Clip and Scaling window
535*53ee8cc1Swenshuai.xi /// @param  u32InitDataLen      \b IN: size of XC_SETWIN_INFO
536*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
537*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
538*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
539*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
540*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetWindow(XC_SETWIN_INFO *pstXC_SetWin_Info, MS_U32 u32InitDataLen, SCALER_DIP_WIN eWindow);
541*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_GetDEWindow(MS_WINDOW_TYPE *psWin, SCALER_DIP_WIN eWindow);
542*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetCaptureWindowVstart(MS_U16 u16Vstart, SCALER_DIP_WIN eWindow);
543*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetCaptureWindowHstart(MS_U16 u16Hstart, SCALER_DIP_WIN eWindow);
544*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetCaptureWindowVsize(MS_U16 u16Vsize, SCALER_DIP_WIN eWindow);
545*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetCaptureWindowHsize(MS_U16 u16Hsize, SCALER_DIP_WIN eWindow);
546*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_GetCaptureWindow(MS_WINDOW_TYPE* capture_win, SCALER_DIP_WIN eWindow);
547*53ee8cc1Swenshuai.xi //-----------------
548*53ee8cc1Swenshuai.xi // DIP_SET_COLOR_TRANSFORM
549*53ee8cc1Swenshuai.xi //-----------------
550*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
551*53ee8cc1Swenshuai.xi /// Emable DIP RGB->YUV
552*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_COLOR_TRANSFORM
553*53ee8cc1Swenshuai.xi /// @param  benable             \b IN: Enable/Disable
554*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
555*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
556*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
557*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
558*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_EnableR2Y(MS_BOOL benable, SCALER_DIP_WIN eWindow);
559*53ee8cc1Swenshuai.xi 
560*53ee8cc1Swenshuai.xi //==============Set===================
561*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SWReset(SCALER_DIP_WIN eWindow);
562*53ee8cc1Swenshuai.xi //-----------------
563*53ee8cc1Swenshuai.xi // DIP_SET_PROPERTY
564*53ee8cc1Swenshuai.xi //-----------------
565*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
566*53ee8cc1Swenshuai.xi /// Set DIP frame rate control
567*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY
568*53ee8cc1Swenshuai.xi /// @param  benable             \b IN: Enable/Disable
569*53ee8cc1Swenshuai.xi /// @param  u16In               \b IN: input frame
570*53ee8cc1Swenshuai.xi /// @param  u16Out              \b IN: output frame
571*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
572*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
573*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
574*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
575*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_FrameRateCtrl(MS_BOOL bEnable,MS_U16 u16In,MS_U16 u16Out, SCALER_DIP_WIN eWindow);
576*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_CapOneFrame(SCALER_DIP_WIN eWindow);
577*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_CapOneFrameFast(SCALER_DIP_WIN eWindow);
578*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_ClearInt(MS_U16 u8mask, SCALER_DIP_WIN eWindow);
579*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_Ena(MS_BOOL bEnable, SCALER_DIP_WIN eWindow);
580*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_EnaInt(MS_U16 u8mask, MS_BOOL bEnable, SCALER_DIP_WIN eWindow);
581*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
582*53ee8cc1Swenshuai.xi /// Tell DIP source is interlace or progressive
583*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY
584*53ee8cc1Swenshuai.xi /// @param  enScanMode          \b IN: interlace or progressive
585*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
586*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
587*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
588*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
589*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetSourceScanType(EN_XC_DIP_SCAN_MODE enScanMode, SCALER_DIP_WIN eWindow);
590*53ee8cc1Swenshuai.xi 
591*53ee8cc1Swenshuai.xi 
592*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
593*53ee8cc1Swenshuai.xi /// Enable DIP write from interlace to progressive
594*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY
595*53ee8cc1Swenshuai.xi /// @param  bEnable             \b IN: Enable/Disable
596*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
597*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
598*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
599*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
600*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_EnaInterlaceWrite(MS_BOOL bEnable, SCALER_DIP_WIN eWindow);
601*53ee8cc1Swenshuai.xi 
602*53ee8cc1Swenshuai.xi 
603*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
604*53ee8cc1Swenshuai.xi /// Set DIP output format
605*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY
606*53ee8cc1Swenshuai.xi /// @param  fmt                 \b IN: output format
607*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
608*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
609*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
610*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
611*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetOutputDataFmt(EN_XC_DIP_DATA_FMT fmt, SCALER_DIP_WIN eWindow);
612*53ee8cc1Swenshuai.xi //-----------------
613*53ee8cc1Swenshuai.xi // DIP_SET_WINPROPERTY
614*53ee8cc1Swenshuai.xi //-----------------
615*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
616*53ee8cc1Swenshuai.xi /// Set DIP input and output infomation
617*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_WINPROPERTY
618*53ee8cc1Swenshuai.xi /// @param  pstDIPWinProperty   \b IN: input and output infomation
619*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
620*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
621*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
622*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
623*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetDIPWinProperty(ST_XC_DIP_WINPROPERTY *pstDIPWinProperty, SCALER_DIP_WIN eWindow);
624*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
625*53ee8cc1Swenshuai.xi /// Emable DIP YUV->RGB
626*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_COLOR_TRANSFORM
627*53ee8cc1Swenshuai.xi /// @param  benable             \b IN: Enable/Disable
628*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
629*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
630*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
631*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
632*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_EnableY2R(MS_BOOL bEnable, SCALER_DIP_WIN eWindow);
633*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
634*53ee8cc1Swenshuai.xi /// Set DIP alpha value
635*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY_COLOR_TRANSFORM
636*53ee8cc1Swenshuai.xi /// @param  u8AlphaVal          \b IN: alpha value
637*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
638*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
639*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
640*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
641*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetAlpha(MS_U8 u8AlphaVal, SCALER_DIP_WIN eWindow);
642*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
643*53ee8cc1Swenshuai.xi /// Emable DIP UV swap
644*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_COLOR_TRANSFORM
645*53ee8cc1Swenshuai.xi /// @param  benable             \b IN: Enable/Disable
646*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
647*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
648*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
649*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
650*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SwapUV(MS_BOOL bEnable, SCALER_DIP_WIN eWindow);
651*53ee8cc1Swenshuai.xi 
652*53ee8cc1Swenshuai.xi 
653*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
654*53ee8cc1Swenshuai.xi /// Emable DIP YC swap
655*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_COLOR_TRANSFORM
656*53ee8cc1Swenshuai.xi /// @param  benable             \b IN: Enable/Disable
657*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
658*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
659*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
660*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
661*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SwapYC(MS_BOOL bEnable, SCALER_DIP_WIN eWindow);
662*53ee8cc1Swenshuai.xi 
663*53ee8cc1Swenshuai.xi 
664*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
665*53ee8cc1Swenshuai.xi /// Emable DIP RGB swap
666*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY_COLOR_TRANSFORM
667*53ee8cc1Swenshuai.xi /// @param  benable             \b IN: Enable/Disable
668*53ee8cc1Swenshuai.xi /// @param  enSwapType          \b IN: RGB swap type
669*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
670*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
671*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
672*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
673*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SwapRGB(MS_BOOL bEnable, EN_XC_DIP_RGB_SWAP_TYPE enSwapType, SCALER_DIP_WIN eWindow);
674*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
675*53ee8cc1Swenshuai.xi /// MApi_XC_DIP_SetWinProperty_Ex
676*53ee8cc1Swenshuai.xi /// @ingroup DIP_ToBeRemove
677*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
678*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetWinProperty_Ex(MS_U8 u8BufCnt ,MS_U16 u16Width, MS_U16 u16Height, MS_PHY u32BufStart ,MS_PHY u32BufEnd, SCALER_DIP_SOURCE_TYPE eSource,SCALER_DIP_WIN eWindow);
679*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
680*53ee8cc1Swenshuai.xi /// Set DIP capture mux when capture from OP
681*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY
682*53ee8cc1Swenshuai.xi /// @param  bEnable             \b IN: Enable/Disable
683*53ee8cc1Swenshuai.xi /// @param  eOpCapture          \b IN: capture mux when capture from OP
684*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
685*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
686*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
687*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
688*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetOutputCapture(MS_BOOL bEnable,EN_XC_DIP_OP_CAPTURE eOpCapture,SCALER_DIP_WIN eWindow);
689*53ee8cc1Swenshuai.xi 
690*53ee8cc1Swenshuai.xi 
691*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
692*53ee8cc1Swenshuai.xi /// Set DIP HV mirror
693*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY
694*53ee8cc1Swenshuai.xi /// @param  bHMirror            \b IN: Enable/Disable
695*53ee8cc1Swenshuai.xi /// @param  bVMirror            \b IN: Enable/Disable
696*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
697*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
698*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
699*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
700*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetMirror(MS_BOOL bHMirror,MS_BOOL bVMirror,SCALER_DIP_WIN eWindow);
701*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
702*53ee8cc1Swenshuai.xi /// Set DIP input from DRAM information
703*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_WINPROPERTY
704*53ee8cc1Swenshuai.xi /// @param  pstDIPRProperty     \b IN: input from DRAM information
705*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
706*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
707*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
708*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
709*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetDIPRProperty(ST_XC_DIPR_PROPERTY *pstDIPRProperty,SCALER_DIP_WIN eWindow);
710*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
711*53ee8cc1Swenshuai.xi /// Set DIP input from DRAM or VDEC information
712*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_WINPROPERTY
713*53ee8cc1Swenshuai.xi /// @param  pstDIPRProperty_ex     \b IN: input from DRAM or VDEC information
714*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
715*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
716*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
717*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
718*53ee8cc1Swenshuai.xi DLL_PUBLIC SYMBOL_WEAK E_APIXC_ReturnValue MApi_XC_DIP_SetDIPRProperty_EX(ST_XC_DIPR_PROPERTY_EX *pstDIPRProperty_ex, SCALER_DIP_WIN eWindow);
719*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
720*53ee8cc1Swenshuai.xi /// Attch interrupt call back function
721*53ee8cc1Swenshuai.xi /// @ingroup DIP_INTERRUPT
722*53ee8cc1Swenshuai.xi /// @param  pIntCb              \b IN: interrupt callback function
723*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
724*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
725*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
726*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
727*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_InterruptAttach(InterruptCb pIntCb,SCALER_DIP_WIN eWindow);
728*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
729*53ee8cc1Swenshuai.xi /// De-attch interrupt call back function
730*53ee8cc1Swenshuai.xi /// @ingroup DIP_INTERRUPT
731*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
732*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
733*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
734*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
735*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_InterruptDetach(SCALER_DIP_WIN eWindow);
736*53ee8cc1Swenshuai.xi //-----------------
737*53ee8cc1Swenshuai.xi // DIP_POWER_STATE
738*53ee8cc1Swenshuai.xi //-----------------
739*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
740*53ee8cc1Swenshuai.xi /// Set DIP suspend or resume status
741*53ee8cc1Swenshuai.xi /// @ingroup DIP_POWER_STATE
742*53ee8cc1Swenshuai.xi /// @param  u16PowerState       \b IN: Suspend/Resume
743*53ee8cc1Swenshuai.xi /// @return 0                   - Success
744*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
745*53ee8cc1Swenshuai.xi DLL_PUBLIC MS_U32 MApi_XC_DIP_SetPowerState(EN_POWER_MODE u16PowerState);
746*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
747*53ee8cc1Swenshuai.xi /// Set DIP rotate
748*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY
749*53ee8cc1Swenshuai.xi /// @param  bRotation           \b IN: Enable/Disable
750*53ee8cc1Swenshuai.xi /// @param  eRoDirection        \b IN: rotate type
751*53ee8cc1Swenshuai.xi /// @param  eTmpWindow          \b IN: DIP number
752*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
753*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
754*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
755*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_Rotation(MS_BOOL bRotation,EN_XC_DIP_ROTATION eRoDirection,SCALER_DIP_WIN eTmpWindow);
756*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
757*53ee8cc1Swenshuai.xi /// Set DIP pinpon with GOP
758*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY
759*53ee8cc1Swenshuai.xi /// @param  bPinpon             \b IN: Enable/Disable
760*53ee8cc1Swenshuai.xi /// @param  u32PinponAddr       \b IN: pinpon address
761*53ee8cc1Swenshuai.xi /// @param  eTmpWindow          \b IN: DIP number
762*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
763*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
764*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
765*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetPinpon(MS_BOOL bPinpon,MS_PHY u32PinponAddr,SCALER_DIP_WIN eWindow);
766*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_SetHVSP(MS_BOOL bSelect,SCALER_DIP_WIN eWindow);
767*53ee8cc1Swenshuai.xi DLL_PUBLIC E_APIXC_ReturnValue MApi_XC_DIP_Set420TileBlock(EN_XC_DIP_TILE_BLOCK eTileBlock,SCALER_DIP_WIN eWindow);
768*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
769*53ee8cc1Swenshuai.xi /// Set DIP debug log level
770*53ee8cc1Swenshuai.xi /// @ingroup DIP_SET_PROPERTY
771*53ee8cc1Swenshuai.xi /// @param  u8DbgLevel          \b IN: EN_XC_DIP_DEBUG_LEVEL
772*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_OK      - Success
773*53ee8cc1Swenshuai.xi /// @return E_APIXC_RET_FAIL    - Failure
774*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
775*53ee8cc1Swenshuai.xi DLL_PUBLIC MS_U32 MApi_XC_DIP_SetDbgLevel(EN_XC_DIP_DEBUG_LEVEL u8DbgLevel);
776*53ee8cc1Swenshuai.xi //==============Get===================
777*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
778*53ee8cc1Swenshuai.xi /// Get interrpt frame bit-mask status
779*53ee8cc1Swenshuai.xi /// @ingroup DIP_INTERRUPT
780*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
781*53ee8cc1Swenshuai.xi /// @return MS_U16              - interrpt frame bit-mask status
782*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
783*53ee8cc1Swenshuai.xi DLL_PUBLIC MS_U16 MApi_XC_DIP_GetIntStatus(SCALER_DIP_WIN eWindow);
784*53ee8cc1Swenshuai.xi //-----------------
785*53ee8cc1Swenshuai.xi // DIP_GET_BUFINFO
786*53ee8cc1Swenshuai.xi //-----------------
787*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
788*53ee8cc1Swenshuai.xi /// Get DIP buffer address and size info
789*53ee8cc1Swenshuai.xi /// @ingroup DIP_GET_BUFINFO
790*53ee8cc1Swenshuai.xi /// @param  eWindow             \b IN: DIP number
791*53ee8cc1Swenshuai.xi /// @return BUFFER_INFO         - DIP buffer address and size info
792*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
793*53ee8cc1Swenshuai.xi DLL_PUBLIC BUFFER_INFO MApi_XC_DIP_GetBufInfo(SCALER_DIP_WIN eWindow);
794*53ee8cc1Swenshuai.xi 
795*53ee8cc1Swenshuai.xi //-----------------
796*53ee8cc1Swenshuai.xi // DIP_OP TEE
797*53ee8cc1Swenshuai.xi //-----------------
798*53ee8cc1Swenshuai.xi DLL_PUBLIC MS_U32 MDrv_XC_DIP_GetResourceByPipeID(MS_U32 u32PipeID, MS_U32*  U32RetResNum, DIPRESOURCE* pResource);
799*53ee8cc1Swenshuai.xi DLL_PUBLIC MS_U32 MDrv_XC_DIP_ConfigPipe(MS_U32 u32PipeID, MS_U32 u32SecureDMA, MS_U32 u32OperationMode);
800*53ee8cc1Swenshuai.xi DLL_PUBLIC MS_U32 MDrv_XC_DIP_CheckPipe(MS_U32 u32PipeID, MS_U32 u32SecureDMA, MS_U32 u32OperationMode);
801*53ee8cc1Swenshuai.xi 
802*53ee8cc1Swenshuai.xi #ifdef __cplusplus
803*53ee8cc1Swenshuai.xi }
804*53ee8cc1Swenshuai.xi #endif
805*53ee8cc1Swenshuai.xi #endif /* APIXC_DWIN_H */
806*53ee8cc1Swenshuai.xi 
807