xref: /utopia/UTPA2-700.0.x/modules/vdec_v1/drv/hvd/drvHVD_sub.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // ("MStar Confidential Information") by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94 
95 ///////////////////////////////////////////////////////////////////////////////////////////////////
96 ///
97 /// @file   drvHVD_sub.h
98 /// @brief  SubHVD Driver Interface
99 /// @author MStar Semiconductor Inc.
100 ///////////////////////////////////////////////////////////////////////////////////////////////////
101 
102 #ifndef _DRV_HVD_SUB_H_
103 #define _DRV_HVD_SUB_H_
104 
105 #ifdef __cplusplus
106 extern "C"
107 {
108 #endif
109 
110 //-------------------------------------------------------------------------------------------------
111 //  Driver Capability
112 //-------------------------------------------------------------------------------------------------
113 
114 //-------------------------------------------------------------------------------------------------
115 //  Macro and Define
116 //-------------------------------------------------------------------------------------------------
117 
118 //-------------------------------------------------------------------------------------------------
119 //  Type and Structure
120 //-------------------------------------------------------------------------------------------------
121 
122 //-------------------------------------------------------------------------------------------------
123 //  Function and Variable
124 //-------------------------------------------------------------------------------------------------
125 void MDrv_HVD_Sub_PowerCtrl( MS_BOOL bEnable );
126 void MDrv_HVD_Sub_SetOSRegBase( MS_U32 u32RegBaseAddr );
127 HVD_Result MDrv_HVD_Sub_Init(HVD_MemCfg *pStMemCfg, HVD_Init_Settings *pStInitSettings);
128 HVD_Result MDrv_HVD_Sub_Rst(MS_BOOL bErrHandle);
129 HVD_Result MDrv_HVD_Sub_Play(void);
130 HVD_Result MDrv_HVD_Sub_Exit(void);
131 HVD_Result MDrv_HVD_Sub_Pause(void);
132 HVD_Result MDrv_HVD_Sub_Flush( MS_BOOL bShowLast);
133 HVD_Result MDrv_HVD_Sub_StepDisp( void);
134 HVD_Result MDrv_HVD_Sub_StepDecode(void);
135 HVD_Result MDrv_HVD_Sub_PushQueue(HVD_Packet_Info* pInfo);
136 HVD_Result MDrv_HVD_Sub_PushQueue_Fire(void);
137 HVD_Result MDrv_HVD_Sub_DecodeIFrame(MS_PHYADDR u32SrcSt , MS_U32 u32SrcSize);
138 
139 HVD_Result MDrv_HVD_Sub_SetDataEnd( MS_BOOL bEnd );
140 HVD_Result MDrv_HVD_Sub_SetDispErrFrm(MS_BOOL bEnable);
141 HVD_Result MDrv_HVD_Sub_SetDispRepeatField(MS_BOOL bEnable);
142 HVD_Result MDrv_HVD_Sub_SetSkipDecMode(HVD_Skip_Decode eDecType);
143 HVD_Result MDrv_HVD_Sub_SetDispSpeed(HVD_Drv_Disp_Speed eSpeed);
144 HVD_Result MDrv_HVD_Sub_SetSyncActive( MS_BOOL bEnable);
145 HVD_Result MDrv_HVD_Sub_SetDropMode( HVD_Drop_Disp eMode , MS_U32 u32Arg);
146 HVD_Result MDrv_HVD_Sub_RstPTS(MS_U32 u32PTS);
147 HVD_Result MDrv_HVD_Sub_SetFrcMode(HVD_FrmRateConv_Mode eMode );
148 HVD_Result MDrv_HVD_Sub_SetSyncTolerance(MS_U32 u32Arg );
149 HVD_Result MDrv_HVD_Sub_SetSyncVideoDelay( MS_U32 u32Arg);
150 HVD_Result MDrv_HVD_Sub_SetSyncFreeRunTH(MS_U32 u32Arg );
151 HVD_Result MDrv_HVD_Sub_SetSyncRepeatTH( MS_U32 u32Arg);
152 HVD_Result MDrv_HVD_Sub_SetErrConceal(MS_BOOL u32Arg );
153 void MDrv_HVD_Sub_SetDbgLevel( HVD_Uart_Level elevel );
154 HVD_Result MDrv_HVD_Sub_SeekToPTS(MS_U32 u32PTS );
155 HVD_Result MDrv_HVD_Sub_SkipToPTS(MS_U32 u32PTS );
156 HVD_Result MDrv_HVD_Sub_SetFreezeImg(MS_BOOL bEnable );
157 HVD_Result MDrv_HVD_Sub_SetBlueScreen(MS_BOOL bEnable );
158 HVD_Result MDrv_HVD_Sub_SetDispOneField(MS_BOOL bEnable );
159 HVD_Result MDrv_HVD_Sub_SetISREvent(MS_U32 u32Event, HVD_InterruptCb fnISRHandler );
160 MS_BOOL MDrv_HVD_Sub_SetEnableISR(MS_BOOL bEnable);
161 MS_BOOL MDrv_HVD_Sub_SetForceISR(MS_BOOL bEnable);
162 MS_BOOL MDrv_HVD_Sub_SetMVOPDone(void);
163 HVD_Result MDrv_HVD_Sub_SetVirtualBox(MS_U16 u16Width, MS_U16 u16Height);
164 HVD_Result MDrv_HVD_Sub_SetDynScalingParam(  void *pStAddr , MS_U32 u32Size );
165 HVD_Result MDrv_HVD_Sub_SetAutoRmLstZeroByte(MS_BOOL bOn);
166 HVD_Result MDrv_HVD_Sub_SetDispInfoTH(HVD_Disp_Info_Threshold* DispInfoTH );
167 
168 MS_BOOL MDrv_HVD_Sub_IsISROccured(void);
169 MS_BOOL MDrv_HVD_Sub_IsDispFinish(void);
170 MS_BOOL MDrv_HVD_Sub_IsFrameShowed(void);
171 MS_BOOL MDrv_HVD_Sub_IsStepDecodeDone(void);
172 HVD_Result MDrv_HVD_Sub_CheckDispInfoRdy(void);
173 MS_BOOL MDrv_HVD_Sub_IsDispInfoChg(void);
174 MS_BOOL MDrv_HVD_Sub_IsIdle(void);
175 MS_BOOL MDrv_HVD_Sub_IsSyncStart(void);
176 MS_BOOL MDrv_HVD_Sub_IsSyncReach(void);
177 MS_BOOL MDrv_HVD_Sub_IsLowDelay(void);
178 MS_BOOL MDrv_HVD_Sub_IsIFrmFound(void);
179 MS_BOOL MDrv_HVD_Sub_Is1stFrmRdy(void);
180 MS_BOOL MDrv_HVD_Sub_IsAllBufferEmpty(void);
181 HVD_Result MDrv_HVD_Sub_IsAlive(void);
182 
183 MS_U32 MDrv_HVD_Sub_GetBBUVacancy(void);
184 HVD_Result MDrv_HVD_Sub_GetDispInfo( HVD_Disp_Info *pinfo );
185 MS_U32 MDrv_HVD_Sub_GetPTS(void);
186 MS_U32 MDrv_HVD_Sub_GetNextPTS(void);
187 MS_U32 MDrv_HVD_Sub_GetDataErrCnt(void);
188 MS_U32 MDrv_HVD_Sub_GetDecErrCnt(void);
189 MS_U32 MDrv_HVD_Sub_GetESWritePtr(void);
190 MS_U32 MDrv_HVD_Sub_GetESReadPtr(void);
191 MS_BOOL MDrv_HVD_Sub_GetCaps( HVD_Codec u32Type);
192 MS_U32 MDrv_HVD_Sub_GetErrCode(void);
193 MS_U32 MDrv_HVD_Sub_GetPlayMode(HVD_Get_Mode_Status eMode);
194 HVD_Get_Play_State MDrv_HVD_Sub_GetPlayState(void);
195 MS_U32 MDrv_HVD_Sub_GetDecodeCnt(void);
196 MS_U8 MDrv_HVD_Sub_GetActiveFormat(void);
197 const HVD_DrvInfo* MDrv_HVD_Sub_GetInfo( void );
198 MS_BOOL MDrv_HVD_Sub_GetStatus( HVD_DrvStatus *pstatus);
199 HVD_Result MDrv_HVD_Sub_GetFrmInfo( HVD_Get_Frm_Info_Type eType  ,  HVD_Frame_Info *pInfo);
200 MS_BOOL MDrv_HVD_Sub_GetISRInfo( MS_U32* eType );
201 MS_U32 MDrv_HVD_Sub_CalLumaSum(  HVD_Get_Frm_Info_Type eType  );
202 MS_U32 MDrv_HVD_Sub_GetUserData_Wptr( void );
203 MS_U32 MDrv_HVD_Sub_GetUserData_Packet( MS_U32 u32Idx , MS_U32* u32Size );
204 HVD_Result MDrv_HVD_Sub_GenPattern( HVD_PatternType eType ,  MS_U32 u32VAddr  ,  MS_U32* u32Size  );
205 MS_U32 MDrv_HVD_Sub_GetPatternInfo(   HVD_Pattern_Info eType );
206 MS_U32 MDrv_HVD_Sub_GetDynamicScalingInfo(   HVD_DynamicScaling_Info eType );
207 
208 MS_U32 MDrv_HVD_Sub_GetData(HVD_GData_Type eType);
209 MS_U32 MDrv_HVD_Sub_GetMem_Dbg(MS_U32 u32Addr);
210 void MDrv_HVD_Sub_DbgDumpStatus(HVD_DumpStatus eFlag);
211 void MDrv_HVD_Sub_SetMem_Dbg(MS_U32 u32Addr , MS_U32 u32Arg);
212 HVD_Result MDrv_HVD_Sub_SetCmd_Dbg( MS_U32 u32Cmd , MS_U32 u32Arg);
213 HVD_Result MDrv_HVD_Sub_SetSettings_Pro( HVD_SSettings_Type eType , MS_U32 u32Arg);
214 HVD_Result MDrv_HVD_Sub_SetBalanceBW(MS_U8 qp_cnt, MS_U8 db_cnt, MS_U8 upper);
215 
216 #ifdef __cplusplus
217 }
218 #endif
219 
220 #endif // _DRV_HVD_SUB_H_
221 
222