1*53ee8cc1Swenshuai.xi //<MStar Software> 2*53ee8cc1Swenshuai.xi //****************************************************************************** 3*53ee8cc1Swenshuai.xi // MStar Software 4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are 6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties. 8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all 9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written 10*53ee8cc1Swenshuai.xi // permission has been granted by MStar. 11*53ee8cc1Swenshuai.xi // 12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you 13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to 14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations: 15*53ee8cc1Swenshuai.xi // 16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar 17*53ee8cc1Swenshuai.xi // Software and any modification/derivatives thereof. 18*53ee8cc1Swenshuai.xi // No right, ownership, or interest to MStar Software and any 19*53ee8cc1Swenshuai.xi // modification/derivatives thereof is transferred to you under Terms. 20*53ee8cc1Swenshuai.xi // 21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be 22*53ee8cc1Swenshuai.xi // supplied together with third party`s software and the use of MStar 23*53ee8cc1Swenshuai.xi // Software may require additional licenses from third parties. 24*53ee8cc1Swenshuai.xi // Therefore, you hereby agree it is your sole responsibility to separately 25*53ee8cc1Swenshuai.xi // obtain any and all third party right and license necessary for your use of 26*53ee8cc1Swenshuai.xi // such third party`s software. 27*53ee8cc1Swenshuai.xi // 28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29*53ee8cc1Swenshuai.xi // MStar`s confidential information and you agree to keep MStar`s 30*53ee8cc1Swenshuai.xi // confidential information in strictest confidence and not disclose to any 31*53ee8cc1Swenshuai.xi // third party. 32*53ee8cc1Swenshuai.xi // 33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34*53ee8cc1Swenshuai.xi // kind. Any warranties are hereby expressly disclaimed by MStar, including 35*53ee8cc1Swenshuai.xi // without limitation, any warranties of merchantability, non-infringement of 36*53ee8cc1Swenshuai.xi // intellectual property rights, fitness for a particular purpose, error free 37*53ee8cc1Swenshuai.xi // and in conformity with any international standard. You agree to waive any 38*53ee8cc1Swenshuai.xi // claim against MStar for any loss, damage, cost or expense that you may 39*53ee8cc1Swenshuai.xi // incur related to your use of MStar Software. 40*53ee8cc1Swenshuai.xi // In no event shall MStar be liable for any direct, indirect, incidental or 41*53ee8cc1Swenshuai.xi // consequential damages, including without limitation, lost of profit or 42*53ee8cc1Swenshuai.xi // revenues, lost or damage of data, and unauthorized system use. 43*53ee8cc1Swenshuai.xi // You agree that this Section 4 shall still apply without being affected 44*53ee8cc1Swenshuai.xi // even if MStar Software has been modified by MStar in accordance with your 45*53ee8cc1Swenshuai.xi // request or instruction for your use, except otherwise agreed by both 46*53ee8cc1Swenshuai.xi // parties in writing. 47*53ee8cc1Swenshuai.xi // 48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or 49*53ee8cc1Swenshuai.xi // services in relation with MStar Software to you for your use of 50*53ee8cc1Swenshuai.xi // MStar Software in conjunction with your or your customer`s product 51*53ee8cc1Swenshuai.xi // ("Services"). 52*53ee8cc1Swenshuai.xi // You understand and agree that, except otherwise agreed by both parties in 53*53ee8cc1Swenshuai.xi // writing, Services are provided on an "AS IS" basis and the warranty 54*53ee8cc1Swenshuai.xi // disclaimer set forth in Section 4 above shall apply. 55*53ee8cc1Swenshuai.xi // 56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels 57*53ee8cc1Swenshuai.xi // or otherwise: 58*53ee8cc1Swenshuai.xi // (a) conferring any license or right to use MStar name, trademark, service 59*53ee8cc1Swenshuai.xi // mark, symbol or any other identification; 60*53ee8cc1Swenshuai.xi // (b) obligating MStar or any of its affiliates to furnish any person, 61*53ee8cc1Swenshuai.xi // including without limitation, you and your customers, any assistance 62*53ee8cc1Swenshuai.xi // of any kind whatsoever, or any information; or 63*53ee8cc1Swenshuai.xi // (c) conferring any license or right under any intellectual property right. 64*53ee8cc1Swenshuai.xi // 65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws 66*53ee8cc1Swenshuai.xi // of Taiwan, R.O.C., excluding its conflict of law rules. 67*53ee8cc1Swenshuai.xi // Any and all dispute arising out hereof or related hereto shall be finally 68*53ee8cc1Swenshuai.xi // settled by arbitration referred to the Chinese Arbitration Association, 69*53ee8cc1Swenshuai.xi // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70*53ee8cc1Swenshuai.xi // Rules of the Association by three (3) arbitrators appointed in accordance 71*53ee8cc1Swenshuai.xi // with the said Rules. 72*53ee8cc1Swenshuai.xi // The place of arbitration shall be in Taipei, Taiwan and the language shall 73*53ee8cc1Swenshuai.xi // be English. 74*53ee8cc1Swenshuai.xi // The arbitration award shall be final and binding to both parties. 75*53ee8cc1Swenshuai.xi // 76*53ee8cc1Swenshuai.xi //****************************************************************************** 77*53ee8cc1Swenshuai.xi //<MStar Software> 78*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 79*53ee8cc1Swenshuai.xi // 80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc. 81*53ee8cc1Swenshuai.xi // All rights reserved. 82*53ee8cc1Swenshuai.xi // 83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained 84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of 85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence 86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient. 87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure, 88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling, 89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential 90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the 91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom. 92*53ee8cc1Swenshuai.xi // 93*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 94*53ee8cc1Swenshuai.xi 95*53ee8cc1Swenshuai.xi /////////////////////////////////////////////////////////////////////////////////////////////////// 96*53ee8cc1Swenshuai.xi /// 97*53ee8cc1Swenshuai.xi /// @file drvTVEncoder.h 98*53ee8cc1Swenshuai.xi /// @brief TVEncoder interface 99*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc. 100*53ee8cc1Swenshuai.xi /////////////////////////////////////////////////////////////////////////////////////////////////// 101*53ee8cc1Swenshuai.xi 102*53ee8cc1Swenshuai.xi /* !\defgroup VE VE interface (drvTVEncoder.h) 103*53ee8cc1Swenshuai.xi \ingroup CVBS_OUT 104*53ee8cc1Swenshuai.xi 105*53ee8cc1Swenshuai.xi VE is used to covernt input video into standard definition resolution(pal/nstc) 106*53ee8cc1Swenshuai.xi and pass through the DAC to scart out. 107*53ee8cc1Swenshuai.xi 108*53ee8cc1Swenshuai.xi <b> VE Block Diagram: </b> \n 109*53ee8cc1Swenshuai.xi \image html drvVE_pic01.png 110*53ee8cc1Swenshuai.xi 111*53ee8cc1Swenshuai.xi *! \defgroup VE_INFO VE Information pool 112*53ee8cc1Swenshuai.xi * \ingroup VE 113*53ee8cc1Swenshuai.xi 114*53ee8cc1Swenshuai.xi *! \defgroup VE_INIT VE init control 115*53ee8cc1Swenshuai.xi * \ingroup VE 116*53ee8cc1Swenshuai.xi 117*53ee8cc1Swenshuai.xi *! \defgroup VE_FEATURE VE feature operation 118*53ee8cc1Swenshuai.xi * \ingroup VE 119*53ee8cc1Swenshuai.xi 120*53ee8cc1Swenshuai.xi *! \defgroup VE_ToBeModified VE api to be modified 121*53ee8cc1Swenshuai.xi * \ingroup VE 122*53ee8cc1Swenshuai.xi 123*53ee8cc1Swenshuai.xi *! \defgroup VE_ToBeRemove VE api to be removed 124*53ee8cc1Swenshuai.xi * \ingroup VE 125*53ee8cc1Swenshuai.xi */ 126*53ee8cc1Swenshuai.xi #ifndef _DRVTVENCODER_H 127*53ee8cc1Swenshuai.xi #define _DRVTVENCODER_H 128*53ee8cc1Swenshuai.xi 129*53ee8cc1Swenshuai.xi #include "MsDevice.h" 130*53ee8cc1Swenshuai.xi #include "MsCommon.h" 131*53ee8cc1Swenshuai.xi #include "UFO.h" 132*53ee8cc1Swenshuai.xi 133*53ee8cc1Swenshuai.xi #ifdef __cplusplus 134*53ee8cc1Swenshuai.xi extern "C" 135*53ee8cc1Swenshuai.xi { 136*53ee8cc1Swenshuai.xi #endif 137*53ee8cc1Swenshuai.xi 138*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 139*53ee8cc1Swenshuai.xi // Macro and Define 140*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 141*53ee8cc1Swenshuai.xi #define MSIF_VE_TAG {'M','S','I','F'} //Version ID header 142*53ee8cc1Swenshuai.xi #define MSIF_VE_CLASS {'0','0'} //info Class code 143*53ee8cc1Swenshuai.xi #define MSIF_VE_CUS 0x6666 //Customer ID 144*53ee8cc1Swenshuai.xi #define MSIF_VE_MOD 0x6666 //Module ID 145*53ee8cc1Swenshuai.xi #define MSIF_VE_CHIP 0Xffff //CHIP ID 146*53ee8cc1Swenshuai.xi #define MSIF_VE_CPU '1' //CPU 147*53ee8cc1Swenshuai.xi #define MSIF_VE_LIB_CODE {'V','E','_','_'} //Lib code 148*53ee8cc1Swenshuai.xi #define MSIF_VE_LIBVER {'0','1'} //LIB version 149*53ee8cc1Swenshuai.xi #define MSIF_VE_BUILDNUM {'1','4'} //Build Number 150*53ee8cc1Swenshuai.xi #define MSIF_VE_CHANGELIST {'0','0','6','8','8','5','4','7'} //P4 ChangeList Number 151*53ee8cc1Swenshuai.xi //#define MSIF_OS '0' //OS 152*53ee8cc1Swenshuai.xi 153*53ee8cc1Swenshuai.xi #define VE_DRV_VERSION /* Character String for DRV/API version */ \ 154*53ee8cc1Swenshuai.xi MSIF_VE_TAG, /* 'MSIF' */ \ 155*53ee8cc1Swenshuai.xi MSIF_VE_CLASS, /* '00' */ \ 156*53ee8cc1Swenshuai.xi MSIF_VE_CUS, /* 0x0000 */ \ 157*53ee8cc1Swenshuai.xi MSIF_VE_MOD, /* 0x0000 */ \ 158*53ee8cc1Swenshuai.xi MSIF_VE_CHIP, \ 159*53ee8cc1Swenshuai.xi MSIF_VE_CPU, \ 160*53ee8cc1Swenshuai.xi MSIF_VE_LIB_CODE, /* IP__ */ \ 161*53ee8cc1Swenshuai.xi MSIF_VE_LIBVER, /* 0.0 ~ Z.Z */ \ 162*53ee8cc1Swenshuai.xi MSIF_VE_BUILDNUM, /* 00 ~ 99 */ \ 163*53ee8cc1Swenshuai.xi MSIF_VE_CHANGELIST, /* CL# */ \ 164*53ee8cc1Swenshuai.xi MSIF_OS 165*53ee8cc1Swenshuai.xi 166*53ee8cc1Swenshuai.xi /// version of structure 'MS_VE_VECAPTURESTATE' of current VE lib 167*53ee8cc1Swenshuai.xi #define VE_VECAPTURESTATE_VERSION 0 //Version number for compatibility with AP and VE driver 168*53ee8cc1Swenshuai.xi #define VE_INPUTSRC_INFO_VERSION 0 169*53ee8cc1Swenshuai.xi #define VE_INITDATA_VERSION 0 170*53ee8cc1Swenshuai.xi 171*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 172*53ee8cc1Swenshuai.xi // Type and Structure 173*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 174*53ee8cc1Swenshuai.xi /// Result of VE function 175*53ee8cc1Swenshuai.xi typedef enum _VE_Result 176*53ee8cc1Swenshuai.xi { 177*53ee8cc1Swenshuai.xi E_VE_NOT_SUPPORT = -1, 178*53ee8cc1Swenshuai.xi E_VE_FAIL = 0, 179*53ee8cc1Swenshuai.xi E_VE_OK = 1, 180*53ee8cc1Swenshuai.xi E_VE_TIMEOUT, 181*53ee8cc1Swenshuai.xi E_VE_QUEUE_FULL, 182*53ee8cc1Swenshuai.xi E_VE_BUSY 183*53ee8cc1Swenshuai.xi } VE_Result; 184*53ee8cc1Swenshuai.xi 185*53ee8cc1Swenshuai.xi /// definition of video system 186*53ee8cc1Swenshuai.xi typedef enum 187*53ee8cc1Swenshuai.xi { 188*53ee8cc1Swenshuai.xi MS_VE_NTSC, ///< NTSC 189*53ee8cc1Swenshuai.xi MS_VE_NTSC_443, ///< NTSC443 190*53ee8cc1Swenshuai.xi MS_VE_NTSC_J, ///< NTSC_J 191*53ee8cc1Swenshuai.xi MS_VE_PAL_M, ///< PAL_M 192*53ee8cc1Swenshuai.xi MS_VE_PAL_N, ///< PAL_N 193*53ee8cc1Swenshuai.xi MS_VE_PAL_NC, ///< PAL_Nc 194*53ee8cc1Swenshuai.xi MS_VE_PAL, ///< PAL_B 195*53ee8cc1Swenshuai.xi MS_VE_SECAM, ///< SECAM 196*53ee8cc1Swenshuai.xi MS_VE_VIDEOSYS_NUM, 197*53ee8cc1Swenshuai.xi } MS_VE_VIDEOSYS; 198*53ee8cc1Swenshuai.xi 199*53ee8cc1Swenshuai.xi typedef enum 200*53ee8cc1Swenshuai.xi { 201*53ee8cc1Swenshuai.xi MS_VE_LAYER_NONE = 0, ///<0: VE LAYER NONE 202*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_VIDEO_MUX1_MUX2, ///<1: FrameColor->Video->osd ->osd1 203*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_VIDEO_MUX2_MUX1, ///<2: FrameColor->Video->osd1 ->osd 204*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_MUX1_VIDEO_MUX2, ///<3: FrameColor->osd ->Video->osd1 205*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_MUX1_MUX2_VIDEO, ///<4: FrameColor->osd ->osd1 ->Video 206*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_MUX2_VIDEO_MUX1, ///<5: FrameColor>osd1 ->Video->osd 207*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_MUX2_MUX1_VIDEO, ///<6: FrameColor->osd1 ->osd->Video 208*53ee8cc1Swenshuai.xi MS_VE_LAYER_RESERVED, 209*53ee8cc1Swenshuai.xi } MS_VE_OSD_LAYER_SEL; 210*53ee8cc1Swenshuai.xi 211*53ee8cc1Swenshuai.xi /// VE cap's capability 212*53ee8cc1Swenshuai.xi typedef struct 213*53ee8cc1Swenshuai.xi { 214*53ee8cc1Swenshuai.xi MS_BOOL bNTSC; 215*53ee8cc1Swenshuai.xi MS_BOOL bPAL; 216*53ee8cc1Swenshuai.xi MS_BOOL bVESupported; ///< supported VE or not 217*53ee8cc1Swenshuai.xi } VE_Caps; 218*53ee8cc1Swenshuai.xi 219*53ee8cc1Swenshuai.xi /// VE extented capability: for STB chips, not all chips support up-scaling or 220*53ee8cc1Swenshuai.xi /// crop 221*53ee8cc1Swenshuai.xi typedef struct 222*53ee8cc1Swenshuai.xi { 223*53ee8cc1Swenshuai.xi MS_BOOL bSupport_UpScale; 224*53ee8cc1Swenshuai.xi MS_BOOL bSupport_CropMode; 225*53ee8cc1Swenshuai.xi } MS_VE_Ext_Cap; 226*53ee8cc1Swenshuai.xi 227*53ee8cc1Swenshuai.xi /// VE driver info. 228*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 229*53ee8cc1Swenshuai.xi { 230*53ee8cc1Swenshuai.xi VE_Caps stCaps; 231*53ee8cc1Swenshuai.xi } VE_DrvInfo; 232*53ee8cc1Swenshuai.xi 233*53ee8cc1Swenshuai.xi /// VE DRV status 234*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 235*53ee8cc1Swenshuai.xi { 236*53ee8cc1Swenshuai.xi MS_VE_VIDEOSYS VideoSystem; // video std of output signal 237*53ee8cc1Swenshuai.xi MS_U16 u16H_CapStart; 238*53ee8cc1Swenshuai.xi MS_U16 u16H_CapSize; 239*53ee8cc1Swenshuai.xi MS_U16 u16V_CapStart; 240*53ee8cc1Swenshuai.xi MS_U16 u16V_CapSize; 241*53ee8cc1Swenshuai.xi 242*53ee8cc1Swenshuai.xi } VE_DrvStatus; 243*53ee8cc1Swenshuai.xi 244*53ee8cc1Swenshuai.xi typedef struct 245*53ee8cc1Swenshuai.xi { 246*53ee8cc1Swenshuai.xi MS_U8* pVE_TBL; 247*53ee8cc1Swenshuai.xi MS_U8* pVE_Coef_TBL; 248*53ee8cc1Swenshuai.xi MS_U8* pVBI_TBL; 249*53ee8cc1Swenshuai.xi MS_BOOL bvtotal_525; 250*53ee8cc1Swenshuai.xi MS_BOOL bPALSwitch; 251*53ee8cc1Swenshuai.xi MS_BOOL bPALout; 252*53ee8cc1Swenshuai.xi }MS_VE_Out_VideoSYS, *PMS_VE_Out_VideoSYS; 253*53ee8cc1Swenshuai.xi 254*53ee8cc1Swenshuai.xi /// type of output destination for TV encoder 255*53ee8cc1Swenshuai.xi typedef enum 256*53ee8cc1Swenshuai.xi { 257*53ee8cc1Swenshuai.xi MS_VE_DEST_NONE = 0, 258*53ee8cc1Swenshuai.xi MS_VE_DEST_SCART, ///< output destination is SCART 259*53ee8cc1Swenshuai.xi MS_VE_DEST_CVBS, ///< output destination is CVBS 260*53ee8cc1Swenshuai.xi MS_VE_DEST_SVIDEO, ///< output destination is S-Video 261*53ee8cc1Swenshuai.xi MS_VE_DEST_YPBPR, ///< output destination is YPbPr 262*53ee8cc1Swenshuai.xi MS_VE_DEST_NUM, 263*53ee8cc1Swenshuai.xi } MS_VE_OUTPUT_DEST_TYPE; 264*53ee8cc1Swenshuai.xi 265*53ee8cc1Swenshuai.xi /// type of input source for TV encoder 266*53ee8cc1Swenshuai.xi typedef enum 267*53ee8cc1Swenshuai.xi { 268*53ee8cc1Swenshuai.xi MS_VE_SRC_DTV = 0x00, ///< input source is DTV 269*53ee8cc1Swenshuai.xi MS_VE_SRC_ATV = 0x01, ///< input source is ATV 270*53ee8cc1Swenshuai.xi MS_VE_SRC_CVBS0 = 0x02, ///< input source is CVBS0 271*53ee8cc1Swenshuai.xi MS_VE_SRC_CVBS1 = 0x03, ///< input source is CVBS1 272*53ee8cc1Swenshuai.xi MS_VE_SRC_CVBS2 = 0x04, ///< input source is CVBS2 273*53ee8cc1Swenshuai.xi MS_VE_SRC_CVBS3 = 0x05, ///< input source is CVBS3 274*53ee8cc1Swenshuai.xi MS_VE_SRC_SVIDEO = 0x06, ///< input source is SVIDEO 275*53ee8cc1Swenshuai.xi MS_VE_SRC_DSUB = 0x07, ///< input source is DSUB 276*53ee8cc1Swenshuai.xi MS_VE_SRC_COMP = 0x08, ///< input source is COMP 277*53ee8cc1Swenshuai.xi MS_VE_SRC_HDMI_A = 0x09, ///< input source is COMP 278*53ee8cc1Swenshuai.xi MS_VE_SRC_HDMI_B = 0x0A, ///< input source is COMP 279*53ee8cc1Swenshuai.xi MS_VE_SRC_HDMI_C = 0x0B, ///< input source is COMP 280*53ee8cc1Swenshuai.xi MS_VE_SRC_MAIN = 0x0C, ///< input source is from main window 281*53ee8cc1Swenshuai.xi MS_VE_SRC_SUB = 0x0D, ///< input source is from sub window 282*53ee8cc1Swenshuai.xi MS_VE_SRC_SCALER = 0x0E, ///< input source is scaler op2 283*53ee8cc1Swenshuai.xi MS_VE_SRC_DI = 0x0F, ///< input source is DI 284*53ee8cc1Swenshuai.xi MS_VE_SRC_BT656 = 0x10, ///< input source is BT656 285*53ee8cc1Swenshuai.xi MS_VE_SRC_DTV_FROM_MVOP = 0x11, ///< input source is DTV but from MVOP 286*53ee8cc1Swenshuai.xi MS_VE_SRC_DNR = 0x12, ///< input source is DNR 287*53ee8cc1Swenshuai.xi MS_VE_SRC_NONE = 0xFF, 288*53ee8cc1Swenshuai.xi }MS_VE_INPUT_SRC_TYPE; 289*53ee8cc1Swenshuai.xi 290*53ee8cc1Swenshuai.xi typedef struct 291*53ee8cc1Swenshuai.xi { 292*53ee8cc1Swenshuai.xi MS_U32 PreHScalingRatio; 293*53ee8cc1Swenshuai.xi MS_U32 PreVScalingRatio; 294*53ee8cc1Swenshuai.xi MS_U32 PostHScalingRatio; 295*53ee8cc1Swenshuai.xi MS_U32 PostVScalingRatio; 296*53ee8cc1Swenshuai.xi }MS_VE_Backup_Reg, *PMS_VE_Backup_Reg; 297*53ee8cc1Swenshuai.xi 298*53ee8cc1Swenshuai.xi /// status of switchinging output destination 299*53ee8cc1Swenshuai.xi typedef enum 300*53ee8cc1Swenshuai.xi { 301*53ee8cc1Swenshuai.xi MS_VE_SWITCH_DST_SUCCESS, ///< success 302*53ee8cc1Swenshuai.xi MS_VE_SWITCH_DST_INVALID_COMBINATION, ///< invalid combination 303*53ee8cc1Swenshuai.xi MS_VE_SWITCH_DST_INVALID_PARAM, ///< invalid parameter 304*53ee8cc1Swenshuai.xi MS_VE_SWITCH_DST_FAIL, ///< fail 305*53ee8cc1Swenshuai.xi }MS_SWITCH_VE_DST_STATUS; 306*53ee8cc1Swenshuai.xi 307*53ee8cc1Swenshuai.xi 308*53ee8cc1Swenshuai.xi /// VE output Type 309*53ee8cc1Swenshuai.xi typedef enum 310*53ee8cc1Swenshuai.xi { 311*53ee8cc1Swenshuai.xi MS_VE_OUT_CCIR656, ///< output signal is CCIR656 312*53ee8cc1Swenshuai.xi MS_VE_OUT_TVENCODER,///< output signal from TVEncoder 313*53ee8cc1Swenshuai.xi MS_VE_OUT_CAPTURE,///< output signal from VE Capture 314*53ee8cc1Swenshuai.xi }MS_VE_OUT_TYPE; 315*53ee8cc1Swenshuai.xi 316*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 317*53ee8cc1Swenshuai.xi { 318*53ee8cc1Swenshuai.xi MS_U16 u16Width; 319*53ee8cc1Swenshuai.xi MS_U16 u16height; 320*53ee8cc1Swenshuai.xi MS_PHY u32MiuBaseAddr; 321*53ee8cc1Swenshuai.xi MS_U32 u32MemSize; 322*53ee8cc1Swenshuai.xi MS_BOOL bVECapture; ///< TRUE/FALSE, enable/disable VE capture 323*53ee8cc1Swenshuai.xi }MS_VE_Output_CAPTURE, *PMS_VE_Output_CAPTURE; 324*53ee8cc1Swenshuai.xi 325*53ee8cc1Swenshuai.xi /// the information of switching ouput destination for TV encoder 326*53ee8cc1Swenshuai.xi typedef struct 327*53ee8cc1Swenshuai.xi { 328*53ee8cc1Swenshuai.xi MS_VE_OUTPUT_DEST_TYPE OutputDstType; ///< type of output destination 329*53ee8cc1Swenshuai.xi MS_SWITCH_VE_DST_STATUS Status; ///< the returning status of switching output destination 330*53ee8cc1Swenshuai.xi }MS_Switch_VE_Dest_Info, *PMS_Switch_VE_Dest_Info; 331*53ee8cc1Swenshuai.xi 332*53ee8cc1Swenshuai.xi typedef enum 333*53ee8cc1Swenshuai.xi { 334*53ee8cc1Swenshuai.xi MS_VE_HMirrorMode, //H mirror 335*53ee8cc1Swenshuai.xi MS_VE_VMirrorMode, //V mirror 336*53ee8cc1Swenshuai.xi MS_VE_HVBothMirrorMode, //HV mirror 337*53ee8cc1Swenshuai.xi MS_VE_NoneMirror, 338*53ee8cc1Swenshuai.xi }MS_VE_MirrorStatus; 339*53ee8cc1Swenshuai.xi 340*53ee8cc1Swenshuai.xi /// status of switchinging input source 341*53ee8cc1Swenshuai.xi typedef enum 342*53ee8cc1Swenshuai.xi { 343*53ee8cc1Swenshuai.xi MS_VE_SWITCH_SRC_SUCCESS, ///< success 344*53ee8cc1Swenshuai.xi MS_VE_SWITCH_SRC_INVALID_PARAM, ///< invalid parameter 345*53ee8cc1Swenshuai.xi MS_VE_SWITCH_SRC_FAIL, ///< fail 346*53ee8cc1Swenshuai.xi }MS_SWITCH_VE_SRC_STATUS; 347*53ee8cc1Swenshuai.xi 348*53ee8cc1Swenshuai.xi /// the information of switching output destination for TV encoder 349*53ee8cc1Swenshuai.xi typedef struct 350*53ee8cc1Swenshuai.xi { 351*53ee8cc1Swenshuai.xi MS_VE_INPUT_SRC_TYPE InputSrcType; ///< type of input source 352*53ee8cc1Swenshuai.xi MS_SWITCH_VE_SRC_STATUS Status; ///< the returning status of switching input source 353*53ee8cc1Swenshuai.xi }MS_Switch_VE_Src_Info, *PMS_Switch_VE_Src_Info; 354*53ee8cc1Swenshuai.xi 355*53ee8cc1Swenshuai.xi typedef struct 356*53ee8cc1Swenshuai.xi { 357*53ee8cc1Swenshuai.xi MS_U16 u16Version; //< Version number for this structure 358*53ee8cc1Swenshuai.xi MS_VE_INPUT_SRC_TYPE eInputSrcType; ///< type of input source for Video encoder 359*53ee8cc1Swenshuai.xi MS_VE_INPUT_SRC_TYPE eInputSrcOfMixedSrc; // The real input source for mixed "InputSrcType" of VE, 360*53ee8cc1Swenshuai.xi // eg. Real InputSrc of "MS_VE_SRC_MAIN", "MS_VE_SRC_SUB", "MS_VE_SRC_SCALER" etc. 361*53ee8cc1Swenshuai.xi }MS_VE_InputSrc_Info, *PMS_VE_InputSrc_Info; 362*53ee8cc1Swenshuai.xi 363*53ee8cc1Swenshuai.xi /// output control for VE 364*53ee8cc1Swenshuai.xi typedef struct 365*53ee8cc1Swenshuai.xi { 366*53ee8cc1Swenshuai.xi MS_BOOL bEnable; ///< TRUE/FALSE, enable/disable VE 367*53ee8cc1Swenshuai.xi MS_VE_OUT_TYPE OutputType; ///< VE output type 368*53ee8cc1Swenshuai.xi }MS_VE_Output_Ctrl, *PMS_VE_Output_Ctrl; 369*53ee8cc1Swenshuai.xi 370*53ee8cc1Swenshuai.xi /// VE set mode type 371*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 372*53ee8cc1Swenshuai.xi { 373*53ee8cc1Swenshuai.xi MS_U16 u16H_CapStart; 374*53ee8cc1Swenshuai.xi MS_U16 u16H_CapSize; 375*53ee8cc1Swenshuai.xi MS_U16 u16V_CapStart; 376*53ee8cc1Swenshuai.xi MS_U16 u16V_CapSize; 377*53ee8cc1Swenshuai.xi MS_U16 u16H_SC_CapStart; 378*53ee8cc1Swenshuai.xi MS_U16 u16H_SC_CapSize; 379*53ee8cc1Swenshuai.xi MS_U16 u16V_SC_CapStart; 380*53ee8cc1Swenshuai.xi MS_U16 u16V_SC_CapSize; 381*53ee8cc1Swenshuai.xi MS_U16 u16InputVFreq; 382*53ee8cc1Swenshuai.xi MS_BOOL bHDuplicate; 383*53ee8cc1Swenshuai.xi MS_BOOL bSrcInterlace; 384*53ee8cc1Swenshuai.xi }MS_VE_Set_Mode_Type; 385*53ee8cc1Swenshuai.xi 386*53ee8cc1Swenshuai.xi //VE_ApiStatus 387*53ee8cc1Swenshuai.xi typedef struct 388*53ee8cc1Swenshuai.xi { 389*53ee8cc1Swenshuai.xi PMS_VE_Output_Ctrl output_ctrl; 390*53ee8cc1Swenshuai.xi MS_Switch_VE_Src_Info src_info; 391*53ee8cc1Swenshuai.xi MS_Switch_VE_Dest_Info dst_info; 392*53ee8cc1Swenshuai.xi }MS_VE_ApiStatus; 393*53ee8cc1Swenshuai.xi 394*53ee8cc1Swenshuai.xi /// Define Window position and size attribute 395*53ee8cc1Swenshuai.xi typedef struct 396*53ee8cc1Swenshuai.xi { 397*53ee8cc1Swenshuai.xi MS_U16 x; ///<start x of the window 398*53ee8cc1Swenshuai.xi MS_U16 y; ///<start y of the window 399*53ee8cc1Swenshuai.xi MS_U16 width; ///<width of the window 400*53ee8cc1Swenshuai.xi MS_U16 height; ///<height of the window 401*53ee8cc1Swenshuai.xi } MS_VE_WINDOW_TYPE; 402*53ee8cc1Swenshuai.xi 403*53ee8cc1Swenshuai.xi //Display information 404*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 405*53ee8cc1Swenshuai.xi { 406*53ee8cc1Swenshuai.xi MS_U32 VDTOT; //Output vertical total 407*53ee8cc1Swenshuai.xi MS_U32 DEVST; //Output DE vertical start 408*53ee8cc1Swenshuai.xi MS_U32 DEVEND;//Output DE Vertical end 409*53ee8cc1Swenshuai.xi MS_U32 HDTOT;// Output horizontal total 410*53ee8cc1Swenshuai.xi MS_U32 DEHST; //Output DE horizontal start 411*53ee8cc1Swenshuai.xi MS_U32 DEHEND;// Output DE horizontal end 412*53ee8cc1Swenshuai.xi MS_BOOL bInterlaceMode; 413*53ee8cc1Swenshuai.xi } MS_VE_DST_DispInfo; 414*53ee8cc1Swenshuai.xi 415*53ee8cc1Swenshuai.xi //VE register bank 416*53ee8cc1Swenshuai.xi typedef enum 417*53ee8cc1Swenshuai.xi { 418*53ee8cc1Swenshuai.xi MS_VE_REG_BANK_3B, 419*53ee8cc1Swenshuai.xi MS_VE_REG_BANK_3E, 420*53ee8cc1Swenshuai.xi MS_VE_REG_BANK_3F, 421*53ee8cc1Swenshuai.xi } MS_VE_REG_BANK; 422*53ee8cc1Swenshuai.xi 423*53ee8cc1Swenshuai.xi //External Info 424*53ee8cc1Swenshuai.xi typedef struct 425*53ee8cc1Swenshuai.xi { 426*53ee8cc1Swenshuai.xi //op to ve timing 427*53ee8cc1Swenshuai.xi MS_U16 u16VttIn; 428*53ee8cc1Swenshuai.xi MS_U16 u16HttIn; 429*53ee8cc1Swenshuai.xi MS_U16 u16HdeIn; 430*53ee8cc1Swenshuai.xi MS_U16 u16VdeIn; 431*53ee8cc1Swenshuai.xi 432*53ee8cc1Swenshuai.xi MS_U16 u16Vde_St; 433*53ee8cc1Swenshuai.xi MS_U16 u16Hde_St; 434*53ee8cc1Swenshuai.xi 435*53ee8cc1Swenshuai.xi }MS_VE_PLL_InCfg; 436*53ee8cc1Swenshuai.xi 437*53ee8cc1Swenshuai.xi //VE customer scaling setting 438*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 439*53ee8cc1Swenshuai.xi { 440*53ee8cc1Swenshuai.xi MS_U16 u16HScalingsrc; ///< H Source size for VE scaling 441*53ee8cc1Swenshuai.xi MS_U16 u16HScalingdst;///< H Dest size for VE scaling 442*53ee8cc1Swenshuai.xi MS_U16 u16VScalingsrc;///< V Source size for VE scaling 443*53ee8cc1Swenshuai.xi MS_U16 u16VScalingdst;///< V Dest size for VE scaling 444*53ee8cc1Swenshuai.xi MS_BOOL bHCusScalingEnable; ///< Enable/Disable H customer scaling 445*53ee8cc1Swenshuai.xi MS_BOOL bVCusScalingEnable; ///< Enable/Disable V customer scaling 446*53ee8cc1Swenshuai.xi }MS_VE_CusScalingInfo, *PMS_VE_CusScalingInfo; 447*53ee8cc1Swenshuai.xi 448*53ee8cc1Swenshuai.xi //Structure AP use 449*53ee8cc1Swenshuai.xi typedef struct 450*53ee8cc1Swenshuai.xi { 451*53ee8cc1Swenshuai.xi MS_U16 u16Version; //< Version number for this structure 452*53ee8cc1Swenshuai.xi MS_U16 u16Length; //< Length of this structure, unit: byte 453*53ee8cc1Swenshuai.xi MS_BOOL bEnable; //< InOut, VE capture enable state 454*53ee8cc1Swenshuai.xi MS_U8 u8FrameCount; //< Out, Current captured frame number,value range: 0~3 455*53ee8cc1Swenshuai.xi MS_U8 u8Result; //< Out, Function return status 456*53ee8cc1Swenshuai.xi }MS_VE_VECAPTURESTATE, *PMS_VE_VECAPTURESTATE; 457*53ee8cc1Swenshuai.xi 458*53ee8cc1Swenshuai.xi #ifdef UFO_VE_INITEX 459*53ee8cc1Swenshuai.xi /// Define the initial data for VE 460*53ee8cc1Swenshuai.xi typedef struct 461*53ee8cc1Swenshuai.xi { 462*53ee8cc1Swenshuai.xi // Version control 463*53ee8cc1Swenshuai.xi MS_U32 u32VEInitData_Version; ///<Version of current structure. Please always set to "VE_INIT_VERSION" as input 464*53ee8cc1Swenshuai.xi MS_U16 u16VEInitData_Length; ///<Length of this structure, u16VEInitData_Length=sizeof(VE_INITDATA) 465*53ee8cc1Swenshuai.xi // frame buffer related 466*53ee8cc1Swenshuai.xi MS_PHYADDR phyMIUAddress; ///<VE frame buffer start address, absolute without any alignment 467*53ee8cc1Swenshuai.xi MS_PHYADDR phyMIUSize; ///<VE window frame buffer size, the unit is BYTES 468*53ee8cc1Swenshuai.xi } VE_INITDATA; 469*53ee8cc1Swenshuai.xi #endif 470*53ee8cc1Swenshuai.xi 471*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 472*53ee8cc1Swenshuai.xi // Function and Variable 473*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 474*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 475*53ee8cc1Swenshuai.xi /// Description : Show the VE driver version 476*53ee8cc1Swenshuai.xi /// @ingroup VE_INFO 477*53ee8cc1Swenshuai.xi /// @param ppVersion \b Out: Library version string 478*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 479*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 480*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_GetLibVer(const MSIF_Version **ppVersion); 481*53ee8cc1Swenshuai.xi 482*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 483*53ee8cc1Swenshuai.xi /// Description : Get VE Information 484*53ee8cc1Swenshuai.xi /// @ingroup VE_INFO 485*53ee8cc1Swenshuai.xi /// @return @ref VE_DrvInfo return the VE information in this member 486*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 487*53ee8cc1Swenshuai.xi const VE_DrvInfo * MDrv_VE_GetInfo(void); 488*53ee8cc1Swenshuai.xi 489*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 490*53ee8cc1Swenshuai.xi /// Description : Get VE Status 491*53ee8cc1Swenshuai.xi /// @ingroup VE_INFO 492*53ee8cc1Swenshuai.xi /// @param pDrvStatus \b OUT: store the status 493*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 494*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 495*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_GetStatus(VE_DrvStatus *pDrvStatus); 496*53ee8cc1Swenshuai.xi 497*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 498*53ee8cc1Swenshuai.xi /// Description : Set VE debug memesage level 499*53ee8cc1Swenshuai.xi /// @ingroup VE_INFO 500*53ee8cc1Swenshuai.xi /// @param level \b IN: the debug meseage level 501*53ee8cc1Swenshuai.xi /// @return None 502*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 503*53ee8cc1Swenshuai.xi void MDrv_VE_SetDbgLevel(MS_U16 level); 504*53ee8cc1Swenshuai.xi 505*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 506*53ee8cc1Swenshuai.xi /// Description : Get VE capability that support which standard 507*53ee8cc1Swenshuai.xi /// @ingroup VE_INFO 508*53ee8cc1Swenshuai.xi /// @param pCaps \b OUT: the standard that VE support 509*53ee8cc1Swenshuai.xi /// @return None 510*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 511*53ee8cc1Swenshuai.xi void MDrv_VE_GetCaps(VE_Caps* pCaps); 512*53ee8cc1Swenshuai.xi 513*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 514*53ee8cc1Swenshuai.xi /// Description : Set the input source of video encoder 515*53ee8cc1Swenshuai.xi /// @ingroup VE_ToBeModified 516*53ee8cc1Swenshuai.xi /// @param -pSwitchInfo \b IN/OUT: the information of switching input destination of TV encodeer 517*53ee8cc1Swenshuai.xi /// @return None 518*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 519*53ee8cc1Swenshuai.xi void MDrv_VE_SwitchInputSource(PMS_Switch_VE_Src_Info pSwitchInfo); 520*53ee8cc1Swenshuai.xi 521*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 522*53ee8cc1Swenshuai.xi /// Description: Extended API for set the input source of video encoder(To Expand&Replace MDrv_VE_SwitchInputSource) 523*53ee8cc1Swenshuai.xi /// @ingroup VE_EEATURE 524*53ee8cc1Swenshuai.xi /// @param -pSwitchInfo \b IN/OUT: the information of switching input destination of TV encodeer 525*53ee8cc1Swenshuai.xi /// @return @ref MS_SWITCH_VE_SRC_STATUS 526*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 527*53ee8cc1Swenshuai.xi MS_SWITCH_VE_SRC_STATUS MDrv_VE_SetInputSource(PMS_VE_InputSrc_Info pInputSrcInfo); 528*53ee8cc1Swenshuai.xi 529*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 530*53ee8cc1Swenshuai.xi /// Description : Set the output destination of video encoder 531*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 532*53ee8cc1Swenshuai.xi /// None SCART CVBS SVIDEO YPbPr 533*53ee8cc1Swenshuai.xi /// None O O O O O 534*53ee8cc1Swenshuai.xi /// SCART O - X X X 535*53ee8cc1Swenshuai.xi /// CVBS O X - O O 536*53ee8cc1Swenshuai.xi /// S_VIDE O O X O - X 537*53ee8cc1Swenshuai.xi /// YPbPr O X O X - 538*53ee8cc1Swenshuai.xi /// 539*53ee8cc1Swenshuai.xi /// @param -pSwitchInfo \b IN/OUT: the information of switching output destination of TV encodeer 540*53ee8cc1Swenshuai.xi /// @return None 541*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 542*53ee8cc1Swenshuai.xi void MDrv_VE_SwitchOuputDest(PMS_Switch_VE_Dest_Info pSwitchInfo); 543*53ee8cc1Swenshuai.xi 544*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 545*53ee8cc1Swenshuai.xi /// Description : Control the output of video encoder 546*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 547*53ee8cc1Swenshuai.xi /// @param -pOutputCtrl \b IN: the control information of VE 548*53ee8cc1Swenshuai.xi /// @return none 549*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 550*53ee8cc1Swenshuai.xi void MDrv_VE_SetOutputCtrl(PMS_VE_Output_Ctrl pOutputCtrl); 551*53ee8cc1Swenshuai.xi 552*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 553*53ee8cc1Swenshuai.xi /// Description : Set the output video standard of video encoder 554*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 555*53ee8cc1Swenshuai.xi /// @param -VideoSystem \b IN: the video standard 556*53ee8cc1Swenshuai.xi /// @return TRUE: supported and success, FALSE: unsupported or unsuccess 557*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 558*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_SetOutputVideoStd(MS_VE_VIDEOSYS VideoSystem); 559*53ee8cc1Swenshuai.xi 560*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 561*53ee8cc1Swenshuai.xi /// Description : Load customized setting table for VE 562*53ee8cc1Swenshuai.xi /// User can load customized table in initialize function, then enable it. 563*53ee8cc1Swenshuai.xi /// Driver will apply customized table setting when MDrv_VE_SetOutputVideoStd 564*53ee8cc1Swenshuai.xi /// Table using sample: 565*53ee8cc1Swenshuai.xi /// MS_U8 pPALTable[12] = 566*53ee8cc1Swenshuai.xi /// {0xAA,0xBB,0xCC,0xDD, => add one customized setting. format: {bank_H, bank_L, 8-bit address, value,} 567*53ee8cc1Swenshuai.xi /// 0xFF,0xFF,0xFF,0xFF} => must set 0xFF,0xFF,0xFF,0xFF for end of table command setting 568*53ee8cc1Swenshuai.xi /// Note: Users set value which want to be changed only. 569*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 570*53ee8cc1Swenshuai.xi /// @param -VideoSystem \b IN: the video standard 571*53ee8cc1Swenshuai.xi /// @param -pTbl \b IN: pointer to the table 572*53ee8cc1Swenshuai.xi /// @return TRUE: supported and success, FALSE: unsupported or unsuccess 573*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 574*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_SetCusTable(MS_VE_VIDEOSYS VideoSystem, MS_U8* pTbl); 575*53ee8cc1Swenshuai.xi 576*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 577*53ee8cc1Swenshuai.xi /// Description : Enable/Disable customized table 578*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 579*53ee8cc1Swenshuai.xi /// @param -bEnable \b IN: Enable/Disable customized table 580*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 581*53ee8cc1Swenshuai.xi void MDrv_VE_EnableCusTable(MS_BOOL bEnable); 582*53ee8cc1Swenshuai.xi 583*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 584*53ee8cc1Swenshuai.xi /// Description : Power on VE 585*53ee8cc1Swenshuai.xi /// @ingroup VE_ToBeRemove 586*53ee8cc1Swenshuai.xi /// @return none 587*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 588*53ee8cc1Swenshuai.xi void MDrv_VE_PowerOn(void); 589*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 590*53ee8cc1Swenshuai.xi /// Description : Power off VE 591*53ee8cc1Swenshuai.xi /// @ingroup VE_ToBeRemove 592*53ee8cc1Swenshuai.xi /// @return none 593*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 594*53ee8cc1Swenshuai.xi void MDrv_VE_PowerOff(void); 595*53ee8cc1Swenshuai.xi 596*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 597*53ee8cc1Swenshuai.xi /// Description : Set RIU Base 598*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 599*53ee8cc1Swenshuai.xi /// @return TRUE: success, FALSE: unsuccess 600*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 601*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_SetIOMapBase(void); 602*53ee8cc1Swenshuai.xi 603*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 604*53ee8cc1Swenshuai.xi /// Description : Initiate VE 605*53ee8cc1Swenshuai.xi /// @ingroup VE_INIT 606*53ee8cc1Swenshuai.xi /// @param[in] u32MIUAddress \b IN: The address reserved for VE 607*53ee8cc1Swenshuai.xi /// @return none 608*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 609*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_700) 610*53ee8cc1Swenshuai.xi void MDrv_VE_Init(MS_PHY u32MIUAddress); 611*53ee8cc1Swenshuai.xi #else 612*53ee8cc1Swenshuai.xi void MDrv_VE_Init(MS_PHYADDR u32MIUAddress); 613*53ee8cc1Swenshuai.xi #endif 614*53ee8cc1Swenshuai.xi 615*53ee8cc1Swenshuai.xi #ifdef UFO_VE_INITEX 616*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 617*53ee8cc1Swenshuai.xi /// Description : Extended interface to initiate VE with initial parameters 618*53ee8cc1Swenshuai.xi /// @ingroup VE_INIT 619*53ee8cc1Swenshuai.xi /// @param[in] pVE_InitData \b IN: VE init data 620*53ee8cc1Swenshuai.xi /// @return none 621*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 622*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_InitEx(VE_INITDATA *pVE_InitData); 623*53ee8cc1Swenshuai.xi #endif 624*53ee8cc1Swenshuai.xi 625*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 626*53ee8cc1Swenshuai.xi /// Description : Get VE parameter (config) 627*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 628*53ee8cc1Swenshuai.xi /// @param[in] pMIUAddress \b IN: point to VE miu address 629*53ee8cc1Swenshuai.xi /// @return TRUE: success, FALSE: unsuccess 630*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 631*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_700) 632*53ee8cc1Swenshuai.xi MS_BOOL SYMBOL_WEAK MDrv_VE_GetConfig(MS_PHY *pMIUAddress); 633*53ee8cc1Swenshuai.xi #else 634*53ee8cc1Swenshuai.xi MS_BOOL SYMBOL_WEAK MDrv_VE_GetConfig(MS_PHYADDR *pMIUAddress); 635*53ee8cc1Swenshuai.xi #endif 636*53ee8cc1Swenshuai.xi 637*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 638*53ee8cc1Swenshuai.xi /// Description : Exit VE 639*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 640*53ee8cc1Swenshuai.xi /// @return TRUE: success, FALSE: unsuccess 641*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 642*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_Exit(void); 643*53ee8cc1Swenshuai.xi 644*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 645*53ee8cc1Swenshuai.xi /// Description : Set Wild-screen signal 646*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 647*53ee8cc1Swenshuai.xi /// @param -bEn \b IN: Enable/Disable WSS 648*53ee8cc1Swenshuai.xi /// @param -u16WSSData \b IN: The WSS data 649*53ee8cc1Swenshuai.xi /// @return none 650*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 651*53ee8cc1Swenshuai.xi void MDrv_VE_SetWSSData(MS_BOOL bEn, MS_U16 u16WSSData); 652*53ee8cc1Swenshuai.xi 653*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 654*53ee8cc1Swenshuai.xi /// Description : Get Wild-screen signal data 655*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 656*53ee8cc1Swenshuai.xi /// @return @ref MS_U16 retun the data of WSS 657*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 658*53ee8cc1Swenshuai.xi MS_U16 MDrv_VE_GetWSSData(void); 659*53ee8cc1Swenshuai.xi 660*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 661*53ee8cc1Swenshuai.xi /// Description : VE Setmode. Configurate VE for CVBS out. 662*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 663*53ee8cc1Swenshuai.xi /// @param[in] pVESetMode \b IN: The parameter for VE 664*53ee8cc1Swenshuai.xi /// @return none 665*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 666*53ee8cc1Swenshuai.xi void MDrv_VE_SetMode(MS_VE_Set_Mode_Type * pVESetMode); 667*53ee8cc1Swenshuai.xi 668*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 669*53ee8cc1Swenshuai.xi /// Description : Output black screen from VE. This function is not for disabling VE. 670*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 671*53ee8cc1Swenshuai.xi /// @param[in] pVESetMode \b IN: enable or disable the black screen 672*53ee8cc1Swenshuai.xi /// @return none 673*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 674*53ee8cc1Swenshuai.xi void MDrv_VE_SetBlackScreen(MS_BOOL bEn); 675*53ee8cc1Swenshuai.xi 676*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 677*53ee8cc1Swenshuai.xi /// Description : Return true if VE output black video right now. 678*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 679*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL 680*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 681*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_IsBlackScreenEnabled(void); 682*53ee8cc1Swenshuai.xi 683*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 684*53ee8cc1Swenshuai.xi /// Description : VE restart TVE to read data from TT buffer 685*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 686*53ee8cc1Swenshuai.xi /// @param[in] bEnable \b IN: enable or disable the TTX 687*53ee8cc1Swenshuai.xi /// @return none 688*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 689*53ee8cc1Swenshuai.xi void MDrv_VE_EnableTtx(MS_BOOL bEnable); 690*53ee8cc1Swenshuai.xi 691*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3)||defined(UFO_PUBLIC_HEADER_700) 692*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 693*53ee8cc1Swenshuai.xi /// Description : VE set TTx buffer address 694*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 695*53ee8cc1Swenshuai.xi /// @param[in] u32StartAddr \b IN: Start of the Memory address that store TTX 696*53ee8cc1Swenshuai.xi /// @param[in] u32Size \b IN: the size of store the TTX data 697*53ee8cc1Swenshuai.xi /// @return none 698*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 699*53ee8cc1Swenshuai.xi void MDrv_VE_SetTtxBuffer(MS_PHY phyStartAddr, MS_U32 u32Size); 700*53ee8cc1Swenshuai.xi #else 701*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 702*53ee8cc1Swenshuai.xi /// Description : VE set TTx buffer address 703*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 704*53ee8cc1Swenshuai.xi /// @param[in] u32StartAddr \b IN: Start of the Memory address that store TTX 705*53ee8cc1Swenshuai.xi /// @param[in] u32Size \b IN: the size of store the TTX data 706*53ee8cc1Swenshuai.xi /// @return none 707*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 708*53ee8cc1Swenshuai.xi void MDrv_VE_SetTtxBuffer(MS_U32 u32StartAddr, MS_U32 u32Size); 709*53ee8cc1Swenshuai.xi #endif 710*53ee8cc1Swenshuai.xi 711*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 712*53ee8cc1Swenshuai.xi /// Description : VE clear TT buffer read done status 713*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 714*53ee8cc1Swenshuai.xi /// @return none 715*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 716*53ee8cc1Swenshuai.xi void MDrv_VE_ClearTtxReadDoneStatus(void); 717*53ee8cc1Swenshuai.xi 718*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 719*53ee8cc1Swenshuai.xi /// Description : VE TT buffer read done status 720*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 721*53ee8cc1Swenshuai.xi /// @return TRUE/FALSE 722*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 723*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_GetTtxReadDoneStatus(void); 724*53ee8cc1Swenshuai.xi 725*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 726*53ee8cc1Swenshuai.xi /// Description : VE Set VBI TT active Lines 727*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 728*53ee8cc1Swenshuai.xi /// @param[in] u8LinePerField \b IN: TTX active line 729*53ee8cc1Swenshuai.xi /// @return none 730*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 731*53ee8cc1Swenshuai.xi void MDrv_VE_SetVbiTtxActiveLines(MS_U8 u8LinePerField); 732*53ee8cc1Swenshuai.xi 733*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 734*53ee8cc1Swenshuai.xi /// Description : VE Set VBI TT active Lines by the given bitmap 735*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 736*53ee8cc1Swenshuai.xi /// @param <IN>\b u32Bitmap: a bitmap that defines whick physical lines the teletext lines are to be inserted. 737*53ee8cc1Swenshuai.xi /// @return none 738*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 739*53ee8cc1Swenshuai.xi void MDrv_VE_SetVbiTtxActiveLinesBitmap(MS_U32 u32Bitmap); 740*53ee8cc1Swenshuai.xi 741*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 742*53ee8cc1Swenshuai.xi /// Description : VE Set VBI ttx active line 743*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 744*53ee8cc1Swenshuai.xi /// @param <IN>\b odd_start: odd page start line 745*53ee8cc1Swenshuai.xi /// @param <IN>\b odd_end: odd page end line 746*53ee8cc1Swenshuai.xi /// @param <IN>\b even_start: even page start line 747*53ee8cc1Swenshuai.xi /// @param <IN>\b even_end: even page end line 748*53ee8cc1Swenshuai.xi /// @return none 749*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 750*53ee8cc1Swenshuai.xi void MDrv_VE_SetVbiTtxRange(MS_U16 odd_start, MS_U16 odd_end, 751*53ee8cc1Swenshuai.xi MS_U16 even_start, MS_U16 enen_end); 752*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 753*53ee8cc1Swenshuai.xi /// Description : VE Set VBI CC 754*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 755*53ee8cc1Swenshuai.xi /// @param[in] bEnable \b IN: enable or disable the CC 756*53ee8cc1Swenshuai.xi /// @return none 757*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 758*53ee8cc1Swenshuai.xi void MDrv_VE_EnableCcSw(MS_BOOL bEnable); 759*53ee8cc1Swenshuai.xi 760*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 761*53ee8cc1Swenshuai.xi /// Description : VE Set VBI CC active line 762*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 763*53ee8cc1Swenshuai.xi /// @param <IN>\b odd_start: odd page start line 764*53ee8cc1Swenshuai.xi /// @param <IN>\b odd_end: odd page end line 765*53ee8cc1Swenshuai.xi /// @param <IN>\b even_start: even page start line 766*53ee8cc1Swenshuai.xi /// @param <IN>\b even_end: even page end line 767*53ee8cc1Swenshuai.xi /// @return none 768*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 769*53ee8cc1Swenshuai.xi void MDrv_VE_SetCcRange(MS_U16 odd_start, MS_U16 odd_end, MS_U16 even_start, MS_U16 enen_end); 770*53ee8cc1Swenshuai.xi 771*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 772*53ee8cc1Swenshuai.xi /// Description : VE Set VBI CC data 773*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 774*53ee8cc1Swenshuai.xi /// @param <IN>\b bIsOdd: odd field use 775*53ee8cc1Swenshuai.xi /// @param <IN>\b data: the CC data 776*53ee8cc1Swenshuai.xi /// @return none 777*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 778*53ee8cc1Swenshuai.xi void MDrv_VE_SendCcData(MS_BOOL bIsOdd, MS_U16 data); 779*53ee8cc1Swenshuai.xi 780*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 781*53ee8cc1Swenshuai.xi /// Description : VE Set display windows 782*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 783*53ee8cc1Swenshuai.xi /// @param <IN>\b stDispWin: the info of the display window 784*53ee8cc1Swenshuai.xi /// @return none 785*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 786*53ee8cc1Swenshuai.xi void MDrv_VE_set_display_window(MS_VE_WINDOW_TYPE stDispWin); 787*53ee8cc1Swenshuai.xi 788*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 789*53ee8cc1Swenshuai.xi /// Description : VE Set output with Frame Color 790*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 791*53ee8cc1Swenshuai.xi /// @param <IN>\b u32aRGB: the value of frame color 792*53ee8cc1Swenshuai.xi /// @return none 793*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 794*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_SetFrameColor(MS_U32 u32aRGB); 795*53ee8cc1Swenshuai.xi 796*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 797*53ee8cc1Swenshuai.xi /// Description : VE Set output with OSD 798*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 799*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: enable or disable the OSD 800*53ee8cc1Swenshuai.xi /// @return none 801*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 802*53ee8cc1Swenshuai.xi void MDrv_VE_SetOSD(MS_BOOL bEnable); 803*53ee8cc1Swenshuai.xi 804*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 805*53ee8cc1Swenshuai.xi /// Description : Set VE OSD Layer 806*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 807*53ee8cc1Swenshuai.xi /// @param <IN>\b eVideoOSDLayer: set the OSD layer 808*53ee8cc1Swenshuai.xi /// @return none 809*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 810*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Set_OSDLayer(MS_VE_OSD_LAYER_SEL eVideoOSDLayer); 811*53ee8cc1Swenshuai.xi 812*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 813*53ee8cc1Swenshuai.xi /// Description: Get VE OSD Layer 814*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 815*53ee8cc1Swenshuai.xi /// @return @ref MS_VE_OSD_LAYER_SEL 816*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 817*53ee8cc1Swenshuai.xi MS_VE_OSD_LAYER_SEL MDrv_VE_Get_OSDLayer(void); 818*53ee8cc1Swenshuai.xi 819*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 820*53ee8cc1Swenshuai.xi /// Description: Set VE Video Alpha 821*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 822*53ee8cc1Swenshuai.xi /// @param <IN>\b u8Val: set the video alpha value 823*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 824*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 825*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Set_VideoAlpha(MS_U8 u8Val); 826*53ee8cc1Swenshuai.xi 827*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 828*53ee8cc1Swenshuai.xi /// Description: Get VE Video Alpha 829*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 830*53ee8cc1Swenshuai.xi /// @param <OUT>\b pu8Val: pointer to the value 831*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 832*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 833*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Get_VideoAlpha(MS_U8 *pu8Val); 834*53ee8cc1Swenshuai.xi 835*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 836*53ee8cc1Swenshuai.xi /// Description: VE Set RGB In 837*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 838*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: set the input is RGB or not 839*53ee8cc1Swenshuai.xi /// @return none 840*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 841*53ee8cc1Swenshuai.xi void MDrv_VE_SetRGBIn(MS_BOOL bEnable); 842*53ee8cc1Swenshuai.xi 843*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 844*53ee8cc1Swenshuai.xi /// Description: VE Get output video standard 845*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 846*53ee8cc1Swenshuai.xi /// @return @ref MS_VE_VIDEOSYS 847*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 848*53ee8cc1Swenshuai.xi MS_VE_VIDEOSYS MDrv_VE_Get_Output_Video_Std(void); 849*53ee8cc1Swenshuai.xi 850*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 851*53ee8cc1Swenshuai.xi /// Description: VE Set Capture Mode 852*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 853*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: enable or disable the capture mode 854*53ee8cc1Swenshuai.xi /// @return none 855*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 856*53ee8cc1Swenshuai.xi void MDrv_VE_SetCaptureMode(MS_BOOL bEnable); 857*53ee8cc1Swenshuai.xi 858*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 859*53ee8cc1Swenshuai.xi /// Description: VE Get Destination Information for GOP mixer 860*53ee8cc1Swenshuai.xi /// @param <OUT>\b pDstInfo: output DST display info 861*53ee8cc1Swenshuai.xi /// @param <IN>\b u32SizeofDstInfo: The size of DST display info 862*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL 863*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 864*53ee8cc1Swenshuai.xi MS_BOOL MApi_VE_GetDstInfo(MS_VE_DST_DispInfo *pDstInfo, MS_U32 u32SizeofDstInfo); 865*53ee8cc1Swenshuai.xi 866*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 867*53ee8cc1Swenshuai.xi /// Description: VE Set Test pattern 868*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 869*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: enable or disable the test pattern 870*53ee8cc1Swenshuai.xi /// @return none 871*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 872*53ee8cc1Swenshuai.xi void MDrv_VE_Set_TestPattern(MS_BOOL bEn); 873*53ee8cc1Swenshuai.xi 874*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 875*53ee8cc1Swenshuai.xi /// Description: Write the VE register 876*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 877*53ee8cc1Swenshuai.xi /// @param <IN>\b VE_BK: select the VE bank 878*53ee8cc1Swenshuai.xi /// @param <IN>\b u32Reg: the register to be set 879*53ee8cc1Swenshuai.xi /// @param <IN>\b u16Val: set value 880*53ee8cc1Swenshuai.xi /// @param <IN>\b u16Mask: the mask value 881*53ee8cc1Swenshuai.xi /// @return none 882*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 883*53ee8cc1Swenshuai.xi void MApi_VE_W2BYTE_MSK(MS_VE_REG_BANK VE_BK, MS_U32 u32Reg, MS_U16 u16Val, MS_U16 u16Mask); 884*53ee8cc1Swenshuai.xi 885*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 886*53ee8cc1Swenshuai.xi /// Description: Write the VE register 887*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 888*53ee8cc1Swenshuai.xi /// @param <IN>\b VE_BK: select the VE bank 889*53ee8cc1Swenshuai.xi /// @param <IN>\b u32Reg: the register to be read 890*53ee8cc1Swenshuai.xi /// @param <IN>\b u16Mask: the mask value 891*53ee8cc1Swenshuai.xi /// @return @ref MS_U16 892*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 893*53ee8cc1Swenshuai.xi MS_U16 MApi_VE_R2BYTE_MSK(MS_VE_REG_BANK VE_BK, MS_U32 u32Reg, MS_U16 u16Mask); 894*53ee8cc1Swenshuai.xi 895*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 896*53ee8cc1Swenshuai.xi /// Description: VE Dump Table Interface 897*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 898*53ee8cc1Swenshuai.xi /// @param <IN>\b pVETable: pointer to the table 899*53ee8cc1Swenshuai.xi /// @param <IN>\b u8TableType: the type of table 900*53ee8cc1Swenshuai.xi /// @return none 901*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 902*53ee8cc1Swenshuai.xi void MDrv_VE_DumpTable(MS_U8 *pVETable, MS_U8 u8TableType); 903*53ee8cc1Swenshuai.xi 904*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 905*53ee8cc1Swenshuai.xi /// Description: This routine set flag to mask register write for special case \n 906*53ee8cc1Swenshuai.xi /// e.g. MBoot to APP with logo display 907*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 908*53ee8cc1Swenshuai.xi /// @param <IN>\b bFlag: TRUE: Mask register write, FALSE: not Mask 909*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 910*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 911*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_DisableRegWrite(MS_BOOL bFlag); 912*53ee8cc1Swenshuai.xi 913*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 914*53ee8cc1Swenshuai.xi /// Description: VE show internal color bar (test pattern) 915*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 916*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: TRUE to enable color; false to disable color bar 917*53ee8cc1Swenshuai.xi /// @return None 918*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 919*53ee8cc1Swenshuai.xi void MDrv_VE_ShowColorBar(MS_BOOL bEnable); 920*53ee8cc1Swenshuai.xi 921*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 922*53ee8cc1Swenshuai.xi /// Description: This routine set read/write addjustment to centralize VE display window.\n 923*53ee8cc1Swenshuai.xi /// Set the adjustment and it works after MDrv_VE_set_display_window() API is invoked. \n 924*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 925*53ee8cc1Swenshuai.xi /// @param <IN>\b s32WAddrAdjustment: the pixel units to adjust on write address 926*53ee8cc1Swenshuai.xi /// @param <IN>\b s32RAddrAdjustment: the pixel units to adjust on read address 927*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 928*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 929*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_AdjustPositionBase(MS_S32 s32WAddrAdjustment, MS_S32 s32RAddrAdjustment); 930*53ee8cc1Swenshuai.xi 931*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 932*53ee8cc1Swenshuai.xi /// Description: In STB Chip, VE needs to set vepll to lock frame rate with HD Path.\n 933*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 934*53ee8cc1Swenshuai.xi /// @param <IN>\b pInCfg: Information of HD path 935*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: enable/disable frame lock 936*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 937*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 938*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_SetFrameLock(MS_VE_PLL_InCfg *pInCfg, MS_BOOL bEnable); 939*53ee8cc1Swenshuai.xi 940*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 941*53ee8cc1Swenshuai.xi /// Description: Provide the capability of Customer scaling for VE.\n 942*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 943*53ee8cc1Swenshuai.xi /// @param <IN>\b pstVECusScalingInfo : Src and Dest info for customer scaling, @ref MS_VE_CusScalingInfo 944*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 945*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 946*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Set_Customer_Scaling(MS_VE_CusScalingInfo *pstVECusScalingInfo); 947*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 948*53ee8cc1Swenshuai.xi /// Description: MDrv_VE_set_crop_window, set up crop window (crop video frame in MIU) 949*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 950*53ee8cc1Swenshuai.xi /// @param <IN>\b stCropWin: crop window 951*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 952*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 953*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_set_crop_window(MS_VE_WINDOW_TYPE stCropWin); 954*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 955*53ee8cc1Swenshuai.xi /// Description: VE be set display window (backend), after MIU 956*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 957*53ee8cc1Swenshuai.xi /// @param <IN>\b stDispWin: display window 958*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 959*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 960*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_set_be_display_window(MS_VE_WINDOW_TYPE stDispWin); 961*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 962*53ee8cc1Swenshuai.xi /// Description: MDrv_VE_Get_Ext_Caps: get VE extented capability 963*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 964*53ee8cc1Swenshuai.xi /// @param <OUT>\b cap: Get capbility 965*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 966*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 967*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Get_Ext_Caps(MS_VE_Ext_Cap *cap); 968*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 969*53ee8cc1Swenshuai.xi /// Description: MDrv_VE_SetWindow, set crop window and display window in one API. 970*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 971*53ee8cc1Swenshuai.xi /// @argument: 972*53ee8cc1Swenshuai.xi /// @param <IN>\b stSrcWin: a pointer to MS_VE_WINDOW_TYPE - source window, depends on input size 973*53ee8cc1Swenshuai.xi /// @param <IN>\b stCropWin: a pointer to MS_VE_WINDOW_TYPE - crop window, depends on source window size 974*53ee8cc1Swenshuai.xi /// @param <IN>\b stDispWin: a pointer to MS_VE_WINDOW_TYPE - display window, depends on output size 975*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 976*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 977*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_SetWindow(MS_VE_WINDOW_TYPE *stSrcWin, MS_VE_WINDOW_TYPE *stCropWin, 978*53ee8cc1Swenshuai.xi MS_VE_WINDOW_TYPE *stDispWin); 979*53ee8cc1Swenshuai.xi 980*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 981*53ee8cc1Swenshuai.xi /// Description: Init and config the VE capture 982*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 983*53ee8cc1Swenshuai.xi /// @param pVECapture \b IN : @ref PMS_VE_Output_CAPTURE 984*53ee8cc1Swenshuai.xi /// @return none 985*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 986*53ee8cc1Swenshuai.xi void MDrv_VE_InitVECapture(PMS_VE_Output_CAPTURE pVECapture); 987*53ee8cc1Swenshuai.xi 988*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 989*53ee8cc1Swenshuai.xi /// Description: Enable VE capture 990*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 991*53ee8cc1Swenshuai.xi /// @param <IN>\b pstVECapState: a pointer to caputre state 992*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL 993*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 994*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_EnaVECapture(PMS_VE_VECAPTURESTATE pstVECapState); 995*53ee8cc1Swenshuai.xi 996*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 997*53ee8cc1Swenshuai.xi /// Description: Get VE capture state 998*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 999*53ee8cc1Swenshuai.xi /// @param <IN>\b pstVECapState: a pointer to get caputre state 1000*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL 1001*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 1002*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_GetVECaptureState(PMS_VE_VECAPTURESTATE pstVECapState); 1003*53ee8cc1Swenshuai.xi 1004*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1005*53ee8cc1Swenshuai.xi /// Description: Wait on the finish of specified frame: Check if the frame is captured, 1006*53ee8cc1Swenshuai.xi /// if Yes, return TRUE, otherwise sleep until the next Vsync ISR 1007*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 1008*53ee8cc1Swenshuai.xi /// @param <IN>\b pstVECapState: a pointer to caputre state 1009*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL 1010*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1011*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_VECaptureWaitOnFrame(PMS_VE_VECAPTURESTATE pstVECapState); 1012*53ee8cc1Swenshuai.xi 1013*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 1014*53ee8cc1Swenshuai.xi /// Description : the frame start is used to adjust output video (in pixel) 1015*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 1016*53ee8cc1Swenshuai.xi /// @param <IN> \b stSrcWin :source window, depends on input size 1017*53ee8cc1Swenshuai.xi /// @param <IN>\b pixel_offset : set pixel offset value 1018*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 1019*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 1020*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Adjust_FrameStart(MS_VE_WINDOW_TYPE *stSrcWin,MS_S16 pixel_offset); 1021*53ee8cc1Swenshuai.xi 1022*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1023*53ee8cc1Swenshuai.xi /// Description : Start or Stop to send WSS data on 525i system 1024*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 1025*53ee8cc1Swenshuai.xi /// @param <IN>\b bEn: enable/disable wss525 1026*53ee8cc1Swenshuai.xi /// @param <IN>\b u32WSSData: 20-bit wss data includes 14 bits of data and 6 bits of CRC 1027*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 1028*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1029*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_SetWSS525Data(MS_BOOL bEn, MS_U32 u32WSSData); 1030*53ee8cc1Swenshuai.xi 1031*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1032*53ee8cc1Swenshuai.xi /// Description : Get current wss data 1033*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 1034*53ee8cc1Swenshuai.xi /// @return 32-bit wss data, it includes 14 bits of data and 6 bits of CRC in lower 20 bits 1035*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1036*53ee8cc1Swenshuai.xi MS_U32 MDrv_VE_GetWSS525Data(void); 1037*53ee8cc1Swenshuai.xi 1038*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1039*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_VE_OnOffWSS() 1040*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Control VE WSS En/Disable 1041*53ee8cc1Swenshuai.xi /// @param ben enable/disable WSS 1042*53ee8cc1Swenshuai.xi /// @return None 1043*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1044*53ee8cc1Swenshuai.xi void MDrv_VE_OnOffWSS(MS_BOOL ben); 1045*53ee8cc1Swenshuai.xi 1046*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1047*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_VE_GetWSSStatus() 1048*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Get VE WSS En/Disable 1049*53ee8cc1Swenshuai.xi /// @param void 1050*53ee8cc1Swenshuai.xi /// @return TRUE: Enable, FALSE: Disable 1051*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1052*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_GetWSSStatus(void); 1053*53ee8cc1Swenshuai.xi 1054*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1055*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_VE_OnOffMV() 1056*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Control VE Microvision En/Disable 1057*53ee8cc1Swenshuai.xi /// @param ben enable/disable Microvision 1058*53ee8cc1Swenshuai.xi /// @return None 1059*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1060*53ee8cc1Swenshuai.xi void MDrv_VE_OnOffMV(MS_BOOL ben); 1061*53ee8cc1Swenshuai.xi 1062*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1063*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_VE_GetMVStatus() 1064*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Get VE Microvision En/Disable 1065*53ee8cc1Swenshuai.xi /// @param void 1066*53ee8cc1Swenshuai.xi /// @return TRUE: Enable, FALSE: Disable 1067*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1068*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_GetMVStatus(void); 1069*53ee8cc1Swenshuai.xi 1070*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1071*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_VE_OnOffDCS() 1072*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Control VE DCS En/Disable 1073*53ee8cc1Swenshuai.xi /// @param ben enable/disable DCS 1074*53ee8cc1Swenshuai.xi /// @return None 1075*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1076*53ee8cc1Swenshuai.xi void MDrv_VE_OnOffDCS(MS_BOOL ben); 1077*53ee8cc1Swenshuai.xi 1078*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1079*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_VE_GetDCSStatus() 1080*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Get VE DCS En/Disable 1081*53ee8cc1Swenshuai.xi /// @param void 1082*53ee8cc1Swenshuai.xi /// @return TRUE: Enable, FALSE: Disable 1083*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1084*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_GetDCSStatus(void); 1085*53ee8cc1Swenshuai.xi 1086*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1087*53ee8cc1Swenshuai.xi /// Description : Set the state for supesend 1088*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 1089*53ee8cc1Swenshuai.xi /// @param <IN>\b u16PowerState: The state for suspend 1090*53ee8cc1Swenshuai.xi /// @return @ref MS_U32 , TRUE for success, false for fail 1091*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1092*53ee8cc1Swenshuai.xi MS_U32 MDrv_TVE_SetPowerState(EN_POWER_MODE u16PowerState); 1093*53ee8cc1Swenshuai.xi 1094*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_212) || defined(UFO_PUBLIC_HEADER_500_3) 1095*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1096*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_VE_ReloadSetting() 1097*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Do SW resetting do confirm all change are applied 1098*53ee8cc1Swenshuai.xi /// @param void 1099*53ee8cc1Swenshuai.xi /// 1100*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 1101*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1102*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_ReloadSetting(void); 1103*53ee8cc1Swenshuai.xi #endif 1104*53ee8cc1Swenshuai.xi 1105*53ee8cc1Swenshuai.xi #ifdef UFO_PUBLIC_HEADER_212 1106*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 1107*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_VE_Set_PreHSD_ScalingRatio 1108*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Set HSD size and scaling factor 1109*53ee8cc1Swenshuai.xi /// @param u16In_Hsize input H size 1110*53ee8cc1Swenshuai.xi /// @param u16Out_Hsize output H size 1111*53ee8cc1Swenshuai.xi /// @param u16In_RatioHsize input H size for calculate scaling factor 1112*53ee8cc1Swenshuai.xi /// @param u16Out_RatioHsize output H size for calculate scaling factor 1113*53ee8cc1Swenshuai.xi /// 1114*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 1115*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 1116*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Set_PreHSD_ScalingRatio(MS_U16 u16In_Hsize,MS_U16 u16Out_Hsize,MS_U16 u16In_RatioHsize,MS_U16 u16Out_RatioHsize); 1117*53ee8cc1Swenshuai.xi 1118*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 1119*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_VE_Set_PreVSD_ScalingRatio 1120*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Set VSD size and scaling factor 1121*53ee8cc1Swenshuai.xi /// @param u16In_Vsize input V size 1122*53ee8cc1Swenshuai.xi /// @param u16Out_Vsize output V size 1123*53ee8cc1Swenshuai.xi /// @param u16In_RatioVsize input V size for calculate scaling factor 1124*53ee8cc1Swenshuai.xi /// @param u16Out_RatioVsize output V size for calculate scaling factor 1125*53ee8cc1Swenshuai.xi /// 1126*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 1127*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 1128*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Set_PreVSD_ScalingRatio(MS_U16 u16In_Vsize,MS_U16 u16Out_Vsize,MS_U16 u16In_RatioVsize,MS_U16 u16Out_RatioVsize); 1129*53ee8cc1Swenshuai.xi 1130*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 1131*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_VE_Set_v_upscaling 1132*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description : Set VSD size and scaling factor 1133*53ee8cc1Swenshuai.xi /// @param Benable enable/disable VSP 1134*53ee8cc1Swenshuai.xi /// @param u16In_Vsize input V size 1135*53ee8cc1Swenshuai.xi /// @param u16Out_Vsize output V size 1136*53ee8cc1Swenshuai.xi /// 1137*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 1138*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 1139*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Set_v_upscaling(MS_BOOL Benable,MS_U16 u16In_Vsize,MS_U16 u16Out_Vsize); 1140*53ee8cc1Swenshuai.xi #endif 1141*53ee8cc1Swenshuai.xi 1142*53ee8cc1Swenshuai.xi #ifdef __cplusplus 1143*53ee8cc1Swenshuai.xi } 1144*53ee8cc1Swenshuai.xi #endif 1145*53ee8cc1Swenshuai.xi 1146*53ee8cc1Swenshuai.xi #endif // _DRVTVENCODER_H 1147