blob: 349ac12f4089d6961f846999f86b1a8f15d0b76d [file] [log] [blame]
Harish Mahendrakar0d8951c2014-05-16 10:31:13 -07001/******************************************************************************
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_*/