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 41typedef 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 48typedef 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 55typedef 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 62typedef 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 69typedef void ihevc_pad_vert_ft( 70 UWORD8 *pu1_src, 71 WORD32 src_strd, 72 WORD32 ht, 73 WORD32 wd, 74 WORD32 pad_size); 75 76typedef 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 83typedef void ihevc_pad_top_ft(UWORD8 *pu1_src, 84 WORD32 src_strd, 85 WORD32 wd, 86 WORD32 pad_size); 87 88typedef void ihevc_hbd_pad_top_ft(UWORD16 *pu2_src, 89 WORD32 src_strd, 90 WORD32 wd, 91 WORD32 pad_size); 92 93typedef void ihevc_pad_bottom_ft(UWORD8 *pu1_src, 94 WORD32 src_strd, 95 WORD32 wd, 96 WORD32 pad_size); 97 98typedef void ihevc_hbd_pad_bottom_ft(UWORD16 *pu2_src, 99 WORD32 src_strd, 100 WORD32 wd, 101 WORD32 pad_size); 102 103typedef void ihevc_pad_left_luma_ft(UWORD8 *pu1_src, 104 WORD32 src_strd, 105 WORD32 ht, 106 WORD32 pad_size); 107 108typedef void ihevc_hbd_pad_left_luma_ft(UWORD16 *pu2_src, 109 WORD32 src_strd, 110 WORD32 ht, 111 WORD32 pad_size); 112 113typedef void ihevc_pad_left_chroma_ft(UWORD8 *pu1_src, 114 WORD32 src_strd, 115 WORD32 ht, 116 WORD32 pad_size); 117 118typedef void ihevc_hbd_pad_left_chroma_ft(UWORD16 *pu2_src, 119 WORD32 src_strd, 120 WORD32 ht, 121 WORD32 pad_size); 122 123typedef void ihevc_pad_right_luma_ft(UWORD8 *pu1_src, 124 WORD32 src_strd, 125 WORD32 ht, 126 WORD32 pad_size); 127 128typedef void ihevc_hbd_pad_right_luma_ft(UWORD16 *pu2_src, 129 WORD32 src_strd, 130 WORD32 ht, 131 WORD32 pad_size); 132 133typedef void ihevc_pad_right_chroma_ft(UWORD8 *pu1_src, 134 WORD32 src_strd, 135 WORD32 ht, 136 WORD32 pad_size); 137 138typedef 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 */ 144ihevc_pad_horz_luma_ft ihevc_pad_horz_luma; 145ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma; 146ihevc_pad_vert_ft ihevc_pad_vert; 147ihevc_pad_top_ft ihevc_pad_top; 148ihevc_pad_bottom_ft ihevc_pad_bottom; 149ihevc_pad_left_luma_ft ihevc_pad_left_luma; 150ihevc_pad_left_chroma_ft ihevc_pad_left_chroma; 151ihevc_pad_right_luma_ft ihevc_pad_right_luma; 152ihevc_pad_right_chroma_ft ihevc_pad_right_chroma; 153 154ihevc_hbd_pad_horz_luma_ft ihevc_hbd_pad_horz_luma; 155ihevc_hbd_pad_horz_chroma_ft ihevc_hbd_pad_horz_chroma; 156ihevc_hbd_pad_vert_ft ihevc_hbd_pad_vert; 157ihevc_hbd_pad_top_ft ihevc_hbd_pad_top; 158ihevc_hbd_pad_bottom_ft ihevc_hbd_pad_bottom; 159ihevc_hbd_pad_left_luma_ft ihevc_hbd_pad_left_luma; 160ihevc_hbd_pad_left_chroma_ft ihevc_hbd_pad_left_chroma; 161ihevc_hbd_pad_right_luma_ft ihevc_hbd_pad_right_luma; 162ihevc_hbd_pad_right_chroma_ft ihevc_hbd_pad_right_chroma; 163 164/* A9 Q function declarations */ 165ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_a9q; 166ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_a9q; 167ihevc_pad_vert_ft ihevc_pad_vert_a9q; 168ihevc_pad_top_ft ihevc_pad_top_a9q; 169ihevc_pad_bottom_ft ihevc_pad_bottom_a9q; 170ihevc_pad_left_luma_ft ihevc_pad_left_luma_a9q; 171ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_a9q; 172ihevc_pad_right_luma_ft ihevc_pad_right_luma_a9q; 173ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_a9q; 174 175/* A9 a function declarations */ 176ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_a9a; 177ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_a9a; 178ihevc_pad_vert_ft ihevc_pad_vert_a9a; 179ihevc_pad_top_ft ihevc_pad_top_a9a; 180ihevc_pad_bottom_ft ihevc_pad_bottom_a9a; 181ihevc_pad_left_luma_ft ihevc_pad_left_luma_a9a; 182ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_a9a; 183ihevc_pad_right_luma_ft ihevc_pad_right_luma_a9a; 184ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_a9a; 185 186/* NEONINTR function declarations */ 187ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_neonintr; 188ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_neonintr; 189ihevc_pad_vert_ft ihevc_pad_vert_neonintr; 190ihevc_pad_top_ft ihevc_pad_top_neonintr; 191ihevc_pad_bottom_ft ihevc_pad_bottom_neonintr; 192/*SSSE3 functions declarations */ 193ihevc_pad_left_luma_ft ihevc_pad_left_luma_ssse3; 194ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_ssse3; 195ihevc_pad_right_luma_ft ihevc_pad_right_luma_ssse3; 196ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_ssse3; 197 198/* armv8 function declarations */ 199ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_av8; 200ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_av8; 201ihevc_pad_vert_ft ihevc_pad_vert_av8; 202ihevc_pad_top_ft ihevc_pad_top_av8; 203ihevc_pad_bottom_ft ihevc_pad_bottom_av8; 204ihevc_pad_left_luma_ft ihevc_pad_left_luma_av8; 205ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_av8; 206ihevc_pad_right_luma_ft ihevc_pad_right_luma_av8; 207ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_av8; 208 209#endif /*_IHEVC_PADDING_H_*/ 210