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 131*53ee8cc1Swenshuai.xi #ifdef __cplusplus 132*53ee8cc1Swenshuai.xi extern "C" 133*53ee8cc1Swenshuai.xi { 134*53ee8cc1Swenshuai.xi #endif 135*53ee8cc1Swenshuai.xi 136*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 137*53ee8cc1Swenshuai.xi // Macro and Define 138*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 139*53ee8cc1Swenshuai.xi #define MSIF_VE_TAG {'M','S','I','F'} //Version ID header 140*53ee8cc1Swenshuai.xi #define MSIF_VE_CLASS {'0','0'} //info Class code 141*53ee8cc1Swenshuai.xi #define MSIF_VE_CUS 0x6666 //Customer ID 142*53ee8cc1Swenshuai.xi #define MSIF_VE_MOD 0x6666 //Module ID 143*53ee8cc1Swenshuai.xi #define MSIF_VE_CHIP 0Xffff //CHIP ID 144*53ee8cc1Swenshuai.xi #define MSIF_VE_CPU '1' //CPU 145*53ee8cc1Swenshuai.xi #define MSIF_VE_LIB_CODE {'V','E','_','_'} //Lib code 146*53ee8cc1Swenshuai.xi #define MSIF_VE_LIBVER {'0','1'} //LIB version 147*53ee8cc1Swenshuai.xi #define MSIF_VE_BUILDNUM {'1','4'} //Build Number 148*53ee8cc1Swenshuai.xi #define MSIF_VE_CHANGELIST {'0','0','6','8','8','5','4','7'} //P4 ChangeList Number 149*53ee8cc1Swenshuai.xi //#define MSIF_OS '0' //OS 150*53ee8cc1Swenshuai.xi 151*53ee8cc1Swenshuai.xi #define VE_DRV_VERSION /* Character String for DRV/API version */ \ 152*53ee8cc1Swenshuai.xi MSIF_VE_TAG, /* 'MSIF' */ \ 153*53ee8cc1Swenshuai.xi MSIF_VE_CLASS, /* '00' */ \ 154*53ee8cc1Swenshuai.xi MSIF_VE_CUS, /* 0x0000 */ \ 155*53ee8cc1Swenshuai.xi MSIF_VE_MOD, /* 0x0000 */ \ 156*53ee8cc1Swenshuai.xi MSIF_VE_CHIP, \ 157*53ee8cc1Swenshuai.xi MSIF_VE_CPU, \ 158*53ee8cc1Swenshuai.xi MSIF_VE_LIB_CODE, /* IP__ */ \ 159*53ee8cc1Swenshuai.xi MSIF_VE_LIBVER, /* 0.0 ~ Z.Z */ \ 160*53ee8cc1Swenshuai.xi MSIF_VE_BUILDNUM, /* 00 ~ 99 */ \ 161*53ee8cc1Swenshuai.xi MSIF_VE_CHANGELIST, /* CL# */ \ 162*53ee8cc1Swenshuai.xi MSIF_OS 163*53ee8cc1Swenshuai.xi 164*53ee8cc1Swenshuai.xi /// version of structure 'MS_VE_VECAPTURESTATE' of current VE lib 165*53ee8cc1Swenshuai.xi #define VE_VECAPTURESTATE_VERSION 0 //Version number for compatibility with AP and VE driver 166*53ee8cc1Swenshuai.xi #define VE_INPUTSRC_INFO_VERSION 0 167*53ee8cc1Swenshuai.xi 168*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 169*53ee8cc1Swenshuai.xi // Type and Structure 170*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 171*53ee8cc1Swenshuai.xi /// Result of VE function 172*53ee8cc1Swenshuai.xi typedef enum _VE_Result 173*53ee8cc1Swenshuai.xi { 174*53ee8cc1Swenshuai.xi E_VE_NOT_SUPPORT = -1, 175*53ee8cc1Swenshuai.xi E_VE_FAIL = 0, 176*53ee8cc1Swenshuai.xi E_VE_OK = 1, 177*53ee8cc1Swenshuai.xi E_VE_TIMEOUT, 178*53ee8cc1Swenshuai.xi E_VE_QUEUE_FULL, 179*53ee8cc1Swenshuai.xi E_VE_BUSY 180*53ee8cc1Swenshuai.xi } VE_Result; 181*53ee8cc1Swenshuai.xi 182*53ee8cc1Swenshuai.xi /// definition of video system 183*53ee8cc1Swenshuai.xi typedef enum 184*53ee8cc1Swenshuai.xi { 185*53ee8cc1Swenshuai.xi MS_VE_NTSC, ///< NTSC 186*53ee8cc1Swenshuai.xi MS_VE_NTSC_443, ///< NTSC443 187*53ee8cc1Swenshuai.xi MS_VE_NTSC_J, ///< NTSC_J 188*53ee8cc1Swenshuai.xi MS_VE_PAL_M, ///< PAL_M 189*53ee8cc1Swenshuai.xi MS_VE_PAL_N, ///< PAL_N 190*53ee8cc1Swenshuai.xi MS_VE_PAL_NC, ///< PAL_Nc 191*53ee8cc1Swenshuai.xi MS_VE_PAL, ///< PAL_B 192*53ee8cc1Swenshuai.xi MS_VE_SECAM, ///< SECAM 193*53ee8cc1Swenshuai.xi MS_VE_VIDEOSYS_NUM, 194*53ee8cc1Swenshuai.xi } MS_VE_VIDEOSYS; 195*53ee8cc1Swenshuai.xi 196*53ee8cc1Swenshuai.xi typedef enum 197*53ee8cc1Swenshuai.xi { 198*53ee8cc1Swenshuai.xi MS_VE_LAYER_NONE = 0, ///<0: VE LAYER NONE 199*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_VIDEO_MUX1_MUX2, ///<1: FrameColor->Video->osd ->osd1 200*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_VIDEO_MUX2_MUX1, ///<2: FrameColor->Video->osd1 ->osd 201*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_MUX1_VIDEO_MUX2, ///<3: FrameColor->osd ->Video->osd1 202*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_MUX1_MUX2_VIDEO, ///<4: FrameColor->osd ->osd1 ->Video 203*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_MUX2_VIDEO_MUX1, ///<5: FrameColor>osd1 ->Video->osd 204*53ee8cc1Swenshuai.xi MS_VE_LAYER_FRAME_MUX2_MUX1_VIDEO, ///<6: FrameColor->osd1 ->osd->Video 205*53ee8cc1Swenshuai.xi MS_VE_LAYER_RESERVED, 206*53ee8cc1Swenshuai.xi } MS_VE_OSD_LAYER_SEL; 207*53ee8cc1Swenshuai.xi 208*53ee8cc1Swenshuai.xi /// VE cap's capability 209*53ee8cc1Swenshuai.xi typedef struct 210*53ee8cc1Swenshuai.xi { 211*53ee8cc1Swenshuai.xi MS_BOOL bNTSC; 212*53ee8cc1Swenshuai.xi MS_BOOL bPAL; 213*53ee8cc1Swenshuai.xi MS_BOOL bVESupported; ///< supported VE or not 214*53ee8cc1Swenshuai.xi } VE_Caps; 215*53ee8cc1Swenshuai.xi 216*53ee8cc1Swenshuai.xi /// VE extented capability: for STB chips, not all chips support up-scaling or 217*53ee8cc1Swenshuai.xi /// crop 218*53ee8cc1Swenshuai.xi typedef struct 219*53ee8cc1Swenshuai.xi { 220*53ee8cc1Swenshuai.xi MS_BOOL bSupport_UpScale; 221*53ee8cc1Swenshuai.xi MS_BOOL bSupport_CropMode; 222*53ee8cc1Swenshuai.xi } MS_VE_Ext_Cap; 223*53ee8cc1Swenshuai.xi 224*53ee8cc1Swenshuai.xi /// VE driver info. 225*53ee8cc1Swenshuai.xi typedef struct 226*53ee8cc1Swenshuai.xi { 227*53ee8cc1Swenshuai.xi VE_Caps stCaps; 228*53ee8cc1Swenshuai.xi } VE_DrvInfo; 229*53ee8cc1Swenshuai.xi 230*53ee8cc1Swenshuai.xi /// VE DRV status 231*53ee8cc1Swenshuai.xi typedef struct 232*53ee8cc1Swenshuai.xi { 233*53ee8cc1Swenshuai.xi MS_VE_VIDEOSYS VideoSystem; // video std of output signal 234*53ee8cc1Swenshuai.xi MS_U16 u16H_CapStart; 235*53ee8cc1Swenshuai.xi MS_U16 u16H_CapSize; 236*53ee8cc1Swenshuai.xi MS_U16 u16V_CapStart; 237*53ee8cc1Swenshuai.xi MS_U16 u16V_CapSize; 238*53ee8cc1Swenshuai.xi 239*53ee8cc1Swenshuai.xi } VE_DrvStatus; 240*53ee8cc1Swenshuai.xi 241*53ee8cc1Swenshuai.xi typedef struct 242*53ee8cc1Swenshuai.xi { 243*53ee8cc1Swenshuai.xi MS_U8* pVE_TBL; 244*53ee8cc1Swenshuai.xi MS_U8* pVE_Coef_TBL; 245*53ee8cc1Swenshuai.xi MS_U8* pVBI_TBL; 246*53ee8cc1Swenshuai.xi MS_BOOL bvtotal_525; 247*53ee8cc1Swenshuai.xi MS_BOOL bPALSwitch; 248*53ee8cc1Swenshuai.xi MS_BOOL bPALout; 249*53ee8cc1Swenshuai.xi }MS_VE_Out_VideoSYS, *PMS_VE_Out_VideoSYS; 250*53ee8cc1Swenshuai.xi 251*53ee8cc1Swenshuai.xi /// type of output destination for TV encoder 252*53ee8cc1Swenshuai.xi typedef enum 253*53ee8cc1Swenshuai.xi { 254*53ee8cc1Swenshuai.xi MS_VE_DEST_NONE = 0, 255*53ee8cc1Swenshuai.xi MS_VE_DEST_SCART, ///< output destination is SCART 256*53ee8cc1Swenshuai.xi MS_VE_DEST_CVBS, ///< output destination is CVBS 257*53ee8cc1Swenshuai.xi MS_VE_DEST_SVIDEO, ///< output destination is S-Video 258*53ee8cc1Swenshuai.xi MS_VE_DEST_YPBPR, ///< output destination is YPbPr 259*53ee8cc1Swenshuai.xi MS_VE_DEST_NUM, 260*53ee8cc1Swenshuai.xi } MS_VE_OUTPUT_DEST_TYPE; 261*53ee8cc1Swenshuai.xi 262*53ee8cc1Swenshuai.xi /// type of input source for TV encoder 263*53ee8cc1Swenshuai.xi typedef enum 264*53ee8cc1Swenshuai.xi { 265*53ee8cc1Swenshuai.xi MS_VE_SRC_DTV = 0x00, ///< input source is DTV 266*53ee8cc1Swenshuai.xi MS_VE_SRC_ATV = 0x01, ///< input source is ATV 267*53ee8cc1Swenshuai.xi MS_VE_SRC_CVBS0 = 0x02, ///< input source is CVBS0 268*53ee8cc1Swenshuai.xi MS_VE_SRC_CVBS1 = 0x03, ///< input source is CVBS1 269*53ee8cc1Swenshuai.xi MS_VE_SRC_CVBS2 = 0x04, ///< input source is CVBS2 270*53ee8cc1Swenshuai.xi MS_VE_SRC_CVBS3 = 0x05, ///< input source is CVBS3 271*53ee8cc1Swenshuai.xi MS_VE_SRC_SVIDEO = 0x06, ///< input source is SVIDEO 272*53ee8cc1Swenshuai.xi MS_VE_SRC_DSUB = 0x07, ///< input source is DSUB 273*53ee8cc1Swenshuai.xi MS_VE_SRC_COMP = 0x08, ///< input source is COMP 274*53ee8cc1Swenshuai.xi MS_VE_SRC_HDMI_A = 0x09, ///< input source is COMP 275*53ee8cc1Swenshuai.xi MS_VE_SRC_HDMI_B = 0x0A, ///< input source is COMP 276*53ee8cc1Swenshuai.xi MS_VE_SRC_HDMI_C = 0x0B, ///< input source is COMP 277*53ee8cc1Swenshuai.xi MS_VE_SRC_MAIN = 0x0C, ///< input source is from main window 278*53ee8cc1Swenshuai.xi MS_VE_SRC_SUB = 0x0D, ///< input source is from sub window 279*53ee8cc1Swenshuai.xi MS_VE_SRC_SCALER = 0x0E, ///< input source is scaler op2 280*53ee8cc1Swenshuai.xi MS_VE_SRC_DI = 0x0F, ///< input source is DI 281*53ee8cc1Swenshuai.xi MS_VE_SRC_BT656 = 0x10, ///< input source is BT656 282*53ee8cc1Swenshuai.xi MS_VE_SRC_DTV_FROM_MVOP = 0x11, ///< input source is DTV but from MVOP 283*53ee8cc1Swenshuai.xi MS_VE_SRC_DNR = 0x12, ///< input source is DNR 284*53ee8cc1Swenshuai.xi MS_VE_SRC_NONE = 0xFF, 285*53ee8cc1Swenshuai.xi }MS_VE_INPUT_SRC_TYPE; 286*53ee8cc1Swenshuai.xi 287*53ee8cc1Swenshuai.xi typedef struct 288*53ee8cc1Swenshuai.xi { 289*53ee8cc1Swenshuai.xi MS_U32 PreHScalingRatio; 290*53ee8cc1Swenshuai.xi MS_U32 PreVScalingRatio; 291*53ee8cc1Swenshuai.xi MS_U32 PostHScalingRatio; 292*53ee8cc1Swenshuai.xi MS_U32 PostVScalingRatio; 293*53ee8cc1Swenshuai.xi }MS_VE_Backup_Reg, *PMS_VE_Backup_Reg; 294*53ee8cc1Swenshuai.xi 295*53ee8cc1Swenshuai.xi /// status of switchinging output destination 296*53ee8cc1Swenshuai.xi typedef enum 297*53ee8cc1Swenshuai.xi { 298*53ee8cc1Swenshuai.xi MS_VE_SWITCH_DST_SUCCESS, ///< success 299*53ee8cc1Swenshuai.xi MS_VE_SWITCH_DST_INVALID_COMBINATION, ///< invalid combination 300*53ee8cc1Swenshuai.xi MS_VE_SWITCH_DST_INVALID_PARAM, ///< invalid parameter 301*53ee8cc1Swenshuai.xi MS_VE_SWITCH_DST_FAIL, ///< fail 302*53ee8cc1Swenshuai.xi }MS_SWITCH_VE_DST_STATUS; 303*53ee8cc1Swenshuai.xi 304*53ee8cc1Swenshuai.xi 305*53ee8cc1Swenshuai.xi /// VE output Type 306*53ee8cc1Swenshuai.xi typedef enum 307*53ee8cc1Swenshuai.xi { 308*53ee8cc1Swenshuai.xi MS_VE_OUT_CCIR656, ///< output signal is CCIR656 309*53ee8cc1Swenshuai.xi MS_VE_OUT_TVENCODER,///< output signal from TVEncoder 310*53ee8cc1Swenshuai.xi MS_VE_OUT_CAPTURE,///< output signal from VE Capture 311*53ee8cc1Swenshuai.xi }MS_VE_OUT_TYPE; 312*53ee8cc1Swenshuai.xi 313*53ee8cc1Swenshuai.xi typedef struct 314*53ee8cc1Swenshuai.xi { 315*53ee8cc1Swenshuai.xi MS_U16 u16Width; 316*53ee8cc1Swenshuai.xi MS_U16 u16height; 317*53ee8cc1Swenshuai.xi MS_PHY u32MiuBaseAddr; 318*53ee8cc1Swenshuai.xi MS_U32 u32MemSize; 319*53ee8cc1Swenshuai.xi MS_BOOL bVECapture; ///< TRUE/FALSE, enable/disable VE capture 320*53ee8cc1Swenshuai.xi }MS_VE_Output_CAPTURE, *PMS_VE_Output_CAPTURE; 321*53ee8cc1Swenshuai.xi 322*53ee8cc1Swenshuai.xi /// the information of switching ouput destination for TV encoder 323*53ee8cc1Swenshuai.xi typedef struct 324*53ee8cc1Swenshuai.xi { 325*53ee8cc1Swenshuai.xi MS_VE_OUTPUT_DEST_TYPE OutputDstType; ///< type of output destination 326*53ee8cc1Swenshuai.xi MS_SWITCH_VE_DST_STATUS Status; ///< the returning status of switching output destination 327*53ee8cc1Swenshuai.xi }MS_Switch_VE_Dest_Info, *PMS_Switch_VE_Dest_Info; 328*53ee8cc1Swenshuai.xi 329*53ee8cc1Swenshuai.xi 330*53ee8cc1Swenshuai.xi /// status of switchinging input source 331*53ee8cc1Swenshuai.xi typedef enum 332*53ee8cc1Swenshuai.xi { 333*53ee8cc1Swenshuai.xi MS_VE_SWITCH_SRC_SUCCESS, ///< success 334*53ee8cc1Swenshuai.xi MS_VE_SWITCH_SRC_INVALID_PARAM, ///< invalid parameter 335*53ee8cc1Swenshuai.xi MS_VE_SWITCH_SRC_FAIL, ///< fail 336*53ee8cc1Swenshuai.xi }MS_SWITCH_VE_SRC_STATUS; 337*53ee8cc1Swenshuai.xi 338*53ee8cc1Swenshuai.xi /// the information of switching output destination for TV encoder 339*53ee8cc1Swenshuai.xi typedef struct 340*53ee8cc1Swenshuai.xi { 341*53ee8cc1Swenshuai.xi MS_VE_INPUT_SRC_TYPE InputSrcType; ///< type of input source 342*53ee8cc1Swenshuai.xi MS_SWITCH_VE_SRC_STATUS Status; ///< the returning status of switching input source 343*53ee8cc1Swenshuai.xi }MS_Switch_VE_Src_Info, *PMS_Switch_VE_Src_Info; 344*53ee8cc1Swenshuai.xi 345*53ee8cc1Swenshuai.xi typedef struct 346*53ee8cc1Swenshuai.xi { 347*53ee8cc1Swenshuai.xi MS_U16 u16Version; //< Version number for this structure 348*53ee8cc1Swenshuai.xi MS_VE_INPUT_SRC_TYPE eInputSrcType; ///< type of input source for Video encoder 349*53ee8cc1Swenshuai.xi MS_VE_INPUT_SRC_TYPE eInputSrcOfMixedSrc; // The real input source for mixed "InputSrcType" of VE, 350*53ee8cc1Swenshuai.xi // eg. Real InputSrc of "MS_VE_SRC_MAIN", "MS_VE_SRC_SUB", "MS_VE_SRC_SCALER" etc. 351*53ee8cc1Swenshuai.xi }MS_VE_InputSrc_Info, *PMS_VE_InputSrc_Info; 352*53ee8cc1Swenshuai.xi 353*53ee8cc1Swenshuai.xi /// output control for VE 354*53ee8cc1Swenshuai.xi typedef struct 355*53ee8cc1Swenshuai.xi { 356*53ee8cc1Swenshuai.xi MS_BOOL bEnable; ///< TRUE/FALSE, enable/disable VE 357*53ee8cc1Swenshuai.xi MS_VE_OUT_TYPE OutputType; ///< VE output type 358*53ee8cc1Swenshuai.xi }MS_VE_Output_Ctrl, *PMS_VE_Output_Ctrl; 359*53ee8cc1Swenshuai.xi 360*53ee8cc1Swenshuai.xi /// VE set mode type 361*53ee8cc1Swenshuai.xi typedef struct 362*53ee8cc1Swenshuai.xi { 363*53ee8cc1Swenshuai.xi MS_U16 u16H_CapStart; 364*53ee8cc1Swenshuai.xi MS_U16 u16H_CapSize; 365*53ee8cc1Swenshuai.xi MS_U16 u16V_CapStart; 366*53ee8cc1Swenshuai.xi MS_U16 u16V_CapSize; 367*53ee8cc1Swenshuai.xi MS_U16 u16H_SC_CapStart; 368*53ee8cc1Swenshuai.xi MS_U16 u16H_SC_CapSize; 369*53ee8cc1Swenshuai.xi MS_U16 u16V_SC_CapStart; 370*53ee8cc1Swenshuai.xi MS_U16 u16V_SC_CapSize; 371*53ee8cc1Swenshuai.xi MS_U16 u16InputVFreq; 372*53ee8cc1Swenshuai.xi MS_BOOL bHDuplicate; 373*53ee8cc1Swenshuai.xi MS_BOOL bSrcInterlace; 374*53ee8cc1Swenshuai.xi }MS_VE_Set_Mode_Type; 375*53ee8cc1Swenshuai.xi 376*53ee8cc1Swenshuai.xi //VE_ApiStatus 377*53ee8cc1Swenshuai.xi typedef struct 378*53ee8cc1Swenshuai.xi { 379*53ee8cc1Swenshuai.xi PMS_VE_Output_Ctrl output_ctrl; 380*53ee8cc1Swenshuai.xi MS_Switch_VE_Src_Info src_info; 381*53ee8cc1Swenshuai.xi MS_Switch_VE_Dest_Info dst_info; 382*53ee8cc1Swenshuai.xi }MS_VE_ApiStatus; 383*53ee8cc1Swenshuai.xi 384*53ee8cc1Swenshuai.xi /// Define Window position and size attribute 385*53ee8cc1Swenshuai.xi typedef struct 386*53ee8cc1Swenshuai.xi { 387*53ee8cc1Swenshuai.xi MS_U16 x; ///<start x of the window 388*53ee8cc1Swenshuai.xi MS_U16 y; ///<start y of the window 389*53ee8cc1Swenshuai.xi MS_U16 width; ///<width of the window 390*53ee8cc1Swenshuai.xi MS_U16 height; ///<height of the window 391*53ee8cc1Swenshuai.xi } MS_VE_WINDOW_TYPE; 392*53ee8cc1Swenshuai.xi 393*53ee8cc1Swenshuai.xi //Display information 394*53ee8cc1Swenshuai.xi typedef struct 395*53ee8cc1Swenshuai.xi { 396*53ee8cc1Swenshuai.xi MS_U32 VDTOT; //Output vertical total 397*53ee8cc1Swenshuai.xi MS_U32 DEVST; //Output DE vertical start 398*53ee8cc1Swenshuai.xi MS_U32 DEVEND;//Output DE Vertical end 399*53ee8cc1Swenshuai.xi MS_U32 HDTOT;// Output horizontal total 400*53ee8cc1Swenshuai.xi MS_U32 DEHST; //Output DE horizontal start 401*53ee8cc1Swenshuai.xi MS_U32 DEHEND;// Output DE horizontal end 402*53ee8cc1Swenshuai.xi MS_BOOL bInterlaceMode; 403*53ee8cc1Swenshuai.xi } MS_VE_DST_DispInfo; 404*53ee8cc1Swenshuai.xi 405*53ee8cc1Swenshuai.xi //VE register bank 406*53ee8cc1Swenshuai.xi typedef enum 407*53ee8cc1Swenshuai.xi { 408*53ee8cc1Swenshuai.xi MS_VE_REG_BANK_3B, 409*53ee8cc1Swenshuai.xi MS_VE_REG_BANK_3E, 410*53ee8cc1Swenshuai.xi MS_VE_REG_BANK_3F, 411*53ee8cc1Swenshuai.xi } MS_VE_REG_BANK; 412*53ee8cc1Swenshuai.xi 413*53ee8cc1Swenshuai.xi //External Info 414*53ee8cc1Swenshuai.xi typedef struct 415*53ee8cc1Swenshuai.xi { 416*53ee8cc1Swenshuai.xi //op to ve timing 417*53ee8cc1Swenshuai.xi MS_U16 u16VttIn; 418*53ee8cc1Swenshuai.xi MS_U16 u16HttIn; 419*53ee8cc1Swenshuai.xi MS_U16 u16HdeIn; 420*53ee8cc1Swenshuai.xi MS_U16 u16VdeIn; 421*53ee8cc1Swenshuai.xi 422*53ee8cc1Swenshuai.xi MS_U16 u16Vde_St; 423*53ee8cc1Swenshuai.xi MS_U16 u16Hde_St; 424*53ee8cc1Swenshuai.xi 425*53ee8cc1Swenshuai.xi }MS_VE_PLL_InCfg; 426*53ee8cc1Swenshuai.xi 427*53ee8cc1Swenshuai.xi //VE customer scaling setting 428*53ee8cc1Swenshuai.xi typedef struct 429*53ee8cc1Swenshuai.xi { 430*53ee8cc1Swenshuai.xi MS_U16 u16HScalingsrc; ///< H Source size for VE scaling 431*53ee8cc1Swenshuai.xi MS_U16 u16HScalingdst;///< H Dest size for VE scaling 432*53ee8cc1Swenshuai.xi MS_U16 u16VScalingsrc;///< V Source size for VE scaling 433*53ee8cc1Swenshuai.xi MS_U16 u16VScalingdst;///< V Dest size for VE scaling 434*53ee8cc1Swenshuai.xi MS_BOOL bHCusScalingEnable; ///< Enable/Disable H customer scaling 435*53ee8cc1Swenshuai.xi MS_BOOL bVCusScalingEnable; ///< Enable/Disable V customer scaling 436*53ee8cc1Swenshuai.xi }MS_VE_CusScalingInfo, *PMS_VE_CusScalingInfo; 437*53ee8cc1Swenshuai.xi 438*53ee8cc1Swenshuai.xi //Structure AP use 439*53ee8cc1Swenshuai.xi typedef struct 440*53ee8cc1Swenshuai.xi { 441*53ee8cc1Swenshuai.xi MS_U16 u16Version; //< Version number for this structure 442*53ee8cc1Swenshuai.xi MS_U16 u16Length; //< Length of this structure, unit: byte 443*53ee8cc1Swenshuai.xi MS_BOOL bEnable; //< InOut, VE capture enable state 444*53ee8cc1Swenshuai.xi MS_U8 u8FrameCount; //< Out, Current captured frame number,value range: 0~3 445*53ee8cc1Swenshuai.xi MS_U8 u8Result; //< Out, Function return status 446*53ee8cc1Swenshuai.xi }MS_VE_VECAPTURESTATE, *PMS_VE_VECAPTURESTATE; 447*53ee8cc1Swenshuai.xi 448*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 449*53ee8cc1Swenshuai.xi // Function and Variable 450*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 451*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 452*53ee8cc1Swenshuai.xi /// Description : Show the VE driver version 453*53ee8cc1Swenshuai.xi /// @ingroup VE_INFO 454*53ee8cc1Swenshuai.xi /// @param ppVersion \b Out: Library version string 455*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 456*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 457*53ee8cc1Swenshuai.xi // VE_Result MDrv_VE_GetLibVer(const MSIF_Version **ppVersion); 458*53ee8cc1Swenshuai.xi 459*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 460*53ee8cc1Swenshuai.xi /// Description : Get VE Information 461*53ee8cc1Swenshuai.xi /// @ingroup VE_INFO 462*53ee8cc1Swenshuai.xi /// @return @ref VE_DrvInfo return the VE information in this member 463*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 464*53ee8cc1Swenshuai.xi const VE_DrvInfo * MDrv_VE_GetInfo(void); 465*53ee8cc1Swenshuai.xi 466*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 467*53ee8cc1Swenshuai.xi /// Description : Get VE Status 468*53ee8cc1Swenshuai.xi /// @ingroup VE_INFO 469*53ee8cc1Swenshuai.xi /// @param pDrvStatus \b OUT: store the status 470*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 471*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 472*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_GetStatus(VE_DrvStatus *pDrvStatus); 473*53ee8cc1Swenshuai.xi 474*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 475*53ee8cc1Swenshuai.xi /// Description : Set VE debug memesage level 476*53ee8cc1Swenshuai.xi /// @ingroup VE_INFO 477*53ee8cc1Swenshuai.xi /// @param level \b IN: the debug meseage level 478*53ee8cc1Swenshuai.xi /// @return None 479*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 480*53ee8cc1Swenshuai.xi void MDrv_VE_SetDbgLevel(MS_U16 level); 481*53ee8cc1Swenshuai.xi 482*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 483*53ee8cc1Swenshuai.xi /// Description : Get VE capability that support which standard 484*53ee8cc1Swenshuai.xi /// @ingroup VE_INFO 485*53ee8cc1Swenshuai.xi /// @param pCaps \b OUT: the standard that VE support 486*53ee8cc1Swenshuai.xi /// @return None 487*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 488*53ee8cc1Swenshuai.xi // void MDrv_VE_GetCaps(VE_Caps* pCaps); 489*53ee8cc1Swenshuai.xi 490*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 491*53ee8cc1Swenshuai.xi /// Description : Set the input source of video encoder 492*53ee8cc1Swenshuai.xi /// @ingroup VE_ToBeModified 493*53ee8cc1Swenshuai.xi /// @param -pSwitchInfo \b IN/OUT: the information of switching input destination of TV encodeer 494*53ee8cc1Swenshuai.xi /// @return None 495*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 496*53ee8cc1Swenshuai.xi void MDrv_VE_SwitchInputSource(PMS_Switch_VE_Src_Info pSwitchInfo); 497*53ee8cc1Swenshuai.xi 498*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 499*53ee8cc1Swenshuai.xi /// Description: Extended API for set the input source of video encoder(To Expand&Replace MDrv_VE_SwitchInputSource) 500*53ee8cc1Swenshuai.xi /// @ingroup VE_EEATURE 501*53ee8cc1Swenshuai.xi /// @param -pSwitchInfo \b IN/OUT: the information of switching input destination of TV encodeer 502*53ee8cc1Swenshuai.xi /// @return @ref MS_SWITCH_VE_SRC_STATUS 503*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 504*53ee8cc1Swenshuai.xi MS_SWITCH_VE_SRC_STATUS MDrv_VE_SetInputSource(PMS_VE_InputSrc_Info pInputSrcInfo); 505*53ee8cc1Swenshuai.xi 506*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 507*53ee8cc1Swenshuai.xi /// Description : Set the output destination of video encoder 508*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 509*53ee8cc1Swenshuai.xi /// None SCART CVBS SVIDEO YPbPr 510*53ee8cc1Swenshuai.xi /// None O O O O O 511*53ee8cc1Swenshuai.xi /// SCART O - X X X 512*53ee8cc1Swenshuai.xi /// CVBS O X - O O 513*53ee8cc1Swenshuai.xi /// S_VIDE O O X O - X 514*53ee8cc1Swenshuai.xi /// YPbPr O X O X - 515*53ee8cc1Swenshuai.xi /// 516*53ee8cc1Swenshuai.xi /// @param -pSwitchInfo \b IN/OUT: the information of switching output destination of TV encodeer 517*53ee8cc1Swenshuai.xi /// @return None 518*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 519*53ee8cc1Swenshuai.xi void MDrv_VE_SwitchOuputDest(PMS_Switch_VE_Dest_Info pSwitchInfo); 520*53ee8cc1Swenshuai.xi 521*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 522*53ee8cc1Swenshuai.xi /// Description : Control the output of video encoder 523*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 524*53ee8cc1Swenshuai.xi /// @param -pOutputCtrl \b IN: the control information of VE 525*53ee8cc1Swenshuai.xi /// @return none 526*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 527*53ee8cc1Swenshuai.xi void MDrv_VE_SetOutputCtrl(PMS_VE_Output_Ctrl pOutputCtrl); 528*53ee8cc1Swenshuai.xi 529*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 530*53ee8cc1Swenshuai.xi /// Description : Set the output video standard of video encoder 531*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 532*53ee8cc1Swenshuai.xi /// @param -VideoSystem \b IN: the video standard 533*53ee8cc1Swenshuai.xi /// @return TRUE: supported and success, FALSE: unsupported or unsuccess 534*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 535*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_SetOutputVideoStd(MS_VE_VIDEOSYS VideoSystem); 536*53ee8cc1Swenshuai.xi 537*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 538*53ee8cc1Swenshuai.xi /// Description : Load customized setting table for VE 539*53ee8cc1Swenshuai.xi /// User can load customized table in initialize function, then enable it. 540*53ee8cc1Swenshuai.xi /// Driver will apply customized table setting when MDrv_VE_SetOutputVideoStd 541*53ee8cc1Swenshuai.xi /// Table using sample: 542*53ee8cc1Swenshuai.xi /// MS_U8 pPALTable[12] = 543*53ee8cc1Swenshuai.xi /// {0xAA,0xBB,0xCC,0xDD, => add one customized setting. format: {bank_H, bank_L, 8-bit address, value,} 544*53ee8cc1Swenshuai.xi /// 0xFF,0xFF,0xFF,0xFF} => must set 0xFF,0xFF,0xFF,0xFF for end of table command setting 545*53ee8cc1Swenshuai.xi /// Note: Users set value which want to be changed only. 546*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 547*53ee8cc1Swenshuai.xi /// @param -VideoSystem \b IN: the video standard 548*53ee8cc1Swenshuai.xi /// @param -pTbl \b IN: pointer to the table 549*53ee8cc1Swenshuai.xi /// @return TRUE: supported and success, FALSE: unsupported or unsuccess 550*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 551*53ee8cc1Swenshuai.xi // MS_BOOL MDrv_VE_SetCusTable(MS_VE_VIDEOSYS VideoSystem, MS_U8* pTbl); 552*53ee8cc1Swenshuai.xi 553*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 554*53ee8cc1Swenshuai.xi /// Description : Enable/Disable customized table 555*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 556*53ee8cc1Swenshuai.xi /// @param -bEnable \b IN: Enable/Disable customized table 557*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 558*53ee8cc1Swenshuai.xi // void MDrv_VE_EnableCusTable(MS_BOOL bEnable); 559*53ee8cc1Swenshuai.xi 560*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 561*53ee8cc1Swenshuai.xi /// Description : Power on VE 562*53ee8cc1Swenshuai.xi /// @ingroup VE_ToBeRemove 563*53ee8cc1Swenshuai.xi /// @return none 564*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 565*53ee8cc1Swenshuai.xi // void MDrv_VE_PowerOn(void); 566*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 567*53ee8cc1Swenshuai.xi /// Description : Power off VE 568*53ee8cc1Swenshuai.xi /// @ingroup VE_ToBeRemove 569*53ee8cc1Swenshuai.xi /// @return none 570*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 571*53ee8cc1Swenshuai.xi // void MDrv_VE_PowerOff(void); 572*53ee8cc1Swenshuai.xi 573*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 574*53ee8cc1Swenshuai.xi /// Description : Set RIU Base 575*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 576*53ee8cc1Swenshuai.xi /// @return TRUE: success, FALSE: unsuccess 577*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 578*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_SetIOMapBase(void); 579*53ee8cc1Swenshuai.xi 580*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 581*53ee8cc1Swenshuai.xi /// Description : Initiate VE 582*53ee8cc1Swenshuai.xi /// @ingroup VE_INIT 583*53ee8cc1Swenshuai.xi /// @param[in] u32MIUAddress \b IN: The address reserved for VE 584*53ee8cc1Swenshuai.xi /// @return none 585*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 586*53ee8cc1Swenshuai.xi void MDrv_VE_Init(MS_PHYADDR u32MIUAddress); 587*53ee8cc1Swenshuai.xi 588*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 589*53ee8cc1Swenshuai.xi /// Description : Exit VE 590*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 591*53ee8cc1Swenshuai.xi /// @return TRUE: success, FALSE: unsuccess 592*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 593*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_Exit(void); 594*53ee8cc1Swenshuai.xi 595*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 596*53ee8cc1Swenshuai.xi /// Description : Set Wild-screen signal 597*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 598*53ee8cc1Swenshuai.xi /// @param -bEn \b IN: Enable/Disable WSS 599*53ee8cc1Swenshuai.xi /// @param -u16WSSData \b IN: The WSS data 600*53ee8cc1Swenshuai.xi /// @return none 601*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 602*53ee8cc1Swenshuai.xi void MDrv_VE_SetWSSData(MS_BOOL bEn, MS_U16 u16WSSData); 603*53ee8cc1Swenshuai.xi 604*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 605*53ee8cc1Swenshuai.xi /// Description : Get Wild-screen signal data 606*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 607*53ee8cc1Swenshuai.xi /// @return @ref MS_U16 retun the data of WSS 608*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 609*53ee8cc1Swenshuai.xi MS_U16 MDrv_VE_GetWSSData(void); 610*53ee8cc1Swenshuai.xi 611*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 612*53ee8cc1Swenshuai.xi /// Description : VE Setmode. Configurate VE for CVBS out. 613*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 614*53ee8cc1Swenshuai.xi /// @param[in] pVESetMode \b IN: The parameter for VE 615*53ee8cc1Swenshuai.xi /// @return none 616*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 617*53ee8cc1Swenshuai.xi void MDrv_VE_SetMode(MS_VE_Set_Mode_Type * pVESetMode); 618*53ee8cc1Swenshuai.xi 619*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 620*53ee8cc1Swenshuai.xi /// Description : Output black screen from VE. This function is not for disabling VE. 621*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 622*53ee8cc1Swenshuai.xi /// @param[in] pVESetMode \b IN: enable or disable the black screen 623*53ee8cc1Swenshuai.xi /// @return none 624*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 625*53ee8cc1Swenshuai.xi void MDrv_VE_SetBlackScreen(MS_BOOL bEn); 626*53ee8cc1Swenshuai.xi 627*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 628*53ee8cc1Swenshuai.xi /// Description : Return true if VE output black video right now. 629*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 630*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL 631*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 632*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_IsBlackScreenEnabled(void); 633*53ee8cc1Swenshuai.xi 634*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 635*53ee8cc1Swenshuai.xi /// Description : VE restart TVE to read data from TT buffer 636*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 637*53ee8cc1Swenshuai.xi /// @param[in] bEnable \b IN: enable or disable the TTX 638*53ee8cc1Swenshuai.xi /// @return none 639*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 640*53ee8cc1Swenshuai.xi void MDrv_VE_EnableTtx(MS_BOOL bEnable); 641*53ee8cc1Swenshuai.xi 642*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 643*53ee8cc1Swenshuai.xi /// Description : VE set TTx buffer address 644*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 645*53ee8cc1Swenshuai.xi /// @param[in] u32StartAddr \b IN: Start of the Memory address that store TTX 646*53ee8cc1Swenshuai.xi /// @param[in] u32Size \b IN: the size of store the TTX data 647*53ee8cc1Swenshuai.xi /// @return none 648*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 649*53ee8cc1Swenshuai.xi void MDrv_VE_SetTtxBuffer(MS_U32 u32StartAddr, MS_U32 u32Size); 650*53ee8cc1Swenshuai.xi 651*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 652*53ee8cc1Swenshuai.xi /// Description : VE clear TT buffer read done status 653*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 654*53ee8cc1Swenshuai.xi /// @return none 655*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 656*53ee8cc1Swenshuai.xi void MDrv_VE_ClearTtxReadDoneStatus(void); 657*53ee8cc1Swenshuai.xi 658*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 659*53ee8cc1Swenshuai.xi /// Description : VE TT buffer read done status 660*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 661*53ee8cc1Swenshuai.xi /// @return TRUE/FALSE 662*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 663*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_GetTtxReadDoneStatus(void); 664*53ee8cc1Swenshuai.xi 665*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 666*53ee8cc1Swenshuai.xi /// Description : VE Set VBI TT active Lines 667*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 668*53ee8cc1Swenshuai.xi /// @param[in] u8LinePerField \b IN: TTX active line 669*53ee8cc1Swenshuai.xi /// @return none 670*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 671*53ee8cc1Swenshuai.xi void MDrv_VE_SetVbiTtxActiveLines(MS_U8 u8LinePerField); 672*53ee8cc1Swenshuai.xi 673*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 674*53ee8cc1Swenshuai.xi /// Description : VE Set VBI TT active Lines by the given bitmap 675*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 676*53ee8cc1Swenshuai.xi /// @param <IN>\b u32Bitmap: a bitmap that defines whick physical lines the teletext lines are to be inserted. 677*53ee8cc1Swenshuai.xi /// @return none 678*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 679*53ee8cc1Swenshuai.xi // void MDrv_VE_SetVbiTtxActiveLinesBitmap(MS_U32 u32Bitmap); 680*53ee8cc1Swenshuai.xi 681*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 682*53ee8cc1Swenshuai.xi /// Description : VE Set VBI ttx active line 683*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 684*53ee8cc1Swenshuai.xi /// @param <IN>\b odd_start: odd page start line 685*53ee8cc1Swenshuai.xi /// @param <IN>\b odd_end: odd page end line 686*53ee8cc1Swenshuai.xi /// @param <IN>\b even_start: even page start line 687*53ee8cc1Swenshuai.xi /// @param <IN>\b even_end: even page end line 688*53ee8cc1Swenshuai.xi /// @return none 689*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 690*53ee8cc1Swenshuai.xi // void MDrv_VE_SetVbiTtxRange(MS_U16 odd_start, MS_U16 odd_end, 691*53ee8cc1Swenshuai.xi // MS_U16 even_start, MS_U16 enen_end); 692*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 693*53ee8cc1Swenshuai.xi /// Description : VE Set VBI CC 694*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 695*53ee8cc1Swenshuai.xi /// @param[in] bEnable \b IN: enable or disable the CC 696*53ee8cc1Swenshuai.xi /// @return none 697*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 698*53ee8cc1Swenshuai.xi // void MDrv_VE_EnableCcSw(MS_BOOL bEnable); 699*53ee8cc1Swenshuai.xi 700*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 701*53ee8cc1Swenshuai.xi /// Description : VE Set VBI CC active line 702*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 703*53ee8cc1Swenshuai.xi /// @param <IN>\b odd_start: odd page start line 704*53ee8cc1Swenshuai.xi /// @param <IN>\b odd_end: odd page end line 705*53ee8cc1Swenshuai.xi /// @param <IN>\b even_start: even page start line 706*53ee8cc1Swenshuai.xi /// @param <IN>\b even_end: even page end line 707*53ee8cc1Swenshuai.xi /// @return none 708*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 709*53ee8cc1Swenshuai.xi // void MDrv_VE_SetCcRange(MS_U16 odd_start, MS_U16 odd_end, MS_U16 even_start, MS_U16 enen_end); 710*53ee8cc1Swenshuai.xi 711*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 712*53ee8cc1Swenshuai.xi /// Description : VE Set VBI CC data 713*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 714*53ee8cc1Swenshuai.xi /// @param <IN>\b bIsOdd: odd field use 715*53ee8cc1Swenshuai.xi /// @param <IN>\b data: the CC data 716*53ee8cc1Swenshuai.xi /// @return none 717*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 718*53ee8cc1Swenshuai.xi // void MDrv_VE_SendCcData(MS_BOOL bIsOdd, MS_U16 data); 719*53ee8cc1Swenshuai.xi 720*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 721*53ee8cc1Swenshuai.xi /// Description : VE Set display windows 722*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 723*53ee8cc1Swenshuai.xi /// @param <IN>\b stDispWin: the info of the display window 724*53ee8cc1Swenshuai.xi /// @return none 725*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 726*53ee8cc1Swenshuai.xi void MDrv_VE_set_display_window(MS_VE_WINDOW_TYPE stDispWin); 727*53ee8cc1Swenshuai.xi 728*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 729*53ee8cc1Swenshuai.xi /// Description : VE Set output with Frame Color 730*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 731*53ee8cc1Swenshuai.xi /// @param <IN>\b u32aRGB: the value of frame color 732*53ee8cc1Swenshuai.xi /// @return none 733*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 734*53ee8cc1Swenshuai.xi // VE_Result MDrv_VE_SetFrameColor(MS_U32 u32aRGB); 735*53ee8cc1Swenshuai.xi 736*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 737*53ee8cc1Swenshuai.xi /// Description : VE Set output with OSD 738*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 739*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: enable or disable the OSD 740*53ee8cc1Swenshuai.xi /// @return none 741*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 742*53ee8cc1Swenshuai.xi void MDrv_VE_SetOSD(MS_BOOL bEnable); 743*53ee8cc1Swenshuai.xi 744*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 745*53ee8cc1Swenshuai.xi /// Description : Set VE OSD Layer 746*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 747*53ee8cc1Swenshuai.xi /// @param <IN>\b eVideoOSDLayer: set the OSD layer 748*53ee8cc1Swenshuai.xi /// @return none 749*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 750*53ee8cc1Swenshuai.xi // VE_Result MDrv_VE_Set_OSDLayer(MS_VE_OSD_LAYER_SEL eVideoOSDLayer); 751*53ee8cc1Swenshuai.xi 752*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 753*53ee8cc1Swenshuai.xi /// Description: Get VE OSD Layer 754*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 755*53ee8cc1Swenshuai.xi /// @return @ref MS_VE_OSD_LAYER_SEL 756*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 757*53ee8cc1Swenshuai.xi // MS_VE_OSD_LAYER_SEL MDrv_VE_Get_OSDLayer(void); 758*53ee8cc1Swenshuai.xi 759*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 760*53ee8cc1Swenshuai.xi /// Description: Set VE Video Alpha 761*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 762*53ee8cc1Swenshuai.xi /// @param <IN>\b u8Val: set the video alpha value 763*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 764*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 765*53ee8cc1Swenshuai.xi // VE_Result MDrv_VE_Set_VideoAlpha(MS_U8 u8Val); 766*53ee8cc1Swenshuai.xi 767*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 768*53ee8cc1Swenshuai.xi /// Description: Get VE Video Alpha 769*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 770*53ee8cc1Swenshuai.xi /// @param <OUT>\b pu8Val: pointer to the value 771*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 772*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 773*53ee8cc1Swenshuai.xi // VE_Result MDrv_VE_Get_VideoAlpha(MS_U8 *pu8Val); 774*53ee8cc1Swenshuai.xi 775*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 776*53ee8cc1Swenshuai.xi /// Description: VE Set RGB In 777*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 778*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: set the input is RGB or not 779*53ee8cc1Swenshuai.xi /// @return none 780*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 781*53ee8cc1Swenshuai.xi void MDrv_VE_SetRGBIn(MS_BOOL bEnable); 782*53ee8cc1Swenshuai.xi 783*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 784*53ee8cc1Swenshuai.xi /// Description: VE Get output video standard 785*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 786*53ee8cc1Swenshuai.xi /// @return @ref MS_VE_VIDEOSYS 787*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 788*53ee8cc1Swenshuai.xi MS_VE_VIDEOSYS MDrv_VE_Get_Output_Video_Std(void); 789*53ee8cc1Swenshuai.xi 790*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 791*53ee8cc1Swenshuai.xi /// Description: VE Set Capture Mode 792*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 793*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: enable or disable the capture mode 794*53ee8cc1Swenshuai.xi /// @return none 795*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 796*53ee8cc1Swenshuai.xi void MDrv_VE_SetCaptureMode(MS_BOOL bEnable); 797*53ee8cc1Swenshuai.xi 798*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 799*53ee8cc1Swenshuai.xi /// Description: VE Get Destination Information for GOP mixer 800*53ee8cc1Swenshuai.xi /// @param <OUT>\b pDstInfo: output DST display info 801*53ee8cc1Swenshuai.xi /// @param <IN>\b u32SizeofDstInfo: The size of DST display info 802*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL 803*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 804*53ee8cc1Swenshuai.xi MS_BOOL MApi_VE_GetDstInfo(MS_VE_DST_DispInfo *pDstInfo, MS_U32 u32SizeofDstInfo); 805*53ee8cc1Swenshuai.xi 806*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 807*53ee8cc1Swenshuai.xi /// Description: VE Set Test pattern 808*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 809*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: enable or disable the test pattern 810*53ee8cc1Swenshuai.xi /// @return none 811*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 812*53ee8cc1Swenshuai.xi // void MDrv_VE_Set_TestPattern(MS_BOOL bEn); 813*53ee8cc1Swenshuai.xi 814*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 815*53ee8cc1Swenshuai.xi /// Description: Write the VE register 816*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 817*53ee8cc1Swenshuai.xi /// @param <IN>\b VE_BK: select the VE bank 818*53ee8cc1Swenshuai.xi /// @param <IN>\b u32Reg: the register to be set 819*53ee8cc1Swenshuai.xi /// @param <IN>\b u16Val: set value 820*53ee8cc1Swenshuai.xi /// @param <IN>\b u16Mask: the mask value 821*53ee8cc1Swenshuai.xi /// @return none 822*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 823*53ee8cc1Swenshuai.xi void MApi_VE_W2BYTE_MSK(MS_VE_REG_BANK VE_BK, MS_U32 u32Reg, MS_U16 u16Val, MS_U16 u16Mask); 824*53ee8cc1Swenshuai.xi 825*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 826*53ee8cc1Swenshuai.xi /// Description: Write the VE register 827*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 828*53ee8cc1Swenshuai.xi /// @param <IN>\b VE_BK: select the VE bank 829*53ee8cc1Swenshuai.xi /// @param <IN>\b u32Reg: the register to be read 830*53ee8cc1Swenshuai.xi /// @param <IN>\b u16Mask: the mask value 831*53ee8cc1Swenshuai.xi /// @return @ref MS_U16 832*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 833*53ee8cc1Swenshuai.xi // MS_U16 MApi_VE_R2BYTE_MSK(MS_VE_REG_BANK VE_BK, MS_U32 u32Reg, MS_U16 u16Mask); 834*53ee8cc1Swenshuai.xi 835*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 836*53ee8cc1Swenshuai.xi /// Description: VE Dump Table Interface 837*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 838*53ee8cc1Swenshuai.xi /// @param <IN>\b pVETable: pointer to the table 839*53ee8cc1Swenshuai.xi /// @param <IN>\b u8TableType: the type of table 840*53ee8cc1Swenshuai.xi /// @return none 841*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 842*53ee8cc1Swenshuai.xi // void MDrv_VE_DumpTable(MS_U8 *pVETable, MS_U8 u8TableType); 843*53ee8cc1Swenshuai.xi 844*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 845*53ee8cc1Swenshuai.xi /// Description: This routine set flag to mask register write for special case \n 846*53ee8cc1Swenshuai.xi /// e.g. MBoot to APP with logo display 847*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 848*53ee8cc1Swenshuai.xi /// @param <IN>\b bFlag: TRUE: Mask register write, FALSE: not Mask 849*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 850*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 851*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_DisableRegWrite(MS_BOOL bFlag); 852*53ee8cc1Swenshuai.xi 853*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 854*53ee8cc1Swenshuai.xi /// Description: VE show internal color bar (test pattern) 855*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 856*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: TRUE to enable color; false to disable color bar 857*53ee8cc1Swenshuai.xi /// @return None 858*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 859*53ee8cc1Swenshuai.xi // void MDrv_VE_ShowColorBar(MS_BOOL bEnable); 860*53ee8cc1Swenshuai.xi 861*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 862*53ee8cc1Swenshuai.xi /// Description: This routine set read/write addjustment to centralize VE display window.\n 863*53ee8cc1Swenshuai.xi /// Set the adjustment and it works after MDrv_VE_set_display_window() API is invoked. \n 864*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 865*53ee8cc1Swenshuai.xi /// @param <IN>\b s32WAddrAdjustment: the pixel units to adjust on write address 866*53ee8cc1Swenshuai.xi /// @param <IN>\b s32RAddrAdjustment: the pixel units to adjust on read address 867*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 868*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 869*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_AdjustPositionBase(MS_S32 s32WAddrAdjustment, MS_S32 s32RAddrAdjustment); 870*53ee8cc1Swenshuai.xi 871*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 872*53ee8cc1Swenshuai.xi /// Description: In STB Chip, VE needs to set vepll to lock frame rate with HD Path.\n 873*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 874*53ee8cc1Swenshuai.xi /// @param <IN>\b pInCfg: Information of HD path 875*53ee8cc1Swenshuai.xi /// @param <IN>\b bEnable: enable/disable frame lock 876*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 877*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 878*53ee8cc1Swenshuai.xi // VE_Result MDrv_VE_SetFrameLock(MS_VE_PLL_InCfg *pInCfg, MS_BOOL bEnable); 879*53ee8cc1Swenshuai.xi 880*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 881*53ee8cc1Swenshuai.xi /// Description: Provide the capability of Customer scaling for VE.\n 882*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 883*53ee8cc1Swenshuai.xi /// @param <IN>\b pstVECusScalingInfo : Src and Dest info for customer scaling, @ref MS_VE_CusScalingInfo 884*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 885*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 886*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Set_Customer_Scaling(MS_VE_CusScalingInfo *pstVECusScalingInfo); 887*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 888*53ee8cc1Swenshuai.xi /// Description: MDrv_VE_set_crop_window, set up crop window (crop video frame in MIU) 889*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 890*53ee8cc1Swenshuai.xi /// @param <IN>\b stCropWin: crop window 891*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 892*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 893*53ee8cc1Swenshuai.xi // VE_Result MDrv_VE_set_crop_window(MS_VE_WINDOW_TYPE stCropWin); 894*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 895*53ee8cc1Swenshuai.xi /// Description: VE be set display window (backend), after MIU 896*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 897*53ee8cc1Swenshuai.xi /// @param <IN>\b stDispWin: display window 898*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 899*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 900*53ee8cc1Swenshuai.xi // VE_Result MDrv_VE_set_be_display_window(MS_VE_WINDOW_TYPE stDispWin); 901*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 902*53ee8cc1Swenshuai.xi /// Description: MDrv_VE_Get_Ext_Caps: get VE extented capability 903*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 904*53ee8cc1Swenshuai.xi /// @param <OUT>\b cap: Get capbility 905*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 906*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 907*53ee8cc1Swenshuai.xi // VE_Result MDrv_VE_Get_Ext_Caps(MS_VE_Ext_Cap *cap); 908*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 909*53ee8cc1Swenshuai.xi /// Description: MDrv_VE_SetWindow, set crop window and display window in one API. 910*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 911*53ee8cc1Swenshuai.xi /// @argument: 912*53ee8cc1Swenshuai.xi /// @param <IN>\b stSrcWin: a pointer to MS_VE_WINDOW_TYPE - source window, depends on input size 913*53ee8cc1Swenshuai.xi /// @param <IN>\b stCropWin: a pointer to MS_VE_WINDOW_TYPE - crop window, depends on source window size 914*53ee8cc1Swenshuai.xi /// @param <IN>\b stDispWin: a pointer to MS_VE_WINDOW_TYPE - display window, depends on output size 915*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 916*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 917*53ee8cc1Swenshuai.xi // VE_Result MDrv_VE_SetWindow(MS_VE_WINDOW_TYPE *stSrcWin, MS_VE_WINDOW_TYPE *stCropWin, 918*53ee8cc1Swenshuai.xi // MS_VE_WINDOW_TYPE *stDispWin); 919*53ee8cc1Swenshuai.xi 920*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 921*53ee8cc1Swenshuai.xi /// Description: Init and config the VE capture 922*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 923*53ee8cc1Swenshuai.xi /// @param pVECapture \b IN : @ref PMS_VE_Output_CAPTURE 924*53ee8cc1Swenshuai.xi /// @return none 925*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 926*53ee8cc1Swenshuai.xi void MDrv_VE_InitVECapture(PMS_VE_Output_CAPTURE pVECapture); 927*53ee8cc1Swenshuai.xi 928*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 929*53ee8cc1Swenshuai.xi /// Description: Enable VE capture 930*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 931*53ee8cc1Swenshuai.xi /// @param <IN>\b pstVECapState: a pointer to caputre state 932*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL 933*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 934*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_EnaVECapture(PMS_VE_VECAPTURESTATE pstVECapState); 935*53ee8cc1Swenshuai.xi 936*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 937*53ee8cc1Swenshuai.xi /// Description: Get VE capture state 938*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 939*53ee8cc1Swenshuai.xi /// @param <IN>\b pstVECapState: a pointer to get caputre state 940*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL 941*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------ 942*53ee8cc1Swenshuai.xi // MS_BOOL MDrv_VE_GetVECaptureState(PMS_VE_VECAPTURESTATE pstVECapState); 943*53ee8cc1Swenshuai.xi 944*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 945*53ee8cc1Swenshuai.xi /// Description: Wait on the finish of specified frame: Check if the frame is captured, 946*53ee8cc1Swenshuai.xi /// if Yes, return TRUE, otherwise sleep until the next Vsync ISR 947*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 948*53ee8cc1Swenshuai.xi /// @param <IN>\b pstVECapState: a pointer to caputre state 949*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL 950*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 951*53ee8cc1Swenshuai.xi MS_BOOL MDrv_VE_VECaptureWaitOnFrame(PMS_VE_VECAPTURESTATE pstVECapState); 952*53ee8cc1Swenshuai.xi 953*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 954*53ee8cc1Swenshuai.xi /// Description : the frame start is used to adjust output video (in pixel) 955*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 956*53ee8cc1Swenshuai.xi /// @param <IN> \b stSrcWin :source window, depends on input size 957*53ee8cc1Swenshuai.xi /// @param <IN>\b pixel_offset : set pixel offset value 958*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 959*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 960*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_Adjust_FrameStart(MS_VE_WINDOW_TYPE *stSrcWin,MS_S16 pixel_offset); 961*53ee8cc1Swenshuai.xi 962*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 963*53ee8cc1Swenshuai.xi /// Description : Start or Stop to send WSS data on 525i system 964*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 965*53ee8cc1Swenshuai.xi /// @param <IN>\b bEn: enable/disable wss525 966*53ee8cc1Swenshuai.xi /// @param <IN>\b u32WSSData: 20-bit wss data includes 14 bits of data and 6 bits of CRC 967*53ee8cc1Swenshuai.xi /// @return @ref VE_Result 968*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 969*53ee8cc1Swenshuai.xi VE_Result MDrv_VE_SetWSS525Data(MS_BOOL bEn, MS_U32 u32WSSData); 970*53ee8cc1Swenshuai.xi 971*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 972*53ee8cc1Swenshuai.xi /// Description : Get current wss data 973*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 974*53ee8cc1Swenshuai.xi /// @return 32-bit wss data, it includes 14 bits of data and 6 bits of CRC in lower 20 bits 975*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 976*53ee8cc1Swenshuai.xi MS_U32 MDrv_VE_GetWSS525Data(void); 977*53ee8cc1Swenshuai.xi 978*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 979*53ee8cc1Swenshuai.xi /// Description : Set the state for supesend 980*53ee8cc1Swenshuai.xi /// @ingroup VE_FEATURE 981*53ee8cc1Swenshuai.xi /// @param <IN>\b u16PowerState: The state for suspend 982*53ee8cc1Swenshuai.xi /// @return @ref MS_U32 , TRUE for success, false for fail 983*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 984*53ee8cc1Swenshuai.xi MS_U32 MDrv_TVE_SetPowerState(EN_POWER_MODE u16PowerState); 985*53ee8cc1Swenshuai.xi 986*53ee8cc1Swenshuai.xi #ifdef __cplusplus 987*53ee8cc1Swenshuai.xi } 988*53ee8cc1Swenshuai.xi #endif 989*53ee8cc1Swenshuai.xi 990*53ee8cc1Swenshuai.xi #endif // _DRVTVENCODER_H 991