xref: /utopia/UTPA2-700.0.x/projects/tmplib/include/apiGOP_v2.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   apiGOP.h
98 /// @brief  MStar Graphics Output Path API
99 /// @author MStar Semiconductor Inc.
100 ///////////////////////////////////////////////////////////////////////////////////////////////////
101 
102 #ifndef _GOP_H_
103 #define _GOP_H_
104 
105 #include "MsTypes.h"
106 
107 #ifdef __cplusplus
108 extern "C"
109 {
110 #endif
111 
112 //-------------------------------------------------------------------------------------------------
113 //  Macro and Define
114 //-------------------------------------------------------------------------------------------------
115 /// GOP Version
116 
117 #define DWIN_SUPPORT_BUFFER     0x2UL
118 #define GOP_MULTIINFO_NUM       8UL
119 
120 /// Define GWIN color format.
121 typedef enum
122 {
123     /// Color format RGB555 and Blink.
124     E_GOP_COLOR_RGB555_BLINK    =E_MS_FMT_1ABFgBg12355,
125     /// Color format RGB565.
126     E_GOP_COLOR_RGB565          =E_MS_FMT_RGB565,
127     /// Color format ARGB4444.
128     E_GOP_COLOR_ARGB4444        =E_MS_FMT_ARGB4444,
129     /// Color format alpha blink.
130     E_GOP_COLOR_2266            =E_MS_FMT_FaBaFgBg2266,
131     /// Color format I8 (256-entry palette).
132     E_GOP_COLOR_I8              =E_MS_FMT_I8,
133     /// Color format ARGB8888.
134     E_GOP_COLOR_ARGB8888        =E_MS_FMT_ARGB8888,
135     /// Color format ARGB1555.
136     E_GOP_COLOR_ARGB1555        =E_MS_FMT_ARGB1555,
137     /// Color format ABGR8888.    - Andriod Format
138     E_GOP_COLOR_ABGR8888        =E_MS_FMT_ABGR8888,
139     /// Color format RGB555/YUV422.
140     E_GOP_COLOR_RGB555YUV422    =E_MS_FMT_ARGB1555_DST,
141     /// Color format YUV422.
142     E_GOP_COLOR_YUV422          =E_MS_FMT_YUV422,
143     /// Color format RGBA5551.    - Andriod Format
144     E_GOP_COLOR_RGBA5551        =E_MS_FMT_RGBA5551,
145     /// Color format RGBA4444.    - Andriod Format
146     E_GOP_COLOR_RGBA4444        =E_MS_FMT_RGBA4444,
147     /// Color format RGBA8888.    - Andriod Format
148     E_GOP_COLOR_RGBA8888        =E_MS_FMT_RGBA8888,
149     /// Color format BGR565.    - Andriod Format
150     E_GOP_COLOR_BGR565          =E_MS_FMT_BGR565,
151     /// Color format ABGR4444.    - Andriod Format
152     E_GOP_COLOR_ABGR4444        =E_MS_FMT_ABGR4444,
153     /// Color format AYUV8888.    - Andriod Format
154     E_GOP_COLOR_AYUV8888        =E_MS_FMT_AYUV8888,
155     /// Color format ABGR1555.    - Andriod Format
156     E_GOP_COLOR_ABGR1555        =E_MS_FMT_ABGR1555,
157     /// Color format BGRA5551.    - Andriod Format
158     E_GOP_COLOR_BGRA5551        =E_MS_FMT_BGRA5551,
159     /// Color format BGRA4444.    - Andriod Format
160     E_GOP_COLOR_BGRA4444        =E_MS_FMT_BGRA4444,
161     /// Color format BGRA8888.    - Andriod Format
162     E_GOP_COLOR_BGRA8888        =E_MS_FMT_BGRA8888,
163     /// Invalid color format.
164     E_GOP_COLOR_INVALID         =E_MS_FMT_GENERIC
165 } EN_GOP_COLOR_TYPE;
166 
167 
168 /// Define GOP destination displayplane type
169 typedef enum
170 {
171     ///IP0 path.
172     E_GOP_DST_IP0=0,
173     ///Mixer to VE path .
174     E_GOP_DST_MIXER2VE,
175      ///OP path.
176     E_GOP_DST_OP0,
177     ///VOP path.
178     E_GOP_DST_VOP,
179     ///IP1 path.
180     E_GOP_DST_IP1,
181     /// IP man path.
182     E_GOP_DST_IP_MAIN,
183     ///IP sub path.
184     E_GOP_DST_IP_SUB,
185     ///Mixer to OP Path
186     E_GOP_DST_MIXER2OP,
187     ///VOP path.
188     E_GOP_DST_VOP_SUB,
189     ///FRC path
190     E_GOP_DST_FRC,
191     ///DIRECT TO VE path
192     E_GOP_DST_VE,
193     ///OP1 path.
194     E_GOP_DST_OP1,
195     ///MIXER2OP1
196     E_GOP_DST_MIXER2OP1,
197     ///DIP path.
198     E_GOP_DST_DIP,
199     ///GS path.
200     E_GOP_DST_GOPScaling,
201     ///4K2K BYPASS path
202     E_GOP_DST_BYPASS,
203     MAX_GOP_DST_SUPPORT,
204 } EN_GOP_DST_TYPE;
205 
206 // scale direction
207 typedef enum
208 {
209     // no scale
210     E_GOP_NO_STRETCH = 0x00,
211     // horizontal scale
212     E_GOP_H_STRETCH = 0x01,
213     // vertical scale
214     E_GOP_V_STRETCH = 0x10,
215     // both horizontal and vertical scale
216     E_GOP_HV_STRETCH = 0x11,
217 } EN_GOP_STRETCH_DIRECTION;
218 
219 /// Define palette read type.
220 typedef enum
221 {
222     /// Palette access from GOP0 RIU.
223     E_GOP_PAL_GOP_RIU    = 0,
224     /// Palette access from GOP0 REGDMA.
225     E_GOP_PAL_GOP_REGDMA  = 1,
226     /// Palette access from GOP1 RIU.
227     E_GOP1_PAL_GOP_RIU    = 2,
228     /// Palette access from GOP1 REGDMA.
229     E_GOP1_PAL_GOP_REGDMA  = 3,
230 } EN_GOP_PALETTE_READTYPE;
231 
232 
233 ///GOP config type
234 typedef enum
235 {
236     /// This type is for not init some GOP features.
237     /// That is, this is for not changing some registers state
238     E_GOP_IGNOREINIT,
239     E_GOP_CONSALPHA_BITS,
240     E_GOP_TIMING_INFO,
241     E_GOP_IS_PIXELBASE_ENABLE,
242     E_GOP_GET_MAXFBNUM,
243 } EN_GOP_CONFIG_TYPE;
244 
245 /// Transparent color format
246 typedef enum
247 {
248     /// RGB mode transparent color.
249     GOPTRANSCLR_FMT0,
250     /// index mode transparent color.
251     GOPTRANSCLR_FMT1,
252     /// ARGB8888 mode transparent color.
253     GOPTRANSCLR_FMT2,
254 } EN_GOP_TRANSCLR_FMT;
255 
256 
257 //GOP Test Pattern type
258 typedef enum
259 {
260     E_GOP_TP_DISABLE=0,
261     E_GOP_TP_GRAY16,
262     E_GOP_TP_GRAY16_INVERSE,
263     E_GOP_TP_GRAY32,
264     E_GOP_TP_GRAY32_INVERSE,
265     E_GOP_TP_GRAY64,
266     E_GOP_TP_GRAY64_INVERSE,
267     E_GOP_TP_GRAY256,
268     E_GOP_TP_GRAY256_INVERSE,
269     E_GOP_TP_BLACK,
270     E_GOP_TP_WHITE,
271     E_GOP_TP_CLR,
272     E_GOP_TP_BW_DOT,
273     E_GOP_TP_BW_LINE,
274     E_GOP_TP_BW_CROSS,
275     E_GOP_TP_CLR_BAR,
276     E_GOP_TP_CLR_BAR_INVERSE,
277 }EN_GOP_TST_PATTERN;
278 
279 typedef enum
280 {
281     E_GOP_GPU_TILE_LINEAR=0,
282     E_GOP_GPU_TILE_DIP8X,
283     E_GOP_GPU_TILE_DIP16X,
284     E_GOP_GPU_TILE_GPU,
285 }EN_GOP_GPU_TILE_MODE;
286 
287 /// Define palette color format.
288 typedef enum
289 {
290     /// Palette color format is ARGB8888.
291     E_GOP_PAL_ARGB8888    = 0,
292     /// Invalid palette color format.
293     E_GOP_PAL_INVALID
294 } EN_GOP_PALETTE_TYPE;
295 
296 typedef enum
297 {
298     E_GOP_4G_PALETTE,
299     E_GOP_2G_PALETTE,
300 }EN_GOP_PALETTE;
301 
302 /// DWIN scan mode
303 typedef enum
304 {
305     /// progessive.
306     DWIN_SCAN_MODE_PROGRESSIVE,
307     /// interlace.
308     DWIN_SCAN_MODE_extern,
309 } EN_GOP_DWIN_SCAN_MODE;
310 
311 /// DWIN alpha source
312 typedef enum
313 {
314     /// Alpha from constant.
315     DWIN_ALPHA_SRC_CONST = 0,
316     /// Alpha from source.
317     DWIN_ALPHA_SRC_SOURCE = 1,
318     DWIN_ALPHA_SRC_MAX
319 } EN_GOP_DWIN_ALPHA_SRC;
320 
321 
322 /// DWIN UV sample mode
323 typedef enum
324 {
325     /// original.
326     DWIN_UVSAMPLE_ORI = 0,
327     /// left point.
328     DWIN_UVSAMPLE_LEFT = 1,
329     /// right point.
330     DWIN_UVSAMPLE_RIGHT = 2,
331     /// average point.
332     DWIN_UVSAMPLE_AVG = 3,
333     DWIN_UVSAMPLE_MAX
334 } EN_GOP_DWIN_UVSAMPLE_Mode;
335 
336 /// Define GOP Transparent color Stretch Mode.
337 typedef enum
338 {
339     E_GOP_TRANSPCOLOR_STRCH_DUPLICATE = 0,
340     E_GOP_TRANSPCOLOR_STRCH_ASNORMAL = 1,
341 } EN_GOP_STRCH_TRANSPCOLORMODE;
342 
343 /// Define GOP H-Stretch mode.
344 typedef enum
345 {
346     /// 6-tape (including nearest) mode.
347     E_GOP_HSTRCH_6TAPE         = 0,
348     /// duplicate mode.
349     E_GOP_HSTRCH_DUPLICATE     = 1,
350     /// 6-tape (Linear mode)
351     E_GOP_HSTRCH_6TAPE_LINEAR  = 2,
352     /// 6-tape (Nearest mode)
353     E_GOP_HSTRCH_6TAPE_NEAREST = 3,
354     /// 6-tape (Gain0)
355     E_GOP_HSTRCH_6TAPE_GAIN0   = 4,
356     /// 6-tape (Gain1)
357     E_GOP_HSTRCH_6TAPE_GAIN1   = 5,
358     /// 6-tape (Gain2)
359     E_GOP_HSTRCH_6TAPE_GAIN2   = 6,
360     /// 6-tape (Gain3)
361     E_GOP_HSTRCH_6TAPE_GAIN3   = 7,
362     /// 6-tape (Gain4)
363     E_GOP_HSTRCH_6TAPE_GAIN4   = 8,
364     /// 6-tape (Gain5)
365     E_GOP_HSTRCH_6TAPE_GAIN5   = 9,
366     /// 4-tap filer
367     E_GOP_HSTRCH_4TAPE         = 0xA,
368     ///2-tape
369     E_GOP_HSTRCH_2TAPE         = 0xB,
370 } EN_GOP_STRETCH_HMODE;
371 
372 /// Define GOP V-Stretch mode.
373 typedef enum
374 {
375     ///2-TAP mode.
376     E_GOP_VSTRCH_LINEAR = 0,
377     /// duplicate mode.
378     E_GOP_VSTRCH_DUPLICATE = 1,
379     /// nearest mode.
380     E_GOP_VSTRCH_NEAREST = 2,
381     /// nearest mode.
382     E_GOP_VSTRCH_LINEAR_GAIN0 = 3,
383     E_GOP_VSTRCH_LINEAR_GAIN1 = 4,
384     /// Linear
385     E_GOP_VSTRCH_LINEAR_GAIN2 = 5,
386 } EN_GOP_STRETCH_VMODE;
387 
388 
389 /// Define GOP bandwidth strength.
390 typedef enum
391 {
392     /// bandwidth strength: strong
393     E_GOP_BW_STRONG,
394     /// bandwidth strength: middle
395     E_GOP_BW_MIDDLE,
396     /// bandwidth strength: weak
397     E_GOP_BW_WEAK,
398     /// bandwidth strength: error status
399     E_GOP_BW_UNKNOWN,
400 } EN_GOP_BW_STRENGTH;
401 
402 //PINPON
403 typedef enum
404 {
405     E_GOP_PINPON_G3D ,
406     E_GOP_PINPON_VE,
407     E_GOP_PINPON_DWIN,
408     E_GOP_PINPON_DIP,
409     E_GOP_PINPON_DWIN0,
410     E_GOP_PINPON_DWIN1,
411 } EN_GOP_PINPON_MODE;
412 
413 /// GOP MIXER timing type
414 typedef enum
415 {
416     GOP_NTSC ,
417     GOP_PAL,
418     GOP_CUSTOM,
419     GOP_CUSTOM_OP,
420     GOP_MIXER_TIMEING_MAX,
421 }GOP_MIXER_TIMINGTYPE;
422 
423 
424 /// Scroll direction
425 typedef enum
426 {
427     E_GOP_SCROLL_NONE = 0,
428     E_GOP_SCROLL_UP,      // bottom to top
429     E_GOP_SCROLL_DOWN,  // top to bottom
430     E_GOP_SCROLL_LEFT,  //right to left
431     E_GOP_SCROLL_RIGHT, //left to right
432     E_GOP_SCROLL_SW,      //Scroll by SW
433     E_GOP_SCROLL_KERNEL,      //Scroll by SW on kernel
434 } GOP_SCROLL_TYPE;
435 
436 
437 /// GOP VE timing type
438 typedef enum
439 {
440     GOP_VE_NTSC ,
441     GOP_VE_PAL,
442     GOP_VE_TIMEING_MAX,
443 }GOP_VE_TIMINGTYPE;
444 
445 
446 ///Define OC Bank Mode SEL
447 typedef enum
448 {
449     /// SEL 2 memory bank Mode
450     E_GOP_OC_SEL_2BankMode   = 1,
451     /// SEL 4 memory bank Mode
452     E_GOP_OC_SEL_4BankMode   = 2 ,
453 } EN_GOP_OC_SEL_TYPE;
454 
455 
456 //3D OSD mode type
457 typedef enum
458 {
459     E_GOP_3D_DISABLE ,
460     E_GOP_3D_SWITH_BY_FRAME,
461     E_GOP_3D_SIDE_BY_SYDE,
462     E_GOP_3D_TOP_BOTTOM,
463     E_GOP_3D_LINE_ALTERNATIVE,
464     E_GOP_3D_FRAMEPACKING,
465 }EN_GOP_3D_MODETYPE;
466 
467 typedef enum
468 {
469     GOP_DWIN_SEL0,  //add this for extend the dwin number in the future
470 }EN_GOP_DWIN_SEL;
471 //===================================================
472 //struct
473 //===================================================
474 
475 ///the GOP MIXER timing info
476 typedef struct
477 {
478     MS_U32 hstart;
479     MS_U32 hend;
480     MS_U32 vstart;
481     MS_U32 vend;
482     MS_U32 htotal;
483 }GOP_MixerTiming;
484 
485 ///the GOP MIXER2OP timing info
486 typedef struct
487 {
488     MS_U32 hstart;
489     MS_U32 hend;
490     MS_U32 vstart;
491     MS_U32 vend;
492     MS_U32 htotal;
493     MS_U32 hsyncdelay;
494 }GOP_Mixer2OPTiming;
495 
496 /// GWIN Information
497 typedef struct
498 {
499     /// gwin v-start (unit: line).
500     MS_U16 u16DispVPixelStart;
501     /// gwin v-end (unit: line).
502     MS_U16 u16DispVPixelEnd;
503     /// gwin h-start (unit: pix).
504     MS_U16 u16DispHPixelStart;
505     /// gwin h-end (unit: pix).
506     MS_U16 u16DispHPixelEnd;
507     /// gwin dram starting address (unit: Byte).
508     MS_PHY u32DRAMRBlkStart;
509     /// gwin's frame buffer width (unit: pix).
510     MS_U16 u16RBlkHPixSize;
511     /// gwin's frame buffer height (unit: pix).
512     MS_U16 u16RBlkVPixSize;
513     /// gwin's frame buffer pitch (unit: Byte).
514     MS_U16 u16RBlkHRblkSize;
515     /// gwin's frame buffer x0 (unit: pix).
516     MS_U16 u16WinX;
517     ///  gwin's frame buffer v0 (unit: pix).
518     MS_U16 u16WinY;
519     /// no use now.
520     MS_U32 u32scrX;
521     /// no use now.
522     MS_U32 u32scrY;
523     /// gwin's frame buffer color format.
524     EN_GOP_COLOR_TYPE clrType;
525 } GOP_GwinInfo;
526 
527 /// GOP Stretch Window Information
528 typedef struct
529 {
530     /// Destination Type
531     EN_GOP_DST_TYPE eDstType;
532     /// x start
533     MS_U16 x;
534     /// y start
535     MS_U16 y;
536     /// Stretch Window Width
537     MS_U16 width;
538     /// Stretch Windows Height
539     MS_U16 height;
540 } GOP_StretchInfo;
541 
542 /// DWIN property
543 typedef struct
544 {
545     /// dwin h-start (unit: pix).
546     MS_U16 u16x;
547     /// dwin h-end (unit: pix).
548     MS_U16 u16y;
549     /// dwin width (unit: pix).
550     MS_U16 u16w;
551     /// height (unit: line).
552     MS_U16 u16h;
553     /// dwin dram starting address (unit: Byte).
554     MS_PHY u32fbaddr0;
555     ///  dwin access address high bond (unit: Byte).
556     MS_PHY u32fbaddr1;
557     /// Number of pixels per horizontal line.
558     MS_U16 u16fbw;
559 } GOP_DwinProperty;
560 
561 
562 typedef union
563 {
564     MS_U8 u8DWinIntInfo;
565     struct
566     {
567         MS_U8 bDWinIntWADR:1;
568         MS_U8 bDWinIntPROG:1;
569         MS_U8 bDWinIntTF:1;
570         MS_U8 bDWinIntBF:1;
571         MS_U8 bDWinIntVS:1;
572         MS_U8 reserved:3;
573     }sDwinIntInfo;
574 }GOP_DWinIntInfo;
575 
576 /// Define the entry of palette.
577 typedef union
578 {
579     ///8-bits access.
580     struct
581     {
582         ///A.
583         MS_U8 u8A;
584         ///R.
585         MS_U8 u8R;
586         ///G.
587         MS_U8 u8G;
588         ///B.
589         MS_U8 u8B;
590     } RGB;
591     /// 32-bits direct access.
592     MS_U8 u8Data[4];
593 } GOP_PaletteEntry;
594 
595 /// Define GOP Gwin Relative Priority setting info
596 typedef struct
597 {
598     ///The valid number of below setting. Since Relative Priority, Must larger than 1 and smaller than 5
599     /// 2 means u81stGwin & u82stGwin valid, 3 means u81stGwin, u82stGwin, u83stGwin valid
600     /// 4 means all valid.
601     MS_U8 u8GwinNum;
602     MS_U8 u8GwinPri[4];
603 }GOP_GwinPri;
604 
605 /// GOP API info
606 typedef struct
607 {
608     /// Maximum support GOP number.
609     MS_U8 u8MaxGOPNum;
610     /// Maximum support GWIN number.
611     MS_U8 u8MaxGwinNum;
612     /// gop destination blending path. (save supported dst type in array)
613     EN_GOP_DST_TYPE SupportGOPDst[MAX_GOP_DST_SUPPORT];
614 } GOP_ApiInfo;
615 
616 /// GOP API run time status
617 typedef struct
618 {
619     /// gop0 destination blending path. (0xFF represent not support)
620     EN_GOP_DST_TYPE eGOPNumDstType[6];
621     /// gop stretch window h size status. (0xFF represent not support)
622     MS_U16 u16GopNumStrWinHSize[6];
623     /// gop stretch window v size status. (0xFF represent not support)
624     MS_U16 u16GopNumStrWinVSize[6];
625 
626     /// gop0 gwin status (Is gwin enable?).  (gop0 gwin ID: 0~3)
627     MS_BOOL Gop0GwinIsEnable[4];
628     /// gop1 gwin status (Is gwin enable?).  (gop1 gwin ID: 4~5)
629     MS_BOOL Gop1GwinIsEnable[4];
630     /// gop2 gwin status (Is gwin enable?)   (gop2 gwin ID: 6)
631     MS_BOOL Gop2GwinIsEnable;
632     /// gop3 gwin status (Is gwin enable?)   (gop2 gwin ID: 7)
633     MS_BOOL Gop3GwinIsEnable;
634     MS_BOOL Gop4GwinIsEnable;
635     MS_BOOL Gop5GwinIsEnable;
636 } GOP_ApiStatus;
637 
638 #ifdef __cplusplus
639 }
640 #endif
641 
642 #endif // _API_GOP_H_
643 
644