Home | History | Annotate | Download | only in common
      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