1 /******************************************************************************
2  *
3  * Copyright (C) 2015 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************
18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19 */
20 /**
21 *******************************************************************************
22 * @file
23 *  icv.h
24 *
25 * @brief
26 *  This header files contains all the common definitions
27 *
28 * @author
29 *  Ittiam
30 *
31 * @par List of Functions:
32 *
33 * @remarks
34 *  None
35 *
36 *******************************************************************************
37 */
38 #ifndef __ICV_H__
39 #define __ICV_H__
40 
41 /** Color formats */
42 typedef enum
43 {
44     /** Dummy candidate */
45     ICV_COLOR_NA     = 0x7FFFFFFF,
46 
47     /** YUV 420 Planar */
48     ICV_YUV420P      = 0,
49 
50     /** YUV 420 Semi Planar UV*/
51     ICV_YUV420SP_UV,
52 
53     /** YUV 420 Semi Planar VU*/
54     ICV_YUV420SP_VU,
55 
56 }ICV_COLOR_FMT_T;
57 
58 /** Architecture Enumeration                               */
59 typedef enum
60 {
61     ICV_ARCH_NA            =   0x7FFFFFFF,
62     ICV_ARM_NONEON         =   0x0,
63     ICV_ARM_NEONINTR,
64     ICV_ARM_A9Q,
65     ICV_ARM_A9A,
66     ICV_ARM_A9,
67     ICV_ARM_A7,
68     ICV_ARM_A5,
69     ICV_ARM_A15,
70     ICV_ARMV8_GENERIC       = 0x100,
71     ICV_ARM_A53,
72     ICV_ARM_A57,
73     ICV_X86_GENERIC         = 0x1000,
74     ICV_X86_SSSE3,
75     ICV_X86_SSE42,
76     ICV_X86_AVX,
77     ICV_X86_AVX2,
78     ICV_MIPS_GENERIC        = 0x2000,
79     ICV_MIPS_32,
80 }ICV_ARCH_T;
81 
82 /** SOC Enumeration                               */
83 typedef enum
84 {
85     ICV_SOC_NA              = 0x7FFFFFFF,
86     ICV_SOC_GENERIC         = 0x0,
87 }ICV_SOC_T;
88 
89 
90 /** Max Color components */
91 #define MAX_COMPONENTS 4
92 
93 /** Structure to define a picture */
94 typedef struct
95 {
96     /** Buffer address */
97     UWORD8 *apu1_buf[MAX_COMPONENTS];
98 
99     /** Width */
100     WORD32 ai4_wd[MAX_COMPONENTS];
101 
102     /** Height */
103     WORD32 ai4_ht[MAX_COMPONENTS];
104 
105     /** Stride */
106     WORD32 ai4_strd[MAX_COMPONENTS];
107 
108     /** Color Format */
109     ICV_COLOR_FMT_T e_color_fmt;
110 
111 }icv_pic_t;
112 
113 
114 #endif  /* __ICV_H__ */
115