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 */
42typedef 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                               */
59typedef 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                               */
83typedef 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 */
94typedef 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