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);
83 ptrdiff_t stride_dst, ptrdiff_t stride_src,
84 const int16_t *sao_offset_val,
int sao_left_class,
87 const int16_t *sao_offset_val,
int eo,
int width,
int height);
89 const int16_t *sao_offset_val,
int eo,
int width,
int height);
91 intptr_t mx, intptr_t my,
int width);
93 intptr_t mx, intptr_t my,
int width);
95 intptr_t mx, intptr_t my,
int width);
97 intptr_t mx, intptr_t my,
int width);
99 intptr_t mx, intptr_t my,
int width);
101 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t my,
104 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t my,
107 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t my,
110 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t
113 ptrdiff_t _srcstride,
int height, intptr_t mx, intptr_t
116 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
117 mx, intptr_t my,
int width);
119 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
120 mx, intptr_t my,
int width);
122 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
123 mx, intptr_t my,
int width);
125 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
126 mx, intptr_t my,
int width);
128 ptrdiff_t _srcstride,
const int16_t *
src2,
int height, intptr_t
129 mx, intptr_t my,
int width);
131 #define NEON8_FNPROTO(fn, args, ext) \
132 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
133 void ff_hevc_put_hevc_##fn##6_8_neon##ext args; \
134 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
135 void ff_hevc_put_hevc_##fn##12_8_neon##ext args; \
136 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
137 void ff_hevc_put_hevc_##fn##24_8_neon##ext args; \
138 void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \
139 void ff_hevc_put_hevc_##fn##48_8_neon##ext args; \
140 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
142 #define NEON8_FNPROTO_PARTIAL_4(fn, args, ext) \
143 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
144 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
145 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
146 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
148 #define NEON8_FNPROTO_PARTIAL_5(fn, args, ext) \
149 void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \
150 void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \
151 void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \
152 void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \
153 void ff_hevc_put_hevc_##fn##64_8_neon##ext args
156 const uint8_t *
src, ptrdiff_t srcstride,
157 int height, intptr_t mx, intptr_t my,
int width),);
159 NEON8_FNPROTO(pel_bi_pixels, (uint8_t *dst, ptrdiff_t dststride,
160 const uint8_t *_src, ptrdiff_t _srcstride,
const int16_t *
src2,
161 int height, intptr_t mx, intptr_t my,
int width),);
164 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
165 int height, intptr_t mx, intptr_t my,
int width),);
168 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
169 int height, intptr_t mx, intptr_t my,
int width),);
171 NEON8_FNPROTO(epel_bi_hv, (uint8_t *dst, ptrdiff_t dststride,
172 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
173 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
176 const uint8_t *
src, ptrdiff_t srcstride,
177 int height, intptr_t mx, intptr_t my,
int width),);
179 NEON8_FNPROTO(pel_uni_pixels, (uint8_t *_dst, ptrdiff_t _dststride,
180 const uint8_t *_src, ptrdiff_t _srcstride,
181 int height, intptr_t mx, intptr_t my,
int width),);
183 NEON8_FNPROTO(pel_uni_w_pixels, (uint8_t *_dst, ptrdiff_t _dststride,
184 const uint8_t *_src, ptrdiff_t _srcstride,
185 int height,
int denom,
int wx,
int ox,
186 intptr_t mx, intptr_t my,
int width),);
188 NEON8_FNPROTO(epel_uni_v, (uint8_t *dst, ptrdiff_t dststride,
189 const uint8_t *
src, ptrdiff_t srcstride,
190 int height, intptr_t mx, intptr_t my,
int width),);
192 NEON8_FNPROTO(epel_uni_hv, (uint8_t *dst, ptrdiff_t _dststride,
193 const uint8_t *
src, ptrdiff_t srcstride,
194 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
196 NEON8_FNPROTO(epel_uni_w_v, (uint8_t *_dst, ptrdiff_t _dststride,
197 const uint8_t *_src, ptrdiff_t _srcstride,
198 int height,
int denom,
int wx,
int ox,
199 intptr_t mx, intptr_t my,
int width),);
202 const uint8_t *_src, ptrdiff_t _srcstride,
203 int height,
int denom,
int wx,
int ox,
204 intptr_t mx, intptr_t my,
int width),);
207 const uint8_t *_src, ptrdiff_t _srcstride,
208 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
211 const uint8_t *
src, ptrdiff_t srcstride,
212 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
214 NEON8_FNPROTO(epel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride,
215 const uint8_t *_src, ptrdiff_t _srcstride,
216 int height,
int denom,
int wx,
int ox,
217 intptr_t mx, intptr_t my,
int width), _i8mm);
220 const uint8_t *_src, ptrdiff_t _srcstride,
221 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
224 const uint8_t *
src, ptrdiff_t srcstride,
225 int height, intptr_t mx, intptr_t my,
int width),);
228 const uint8_t *
src, ptrdiff_t srcstride,
229 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
231 NEON8_FNPROTO(qpel_uni_v, (uint8_t *dst, ptrdiff_t dststride,
232 const uint8_t *
src, ptrdiff_t srcstride,
233 int height, intptr_t mx, intptr_t my,
int width),);
235 NEON8_FNPROTO(qpel_uni_hv, (uint8_t *dst, ptrdiff_t dststride,
236 const uint8_t *
src, ptrdiff_t srcstride,
237 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
239 NEON8_FNPROTO(qpel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride,
240 const uint8_t *_src, ptrdiff_t _srcstride,
241 int height,
int denom,
int wx,
int ox,
242 intptr_t mx, intptr_t my,
int width), _i8mm);
244 NEON8_FNPROTO(epel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride,
245 const uint8_t *_src, ptrdiff_t _srcstride,
246 int height,
int denom,
int wx,
int ox,
247 intptr_t mx, intptr_t my,
int width), _i8mm);
250 const uint8_t *_src, ptrdiff_t _srcstride,
251 int height,
int denom,
int wx,
int ox,
252 intptr_t mx, intptr_t my,
int width), _i8mm);
255 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
256 int height, intptr_t mx, intptr_t my,
int width),);
258 NEON8_FNPROTO(qpel_bi_hv, (uint8_t *dst, ptrdiff_t dststride,
259 const uint8_t *
src, ptrdiff_t srcstride,
const int16_t *
src2,
260 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
262 #define NEON8_FNASSIGN(member, v, h, fn, ext) \
263 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
264 member[2][v][h] = ff_hevc_put_hevc_##fn##6_8_neon##ext; \
265 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
266 member[4][v][h] = ff_hevc_put_hevc_##fn##12_8_neon##ext; \
267 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
268 member[6][v][h] = ff_hevc_put_hevc_##fn##24_8_neon##ext; \
269 member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \
270 member[8][v][h] = ff_hevc_put_hevc_##fn##48_8_neon##ext; \
271 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
273 #define NEON8_FNASSIGN_PARTIAL_4(member, v, h, fn, ext) \
274 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
275 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
276 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
277 member[7][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \
278 member[8][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \
279 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
281 #define NEON8_FNASSIGN_PARTIAL_5(member, v, h, fn, ext) \
282 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
283 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
284 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
285 member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \
286 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
309 c->sao_band_filter[0] =
310 c->sao_band_filter[1] =
311 c->sao_band_filter[2] =
312 c->sao_band_filter[3] =
315 c->sao_edge_filter[1] =
316 c->sao_edge_filter[2] =
317 c->sao_edge_filter[3] =
322 c->put_hevc_qpel[4][0][1] =
324 c->put_hevc_qpel[5][0][1] =
325 c->put_hevc_qpel[7][0][1] =
326 c->put_hevc_qpel[8][0][1] =
331 c->put_hevc_qpel_uni[4][0][1] =
333 c->put_hevc_qpel_uni[5][0][1] =
334 c->put_hevc_qpel_uni[7][0][1] =
335 c->put_hevc_qpel_uni[8][0][1] =
340 c->put_hevc_qpel_bi[4][0][1] =
342 c->put_hevc_qpel_bi[5][0][1] =
343 c->put_hevc_qpel_bi[7][0][1] =
344 c->put_hevc_qpel_bi[8][0][1] =