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