xref: /utopia/UTPA2-700.0.x/projects/tmplib/include/apiXC_Ace_EX.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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 ///////////////////////////////////////////////////////////////////////////////////////////////////
96 ///
97 /// @file   apiXC_ACE_EX.h
98 /// @brief  ACE EXTENSION API layer Interface FOR DUAL STREAMS
99 /// @author MStar Semiconductor Inc.
100 /// CL 227231+:In box case, there is no need to do YUV2RGB transform.
101 ///////////////////////////////////////////////////////////////////////////////////////////////////
102 
103 #ifndef _API_XC_ACE_EX_H_
104 #define _API_XC_ACE_EX_H_
105 
106 // Common Definition
107 #include "MsCommon.h"
108 #include "MsVersion.h"
109 
110 #ifdef __cplusplus
111 extern "C"
112 {
113 #endif
114 
115 //-------------------------------------------------------------------------------------------------
116 //  Macro and Define
117 //-------------------------------------------------------------------------------------------------
118 
119 //-------------------------------------------------------------------------------------------------
120 //  Type and Structure
121 //-------------------------------------------------------------------------------------------------
122 #define MSIF_ACE_EX_LIB_CODE               {'A','E','X','_'}
123 #define MSIF_ACE_EX_LIBVER                 {'0','0'}
124 #define MSIF_ACE_EX_BUILDNUM               {'5','9'}
125 #define MSIF_ACE_EX_CHANGELIST             {'0','0','6','2','1','0','5','3'}
126 #define XC_ACE_EX_API_VERSION              /* Character String for DRV/API version             */  \
127     MSIF_TAG,                           /* 'MSIF'                                           */  \
128     MSIF_CLASS,                         /* '00'                                             */  \
129     MSIF_CUS,                           /* 0x0000                                           */  \
130     MSIF_MOD,                           /* 0x0000                                           */  \
131     MSIF_CHIP,                                                                                  \
132     MSIF_CPU,                                                                                   \
133     MSIF_ACE_EX_LIB_CODE,                  /* IP__                                             */  \
134     MSIF_ACE_EX_LIBVER,                    /* 0.0 ~ Z.Z                                        */  \
135     MSIF_ACE_EX_BUILDNUM,                  /* 00 ~ 99                                          */  \
136     MSIF_ACE_EX_CHANGELIST,                /* CL#                                              */  \
137     MSIF_OS
138 
139 /// Define XC ACE device number
140 typedef enum
141 {
142     XC_ACE_EX_DEVICE0 = 0,
143     XC_ACE_EX_DEVICE1,
144     XC_ACE_EX_MAX_DEVICE_NUM
145 } XC_ACE_EX_DEVICE_NUM;
146 
147 /*!
148    The color information setting.
149 */
150 typedef enum
151 {
152     /// Version
153     E_XC_ACE_EX_INFO_TYPE_VERSION,
154     /// Contrast
155     E_XC_ACE_EX_INFO_TYPE_CONTRAST,
156     /// R Gain
157     E_XC_ACE_EX_INFO_TYPE_R_GAIN,
158     /// G Gain
159     E_XC_ACE_EX_INFO_TYPE_G_GAIN,
160     /// B Gain
161     E_XC_ACE_EX_INFO_TYPE_B_GAIN,
162     /// Saturation
163     E_XC_ACE_EX_INFO_TYPE_SATURATION,
164     /// Hue
165     E_XC_ACE_EX_INFO_TYPE_HUE,
166     /// Color correction XY R
167     E_XC_ACE_EX_INFO_TYPE_COLOR_CORRECTION_XY_R,
168     /// Color correction XY G
169     E_XC_ACE_EX_INFO_TYPE_COLOR_CORRECTION_XY_G,
170     /// Color correction XY B
171     E_XC_ACE_EX_INFO_TYPE_COLOR_CORRECTION_XY_B,
172     /// Color correction Offset R
173     E_XC_ACE_EX_INFO_TYPE_COLOR_CORRECTION_OFFSET_R,
174     /// Color correction Offset G
175     E_XC_ACE_EX_INFO_TYPE_COLOR_CORRECTION_OFFSET_G,
176     /// Color correction Offset B
177     E_XC_ACE_EX_INFO_TYPE_COLOR_CORRECTION_OFFSET_B,
178     /// R Brightness
179     E_XC_ACE_EX_INFO_TYPE_BRIGHTNESS_R,
180     /// G Brightness
181     E_XC_ACE_EX_INFO_TYPE_BRIGHTNESS_G,
182     /// B Brightness
183     E_XC_ACE_EX_INFO_TYPE_BRIGHTNESS_B,
184 
185     /// Dummy
186     E_XC_ACE_EX_INFO_TYPE_DUMMY
187 } E_XC_ACE_EX_INFOTYPE;
188 
189 /*!
190     The convert method of YUV to RGB
191 */
192 typedef enum
193 {
194     /// YUV to RGB matrix - Use Std CSCM for SDTV
195     E_XC_ACE_EX_YUV_TO_RGB_MATRIX_SDTV,
196     /// YUV to RGB matrix - Use Std CSCM for HDTV
197     E_XC_ACE_EX_YUV_TO_RGB_MATRIX_HDTV,
198     /// Use user define CSCM, specified by tUserYVUtoRGBMatrix
199     E_XC_ACE_EX_YUV_TO_RGB_MATRIX_USER,
200 } E_XC_ACE_EX_YUVTORGBTYPE;
201 
202 /*!
203    The Effect Settings of Multi Window
204 */
205 typedef enum
206 {
207     /// off
208     E_XC_ACE_EX_MWE_MODE_OFF,
209     /// H split, reference window at right side,default
210     E_XC_ACE_EX_MWE_MODE_H_SPLIT,
211     /// Move
212     E_XC_ACE_EX_MWE_MODE_MOVE,
213     /// Zoom
214     E_XC_ACE_EX_MWE_MODE_ZOOM,
215     /// H Scan
216     E_XC_ACE_EX_MWE_MODE_H_SCAN,
217     /// H split, reference window at left side
218     E_XC_ACE_EX_MWE_MODE_H_SPLIT_LEFT,
219     /// The number of Scaler ACE MWE functoin
220     E_XC_ACE_EX_MWE_MODE_NUMS,
221 } E_XC_ACE_EX_MWE_FUNC;
222 
223 /*!
224    The Result of XC_ACE function call.
225 */
226 typedef enum
227 {
228     /// fail
229     E_XC_ACE_EX_FAIL = 0,
230     /// ok
231     E_XC_ACE_EX_OK = 1,
232     /// get base address failed when initialize panel driver
233     E_XC_ACE_EX_GET_BASEADDR_FAIL,
234     /// obtain mutex timeout when calling this function
235     E_XC_ACE_EX_OBTAIN_MUTEX_FAIL,
236 } E_XC_ACE_EX_RESULT;
237 
238 
239 typedef enum
240 {
241     E_XC_ACE_EX_MWE_MIRROR_NORMAL,
242     E_XC_ACE_EX_MWE_MIRROR_H_ONLY,
243     E_XC_ACE_EX_MWE_MIRROR_V_ONLY,
244     E_XC_ACE_EX_MWE_MIRROR_HV,
245     E_XC_ACE_EX_MWE_MIRROR_MAX,
246 }E_XC_ACE_EX_MWE_MIRROR_TYPE;
247 
248 /*!
249    obosolte!! use XC_ACE_EX_color_temp_ex2 instead
250 */
251 typedef struct
252 {
253     /// red color offset
254     MS_U8 cRedOffset;
255     /// green color offset
256     MS_U8 cGreenOffset;
257     /// blue color offset
258     MS_U8 cBlueOffset;
259 
260     /// red color
261     MS_U8 cRedColor;
262     /// green color
263     MS_U8 cGreenColor;
264     /// blue color
265     MS_U8 cBlueColor;
266 
267     /// scale 100 value of red color
268     MS_U8 cRedScaleValue;
269     /// scale 100 value of green color
270     MS_U8 cGreenScaleValue;
271     /// scale 100 value of blue color
272     MS_U8 cBlueScaleValue;
273 } XC_ACE_EX_color_temp;
274 
275 /*!
276    obosolte!! use XC_ACE_EX_color_temp_ex2 instead
277 */
278 typedef struct
279 {
280     /// red color offset
281     MS_U16 cRedOffset;
282     /// green color offset
283     MS_U16 cGreenOffset;
284     /// blue color offset
285     MS_U16 cBlueOffset;
286 
287     /// red color
288     MS_U8 cRedColor;
289     /// green color
290     MS_U8 cGreenColor;
291     /// blue color
292     MS_U8 cBlueColor;
293 
294     /// scale 100 value of red color
295     MS_U8 cRedScaleValue;
296     /// scale 100 value of green color
297     MS_U8 cGreenScaleValue;
298     /// scale 100 value of blue color
299     MS_U8 cBlueScaleValue;
300 } XC_ACE_EX_color_temp_ex;
301 
302 /*!
303    The color temp settings ex2.
304 */
305 typedef struct
306 {
307     /// red color offset
308     MS_U16 cRedOffset;
309     /// green color offset
310     MS_U16 cGreenOffset;
311     /// blue color offset
312     MS_U16 cBlueOffset;
313 
314     /// red color
315     MS_U16 cRedColor;
316     /// green color
317     MS_U16 cGreenColor;
318     /// blue color
319     MS_U16 cBlueColor;
320 
321     /// scale 100 value of red color
322     MS_U16 cRedScaleValue;
323     /// scale 100 value of green color
324     MS_U16 cGreenScaleValue;
325     /// scale 100 value of blue color
326     MS_U16 cBlueScaleValue;
327 } XC_ACE_EX_color_temp_ex2;
328 
329 //----------------------------
330 // XC ACE initialize
331 //----------------------------
332 /*!
333    The ACE initialze DATA.
334 */
335 /// Define XC device ID
336 typedef struct
337 {
338     MS_U32 u32Version;
339     MS_U32 u32Id;
340 }XC_ACE_DeviceId;
341 
342 typedef struct
343 {
344     MS_BOOL    eWindow;                  ///< initial eWindow
345 
346     MS_S16*    S16ColorCorrectionMatrix; ///< initial Color Correction Matrix
347 
348     MS_S16*    S16RGB;                   ///< initial RGB
349 
350     MS_U16     u16MWEHstart;             ///< initial Horizontal start
351 
352 
353     MS_U16     u16MWEVstart;             ///< initial Vertical start
354 
355     MS_U16     u16MWEWidth;              ///< initial MWE Width
356 
357     MS_U16     u16MWEHeight;             ///< initial MWE Height
358 
359     MS_U16     u16MWE_Disp_Hstart;       ///< initial MWE Display Horizontal start
360 
361     MS_U16     u16MWE_Disp_Vstart;       ///< initial MWE Display Vertical start
362 
363     MS_U16     u16MWE_Disp_Width;        ///< initial MWE Display width
364 
365     MS_U16     u16MWE_Disp_Height;       ///< initial MWE Display height
366 
367     MS_BOOL    bMWE_Enable;              ///< Enable or not
368 } XC_ACE_EX_InitData;
369 
370 /*!
371    The XC_ACE library infomation.
372 */
373 typedef struct
374 {
375 
376 } XC_ACE_EX_ApiInfo;
377 
378 /*!
379    The XC_ACE status infomation.
380 */
381 typedef struct
382 {
383     /// Scaler ACE API status
384     XC_ACE_EX_InitData ACEinit;
385 } XC_ACE_EX_ApiStatus;
386 
387 
388 /*!
389    The XC_ACE DNR parameters settings.
390 */
391 typedef enum
392 {
393     /// NR ONOFF
394     E_ACE_EX_DNR_NR_ONOFF,
395     /// SNR
396     E_ACE_EX_DNR_SNR,
397     /// Spike NR 0
398     E_ACE_EX_DNR_SPIKE_NR_0,
399     /// Spike NR 1
400     E_ACE_EX_DNR_SPIKE_NR_1,
401     /// Gray ground gain
402     E_ACE_EX_DNR_GRAY_GROUND_GAIN,
403     /// Gray ground EN
404     E_ACE_EX_DNR_GRAY_GROUND_EN,
405     /// Peaking bank coring
406     E_ACE_EX_DNR_PEAKING_BANK_CORING,
407     /// Guassin SNR threshold
408     E_ACE_EX_DNR_GUASSIN_SNR_THRESHOLD,
409     /// Motion
410     E_ACE_EX_DNR_MOTION,
411     /// Peaking coring threshold
412     E_ACE_EX_DNR_PEAKING_CORING_THRESHOLD,
413     /// Sharpness adjust
414     E_ACE_EX_DNR_SHARPNESS_ADJUST,
415     /// NM V
416     E_ACE_EX_DNR_NM_V,
417     /// GNR 0
418     E_ACE_EX_DNR_GNR_0,
419     /// GNR 1
420     E_ACE_EX_DNR_GNR_1,
421     /// CP
422     E_ACE_EX_DNR_CP,
423     /// DP
424     E_ACE_EX_DNR_DP,
425     /// NM H 0
426     E_ACE_EX_DNR_NM_H_0,
427     /// HM H 1
428     E_ACE_EX_DNR_NM_H_1,
429     /// SC coring
430     E_ACE_EX_DNR_SC_CORING,
431     /// NM
432     E_ACE_EX_DNR_SNR_NM,
433 }XC_ACE_EX_DNR_Param;
434 
435 typedef enum
436 {
437     E_ACE_EX_IHC_COLOR_R,
438     E_ACE_EX_IHC_COLOR_G,
439     E_ACE_EX_IHC_COLOR_B,
440     E_ACE_EX_IHC_COLOR_C,
441     E_ACE_EX_IHC_COLOR_M,
442     E_ACE_EX_IHC_COLOR_Y,
443     E_ACE_EX_IHC_COLOR_F,
444     E_ACE_EX_IHC_COLOR_MAX,
445 }XC_ACE_EX_IHC_COLOR_TYPE;
446 
447 #define ACE_EX_INFOEX_MODE_POST_RGB_GAIN           0x1
448 #define ACE_EX_INFOEX_MODE_POST_RGB_OFFSET         0x2
449 typedef struct
450 {
451     MS_U32 u32Mode;
452     MS_U32 u32Reserved;
453 }XC_ACE_EX_InfoEx;
454 
455 //--------------------------------------------------------------------------------------------------
456 // MWE Load Visual Effect Table related
457 //--------------------------------------------------------------------------------------------------
458 #define ACE_EX_TABINFO_VERSION                0
459 
460 #define ACE_EX_TABINFO_REG_ADDR_SIZE          (2)
461 #define ACE_EX_TABINFO_REG_MASK_SIZE          (1)
462 #define ACE_EX_TABINFO_REG_DATA_SIZE          (2)
463 
464 typedef struct
465 {
466     MS_U8 *pTable;
467     MS_U8 u8TabCols;
468     MS_U8 u8TabRows;
469     MS_U8 u8TabIdx;
470     MS_U32 u32ACE_TabInfo_version; //Version of current structure, including the content of pTable
471 }XC_ACE_EX_TAB_Info;
472 //--------------------------------------------------------------------------------------------------
473 
474 //------------------------------
475 // Weave Type: used for 3D
476 //------------------------------
477 typedef enum
478 {
479     E_ACE_EX_WEAVETYPE_NONE        = 0x00,
480     E_ACE_EX_WEAVETYPE_H          = 0x01,
481     E_ACE_EX_WEAVETYPE_V          = 0x02,
482     E_ACE_EX_WEAVETYPE_DUALVIEW    = 0x04,
483     E_ACE_EX_WEAVETYPE_NUM,
484 }XC_ACE_EX_WEAVETYPE;
485 
486 //-------------------------------------------------------------------------------------------------
487 //  Function and Variable
488 //-------------------------------------------------------------------------------------------------
489 #define XC_ACE_EX_BYPASS_COLOR_GAIN  128 //necessary for HW color tempture adjustment,
490                                       //used after T2, i.e: T3/T4/T7/T8/Janus..
491 
492 /********************************************************************************/
493 /*                   msAPI_ACE.c                   */
494 /********************************************************************************/
495 
496 //-------------------------------------------------------------------------------------------------
497 /// ACE Initiation
498 /// @param  pstXC_ACE_InitData                  \b IN: @ref XC_ACE_EX_InitData
499 /// @param  u32InitDataLen                      \b IN: The Length of pstXC_ACE_InitData.
500 /// @return @ref MS_BOOL
501 //-------------------------------------------------------------------------------------------------
502 // DLL_PUBLIC MS_BOOL MApi_XC_ACE_EX_Init(XC_ACE_DeviceId *pDeviceId, XC_ACE_EX_InitData *pstXC_ACE_InitData, MS_U32 u32InitDataLen);
503 
504 
505 //-------------------------------------------------------------------------------------------------
506 /// ACE Exit
507 /// @return @ref MS_BOOL
508 //-------------------------------------------------------------------------------------------------
509 // DLL_PUBLIC MS_BOOL MApi_XC_ACE_EX_Exit(XC_ACE_DeviceId *pDeviceId);
510 
511 //-------------------------------------------------------------------------------------------------
512 /// ACE DMS
513 /// @param  eWindow                 \b IN: Indicates the window where the ACE function applies to.
514 /// @param  bisATV                  \b IN: Whether the active input source is or not ATV.
515 //-------------------------------------------------------------------------------------------------
516 // DLL_PUBLIC void    MApi_XC_ACE_EX_DMS(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_BOOL bisATV);
517 
518 //-------------------------------------------------------------------------------------------------
519 /// Set PC YUV to RGB
520 /// @param  eWindow                  \b IN: Indicates the window where the ACE function applies to.
521 /// @param  bEnable                  \b IN: Enable or Disalbe the function.
522 //-------------------------------------------------------------------------------------------------
523 // DLL_PUBLIC void    MApi_XC_ACE_EX_SetPCYUV2RGB(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_BOOL bEnable);
524 
525 //-------------------------------------------------------------------------------------------------
526 /// Select YUV to RGB Matrix, if the ucMatrix type is ACE_YUV_TO_RGB_MATRIX_USER, then apply the
527 /// psUserYUVtoRGBMatrix supplied by user.
528 // @param  eWindow                       \b IN: Indicates the window where the ACE function applies to.
529 // @param  ucMatrix                      \b IN: @ref E_ACE_YUVTORGBInfoType.
530 // @param  psUserYUVtoRGBMatrix          \b IN: User-Defined color transformed matrix.
531 //-------------------------------------------------------------------------------------------------
532 // DLL_PUBLIC void    MApi_XC_ACE_EX_SelectYUVtoRGBMatrix(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_U8 ucMatrix, MS_S16* psUserYUVtoRGBMatrix);
533 
534 //-------------------------------------------------------------------------------------------------
535 /// Set color correction table
536 /// @param  bScalerWin                      \b IN: Indicates the window where the ACE function
537 ///                                                 applies to, 0: Main Window, 1: Sub Window.
538 //-------------------------------------------------------------------------------------------------
539 // DLL_PUBLIC void    MApi_XC_ACE_EX_SetColorCorrectionTable( XC_ACE_DeviceId *pDeviceId, MS_BOOL bScalerWin);
540 
541 //-------------------------------------------------------------------------------------------------
542 /// Set PCs RGB table
543 /// @param  bScalerWin                      \b IN: Indicates the window where the ACE function
544 ///                                                 applies to, 0: Main Window, 1: Sub Window.
545 //-------------------------------------------------------------------------------------------------
546 // DLL_PUBLIC void    MApi_XC_ACE_EX_SetPCsRGBTable( XC_ACE_DeviceId *pDeviceId, MS_BOOL bScalerWin);
547 
548 //-------------------------------------------------------------------------------------------------
549 /// Get color matrix
550 /// @param  eWindow                      \b IN: Indicates the window where the ACE function applies to.
551 /// @param  pu16Matrix                   \b OUT: a MS_U16 matrix represents current color matrix
552 //-------------------------------------------------------------------------------------------------
553 // DLL_PUBLIC void    MApi_XC_ACE_EX_GetColorMatrix( XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_U16* pu16Matrix);
554 
555 //-------------------------------------------------------------------------------------------------
556 /// Set color matrix
557 /// @param  eWindow                      \b IN: Indicates the window where the ACE function applies to.
558 /// @param  pu16Matrix                   \b IN: The Matrix given to set the color transformation.
559 //-------------------------------------------------------------------------------------------------
560 // DLL_PUBLIC void    MApi_XC_ACE_EX_SetColorMatrix( XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_U16* pu16Matrix);
561 
562 //-------------------------------------------------------------------------------------------------
563 /// Set Bypass Color Matrix
564 /// @param bEnable      \b IN:  Enable : Bypass Set Color Matrix
565 /// @return @ref E_XC_ACE_EX_RESULT
566 //-------------------------------------------------------------------------------------------------
567 // DLL_PUBLIC E_XC_ACE_EX_RESULT MApi_XC_ACE_EX_SetBypassColorMatrix(XC_ACE_DeviceId *pDeviceId, MS_BOOL bEnable );
568 
569 //-------------------------------------------------------------------------------------------------
570 /// Set IHC value
571 /// @param  bScalerWin                   \b IN: Indicates the window where the ACE function applies to.
572 /// @param  eIHC                         \b IN: Indicates the color to be set.
573 /// @param  u8Val                        \b IN: The value set to the color(0 ~ 127).
574 //-------------------------------------------------------------------------------------------------
575 // DLL_PUBLIC MS_BOOL MApi_XC_ACE_EX_SetIHC(XC_ACE_DeviceId *pDeviceId, MS_BOOL bScalerWin, XC_ACE_EX_IHC_COLOR_TYPE eIHC, MS_U8 u8Val);
576 
577 //-------------------------------------------------------------------------------------------------
578 /// Patch DTG color checker
579 // @param  u8Mode                       \b IN: TBD
580 //-------------------------------------------------------------------------------------------------
581 // DLL_PUBLIC void    MApi_XC_ACE_EX_PatchDTGColorChecker( XC_ACE_DeviceId *pDeviceId, MS_U8 u8Mode);
582 
583 //-------------------------------------------------------------------------------------------------
584 /// Get ACE information
585 /// @param  bWindow                      \b IN: Indicates the window where the ACE function
586 ///                                              applies to, 0: Main Window, 1: Sub Window.
587 /// @param  eXCACEInfoType                \b IN: Specify the information type users interested in.
588 /// @retval The information returned.
589 //-------------------------------------------------------------------------------------------------
590 // DLL_PUBLIC MS_U16  MApi_XC_ACE_EX_GetACEInfo( XC_ACE_DeviceId *pDeviceId, MS_BOOL bWindow, E_XC_ACE_EX_INFOTYPE eXCACEInfoType );
591 
592 //-------------------------------------------------------------------------------------------------
593 /// Get ACE extra information
594 /// @param  bWindow                      \b IN: Indicates the window where the ACE function
595 ///                                              applies to, 0: Main Window, 1: Sub Window.
596 /// @param  XC_ACE_EX_InfoEx                \b OUT: Specify the extra information returned by driver.
597 //-------------------------------------------------------------------------------------------------
598 // DLL_PUBLIC void MApi_XC_ACE_EX_GetACEInfoEx( XC_ACE_DeviceId *pDeviceId, MS_BOOL bWindow, XC_ACE_EX_InfoEx *pInfoEx);
599 
600 /********************************************************************************/
601 /*                   msAPI_ACE_Ext.c                   */
602 /********************************************************************************/
603 //-------------------------------------------------------------------------------------------------
604 /// Picture set contrast
605 /// @param  eWindow                       \b IN: Indicates the window where the ACE function applies to.
606 /// @param  bUseYUVSpace                  \b IN: Use YUV format or RGB format.
607 /// @param  u8Contrast                    \b IN: Contrase value given by user.
608 //-------------------------------------------------------------------------------------------------
609 // DLL_PUBLIC void    MApi_XC_ACE_EX_PicSetContrast( XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_BOOL bUseYUVSpace, MS_U8 u8Contrast);
610 
611 //-------------------------------------------------------------------------------------------------
612 /// Picture set brightness
613 /// @param  u8Brightness_R                    \b IN: R value given by user.
614 /// @param  u8Brightness_G                    \b IN: G value given by user.
615 /// @param  u8Brightness_B                    \b IN: B value given by user.
616 //-------------------------------------------------------------------------------------------------
617 // DLL_PUBLIC void    MApi_XC_ACE_EX_PicSetBrightness( XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_U8 u8Brightness_R, MS_U8 u8Brightness_G, MS_U8 u8Brightness_B);
618 
619 //-------------------------------------------------------------------------------------------------
620 /// Picture set precise brightness
621 /// @param  u16Brightness_R                    \b IN: R value given by user.
622 /// @param  u16Brightness_G                    \b IN: G value given by user.
623 /// @param  u16Brightness_B                    \b IN: B value given by user.
624 //-------------------------------------------------------------------------------------------------
625 // DLL_PUBLIC void MApi_XC_ACE_EX_PicSetBrightnessPrecise(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_U16 u16Brightness_R, MS_U16 u16Brightness_G, MS_U16 u16Brightness_B);
626 
627 //-------------------------------------------------------------------------------------------------
628 ///-This function will set Pre Y Offset
629 ///@param eWindow        \b IN: Window type
630 ///@param u8PreYOffset \b IN: Pre Y Offset value
631 //-------------------------------------------------------------------------------------------------
632 // DLL_PUBLIC E_XC_ACE_EX_RESULT MApi_XC_ACE_EX_PicSetPreYOffset(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_U8 u8PreYOffset);
633 
634 //-------------------------------------------------------------------------------------------------
635 ///-This function will get Pre Y Offset
636 ///@param eWindow        \b IN: Window type
637 ///@param pu8PreYOffset \b OUT: Pre Y Offset value
638 //-------------------------------------------------------------------------------------------------
639 // DLL_PUBLIC MS_U8 MApi_XC_ACE_EX_PicGetPreYOffset(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow);
640 
641 //-------------------------------------------------------------------------------------------------
642 /// Picture set Hue
643 /// @param  eWindow                  \b IN: Indicates the window where the ACE function applies to.
644 /// @param  bUseYUVSpace             \b IN: Use YUV format or RGB format.
645 /// @param  u8Hue                    \b IN: Hue value given by user.
646 //-------------------------------------------------------------------------------------------------
647 // DLL_PUBLIC void    MApi_XC_ACE_EX_PicSetHue( XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_BOOL bUseYUVSpace, MS_U8 u8Hue );
648 
649 //-------------------------------------------------------------------------------------------------
650 /// Skip Wait Vsync
651 /// @param eWindow               \b IN: Enable
652 /// @param Skip wait Vsync      \b IN: Disable wait Vsync
653 //-------------------------------------------------------------------------------------------------
654 // DLL_PUBLIC E_XC_ACE_EX_RESULT MApi_XC_ACE_EX_SkipWaitVsync( XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow,MS_BOOL bIsSkipWaitVsyn);
655 
656 //-------------------------------------------------------------------------------------------------
657 /// Picture set Saturation
658 /// @param  eWindow                  \b IN: Indicates the window where the ACE function applies to.
659 /// @param  bUseYUVSpace             \b IN: Use YUV format or RGB format.
660 /// @param  u8Saturation             \b IN: Saturation value given by user.
661 //-------------------------------------------------------------------------------------------------
662 // DLL_PUBLIC void    MApi_XC_ACE_EX_PicSetSaturation(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_BOOL bUseYUVSpace, MS_U8 u8Saturation );
663 
664 //-------------------------------------------------------------------------------------------------
665 ///-Adjust sharpness
666 /// @param  eWindow                  \b IN: Indicates the window where the ACE function applies to.
667 /// @param u8Sharpness                \b IN: sharpness value
668 ///- 0 -0x3f
669 //-------------------------------------------------------------------------------------------------
670 // DLL_PUBLIC void    MApi_XC_ACE_EX_PicSetSharpness( XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_U8 u8Sharpness );
671 
672 //-------------------------------------------------------------------------------------------------
673 /// Picture set color temp.
674 /// @param  eWindow                  \b IN: Indicates the window where the ACE function applies to.
675 /// @param  bUseYUVSpace             \b IN: Use YUV format or RGB format.
676 /// @param  pstColorTemp             \b IN: Color temp info given by user.
677 //-------------------------------------------------------------------------------------------------
678 // DLL_PUBLIC void    MApi_XC_ACE_EX_PicSetColorTemp( XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_BOOL bUseYUVSpace, XC_ACE_EX_color_temp* pstColorTemp);
679 //-------------------------------------------------------------------------------------------------
680 /// Picture set color temp ex.
681 /// @param  eWindow                  \b IN: Indicates the window where the ACE function applies to.
682 /// @param  bUseYUVSpace             \b IN: Use YUV format or RGB format.
683 /// @param  pstColorTemp             \b IN: Color temp info given by user.
684 //-------------------------------------------------------------------------------------------------
685 // DLL_PUBLIC void    MApi_XC_ACE_EX_PicSetColorTempEx( XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_BOOL bUseYUVSpace, XC_ACE_EX_color_temp_ex* pstColorTemp);
686 
687 //-------------------------------------------------------------------------------------------------
688 /// Picture set post color temp
689 /// V02. Change the fields in XC_ACE_EX_color_temp_ex structure to MS_U16
690 /// @param  eWindow                  \b IN: Indicates the window where the ACE function applies to.
691 /// @param  pstColorTemp             \b IN: Color temp info given by user.
692 //-------------------------------------------------------------------------------------------------
693 // DLL_PUBLIC void MApi_XC_ACE_EX_PicSetPostColorTemp_V02(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, XC_ACE_EX_color_temp_ex2* pstColorTemp);
694 
695 #ifndef _API_XC_ACE_EX_C_
696 // Projects without EX_ENABLE_NEW_COLORTEMP_METHOD defined will set EX_ENABLE_NEW_COLORTEMP_METHOD to 0
697 #ifndef EX_ENABLE_NEW_COLORTEMP_METHOD
698   #define EX_ENABLE_NEW_COLORTEMP_METHOD 0
699 #endif
700 
701 #ifndef EX_ENABLE_PRECISE_RGBBRIGHTNESS
702   #define EX_ENABLE_PRECISE_RGBBRIGHTNESS 0
703 #endif
704 
705 #if EX_ENABLE_NEW_COLORTEMP_METHOD
706     #if EX_ENABLE_PRECISE_RGBBRIGHTNESS
707         #define MApi_XC_ACE_EX_PicSetColorTemp(pDeviceId, x, y, z) MApi_XC_ACE_EX_PicSetPostColorTemp2Ex(pDeviceId, x, y, z)
708     #else
709         #define MApi_XC_ACE_EX_PicSetColorTemp(pDeviceId, x, y, z) MApi_XC_ACE_EX_PicSetPostColorTemp2(pDeviceId, x, y, z)
710     #endif
711 #else
712     #if EX_ENABLE_PRECISE_RGBBRIGHTNESS
713         #define MApi_XC_ACE_EX_PicSetColorTemp(pDeviceId, x, y, z) MApi_XC_ACE_EX_PicSetColorTempEx(pDeviceId, x, y, z)
714     #endif
715 #endif
716 
717 // #define MApi_XC_ACE_EX_PicSetBrightnessInVsync(pDeviceId, bWin, x, y, z) {MApi_XC_EX_WaitOutputVSync(pDeviceId, 2, 100, bWin); MApi_XC_ACE_EX_PicSetBrightness(pDeviceId, bWin, x, y, z);}
718 // #define MApi_XC_ACE_EX_PicSetBrightnessPreciseInVsync(pDeviceId, bWin, x, y, z) {MApi_XC_EX_WaitOutputVSync(pDeviceId, 2, 100, bWin); MApi_XC_ACE_EX_PicSetBrightnessPrecise(pDeviceId, bWin, x, y, z);}
719 
720 #endif
721 
722 //-------------------------------------------------------------------------------------------------
723 /// Set Flesh tone
724 /// @param  eWindow                  \b IN: Indicates the window where the ACE function applies to.
725 /// @param  bEn                      \b IN: @ref MS_BOOL
726 /// @param  u8FleshTone              \b IN: Flesh Tone Value
727 //-------------------------------------------------------------------------------------------------
728 // DLL_PUBLIC void    MApi_XC_ACE_EX_SetFleshTone(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_BOOL bEn, MS_U8 u8FleshTone);
729 
730 //-------------------------------------------------------------------------------------------------
731 /// black adjsutment
732 /// @param  eWindow                           \b IN: window type.
733 /// @param  u8BlackAdjust                     \b IN: adjust value given.
734 //-------------------------------------------------------------------------------------------------
735 // DLL_PUBLIC void    MApi_XC_ACE_EX_SetBlackAdjust(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_U8 u8BlackAdjust);
736 
737 //-------------------------------------------------------------------------------------------------
738 /// IHC sram
739 /// @param  pBuf                            \b IN: sram data
740 /// @param  u16ByteSize                     \b IN: size of sram
741 //-------------------------------------------------------------------------------------------------
742 // DLL_PUBLIC MS_BOOL MApi_XC_ACE_EX_Set_IHC_SRAM(XC_ACE_DeviceId *pDeviceId, MS_U16 *pBuf, MS_U16 u16ByteSize);
743 
744 //-------------------------------------------------------------------------------------------------
745 /// IHC sram
746 /// @param  pBuf                            \b IN: sram data
747 /// @param  u16ByteSize                     \b IN: size of sram
748 //-------------------------------------------------------------------------------------------------
749 // DLL_PUBLIC MS_BOOL MApi_XC_ACE_EX_Set_ICC_SRAM(XC_ACE_DeviceId *pDeviceId, MS_U16 *pBuf, MS_U16 u16ByteSize);
750 
751 /********************************************************************************/
752 /*                  MWE function                  */
753 /********************************************************************************/
754 
755 //-------------------------------------------------------------------------------------------------
756 /// Enable MWE
757 /// @param  bEnable                     \b IN: @ref MS_BOOL
758 //-------------------------------------------------------------------------------------------------
759 // DLL_PUBLIC void    MApi_XC_ACE_EX_EnableMWE(XC_ACE_DeviceId *pDeviceId, MS_BOOL bEnable);
760 
761 //-------------------------------------------------------------------------------------------------
762 /// MWE Clone Main Window Visual Effect
763 //-------------------------------------------------------------------------------------------------
764 // DLL_PUBLIC void MApi_XC_ACE_EX_MWECloneVisualEffect(XC_ACE_DeviceId *pDeviceId);
765 
766 //-------------------------------------------------------------------------------------------------
767 /// MWE Apply Visual Effect From Reg Table
768 //-------------------------------------------------------------------------------------------------
769 // DLL_PUBLIC MS_BOOL MApi_XC_ACE_EX_MWESetRegTable(XC_ACE_DeviceId *pDeviceId, XC_ACE_EX_TAB_Info *pMWETable);
770 
771 //-------------------------------------------------------------------------------------------------
772 /// Flag for MWE Visual Effect Coming From Reg Table
773 /// @param  bEnable                     \b IN: @ref MS_BOOL
774 //-------------------------------------------------------------------------------------------------
775 // DLL_PUBLIC MS_BOOL MApi_XC_ACE_EX_SetMWELoadFromPQ(XC_ACE_DeviceId *pDeviceId, MS_BOOL bEnable);
776 
777 //-------------------------------------------------------------------------------------------------
778 /// MWE status
779 /// @retval  @ref MS_BOOL
780 //-------------------------------------------------------------------------------------------------
781 // DLL_PUBLIC MS_BOOL MApi_XC_ACE_EX_MWEStatus(XC_ACE_DeviceId *pDeviceId);
782 
783 //-------------------------------------------------------------------------------------------------
784 /// MWE Handle
785 //-------------------------------------------------------------------------------------------------
786 // DLL_PUBLIC void    MApi_XC_ACE_EX_MWEHandle( XC_ACE_DeviceId *pDeviceId );
787 
788 //-------------------------------------------------------------------------------------------------
789 /// MWE function selection
790 /// @param  eWindow                 \b IN: Indicates the window where the ACE function applies to.
791 /// @param  mwe_func                     \b IN: @ref E_XC_ACE_EX_MWE_FUNC
792 //-------------------------------------------------------------------------------------------------
793 // DLL_PUBLIC void    MApi_XC_ACE_EX_MWEFuncSel( XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, E_XC_ACE_EX_MWE_FUNC  mwe_func);
794 
795 //-------------------------------------------------------------------------------------------------
796 /// MWE set display window
797 /// @param  u16MWE_Disp_Hstart             \b IN: Horizotal position of start point. 0:means leftest position.
798 /// @param  u16MWE_Disp_Vstart             \b IN: Vertical position of start point, 0: mean up most position.
799 /// @param  u16MWE_Disp_Width              \b IN: Width of display window.
800 /// @param  u16MWE_Disp_Height             \b IN: Height of display winodw.
801 //-------------------------------------------------------------------------------------------------
802 // DLL_PUBLIC void    MApi_XC_ACE_EX_MWESetDispWin(XC_ACE_DeviceId *pDeviceId, MS_U16 u16MWE_Disp_Hstart, MS_U16 u16MWE_Disp_Vstart, MS_U16 u16MWE_Disp_Width, MS_U16 u16MWE_Disp_Height);
803 
804 //-------------------------------------------------------------------------------------------------
805 /// 3D clone main and sub window's PQmap
806 /// @param  enWeaveType             \b IN: Output WeaveType
807 //-------------------------------------------------------------------------------------------------
808 // DLL_PUBLIC void MApi_XC_ACE_EX_3DClonePQMap(XC_ACE_DeviceId *pDeviceId, XC_ACE_EX_WEAVETYPE enWeaveType);
809 
810 /********************************************************************************/
811 /*                  DynamicNR function                                          */
812 /********************************************************************************/
813 
814 //-------------------------------------------------------------------------------------------------
815 /// DNR Blending NR table
816 /// @param  pu8NewNR              \b IN: new NR target values.
817 /// @param  u8Weight              \b IN: Blending weighting.
818 /// @param  u8Step                \b IN: maxmium step size.
819 /// @param  pu16PreY0             \b IN: previous NR value 0.
820 /// @param  pu16PreY1             \b IN: previous NR value 1.
821 /// @param  pu8NRTBL              \b OUT: The new NR Table.
822 //-------------------------------------------------------------------------------------------------
823 // DLL_PUBLIC void   MApi_XC_ACE_EX_DNR_Blending_NRTbl(XC_ACE_DeviceId *pDeviceId, MS_U8 *pu8NewNR, MS_U8 u8Weight, MS_U8 u8Step, MS_U16 *pu16PreY0, MS_U16 *pu16PreY1, MS_U8 *pu8NRTBL);
824 
825 //-------------------------------------------------------------------------------------------------
826 /// DNR Blending MISC
827 /// @param  u8NewItem              \b IN: New DNR blending target value.
828 /// @param  u16PreItem             \b IN: previous value.
829 /// @param  u8Weight               \b IN: Blending weighting.
830 /// @param  u8Step                 \b IN: Maxmium step size.
831 /// @retval new DNR blending value.
832 //-------------------------------------------------------------------------------------------------
833 // DLL_PUBLIC MS_U16 MApi_XC_ACE_EX_DNR_Blending_MISC(XC_ACE_DeviceId *pDeviceId, MS_U8 u8NewItem, MS_U16 u16PreItem, MS_U8 u8Weight, MS_U8 u8Step);
834 
835 //-------------------------------------------------------------------------------------------------
836 /// DNR Blending
837 /// @param  u8NewItem              \b IN: New DNR blending target value.
838 /// @param  u16PreItem             \b IN: previous value.
839 /// @param  u8Weight               \b IN: Blending weighting.
840 /// @retval new DNR blending value.
841 //-------------------------------------------------------------------------------------------------
842 // DLL_PUBLIC MS_U8  MApi_XC_ACE_EX_DNR_Blending(XC_ACE_DeviceId *pDeviceId, MS_U8 u8NewItem, MS_U16 u16PreItem, MS_U8 u8Weight);
843 
844 //-------------------------------------------------------------------------------------------------
845 /// DNR get precision shift
846 /// @retval shift value.
847 //-------------------------------------------------------------------------------------------------
848 // DLL_PUBLIC MS_U16 MApi_XC_ACE_EX_DNR_Get_PrecisionShift(XC_ACE_DeviceId *pDeviceId);
849 
850 //-------------------------------------------------------------------------------------------------
851 /// DNR get motion weight
852 /// @param  u8CurMotion                 \b IN: current motion value
853 /// @param  u8PreMotion                 \b IN: previous motion value
854 /// @param  u8CurMotionLvl              \b IN: current motion catalog-level
855 /// @param  u8PreMotionLvl              \b IN: previous motion catalog-level
856 /// @param  u8DeFlick_Thre              \b IN: de-flick threshold.
857 /// @param  u8DeFilick_Step             \b IN: de-flick step size.
858 /// @retval motion weight
859 //-------------------------------------------------------------------------------------------------
860 // DLL_PUBLIC MS_U8  MApi_XC_ACE_EX_DNR_GetMotion_Weight(XC_ACE_DeviceId *pDeviceId, MS_U8 u8CurMotion, MS_U8 u8PreMotion, MS_U8 u8CurMotionLvl, MS_U8 u8PreMotionLvl, MS_U8 u8DeFlick_Thre, MS_U8 u8DeFilick_Step);
861 
862 //-------------------------------------------------------------------------------------------------
863 /// DNR get Luma weight
864 /// @param  u8CurAvgLuma                 \b IN: current avergae luma
865 /// @param  u8PreAvgLuam                 \b IN: previous average luma
866 /// @param  u8CurLumaLvl                 \b IN: current avergae luma catalog-level
867 /// @param  u8PreLumaLvl                 \b IN: previous avergae luma catalog-level
868 /// @param  u8DeFlick_Th                 \b IN: de-flick threshold.
869 /// @param  u8DeFlick_Step               \b IN: de-flick step size.
870 /// @retval luma weight
871 //-------------------------------------------------------------------------------------------------
872 // DLL_PUBLIC MS_U8  MApi_XC_ACE_EX_DNR_GetLuma_Weight(XC_ACE_DeviceId *pDeviceId, MS_U8 u8CurAvgLuma, MS_U8 u8PreAvgLuam, MS_U8 u8CurLumaLvl, MS_U8 u8PreLumaLvl, MS_U8 u8DeFlick_Th,  MS_U8 u8DeFlick_Step);
873 
874 //-------------------------------------------------------------------------------------------------
875 /// DNR get noise weight
876 /// @param  u8CurNoise                 \b IN: current noise.
877 /// @param  u8PreNoise                 \b IN: previous noise.
878 /// @param  u8Range                    \b IN: noise threshold, if difference between PreNoise and
879 ///                                          CurNoise > this value, then the stable status is down
880 ///                                          -grade for 1 degree.
881 /// @param  u8DeFlick_Th              \b IN: de-flick threshold.
882 /// @param  u8DeFlick_Step            \b IN: de-flick step size.
883 /// @retval Noise weighting value.
884 //-------------------------------------------------------------------------------------------------
885 // DLL_PUBLIC MS_U8  MApi_XC_ACE_EX_DNR_GetNoise_Weight(XC_ACE_DeviceId *pDeviceId, MS_U8 u8CurNoise, MS_U8 u8PreNoise, MS_U8 u8Range, MS_U8 u8DeFlick_Th, MS_U8 u8DeFlick_Step);
886 
887 //-------------------------------------------------------------------------------------------------
888 /// DNR get motion degree, lower one means its more like a still video.
889 /// @retval motion degree value.
890 //-------------------------------------------------------------------------------------------------
891 // DLL_PUBLIC MS_U8  MApi_XC_ACE_EX_DNR_GetMotion(XC_ACE_DeviceId *pDeviceId);
892 
893 //-------------------------------------------------------------------------------------------------
894 /// DNR init motion
895 //-------------------------------------------------------------------------------------------------
896 // DLL_PUBLIC void   MApi_XC_ACE_EX_DNR_Init_Motion(XC_ACE_DeviceId *pDeviceId);
897 
898 //-------------------------------------------------------------------------------------------------
899 /// DNR init luma
900 //-------------------------------------------------------------------------------------------------
901 // DLL_PUBLIC void   MApi_XC_ACE_EX_DNR_Init_Luma(XC_ACE_DeviceId *pDeviceId);
902 
903 //-------------------------------------------------------------------------------------------------
904 /// DNR init noise
905 //-------------------------------------------------------------------------------------------------
906 // DLL_PUBLIC void   MApi_XC_ACE_EX_DNR_Init_Noise(XC_ACE_DeviceId *pDeviceId);
907 
908 //-------------------------------------------------------------------------------------------------
909 /// Set parameter of a DNR item specified by user.
910 /// @param  eWindow                 \b IN: Indicates the window where the ACE function applies to.
911 /// @param  eParam                 \b IN: @ref XC_ACE_EX_DNR_Param
912 /// @param  u16val                 \b IN: Setting value of DNR item.
913 //-------------------------------------------------------------------------------------------------
914 // DLL_PUBLIC void   MApi_XC_ACE_EX_DNR_SetParam(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, XC_ACE_EX_DNR_Param eParam, MS_U16 u16val);
915 
916 //-------------------------------------------------------------------------------------------------
917 /// Get parameter of a DNR item specified by user.
918 /// @param  eWindow                 \b IN: Indicates the window where the ACE function applies to.
919 /// @param  eParam                 \b IN: @ref XC_ACE_EX_DNR_Param
920 /// @return @ref MS_U8
921 //-------------------------------------------------------------------------------------------------
922 // DLL_PUBLIC MS_U8  MApi_XC_ACE_EX_DNR_GetParam(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, XC_ACE_EX_DNR_Param eParam);
923 
924 //-------------------------------------------------------------------------------------------------
925 /// Set NR table
926 /// @param  pu8Tbl                 \b IN: NR table given by user.
927 //-------------------------------------------------------------------------------------------------
928 // DLL_PUBLIC void   MApi_XC_ACE_EX_DNR_SetNRTbl(XC_ACE_DeviceId *pDeviceId, MS_U8 *pu8Tbl);
929 
930 // must have functions
931 //-------------------------------------------------------------------------------------------------
932 /// Get version (without Mutex protect)
933 /// @param  ppVersion                 \b OUT: Version information of ACE lib.
934 /// @return @ref E_XC_ACE_EX_RESULT
935 //-------------------------------------------------------------------------------------------------
936 // DLL_PUBLIC E_XC_ACE_EX_RESULT MApi_XC_ACE_EX_GetLibVer(const MSIF_Version **ppVersion);
937 
938 //-------------------------------------------------------------------------------------------------
939 /// Get info from driver (without Mutex protect)
940 /// @return XC_ACE_EX_ApiInfo
941 //-------------------------------------------------------------------------------------------------
942 // const XC_ACE_EX_ApiInfo * MApi_XC_ACE_EX_GetInfo(XC_ACE_DeviceId *pDeviceId);
943 
944 //-------------------------------------------------------------------------------------------------
945 /// Get panel current status
946 /// @param  pDrvStatus                 \b IN: @ref XC_ACE_EX_ApiStatus
947 /// @param  bWindow                    \b IN: Indicates the window where the ACE function
948 ///                                           applies to, 0: Main Window, 1: Sub Window.
949 /// @return @ref MS_BOOL
950 //-------------------------------------------------------------------------------------------------
951 // DLL_PUBLIC MS_BOOL MApi_XC_ACE_EX_GetStatus(XC_ACE_DeviceId *pDeviceId, XC_ACE_EX_ApiStatus *pDrvStatus, MS_BOOL bWindow);
952 
953 //-------------------------------------------------------------------------------------------------
954 /// Set debug level (without Mutex protect)
955 /// @param  u16DbgSwitch                 \b IN: debug switch value, use TRUE/FALSE to turn on/off.
956 /// @return @ref MS_BOOL
957 //-------------------------------------------------------------------------------------------------
958 // DLL_PUBLIC MS_BOOL MApi_XC_ACE_EX_SetDbgLevel(MS_U16 u16DbgSwitch);
959 
960 
961 // DLL_PUBLIC void MApi_XC_ACE_EX_ColorCorrectionTable( XC_ACE_DeviceId *pDeviceId, MS_BOOL bScalerWin, MS_S16 *psColorCorrectionTable );
962 
963 // DLL_PUBLIC void MApi_XC_ACE_EX_SetColorMatrixControl( XC_ACE_DeviceId *pDeviceId, MS_BOOL bScalerWin, MS_BOOL bEnable );
964 // DLL_PUBLIC void MApi_XC_ACE_EX_SetRBChannelRange( XC_ACE_DeviceId *pDeviceId, MS_BOOL bScalerWin, MS_BOOL bRange );
965 
966 
967 //////////////////////////////////////////////
968 // Below functions are obosolted ! Please do not use them if you do not use them yet.
969 //////////////////////////////////////////////
970 
971 //-------------------------------------------------------------------------------------------------
972 ///-obosolte!! use MApi_XC_ACE_EX_PicSetPostColorTemp_V02 instead
973 //-------------------------------------------------------------------------------------------------
974 // DLL_PUBLIC void MApi_XC_ACE_EX_PicSetPostColorTemp(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, XC_ACE_EX_color_temp* pstColorTemp);
975 
976 //-------------------------------------------------------------------------------------------------
977 ///-obosolte!! use MApi_XC_ACE_EX_PicSetPostColorTemp_V02 instead
978 //-------------------------------------------------------------------------------------------------
979 // DLL_PUBLIC void MApi_XC_ACE_EX_PicSetPostColorTempEx(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, XC_ACE_EX_color_temp_ex* pstColorTemp);
980 
981 //-------------------------------------------------------------------------------------------------
982 ///-obosolte!! use MApi_XC_ACE_EX_PicSetPostColorTempWithBypassACESetting instead
983 //-------------------------------------------------------------------------------------------------
984 // DLL_PUBLIC void MApi_XC_ACE_EX_PicSetPostColorTemp2(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_BOOL bUseYUVSpace, XC_ACE_EX_color_temp* pstColorTemp);
985 
986 //*************************************************************************
987 ///-obosolte!! Please bypass color temp by using MApi_XC_ACE_EX_PicSetColorTemp and then set post color temp by using MApi_XC_ACE_EX_PicSetPostColorTemp_V02
988 //*************************************************************************
989 // DLL_PUBLIC void MApi_XC_ACE_EX_PicSetPostColorTemp2Ex(XC_ACE_DeviceId *pDeviceId, MS_BOOL eWindow, MS_BOOL bUseYUVSpace, XC_ACE_EX_color_temp_ex* pstColorTemp);
990 
991 
992 
993 #ifdef __cplusplus
994 }
995 #endif
996 
997 #endif // _API_XC_ACE_EX_H_
998 
999