xref: /utopia/UTPA2-700.0.x/modules/vdec_v3/hal/maserati/vpu_v3/FieldDetection.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi #ifndef _FIELDDET_H_
2*53ee8cc1Swenshuai.xi #define _FIELDDET_H_
3*53ee8cc1Swenshuai.xi #ifdef __cplusplus
4*53ee8cc1Swenshuai.xi extern "C" {
5*53ee8cc1Swenshuai.xi #endif
6*53ee8cc1Swenshuai.xi #ifndef MSOS_TYPE_LINUX_KERNEL
7*53ee8cc1Swenshuai.xi #include <stdlib.h>
8*53ee8cc1Swenshuai.xi #include <stdio.h>
9*53ee8cc1Swenshuai.xi #include <string.h>
10*53ee8cc1Swenshuai.xi #include <limits.h>
11*53ee8cc1Swenshuai.xi #else
12*53ee8cc1Swenshuai.xi #include <linux/string.h>
13*53ee8cc1Swenshuai.xi #endif
14*53ee8cc1Swenshuai.xi //#define SIMULATE_MEMCPY
15*53ee8cc1Swenshuai.xi #include "MsCommon.h"
16*53ee8cc1Swenshuai.xi 
17*53ee8cc1Swenshuai.xi //typedef unsigned short MS_U16;
18*53ee8cc1Swenshuai.xi //typedef unsigned int* MS_PHY;
19*53ee8cc1Swenshuai.xi //typedef unsigned int  MS_U32;
20*53ee8cc1Swenshuai.xi //typedef unsigned int  MS_BOOL;
21*53ee8cc1Swenshuai.xi 
22*53ee8cc1Swenshuai.xi typedef struct stFrameInfo
23*53ee8cc1Swenshuai.xi {
24*53ee8cc1Swenshuai.xi   MS_U16 u16Width;
25*53ee8cc1Swenshuai.xi   MS_U16 u16Height;
26*53ee8cc1Swenshuai.xi   MS_PHY phyBuffAddr;
27*53ee8cc1Swenshuai.xi   MS_U32 u32BuffSize;
28*53ee8cc1Swenshuai.xi   MS_BOOL bFieldOrderSet;     // 0-> bottom first, 1-> top first
29*53ee8cc1Swenshuai.xi } FrameInfo;
30*53ee8cc1Swenshuai.xi 
31*53ee8cc1Swenshuai.xi typedef struct stFodInfo
32*53ee8cc1Swenshuai.xi {
33*53ee8cc1Swenshuai.xi   int width;
34*53ee8cc1Swenshuai.xi   int height;
35*53ee8cc1Swenshuai.xi   int pitch;
36*53ee8cc1Swenshuai.xi   int tile_width;
37*53ee8cc1Swenshuai.xi   int tile_height;
38*53ee8cc1Swenshuai.xi } FODInfo;
39*53ee8cc1Swenshuai.xi 
40*53ee8cc1Swenshuai.xi typedef enum EIsFieldOrder
41*53ee8cc1Swenshuai.xi {
42*53ee8cc1Swenshuai.xi   E_VDEC_IFOI_TRUE,
43*53ee8cc1Swenshuai.xi   E_VDEC_IFOI_FALSE,
44*53ee8cc1Swenshuai.xi   E_VDEC_IFOI_Invalid,
45*53ee8cc1Swenshuai.xi } eIsFieldOrderInverse;
46*53ee8cc1Swenshuai.xi 
47*53ee8cc1Swenshuai.xi #if (!defined(MSOS_TYPE_LINUX_KERNEL)&& !defined(ANDROID))
48*53ee8cc1Swenshuai.xi eIsFieldOrderInverse IsFieldOrderInverse (FrameInfo *stFieldInfo);
49*53ee8cc1Swenshuai.xi int  InitFieldDetection(FODInfo *fod);
50*53ee8cc1Swenshuai.xi void FInitFieldDetection(void);
51*53ee8cc1Swenshuai.xi void InitMemoryFromVPU(MS_PHY phyAddr1, MS_PHY phyAddr2, MS_PHY phyAddr3);
52*53ee8cc1Swenshuai.xi #endif
53*53ee8cc1Swenshuai.xi 
54*53ee8cc1Swenshuai.xi #ifdef __cplusplus
55*53ee8cc1Swenshuai.xi }
56*53ee8cc1Swenshuai.xi #endif
57*53ee8cc1Swenshuai.xi #endif