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