30 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
32 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
34 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
36 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
38 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
40 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
42 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
44 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
46 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
48 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
50 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
52 const int *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q);
95 ptrdiff_t stride_dst, ptrdiff_t stride_src,
96 const int16_t *sao_offset_val,
int sao_left_class,
99 const int16_t *sao_offset_val,
int eo,
int width,
int height);
101 const int16_t *sao_offset_val,
int eo,
int width,
int height);
103 intptr_t mx, intptr_t my,
int width);
105 intptr_t mx, intptr_t my,
int width);
107 intptr_t mx, intptr_t my,
int width);
109 intptr_t mx, intptr_t my,
int width);
111 intptr_t mx, intptr_t my,
int width);
113 intptr_t mx, intptr_t my,
int width);
115 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t my,
118 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t my,
121 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t my,
124 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t
127 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t
130 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t
133 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
134 mx, intptr_t my,
int width);
136 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
137 mx, intptr_t my,
int width);
139 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
140 mx, intptr_t my,
int width);
142 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
143 mx, intptr_t my,
int width);
145 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
146 mx, intptr_t my,
int width);
148 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
149 mx, intptr_t my,
int width);
151 #define NEON8_FNPROTO(fn, args, ext) \
152 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
153 void ff_hevc_put_hevc_##fn##6_8_neon##ext args; \
154 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
155 void ff_hevc_put_hevc_##fn##12_8_neon##ext args; \
156 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
157 void ff_hevc_put_hevc_##fn##24_8_neon##ext args; \
158 void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \
159 void ff_hevc_put_hevc_##fn##48_8_neon##ext args; \
160 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
162 #define NEON8_FNPROTO_PARTIAL_4(fn, args, ext) \
163 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
164 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
165 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
166 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
168 #define NEON8_FNPROTO_PARTIAL_5(fn, args, ext) \
169 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
170 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
171 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
172 void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \
173 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
176 const uint8_t *
src, ptrdiff_t srcstride,
177 int height, intptr_t mx, intptr_t my,
int width),);
179 NEON8_FNPROTO(pel_bi_pixels, (uint8_t *dst, ptrdiff_t dststride,
180 const uint8_t *_src, ptrdiff_t _srcstride,
const int16_t *
src2,
181 int height, intptr_t mx, intptr_t my,
int width),);
184 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
185 int height, intptr_t mx, intptr_t my,
int width),);
188 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
189 int height, intptr_t mx, intptr_t my,
int width),);
191 NEON8_FNPROTO(epel_bi_hv, (uint8_t *dst, ptrdiff_t dststride,
192 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
193 int height, intptr_t mx, intptr_t my,
int width),);
195 NEON8_FNPROTO(epel_bi_hv, (uint8_t *dst, ptrdiff_t dststride,
196 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
197 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
200 const uint8_t *
src, ptrdiff_t srcstride,
201 int height, intptr_t mx, intptr_t my,
int width),);
203 NEON8_FNPROTO(pel_uni_pixels, (uint8_t *_dst, ptrdiff_t _dststride,
204 const uint8_t *_src, ptrdiff_t _srcstride,
205 int height, intptr_t mx, intptr_t my,
int width),);
207 NEON8_FNPROTO(pel_uni_w_pixels, (uint8_t *_dst, ptrdiff_t _dststride,
208 const uint8_t *_src, ptrdiff_t _srcstride,
209 int height,
int denom,
int wx,
int ox,
210 intptr_t mx, intptr_t my,
int width),);
212 NEON8_FNPROTO(epel_uni_v, (uint8_t *dst, ptrdiff_t dststride,
213 const uint8_t *
src, ptrdiff_t srcstride,
214 int height, intptr_t mx, intptr_t my,
int width),);
216 NEON8_FNPROTO(epel_uni_hv, (uint8_t *dst, ptrdiff_t _dststride,
217 const uint8_t *
src, ptrdiff_t srcstride,
218 int height, intptr_t mx, intptr_t my,
int width),);
220 NEON8_FNPROTO(epel_uni_hv, (uint8_t *dst, ptrdiff_t _dststride,
221 const uint8_t *
src, ptrdiff_t srcstride,
222 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
224 NEON8_FNPROTO(epel_uni_w_v, (uint8_t *_dst, ptrdiff_t _dststride,
225 const uint8_t *_src, ptrdiff_t _srcstride,
226 int height,
int denom,
int wx,
int ox,
227 intptr_t mx, intptr_t my,
int width),);
230 const uint8_t *_src, ptrdiff_t _srcstride,
231 int height,
int denom,
int wx,
int ox,
232 intptr_t mx, intptr_t my,
int width),);
235 const uint8_t *_src, ptrdiff_t _srcstride,
236 int height, intptr_t mx, intptr_t my,
int width),);
239 const uint8_t *
src, ptrdiff_t srcstride,
240 int height, intptr_t mx, intptr_t my,
int width), );
243 const uint8_t *_src, ptrdiff_t _srcstride,
244 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
247 const uint8_t *
src, ptrdiff_t srcstride,
248 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
250 NEON8_FNPROTO(epel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride,
251 const uint8_t *_src, ptrdiff_t _srcstride,
252 int height,
int denom,
int wx,
int ox,
253 intptr_t mx, intptr_t my,
int width),);
255 NEON8_FNPROTO(epel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride,
256 const uint8_t *_src, ptrdiff_t _srcstride,
257 int height,
int denom,
int wx,
int ox,
258 intptr_t mx, intptr_t my,
int width), _i8mm);
261 const uint8_t *_src, ptrdiff_t _srcstride,
262 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
265 const uint8_t *
src, ptrdiff_t srcstride,
266 int height, intptr_t mx, intptr_t my,
int width),);
269 const uint8_t *
src, ptrdiff_t srcstride,
270 int height, intptr_t mx, intptr_t my,
int width),);
273 const uint8_t *
src, ptrdiff_t srcstride,
274 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
276 NEON8_FNPROTO(qpel_uni_v, (uint8_t *dst, ptrdiff_t dststride,
277 const uint8_t *
src, ptrdiff_t srcstride,
278 int height, intptr_t mx, intptr_t my,
int width),);
280 NEON8_FNPROTO(qpel_uni_hv, (uint8_t *dst, ptrdiff_t dststride,
281 const uint8_t *
src, ptrdiff_t srcstride,
282 int height, intptr_t mx, intptr_t my,
int width),);
284 NEON8_FNPROTO(qpel_uni_hv, (uint8_t *dst, ptrdiff_t dststride,
285 const uint8_t *
src, ptrdiff_t srcstride,
286 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
288 NEON8_FNPROTO(qpel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride,
289 const uint8_t *_src, ptrdiff_t _srcstride,
290 int height,
int denom,
int wx,
int ox,
291 intptr_t mx, intptr_t my,
int width),);
293 NEON8_FNPROTO(qpel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride,
294 const uint8_t *_src, ptrdiff_t _srcstride,
295 int height,
int denom,
int wx,
int ox,
296 intptr_t mx, intptr_t my,
int width), _i8mm);
298 NEON8_FNPROTO(epel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride,
299 const uint8_t *_src, ptrdiff_t _srcstride,
300 int height,
int denom,
int wx,
int ox,
301 intptr_t mx, intptr_t my,
int width),);
303 NEON8_FNPROTO(epel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride,
304 const uint8_t *_src, ptrdiff_t _srcstride,
305 int height,
int denom,
int wx,
int ox,
306 intptr_t mx, intptr_t my,
int width), _i8mm);
309 const uint8_t *_src, ptrdiff_t _srcstride,
310 int height,
int denom,
int wx,
int ox,
311 intptr_t mx, intptr_t my,
int width),);
314 const uint8_t *_src, ptrdiff_t _srcstride,
315 int height,
int denom,
int wx,
int ox,
316 intptr_t mx, intptr_t my,
int width), _i8mm);
319 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
320 int height, intptr_t mx, intptr_t my,
int width),);
322 NEON8_FNPROTO(qpel_bi_hv, (uint8_t *dst, ptrdiff_t dststride,
323 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
324 int height, intptr_t mx, intptr_t my,
int width),);
326 NEON8_FNPROTO(qpel_bi_hv, (uint8_t *dst, ptrdiff_t dststride,
327 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
328 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
330 #define NEON8_FNASSIGN(member, v, h, fn, ext) \
331 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
332 member[2][v][h] = ff_hevc_put_hevc_##fn##6_8_neon##ext; \
333 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
334 member[4][v][h] = ff_hevc_put_hevc_##fn##12_8_neon##ext; \
335 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
336 member[6][v][h] = ff_hevc_put_hevc_##fn##24_8_neon##ext; \
337 member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \
338 member[8][v][h] = ff_hevc_put_hevc_##fn##48_8_neon##ext; \
339 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
341 #define NEON8_FNASSIGN_SHARED_32(member, v, h, fn, ext) \
342 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
343 member[2][v][h] = ff_hevc_put_hevc_##fn##6_8_neon##ext; \
344 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
345 member[4][v][h] = ff_hevc_put_hevc_##fn##12_8_neon##ext; \
346 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
347 member[6][v][h] = ff_hevc_put_hevc_##fn##24_8_neon##ext; \
350 member[9][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext;
352 #define NEON8_FNASSIGN_PARTIAL_4(member, v, h, fn, ext) \
353 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
354 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
355 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
356 member[7][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \
357 member[8][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \
358 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
360 #define NEON8_FNASSIGN_PARTIAL_5(member, v, h, fn, ext) \
361 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
362 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
363 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
364 member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \
365 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
390 c->sao_band_filter[0] =
391 c->sao_band_filter[1] =
392 c->sao_band_filter[2] =
393 c->sao_band_filter[3] =
396 c->sao_edge_filter[1] =
397 c->sao_edge_filter[2] =
398 c->sao_edge_filter[3] =
403 c->put_hevc_qpel[4][0][1] =
406 c->put_hevc_qpel[7][0][1] =
407 c->put_hevc_qpel[8][0][1] =
412 c->put_hevc_qpel_uni[4][0][1] =
415 c->put_hevc_qpel_uni[7][0][1] =
416 c->put_hevc_qpel_uni[8][0][1] =
421 c->put_hevc_qpel_bi[4][0][1] =
424 c->put_hevc_qpel_bi[7][0][1] =
425 c->put_hevc_qpel_bi[8][0][1] =