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
155 NEON8_FNPROTO(pel_uni_pixels, (uint8_t *_dst, ptrdiff_t _dststride,
156 const uint8_t *_src, ptrdiff_t _srcstride,
157 int height, intptr_t mx, intptr_t my,
int width),);
159 NEON8_FNPROTO(pel_uni_w_pixels, (uint8_t *_dst, ptrdiff_t _dststride,
160 const uint8_t *_src, ptrdiff_t _srcstride,
161 int height,
int denom,
int wx,
int ox,
162 intptr_t mx, intptr_t my,
int width),);
164 NEON8_FNPROTO(epel_uni_v, (uint8_t *dst, ptrdiff_t dststride,
165 const uint8_t *
src, ptrdiff_t srcstride,
166 int height, intptr_t mx, intptr_t my,
int width),);
168 NEON8_FNPROTO(epel_uni_hv, (uint8_t *dst, ptrdiff_t _dststride,
169 const uint8_t *
src, ptrdiff_t srcstride,
170 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
172 NEON8_FNPROTO(epel_uni_w_v, (uint8_t *_dst, ptrdiff_t _dststride,
173 const uint8_t *_src, ptrdiff_t _srcstride,
174 int height,
int denom,
int wx,
int ox,
175 intptr_t mx, intptr_t my,
int width),);
178 const uint8_t *_src, ptrdiff_t _srcstride,
179 int height,
int denom,
int wx,
int ox,
180 intptr_t mx, intptr_t my,
int width),);
183 const uint8_t *_src, ptrdiff_t _srcstride,
184 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
186 NEON8_FNPROTO(epel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride,
187 const uint8_t *_src, ptrdiff_t _srcstride,
188 int height,
int denom,
int wx,
int ox,
189 intptr_t mx, intptr_t my,
int width), _i8mm);
192 const uint8_t *_src, ptrdiff_t _srcstride,
193 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
195 NEON8_FNPROTO(qpel_uni_v, (uint8_t *dst, ptrdiff_t dststride,
196 const uint8_t *
src, ptrdiff_t srcstride,
197 int height, intptr_t mx, intptr_t my,
int width),);
199 NEON8_FNPROTO(qpel_uni_hv, (uint8_t *dst, ptrdiff_t dststride,
200 const uint8_t *
src, ptrdiff_t srcstride,
201 int height, intptr_t mx, intptr_t my,
int width), _i8mm);
203 NEON8_FNPROTO(qpel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride,
204 const uint8_t *_src, ptrdiff_t _srcstride,
205 int height,
int denom,
int wx,
int ox,
206 intptr_t mx, intptr_t my,
int width), _i8mm);
208 NEON8_FNPROTO(epel_uni_w_hv, (uint8_t *_dst, ptrdiff_t _dststride,
209 const uint8_t *_src, ptrdiff_t _srcstride,
210 int height,
int denom,
int wx,
int ox,
211 intptr_t mx, intptr_t my,
int width), _i8mm);
214 const uint8_t *_src, ptrdiff_t _srcstride,
215 int height,
int denom,
int wx,
int ox,
216 intptr_t mx, intptr_t my,
int width), _i8mm);
218 #define NEON8_FNASSIGN(member, v, h, fn, ext) \
219 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
220 member[2][v][h] = ff_hevc_put_hevc_##fn##6_8_neon##ext; \
221 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
222 member[4][v][h] = ff_hevc_put_hevc_##fn##12_8_neon##ext; \
223 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
224 member[6][v][h] = ff_hevc_put_hevc_##fn##24_8_neon##ext; \
225 member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \
226 member[8][v][h] = ff_hevc_put_hevc_##fn##48_8_neon##ext; \
227 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
229 #define NEON8_FNASSIGN_PARTIAL_4(member, v, h, fn, ext) \
230 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
231 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
232 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
233 member[7][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \
234 member[8][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \
235 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
237 #define NEON8_FNASSIGN_PARTIAL_5(member, v, h, fn, ext) \
238 member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \
239 member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \
240 member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \
241 member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \
242 member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext;
265 c->sao_band_filter[0] =
266 c->sao_band_filter[1] =
267 c->sao_band_filter[2] =
268 c->sao_band_filter[3] =
271 c->sao_edge_filter[1] =
272 c->sao_edge_filter[2] =
273 c->sao_edge_filter[3] =
278 c->put_hevc_qpel[4][0][1] =
280 c->put_hevc_qpel[5][0][1] =
281 c->put_hevc_qpel[7][0][1] =
282 c->put_hevc_qpel[8][0][1] =
287 c->put_hevc_qpel_uni[4][0][1] =
289 c->put_hevc_qpel_uni[5][0][1] =
290 c->put_hevc_qpel_uni[7][0][1] =
291 c->put_hevc_qpel_uni[8][0][1] =
296 c->put_hevc_qpel_bi[4][0][1] =
298 c->put_hevc_qpel_bi[5][0][1] =
299 c->put_hevc_qpel_bi[7][0][1] =
300 c->put_hevc_qpel_bi[8][0][1] =