xref: /aosp_15_r20/external/libmpeg2/common/icv.h (revision a97c2a1f0a796dc32bed80d3353c69c5fc07c750)
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_RISCV_GENERIC       = 0x3000,
81 }ICV_ARCH_T;
82 
83 /** SOC Enumeration                               */
84 typedef enum
85 {
86     ICV_SOC_NA              = 0x7FFFFFFF,
87     ICV_SOC_GENERIC         = 0x0,
88 }ICV_SOC_T;
89 
90 
91 /** Max Color components */
92 #define MAX_COMPONENTS 4
93 
94 /** Structure to define a picture */
95 typedef struct
96 {
97     /** Buffer address */
98     UWORD8 *apu1_buf[MAX_COMPONENTS];
99 
100     /** Width */
101     WORD32 ai4_wd[MAX_COMPONENTS];
102 
103     /** Height */
104     WORD32 ai4_ht[MAX_COMPONENTS];
105 
106     /** Stride */
107     WORD32 ai4_strd[MAX_COMPONENTS];
108 
109     /** Color Format */
110     ICV_COLOR_FMT_T e_color_fmt;
111 
112 }icv_pic_t;
113 
114 
115 #endif  /* __ICV_H__ */
116