1 /****************************************************************************** 2 * 3 * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore 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 /** 19 ******************************************************************************* 20 * @file 21 * ihevc_padding.h 22 * 23 * @brief 24 * Declarations for the fucntions defined in ihevc_padding.c 25 * 26 * @author 27 * Srinivas T 28 * 29 * @remarks 30 * None 31 * 32 ******************************************************************************* 33 */ 34 #ifndef _IHEVC_PADDING_H_ 35 #define _IHEVC_PADDING_H_ 36 37 /*****************************************************************************/ 38 /* Function Declarations */ 39 /*****************************************************************************/ 40 41 typedef void ihevc_pad_horz_luma_ft( 42 UWORD8 *pu1_src, 43 WORD32 src_strd, 44 WORD32 ht, 45 WORD32 wd, 46 WORD32 pad_size); 47 48 typedef void ihevc_hbd_pad_horz_luma_ft( 49 UWORD16 *pu2_src, 50 WORD32 src_strd, 51 WORD32 ht, 52 WORD32 wd, 53 WORD32 pad_size); 54 55 typedef void ihevc_pad_horz_chroma_ft( 56 UWORD8 *pu1_src, 57 WORD32 src_strd, 58 WORD32 ht, 59 WORD32 wd, 60 WORD32 pad_size); 61 62 typedef void ihevc_hbd_pad_horz_chroma_ft( 63 UWORD16 *pu2_src, 64 WORD32 src_strd, 65 WORD32 ht, 66 WORD32 wd, 67 WORD32 pad_size); 68 69 typedef void ihevc_pad_vert_ft( 70 UWORD8 *pu1_src, 71 WORD32 src_strd, 72 WORD32 ht, 73 WORD32 wd, 74 WORD32 pad_size); 75 76 typedef void ihevc_hbd_pad_vert_ft( 77 UWORD16 *pu2_src, 78 WORD32 src_strd, 79 WORD32 ht, 80 WORD32 wd, 81 WORD32 pad_size); 82 83 typedef void ihevc_pad_top_ft(UWORD8 *pu1_src, 84 WORD32 src_strd, 85 WORD32 wd, 86 WORD32 pad_size); 87 88 typedef void ihevc_hbd_pad_top_ft(UWORD16 *pu2_src, 89 WORD32 src_strd, 90 WORD32 wd, 91 WORD32 pad_size); 92 93 typedef void ihevc_pad_bottom_ft(UWORD8 *pu1_src, 94 WORD32 src_strd, 95 WORD32 wd, 96 WORD32 pad_size); 97 98 typedef void ihevc_hbd_pad_bottom_ft(UWORD16 *pu2_src, 99 WORD32 src_strd, 100 WORD32 wd, 101 WORD32 pad_size); 102 103 typedef void ihevc_pad_left_luma_ft(UWORD8 *pu1_src, 104 WORD32 src_strd, 105 WORD32 ht, 106 WORD32 pad_size); 107 108 typedef void ihevc_hbd_pad_left_luma_ft(UWORD16 *pu2_src, 109 WORD32 src_strd, 110 WORD32 ht, 111 WORD32 pad_size); 112 113 typedef void ihevc_pad_left_chroma_ft(UWORD8 *pu1_src, 114 WORD32 src_strd, 115 WORD32 ht, 116 WORD32 pad_size); 117 118 typedef void ihevc_hbd_pad_left_chroma_ft(UWORD16 *pu2_src, 119 WORD32 src_strd, 120 WORD32 ht, 121 WORD32 pad_size); 122 123 typedef void ihevc_pad_right_luma_ft(UWORD8 *pu1_src, 124 WORD32 src_strd, 125 WORD32 ht, 126 WORD32 pad_size); 127 128 typedef void ihevc_hbd_pad_right_luma_ft(UWORD16 *pu2_src, 129 WORD32 src_strd, 130 WORD32 ht, 131 WORD32 pad_size); 132 133 typedef void ihevc_pad_right_chroma_ft(UWORD8 *pu1_src, 134 WORD32 src_strd, 135 WORD32 ht, 136 WORD32 pad_size); 137 138 typedef void ihevc_hbd_pad_right_chroma_ft(UWORD16 *pu2_src, 139 WORD32 src_strd, 140 WORD32 ht, 141 WORD32 pad_size); 142 143 /* C function declarations */ 144 ihevc_pad_horz_luma_ft ihevc_pad_horz_luma; 145 ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma; 146 ihevc_pad_vert_ft ihevc_pad_vert; 147 ihevc_pad_top_ft ihevc_pad_top; 148 ihevc_pad_bottom_ft ihevc_pad_bottom; 149 ihevc_pad_left_luma_ft ihevc_pad_left_luma; 150 ihevc_pad_left_chroma_ft ihevc_pad_left_chroma; 151 ihevc_pad_right_luma_ft ihevc_pad_right_luma; 152 ihevc_pad_right_chroma_ft ihevc_pad_right_chroma; 153 154 ihevc_hbd_pad_horz_luma_ft ihevc_hbd_pad_horz_luma; 155 ihevc_hbd_pad_horz_chroma_ft ihevc_hbd_pad_horz_chroma; 156 ihevc_hbd_pad_vert_ft ihevc_hbd_pad_vert; 157 ihevc_hbd_pad_top_ft ihevc_hbd_pad_top; 158 ihevc_hbd_pad_bottom_ft ihevc_hbd_pad_bottom; 159 ihevc_hbd_pad_left_luma_ft ihevc_hbd_pad_left_luma; 160 ihevc_hbd_pad_left_chroma_ft ihevc_hbd_pad_left_chroma; 161 ihevc_hbd_pad_right_luma_ft ihevc_hbd_pad_right_luma; 162 ihevc_hbd_pad_right_chroma_ft ihevc_hbd_pad_right_chroma; 163 164 /* A9 Q function declarations */ 165 ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_a9q; 166 ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_a9q; 167 ihevc_pad_vert_ft ihevc_pad_vert_a9q; 168 ihevc_pad_top_ft ihevc_pad_top_a9q; 169 ihevc_pad_bottom_ft ihevc_pad_bottom_a9q; 170 ihevc_pad_left_luma_ft ihevc_pad_left_luma_a9q; 171 ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_a9q; 172 ihevc_pad_right_luma_ft ihevc_pad_right_luma_a9q; 173 ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_a9q; 174 175 /* A9 a function declarations */ 176 ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_a9a; 177 ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_a9a; 178 ihevc_pad_vert_ft ihevc_pad_vert_a9a; 179 ihevc_pad_top_ft ihevc_pad_top_a9a; 180 ihevc_pad_bottom_ft ihevc_pad_bottom_a9a; 181 ihevc_pad_left_luma_ft ihevc_pad_left_luma_a9a; 182 ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_a9a; 183 ihevc_pad_right_luma_ft ihevc_pad_right_luma_a9a; 184 ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_a9a; 185 186 /* NEONINTR function declarations */ 187 ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_neonintr; 188 ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_neonintr; 189 ihevc_pad_vert_ft ihevc_pad_vert_neonintr; 190 ihevc_pad_top_ft ihevc_pad_top_neonintr; 191 ihevc_pad_bottom_ft ihevc_pad_bottom_neonintr; 192 /*SSSE3 functions declarations */ 193 ihevc_pad_left_luma_ft ihevc_pad_left_luma_ssse3; 194 ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_ssse3; 195 ihevc_pad_right_luma_ft ihevc_pad_right_luma_ssse3; 196 ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_ssse3; 197 198 /* armv8 function declarations */ 199 ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_av8; 200 ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_av8; 201 ihevc_pad_vert_ft ihevc_pad_vert_av8; 202 ihevc_pad_top_ft ihevc_pad_top_av8; 203 ihevc_pad_bottom_ft ihevc_pad_bottom_av8; 204 ihevc_pad_left_luma_ft ihevc_pad_left_luma_av8; 205 ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_av8; 206 ihevc_pad_right_luma_ft ihevc_pad_right_luma_av8; 207 ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_av8; 208 209 #endif /*_IHEVC_PADDING_H_*/ 210