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