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 78*53ee8cc1Swenshuai.xi #ifndef _API_VDEC_V2_PRIV_H_ 79*53ee8cc1Swenshuai.xi #define _API_VDEC_V2_PRIV_H_ 80*53ee8cc1Swenshuai.xi 81*53ee8cc1Swenshuai.xi #include "apiVDEC.h" 82*53ee8cc1Swenshuai.xi 83*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 84*53ee8cc1Swenshuai.xi // Header Files 85*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 86*53ee8cc1Swenshuai.xi #ifdef __cplusplus 87*53ee8cc1Swenshuai.xi extern "C" 88*53ee8cc1Swenshuai.xi { 89*53ee8cc1Swenshuai.xi #endif 90*53ee8cc1Swenshuai.xi 91*53ee8cc1Swenshuai.xi 92*53ee8cc1Swenshuai.xi 93*53ee8cc1Swenshuai.xi 94*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 95*53ee8cc1Swenshuai.xi // Enum for VDEC layer 96*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 97*53ee8cc1Swenshuai.xi /* 98*53ee8cc1Swenshuai.xi enum 99*53ee8cc1Swenshuai.xi { 100*53ee8cc1Swenshuai.xi E_VDEC_POOL_ID_INTERNAL = 0, 101*53ee8cc1Swenshuai.xi E_VDEC_POOL_ID_MAX, 102*53ee8cc1Swenshuai.xi } E_VDEC_POOL_ID; 103*53ee8cc1Swenshuai.xi */ 104*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 105*53ee8cc1Swenshuai.xi // Structure for VDEC layer 106*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 107*53ee8cc1Swenshuai.xi 108*53ee8cc1Swenshuai.xi typedef struct 109*53ee8cc1Swenshuai.xi { 110*53ee8cc1Swenshuai.xi MS_U8 u8DecoderInUse; 111*53ee8cc1Swenshuai.xi }VDEC_RESOURCE_PRIVATE; 112*53ee8cc1Swenshuai.xi 113*53ee8cc1Swenshuai.xi 114*53ee8cc1Swenshuai.xi 115*53ee8cc1Swenshuai.xi 116*53ee8cc1Swenshuai.xi 117*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 118*53ee8cc1Swenshuai.xi // Function pointer for VDEC layer 119*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 120*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetLibVer) (const MSIF_Version **); 121*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetInfo) (const VDEC_Info **); 122*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetStatus) (VDEC_Status *); 123*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CheckCaps) (VDEC_CodecType); 124*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_EnableTurboMode) (MS_BOOL); 125*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_Init) (VDEC_InitParam*); 126*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_Init_EX) (void *, MS_U32); 127*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_Rst) (void); 128*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_Exit) (MS_BOOL); 129*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CheckDispInfoRdy) (void); 130*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetFrcMode) (VDEC_FrcMode); 131*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetDynScalingParams) (MS_PHYADDR, MS_U32); 132*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_Play) (void); 133*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_Pause) (void); 134*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_Resume) (void); 135*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_StepDisp) (void); 136*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsStepDispDone) (void); 137*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SeekToPTS) (MS_U32); 138*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SkipToPTS) (MS_U32); 139*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_StepDecode) (void); 140*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsStepDecodeDone) (void); 141*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetTrickMode) (VDEC_TrickDec); 142*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_PushDecQ) (VDEC_DecCmd*); 143*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_FireDecCmd) (void); 144*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetDecQVacancy) (void); 145*53ee8cc1Swenshuai.xi typedef MS_BOOL (*IOCTL_VDEC_IsCCAvailable) (void); 146*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetCCInfo) (void *, MS_U32); 147*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_Flush) (VDEC_FreezePicSelect); 148*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetESWritePtr) (void); 149*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetESReadPtr) (void); 150*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_EnableLastFrameShow) (MS_BOOL); 151*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsDispFinish) (void); 152*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetSpeed) (VDEC_SpeedType, VDEC_DispSpeed); 153*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsFrameRdy) (void); 154*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetFreezeDisp) (MS_BOOL); 155*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetBlueScreen) (MS_BOOL); 156*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_ResetPTS) (MS_U32); 157*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_AVSyncOn) (MS_BOOL, MS_U32, MS_U16); 158*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetAVSyncFreerunThreshold) (MS_U32); 159*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsAVSyncOn) (void); 160*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetPTS) (void); 161*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetNextPTS) (void); 162*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsStartSync) (void); 163*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsReachSync) (void); 164*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsFreerun) (void); 165*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_MhegDecodeIFrame) (MS_PHYADDR,MS_PHYADDR,MS_PHYADDR); 166*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_MhegIsIFrameDecoding) (void); 167*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_MhegRstIFrameDec) (void); 168*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetErrCode) (void); 169*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetErrCnt) (void); 170*53ee8cc1Swenshuai.xi typedef VDEC_CodecType (*IOCTL_VDEC_GetActiveCodecType) (void); 171*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetBitsRate) (void); 172*53ee8cc1Swenshuai.xi typedef MS_BOOL (*IOCTL_VDEC_Is32PullDown) (void); 173*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsAlive) (void); 174*53ee8cc1Swenshuai.xi typedef MS_S64 (*IOCTL_VDEC_GetVideoPtsStcDelta) (void); 175*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsWithValidStream) (void); 176*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsIFrameFound) (void); 177*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsWithLowDelay) (void); 178*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsAllBufferEmpty) (void); 179*53ee8cc1Swenshuai.xi typedef MS_U8 (*IOCTL_VDEC_GetGOPCnt) (void); 180*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetFrameCnt) (void); 181*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetSkipCnt) (void); 182*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetDropCnt) (void); 183*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetDispInfo) (VDEC_DispInfo *); 184*53ee8cc1Swenshuai.xi typedef VDEC_TrickDec (*IOCTL_VDEC_GetTrickMode) (void); 185*53ee8cc1Swenshuai.xi typedef MS_U8 (*IOCTL_VDEC_GetActiveFormat) (void); 186*53ee8cc1Swenshuai.xi typedef MS_U8 (*IOCTL_VDEC_GetColourPrimaries) (void); 187*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetHWKey) (MS_U8 *); 188*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_IsSeqChg) (void); 189*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetDbgLevel) (VDEC_DbgLevel); 190*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetDecFrameInfo) (VDEC_FrameInfo *); 191*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetDispFrameInfo) (VDEC_FrameInfo *); 192*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetExtDispInfo) (VDEC_ExtDispInfo *); 193*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetDecTimeCode) (VDEC_TimeCode *); 194*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetDispTimeCode) (VDEC_TimeCode *); 195*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_StartParsing) (VDEC_CCCfg* ); 196*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_StopParsing) (VDEC_CCCfg* ); 197*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_GetWritePtr) (MS_U32* ); 198*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_GetReadPtr) (MS_U32* ); 199*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_UpdateReadPtr) (MS_U32); 200*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_GetIsOverflow) (MS_BOOL*); 201*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetEvent) (MS_U32, VDEC_EventCb, void *); 202*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_UnsetEvent) (MS_U32); 203*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetEvent_EX) (VDEC_CB_TYPE, MS_U32, VDEC_EventCb, void*); 204*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_UnsetEvent_EX) (VDEC_CB_TYPE, MS_U32); 205*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetEventInfo) (MS_U32*); 206*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GenPattern) (VDEC_PatternType, MS_PHYADDR, MS_U32 *); 207*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetPatternLeastLength) (VDEC_PatternType); 208*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_DisableDeblocking) (MS_BOOL); 209*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_DisableQuarterPixel) (MS_BOOL); 210*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetAutoRmLstZeroByte) (MS_BOOL); 211*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetBalanceBW) (MS_U8, MS_U8, MS_U8, MS_U8); 212*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_DbgDumpStatus) (void); 213*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetControl) (VDEC_User_Cmd, MS_U32); 214*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetControl) (VDEC_User_Cmd, MS_U32); 215*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetDispCnt) (void); 216*53ee8cc1Swenshuai.xi typedef MS_U32 (*IOCTL_VDEC_GetFwVersion) (VDEC_FwType); 217*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_SetBlockDisplay) (MS_BOOL); 218*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_EnableESBuffMalloc) (MS_BOOL); 219*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetESBuffVacancy) (void*); 220*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetESBuff) (MS_U32, MS_U32*, MS_PHYADDR* ); 221*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_GetNextDispFrame) (VDEC_DispFrame** ); 222*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_DisplayFrame) (VDEC_DispFrame* ); 223*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_ReleaseFrame) (VDEC_DispFrame* ); 224*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_FlushPTSBuf) (void); 225*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CaptureFrame) (MS_U32, MS_BOOL); 226*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_Init) (MS_U32*); 227*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_SetCfg) (VDEC_CCFormat, VDEC_CCType, MS_U32*); 228*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_SetBuffStartAdd) (VDEC_CCFormat, MS_U32*); 229*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_UpdateWriteAdd) (VDEC_CCFormat, MS_U32*); 230*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_UpdateReadAdd) (VDEC_CCFormat, MS_U32*); 231*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_DisableParsing) (VDEC_CCFormat); 232*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_GetInfo) (VDEC_CCFormat, VDEC_CCInfoCmd, MS_U32 *); 233*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_GetIsRstDone) (VDEC_CCFormat); 234*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_GetIsBuffOverflow) (VDEC_CCFormat); 235*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_GetWriteAdd) (VDEC_CCFormat); 236*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_GetReadAdd) (VDEC_CCFormat); 237*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_SystemPreSetControl) (VDEC_User_Cmd, void *); 238*53ee8cc1Swenshuai.xi typedef VDEC_Result (*IOCTL_VDEC_CC_PreSetControl) (VDEC_User_Cmd, MS_U32 **); 239*53ee8cc1Swenshuai.xi 240*53ee8cc1Swenshuai.xi typedef struct 241*53ee8cc1Swenshuai.xi { 242*53ee8cc1Swenshuai.xi // instance variable 243*53ee8cc1Swenshuai.xi //MS_U8 Index_of_decoder; 244*53ee8cc1Swenshuai.xi // Function pointer 245*53ee8cc1Swenshuai.xi //IOCTL_VDEC_GetFreeStream fpVDEC_EX_GetFreeStream; 246*53ee8cc1Swenshuai.xi 247*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetLibVer fpVDEC_GetLibVer; 248*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetInfo fpVDEC_GetInfo; 249*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetStatus fpVDEC_GetStatus; 250*53ee8cc1Swenshuai.xi IOCTL_VDEC_CheckCaps fpVDEC_CheckCaps; 251*53ee8cc1Swenshuai.xi IOCTL_VDEC_EnableTurboMode fpVDEC_EnableTurboMode; 252*53ee8cc1Swenshuai.xi IOCTL_VDEC_Init fpVDEC_Init; 253*53ee8cc1Swenshuai.xi IOCTL_VDEC_Init_EX fpVDEC_Init_EX; 254*53ee8cc1Swenshuai.xi IOCTL_VDEC_Rst fpVDEC_Rst; 255*53ee8cc1Swenshuai.xi IOCTL_VDEC_Exit fpVDEC_Exit; 256*53ee8cc1Swenshuai.xi IOCTL_VDEC_CheckDispInfoRdy fpVDEC_CheckDispInfoRdy; 257*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetFrcMode fpVDEC_SetFrcMode; 258*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetDynScalingParams fpVDEC_SetDynScalingParams; 259*53ee8cc1Swenshuai.xi IOCTL_VDEC_Play fpVDEC_Play; 260*53ee8cc1Swenshuai.xi IOCTL_VDEC_Pause fpVDEC_Pause; 261*53ee8cc1Swenshuai.xi IOCTL_VDEC_Resume fpVDEC_Resume; 262*53ee8cc1Swenshuai.xi IOCTL_VDEC_StepDisp fpVDEC_StepDisp; 263*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsStepDispDone fpVDEC_IsStepDispDone; 264*53ee8cc1Swenshuai.xi IOCTL_VDEC_SeekToPTS fpVDEC_SeekToPTS; 265*53ee8cc1Swenshuai.xi IOCTL_VDEC_SkipToPTS fpVDEC_SkipToPTS; 266*53ee8cc1Swenshuai.xi IOCTL_VDEC_StepDecode fpVDEC_StepDecode; 267*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsStepDecodeDone fpVDEC_IsStepDecodeDone; 268*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetTrickMode fpVDEC_SetTrickMode; 269*53ee8cc1Swenshuai.xi IOCTL_VDEC_PushDecQ fpVDEC_PushDecQ; 270*53ee8cc1Swenshuai.xi IOCTL_VDEC_FireDecCmd fpVDEC_FireDecCmd; 271*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetDecQVacancy fpVDEC_GetDecQVacancy; 272*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsCCAvailable fpVDEC_IsCCAvailable; 273*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetCCInfo fpVDEC_GetCCInfo; 274*53ee8cc1Swenshuai.xi IOCTL_VDEC_Flush fpVDEC_Flush; 275*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetESWritePtr fpVDEC_GetESWritePtr; 276*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetESReadPtr fpVDEC_GetESReadPtr; 277*53ee8cc1Swenshuai.xi IOCTL_VDEC_EnableLastFrameShow fpVDEC_EnableLastFrameShow; 278*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsDispFinish fpVDEC_IsDispFinish; 279*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetSpeed fpVDEC_SetSpeed; 280*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsFrameRdy fpVDEC_IsFrameRdy; 281*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetFreezeDisp fpVDEC_SetFreezeDisp; 282*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetBlueScreen fpVDEC_SetBlueScreen; 283*53ee8cc1Swenshuai.xi IOCTL_VDEC_ResetPTS fpVDEC_ResetPTS; 284*53ee8cc1Swenshuai.xi IOCTL_VDEC_AVSyncOn fpVDEC_AVSyncOn; 285*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetAVSyncFreerunThreshold fpVDEC_SetAVSyncFreerunThreshold; 286*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsAVSyncOn fpVDEC_IsAVSyncOn; 287*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetPTS fpVDEC_GetPTS; 288*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetNextPTS fpVDEC_GetNextPTS; 289*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsStartSync fpVDEC_IsStartSync; 290*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsReachSync fpVDEC_IsReachSync; 291*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsFreerun fpVDEC_IsFreerun; 292*53ee8cc1Swenshuai.xi IOCTL_VDEC_MhegDecodeIFrame fpVDEC_MhegDecodeIFrame; 293*53ee8cc1Swenshuai.xi IOCTL_VDEC_MhegIsIFrameDecoding fpVDEC_MhegIsIFrameDecoding; 294*53ee8cc1Swenshuai.xi IOCTL_VDEC_MhegRstIFrameDec fpVDEC_MhegRstIFrameDec; 295*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetErrCode fpVDEC_GetErrCode; 296*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetErrCnt fpVDEC_GetErrCnt; 297*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetActiveCodecType fpVDEC_GetActiveCodecType; 298*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetBitsRate fpVDEC_GetBitsRate; 299*53ee8cc1Swenshuai.xi IOCTL_VDEC_Is32PullDown fpVDEC_Is32PullDown; 300*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsAlive fpVDEC_IsAlive; 301*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetVideoPtsStcDelta fpVDEC_GetVideoPtsStcDelta; 302*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsWithValidStream fpVDEC_IsWithValidStream; 303*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsIFrameFound fpVDEC_IsIFrameFound; 304*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsWithLowDelay fpVDEC_IsWithLowDelay; 305*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsAllBufferEmpty fpVDEC_IsAllBufferEmpty; 306*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetGOPCnt fpVDEC_GetGOPCnt; 307*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetFrameCnt fpVDEC_GetFrameCnt; 308*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetSkipCnt fpVDEC_GetSkipCnt; 309*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetDropCnt fpVDEC_GetDropCnt; 310*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetDispInfo fpVDEC_GetDispInfo; 311*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetTrickMode fpVDEC_GetTrickMode; 312*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetActiveFormat fpVDEC_GetActiveFormat; 313*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetColourPrimaries fpVDEC_GetColourPrimaries; 314*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetHWKey fpVDEC_GetHWKey; 315*53ee8cc1Swenshuai.xi IOCTL_VDEC_IsSeqChg fpVDEC_IsSeqChg; 316*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetDbgLevel fpVDEC_SetDbgLevel; 317*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetDecFrameInfo fpVDEC_GetDecFrameInfo; 318*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetDispFrameInfo fpVDEC_GetDispFrameInfo; 319*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetExtDispInfo fpVDEC_GetExtDispInfo; 320*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetDecTimeCode fpVDEC_GetDecTimeCode; 321*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetDispTimeCode fpVDEC_GetDispTimeCode; 322*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_StartParsing fpVDEC_CC_StartParsing; 323*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_StopParsing fpVDEC_CC_StopParsing; 324*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_GetWritePtr fpVDEC_CC_GetWritePtr; 325*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_GetReadPtr fpVDEC_CC_GetReadPtr; 326*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_UpdateReadPtr fpVDEC_CC_UpdateReadPtr; 327*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_GetIsOverflow fpVDEC_CC_GetIsOverflow; 328*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetEvent fpVDEC_SetEvent; 329*53ee8cc1Swenshuai.xi IOCTL_VDEC_UnsetEvent fpVDEC_UnsetEvent; 330*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetEvent_EX fpVDEC_SetEvent_EX; 331*53ee8cc1Swenshuai.xi IOCTL_VDEC_UnsetEvent_EX fpVDEC_UnsetEvent_EX; 332*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetEventInfo fpVDEC_GetEventInfo; 333*53ee8cc1Swenshuai.xi IOCTL_VDEC_GenPattern fpVDEC_GenPattern; 334*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetPatternLeastLength fpVDEC_GetPatternLeastLength; 335*53ee8cc1Swenshuai.xi IOCTL_VDEC_DisableDeblocking fpVDEC_DisableDeblocking; 336*53ee8cc1Swenshuai.xi IOCTL_VDEC_DisableQuarterPixel fpVDEC_DisableQuarterPixel; 337*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetAutoRmLstZeroByte fpVDEC_SetAutoRmLstZeroByte; 338*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetBalanceBW fpVDEC_SetBalanceBW; 339*53ee8cc1Swenshuai.xi IOCTL_VDEC_DbgDumpStatus fpVDEC_DbgDumpStatus; 340*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetControl fpVDEC_SetControl; 341*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetControl fpVDEC_GetControl; 342*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetDispCnt fpVDEC_GetDispCnt; 343*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetFwVersion fpVDEC_GetFwVersion; 344*53ee8cc1Swenshuai.xi IOCTL_VDEC_SetBlockDisplay fpVDEC_SetBlockDisplay; 345*53ee8cc1Swenshuai.xi IOCTL_VDEC_EnableESBuffMalloc fpVDEC_EnableESBuffMalloc; 346*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetESBuffVacancy fpVDEC_GetESBuffVacancy; 347*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetESBuff fpVDEC_GetESBuff; 348*53ee8cc1Swenshuai.xi IOCTL_VDEC_GetNextDispFrame fpVDEC_GetNextDispFrame; 349*53ee8cc1Swenshuai.xi IOCTL_VDEC_DisplayFrame fpVDEC_DisplayFrame; 350*53ee8cc1Swenshuai.xi IOCTL_VDEC_ReleaseFrame fpVDEC_ReleaseFrame; 351*53ee8cc1Swenshuai.xi IOCTL_VDEC_FlushPTSBuf fpVDEC_FlushPTSBuf; 352*53ee8cc1Swenshuai.xi IOCTL_VDEC_CaptureFrame fpVDEC_CaptureFrame; 353*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_Init fpVDEC_CC_Init; 354*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_SetCfg fpVDEC_CC_SetCfg; 355*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_SetBuffStartAdd fpVDEC_CC_SetBuffStartAdd; 356*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_UpdateWriteAdd fpVDEC_CC_UpdateWriteAdd; 357*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_UpdateReadAdd fpVDEC_CC_UpdateReadAdd; 358*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_DisableParsing fpVDEC_CC_DisableParsing; 359*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_GetInfo fpVDEC_CC_GetInfo; 360*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_GetIsRstDone fpVDEC_CC_GetIsRstDone; 361*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_GetIsBuffOverflow fpVDEC_CC_GetIsBuffOverflow; 362*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_GetWriteAdd fpVDEC_CC_GetWriteAdd; 363*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_GetReadAdd fpVDEC_CC_GetReadAdd; 364*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_SystemPreSetControl fpVDEC_SystemPreSetControl; 365*53ee8cc1Swenshuai.xi IOCTL_VDEC_CC_PreSetControl fpVDEC_PreSetControl; 366*53ee8cc1Swenshuai.xi }VDEC_INSTANCE_PRIVATE; 367*53ee8cc1Swenshuai.xi 368*53ee8cc1Swenshuai.xi #ifdef __cplusplus 369*53ee8cc1Swenshuai.xi } 370*53ee8cc1Swenshuai.xi #endif 371*53ee8cc1Swenshuai.xi 372*53ee8cc1Swenshuai.xi #undef _API_VDEC_V2_PRIV_H_ 373*53ee8cc1Swenshuai.xi #endif // _API_VDEC_V2_PRIV_H_ 374