21#ifndef AVCODEC_AARCH64_H26X_DSP_H
22#define AVCODEC_AARCH64_H26X_DSP_H
28 ptrdiff_t stride_dst, ptrdiff_t stride_src,
29 const int16_t *sao_offset_val,
int sao_left_class,
32 ptrdiff_t stride_dst, ptrdiff_t stride_src,
33 const int16_t *sao_offset_val,
int sao_left_class,
35#define SAO_EDGE_FILTER_PROTO(codec, size, depth) \
36 void ff_##codec##_sao_edge_filter_##size##_##depth##_neon( \
37 uint8_t *dst, const uint8_t *src, ptrdiff_t stride_dst, \
38 const int16_t *sao_offset_val, int eo, int width, int height)
53#undef SAO_EDGE_FILTER_PROTO
55#define NEON8_FNPROTO_PARTIAL_6(fn, args, ext) \
56 void ff_hevc_put_hevc_##fn##_h4_8_neon##ext args; \
57 void ff_hevc_put_hevc_##fn##_h6_8_neon##ext args; \
58 void ff_hevc_put_hevc_##fn##_h8_8_neon##ext args; \
59 void ff_hevc_put_hevc_##fn##_h12_8_neon##ext args; \
60 void ff_hevc_put_hevc_##fn##_h16_8_neon##ext args; \
61 void ff_hevc_put_hevc_##fn##_h32_8_neon##ext args;
73#define NEON8_FNPROTO(fn, args, ext) \
74 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
75 void ff_hevc_put_hevc_##fn##6_8_neon##ext args; \
76 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
77 void ff_hevc_put_hevc_##fn##12_8_neon##ext args; \
78 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
79 void ff_hevc_put_hevc_##fn##24_8_neon##ext args; \
80 void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \
81 void ff_hevc_put_hevc_##fn##48_8_neon##ext args; \
82 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
84#define NEON8_FNPROTO_PARTIAL_4(fn, args, ext) \
85 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
86 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
87 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
88 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
90#define NEON8_FNPROTO_PARTIAL_5(fn, args, ext) \
91 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
92 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
93 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
94 void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \
95 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
107 int height,
int denom,
int wx0,
int wx1,
108 int ox, intptr_t
mx, intptr_t
my,
int width),);
136 int height,
int denom,
int wx,
int ox,
157 int height,
int denom,
int wx,
int ox,
162 int height,
int denom,
int wx,
int ox,
183 int height,
int denom,
int wx,
int ox,
188 int height,
int denom,
int wx,
int ox,
189 intptr_t
mx, intptr_t
my,
int width), _i8mm);
221 int height,
int denom,
int wx,
int ox,
226 int height,
int denom,
int wx,
int ox,
227 intptr_t
mx, intptr_t
my,
int width), _i8mm);
231 int height,
int denom,
int wx,
int ox,
236 int height,
int denom,
int wx,
int ox,
237 intptr_t
mx, intptr_t
my,
int width), _i8mm);
241 int height,
int denom,
int wx,
int ox,
246 int height,
int denom,
int wx,
int ox,
247 intptr_t
mx, intptr_t
my,
int width), _i8mm);
261#undef NEON8_FNPROTO_PARTIAL_4
262#define NEON8_FNPROTO_PARTIAL_4(fn, args, ext) \
263 void ff_vvc_put_##fn##_h4_8_neon##ext args; \
264 void ff_vvc_put_##fn##_h8_8_neon##ext args; \
265 void ff_vvc_put_##fn##_h16_8_neon##ext args; \
266 void ff_vvc_put_##fn##_h32_8_neon##ext args;
269 const int8_t *
hf,
const int8_t *
vf,
int width),)
275 const int8_t *
hf, const int8_t *
vf,
int width),)
277#undef NEON8_FNPROTO_PARTIAL_6
278#define NEON8_FNPROTO_PARTIAL_6(fn, args, ext) \
279 void ff_vvc_put_##fn##4_8_neon##ext args; \
280 void ff_vvc_put_##fn##8_8_neon##ext args; \
281 void ff_vvc_put_##fn##16_8_neon##ext args; \
282 void ff_vvc_put_##fn##32_8_neon##ext args; \
283 void ff_vvc_put_##fn##64_8_neon##ext args; \
284 void ff_vvc_put_##fn##128_8_neon##ext args
288 const int8_t *
hf,
const int8_t *
vf,
int width),);
292 const int8_t *
hf,
const int8_t *
vf,
int width),);
296 int height,
int denom,
int wx,
int ox,
297 const int8_t *
hf,
const int8_t *
vf,
int width),);
301 const int8_t *
hf,
const int8_t *
vf,
int width), _i8mm);
305 const int8_t *
hf,
const int8_t *
vf,
int width), _i8mm);
309 const int8_t *
hf,
const int8_t *
vf,
int width);
313 const int8_t *
hf,
const int8_t *
vf,
int width);
317 const int8_t *
hf,
const int8_t *
vf,
int width),);
321 const int8_t *
hf,
const int8_t *
vf,
int width), _i8mm);
325 const int8_t *
hf,
const int8_t *
vf,
int width),);
329 const int8_t *
hf,
const int8_t *
vf,
int width), _i8mm);
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t const uint8_t ptrdiff_t srcstride
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t my
void ff_vvc_put_qpel_v8_8_neon(int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, const int8_t *hf, const int8_t *vf, int width)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int const int8_t const int8_t * vf
#define NEON8_FNPROTO_PARTIAL_6(fn, args, ext)
uint8_t ptrdiff_t _dststride
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t mx
#define NEON8_FNPROTO_PARTIAL_4(fn, args, ext)
void ff_h26x_sao_band_filter_8x8_8_neon(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, const int16_t *sao_offset_val, int sao_left_class, int width, int height)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int const int8_t * hf
void ff_vvc_put_qpel_v4_8_neon(int16_t *dst, const uint8_t *_src, ptrdiff_t _srcstride, int height, const int8_t *hf, const int8_t *vf, int width)
uint8_t ptrdiff_t const uint8_t ptrdiff_t _srcstride
#define NEON8_FNPROTO(fn, args, ext)
void ff_h26x_sao_band_filter_16x16_8_neon(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src, const int16_t *sao_offset_val, int sao_left_class, int width, int height)
uint8_t ptrdiff_t const uint8_t * _src
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
#define SAO_EDGE_FILTER_PROTO(codec, size, depth)