1 // This file is generated. Do not edit.
2 #ifndef VP8_RTCD_H_
3 #define VP8_RTCD_H_
4 
5 #ifdef RTCD_C
6 #define RTCD_EXTERN
7 #else
8 #define RTCD_EXTERN extern
9 #endif
10 
11 /*
12  * VP8
13  */
14 
15 struct blockd;
16 struct macroblockd;
17 struct loop_filter_info;
18 
19 /* Encoder forward decls */
20 struct block;
21 struct macroblock;
22 struct variance_vtable;
23 union int_mv;
24 struct yv12_buffer_config;
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 void vp8_bilinear_predict16x16_c(unsigned char* src_ptr,
31                                  int src_pixels_per_line,
32                                  int xoffset,
33                                  int yoffset,
34                                  unsigned char* dst_ptr,
35                                  int dst_pitch);
36 void vp8_bilinear_predict16x16_neon(unsigned char* src_ptr,
37                                     int src_pixels_per_line,
38                                     int xoffset,
39                                     int yoffset,
40                                     unsigned char* dst_ptr,
41                                     int dst_pitch);
42 #define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_neon
43 
44 void vp8_bilinear_predict4x4_c(unsigned char* src_ptr,
45                                int src_pixels_per_line,
46                                int xoffset,
47                                int yoffset,
48                                unsigned char* dst_ptr,
49                                int dst_pitch);
50 void vp8_bilinear_predict4x4_neon(unsigned char* src_ptr,
51                                   int src_pixels_per_line,
52                                   int xoffset,
53                                   int yoffset,
54                                   unsigned char* dst_ptr,
55                                   int dst_pitch);
56 #define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_neon
57 
58 void vp8_bilinear_predict8x4_c(unsigned char* src_ptr,
59                                int src_pixels_per_line,
60                                int xoffset,
61                                int yoffset,
62                                unsigned char* dst_ptr,
63                                int dst_pitch);
64 void vp8_bilinear_predict8x4_neon(unsigned char* src_ptr,
65                                   int src_pixels_per_line,
66                                   int xoffset,
67                                   int yoffset,
68                                   unsigned char* dst_ptr,
69                                   int dst_pitch);
70 #define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_neon
71 
72 void vp8_bilinear_predict8x8_c(unsigned char* src_ptr,
73                                int src_pixels_per_line,
74                                int xoffset,
75                                int yoffset,
76                                unsigned char* dst_ptr,
77                                int dst_pitch);
78 void vp8_bilinear_predict8x8_neon(unsigned char* src_ptr,
79                                   int src_pixels_per_line,
80                                   int xoffset,
81                                   int yoffset,
82                                   unsigned char* dst_ptr,
83                                   int dst_pitch);
84 #define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_neon
85 
86 void vp8_blend_b_c(unsigned char* y,
87                    unsigned char* u,
88                    unsigned char* v,
89                    int y_1,
90                    int u_1,
91                    int v_1,
92                    int alpha,
93                    int stride);
94 #define vp8_blend_b vp8_blend_b_c
95 
96 void vp8_blend_mb_inner_c(unsigned char* y,
97                           unsigned char* u,
98                           unsigned char* v,
99                           int y_1,
100                           int u_1,
101                           int v_1,
102                           int alpha,
103                           int stride);
104 #define vp8_blend_mb_inner vp8_blend_mb_inner_c
105 
106 void vp8_blend_mb_outer_c(unsigned char* y,
107                           unsigned char* u,
108                           unsigned char* v,
109                           int y_1,
110                           int u_1,
111                           int v_1,
112                           int alpha,
113                           int stride);
114 #define vp8_blend_mb_outer vp8_blend_mb_outer_c
115 
116 int vp8_block_error_c(short* coeff, short* dqcoeff);
117 #define vp8_block_error vp8_block_error_c
118 
119 void vp8_copy32xn_c(const unsigned char* src_ptr,
120                     int src_stride,
121                     unsigned char* dst_ptr,
122                     int dst_stride,
123                     int height);
124 #define vp8_copy32xn vp8_copy32xn_c
125 
126 void vp8_copy_mem16x16_c(unsigned char* src,
127                          int src_stride,
128                          unsigned char* dst,
129                          int dst_stride);
130 void vp8_copy_mem16x16_neon(unsigned char* src,
131                             int src_stride,
132                             unsigned char* dst,
133                             int dst_stride);
134 #define vp8_copy_mem16x16 vp8_copy_mem16x16_neon
135 
136 void vp8_copy_mem8x4_c(unsigned char* src,
137                        int src_stride,
138                        unsigned char* dst,
139                        int dst_stride);
140 void vp8_copy_mem8x4_neon(unsigned char* src,
141                           int src_stride,
142                           unsigned char* dst,
143                           int dst_stride);
144 #define vp8_copy_mem8x4 vp8_copy_mem8x4_neon
145 
146 void vp8_copy_mem8x8_c(unsigned char* src,
147                        int src_stride,
148                        unsigned char* dst,
149                        int dst_stride);
150 void vp8_copy_mem8x8_neon(unsigned char* src,
151                           int src_stride,
152                           unsigned char* dst,
153                           int dst_stride);
154 #define vp8_copy_mem8x8 vp8_copy_mem8x8_neon
155 
156 void vp8_dc_only_idct_add_c(short input_dc,
157                             unsigned char* pred_ptr,
158                             int pred_stride,
159                             unsigned char* dst_ptr,
160                             int dst_stride);
161 void vp8_dc_only_idct_add_neon(short input_dc,
162                                unsigned char* pred_ptr,
163                                int pred_stride,
164                                unsigned char* dst_ptr,
165                                int dst_stride);
166 #define vp8_dc_only_idct_add vp8_dc_only_idct_add_neon
167 
168 int vp8_denoiser_filter_c(unsigned char* mc_running_avg_y,
169                           int mc_avg_y_stride,
170                           unsigned char* running_avg_y,
171                           int avg_y_stride,
172                           unsigned char* sig,
173                           int sig_stride,
174                           unsigned int motion_magnitude,
175                           int increase_denoising);
176 int vp8_denoiser_filter_neon(unsigned char* mc_running_avg_y,
177                              int mc_avg_y_stride,
178                              unsigned char* running_avg_y,
179                              int avg_y_stride,
180                              unsigned char* sig,
181                              int sig_stride,
182                              unsigned int motion_magnitude,
183                              int increase_denoising);
184 #define vp8_denoiser_filter vp8_denoiser_filter_neon
185 
186 int vp8_denoiser_filter_uv_c(unsigned char* mc_running_avg,
187                              int mc_avg_stride,
188                              unsigned char* running_avg,
189                              int avg_stride,
190                              unsigned char* sig,
191                              int sig_stride,
192                              unsigned int motion_magnitude,
193                              int increase_denoising);
194 int vp8_denoiser_filter_uv_neon(unsigned char* mc_running_avg,
195                                 int mc_avg_stride,
196                                 unsigned char* running_avg,
197                                 int avg_stride,
198                                 unsigned char* sig,
199                                 int sig_stride,
200                                 unsigned int motion_magnitude,
201                                 int increase_denoising);
202 #define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_neon
203 
204 void vp8_dequant_idct_add_c(short* input,
205                             short* dq,
206                             unsigned char* dest,
207                             int stride);
208 void vp8_dequant_idct_add_neon(short* input,
209                                short* dq,
210                                unsigned char* dest,
211                                int stride);
212 #define vp8_dequant_idct_add vp8_dequant_idct_add_neon
213 
214 void vp8_dequant_idct_add_uv_block_c(short* q,
215                                      short* dq,
216                                      unsigned char* dst_u,
217                                      unsigned char* dst_v,
218                                      int stride,
219                                      char* eobs);
220 void vp8_dequant_idct_add_uv_block_neon(short* q,
221                                         short* dq,
222                                         unsigned char* dst_u,
223                                         unsigned char* dst_v,
224                                         int stride,
225                                         char* eobs);
226 #define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_neon
227 
228 void vp8_dequant_idct_add_y_block_c(short* q,
229                                     short* dq,
230                                     unsigned char* dst,
231                                     int stride,
232                                     char* eobs);
233 void vp8_dequant_idct_add_y_block_neon(short* q,
234                                        short* dq,
235                                        unsigned char* dst,
236                                        int stride,
237                                        char* eobs);
238 #define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_neon
239 
240 void vp8_dequantize_b_c(struct blockd*, short* DQC);
241 void vp8_dequantize_b_neon(struct blockd*, short* DQC);
242 #define vp8_dequantize_b vp8_dequantize_b_neon
243 
244 int vp8_diamond_search_sad_c(struct macroblock* x,
245                              struct block* b,
246                              struct blockd* d,
247                              union int_mv* ref_mv,
248                              union int_mv* best_mv,
249                              int search_param,
250                              int sad_per_bit,
251                              int* num00,
252                              struct variance_vtable* fn_ptr,
253                              int* mvcost[2],
254                              union int_mv* center_mv);
255 #define vp8_diamond_search_sad vp8_diamond_search_sad_c
256 
257 void vp8_fast_quantize_b_c(struct block*, struct blockd*);
258 void vp8_fast_quantize_b_neon(struct block*, struct blockd*);
259 #define vp8_fast_quantize_b vp8_fast_quantize_b_neon
260 
261 void vp8_filter_by_weight16x16_c(unsigned char* src,
262                                  int src_stride,
263                                  unsigned char* dst,
264                                  int dst_stride,
265                                  int src_weight);
266 #define vp8_filter_by_weight16x16 vp8_filter_by_weight16x16_c
267 
268 void vp8_filter_by_weight4x4_c(unsigned char* src,
269                                int src_stride,
270                                unsigned char* dst,
271                                int dst_stride,
272                                int src_weight);
273 #define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c
274 
275 void vp8_filter_by_weight8x8_c(unsigned char* src,
276                                int src_stride,
277                                unsigned char* dst,
278                                int dst_stride,
279                                int src_weight);
280 #define vp8_filter_by_weight8x8 vp8_filter_by_weight8x8_c
281 
282 int vp8_full_search_sad_c(struct macroblock* x,
283                           struct block* b,
284                           struct blockd* d,
285                           union int_mv* ref_mv,
286                           int sad_per_bit,
287                           int distance,
288                           struct variance_vtable* fn_ptr,
289                           int* mvcost[2],
290                           union int_mv* center_mv);
291 #define vp8_full_search_sad vp8_full_search_sad_c
292 
293 void vp8_loop_filter_bh_c(unsigned char* y_ptr,
294                           unsigned char* u_ptr,
295                           unsigned char* v_ptr,
296                           int y_stride,
297                           int uv_stride,
298                           struct loop_filter_info* lfi);
299 void vp8_loop_filter_bh_neon(unsigned char* y_ptr,
300                              unsigned char* u_ptr,
301                              unsigned char* v_ptr,
302                              int y_stride,
303                              int uv_stride,
304                              struct loop_filter_info* lfi);
305 #define vp8_loop_filter_bh vp8_loop_filter_bh_neon
306 
307 void vp8_loop_filter_bv_c(unsigned char* y_ptr,
308                           unsigned char* u_ptr,
309                           unsigned char* v_ptr,
310                           int y_stride,
311                           int uv_stride,
312                           struct loop_filter_info* lfi);
313 void vp8_loop_filter_bv_neon(unsigned char* y_ptr,
314                              unsigned char* u_ptr,
315                              unsigned char* v_ptr,
316                              int y_stride,
317                              int uv_stride,
318                              struct loop_filter_info* lfi);
319 #define vp8_loop_filter_bv vp8_loop_filter_bv_neon
320 
321 void vp8_loop_filter_mbh_c(unsigned char* y_ptr,
322                            unsigned char* u_ptr,
323                            unsigned char* v_ptr,
324                            int y_stride,
325                            int uv_stride,
326                            struct loop_filter_info* lfi);
327 void vp8_loop_filter_mbh_neon(unsigned char* y_ptr,
328                               unsigned char* u_ptr,
329                               unsigned char* v_ptr,
330                               int y_stride,
331                               int uv_stride,
332                               struct loop_filter_info* lfi);
333 #define vp8_loop_filter_mbh vp8_loop_filter_mbh_neon
334 
335 void vp8_loop_filter_mbv_c(unsigned char* y_ptr,
336                            unsigned char* u_ptr,
337                            unsigned char* v_ptr,
338                            int y_stride,
339                            int uv_stride,
340                            struct loop_filter_info* lfi);
341 void vp8_loop_filter_mbv_neon(unsigned char* y_ptr,
342                               unsigned char* u_ptr,
343                               unsigned char* v_ptr,
344                               int y_stride,
345                               int uv_stride,
346                               struct loop_filter_info* lfi);
347 #define vp8_loop_filter_mbv vp8_loop_filter_mbv_neon
348 
349 void vp8_loop_filter_bhs_c(unsigned char* y_ptr,
350                            int y_stride,
351                            const unsigned char* blimit);
352 void vp8_loop_filter_bhs_neon(unsigned char* y_ptr,
353                               int y_stride,
354                               const unsigned char* blimit);
355 #define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_neon
356 
357 void vp8_loop_filter_bvs_c(unsigned char* y_ptr,
358                            int y_stride,
359                            const unsigned char* blimit);
360 void vp8_loop_filter_bvs_neon(unsigned char* y_ptr,
361                               int y_stride,
362                               const unsigned char* blimit);
363 #define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_neon
364 
365 void vp8_loop_filter_simple_horizontal_edge_c(unsigned char* y_ptr,
366                                               int y_stride,
367                                               const unsigned char* blimit);
368 void vp8_loop_filter_mbhs_neon(unsigned char* y_ptr,
369                                int y_stride,
370                                const unsigned char* blimit);
371 #define vp8_loop_filter_simple_mbh vp8_loop_filter_mbhs_neon
372 
373 void vp8_loop_filter_simple_vertical_edge_c(unsigned char* y_ptr,
374                                             int y_stride,
375                                             const unsigned char* blimit);
376 void vp8_loop_filter_mbvs_neon(unsigned char* y_ptr,
377                                int y_stride,
378                                const unsigned char* blimit);
379 #define vp8_loop_filter_simple_mbv vp8_loop_filter_mbvs_neon
380 
381 int vp8_mbblock_error_c(struct macroblock* mb, int dc);
382 #define vp8_mbblock_error vp8_mbblock_error_c
383 
384 int vp8_mbuverror_c(struct macroblock* mb);
385 #define vp8_mbuverror vp8_mbuverror_c
386 
387 int vp8_refining_search_sad_c(struct macroblock* x,
388                               struct block* b,
389                               struct blockd* d,
390                               union int_mv* ref_mv,
391                               int error_per_bit,
392                               int search_range,
393                               struct variance_vtable* fn_ptr,
394                               int* mvcost[2],
395                               union int_mv* center_mv);
396 #define vp8_refining_search_sad vp8_refining_search_sad_c
397 
398 void vp8_regular_quantize_b_c(struct block*, struct blockd*);
399 #define vp8_regular_quantize_b vp8_regular_quantize_b_c
400 
401 void vp8_short_fdct4x4_c(short* input, short* output, int pitch);
402 void vp8_short_fdct4x4_neon(short* input, short* output, int pitch);
403 #define vp8_short_fdct4x4 vp8_short_fdct4x4_neon
404 
405 void vp8_short_fdct8x4_c(short* input, short* output, int pitch);
406 void vp8_short_fdct8x4_neon(short* input, short* output, int pitch);
407 #define vp8_short_fdct8x4 vp8_short_fdct8x4_neon
408 
409 void vp8_short_idct4x4llm_c(short* input,
410                             unsigned char* pred_ptr,
411                             int pred_stride,
412                             unsigned char* dst_ptr,
413                             int dst_stride);
414 void vp8_short_idct4x4llm_neon(short* input,
415                                unsigned char* pred_ptr,
416                                int pred_stride,
417                                unsigned char* dst_ptr,
418                                int dst_stride);
419 #define vp8_short_idct4x4llm vp8_short_idct4x4llm_neon
420 
421 void vp8_short_inv_walsh4x4_c(short* input, short* mb_dqcoeff);
422 void vp8_short_inv_walsh4x4_neon(short* input, short* mb_dqcoeff);
423 #define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_neon
424 
425 void vp8_short_inv_walsh4x4_1_c(short* input, short* mb_dqcoeff);
426 #define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
427 
428 void vp8_short_walsh4x4_c(short* input, short* output, int pitch);
429 void vp8_short_walsh4x4_neon(short* input, short* output, int pitch);
430 #define vp8_short_walsh4x4 vp8_short_walsh4x4_neon
431 
432 void vp8_sixtap_predict16x16_c(unsigned char* src_ptr,
433                                int src_pixels_per_line,
434                                int xoffset,
435                                int yoffset,
436                                unsigned char* dst_ptr,
437                                int dst_pitch);
438 void vp8_sixtap_predict16x16_neon(unsigned char* src_ptr,
439                                   int src_pixels_per_line,
440                                   int xoffset,
441                                   int yoffset,
442                                   unsigned char* dst_ptr,
443                                   int dst_pitch);
444 #define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_neon
445 
446 void vp8_sixtap_predict4x4_c(unsigned char* src_ptr,
447                              int src_pixels_per_line,
448                              int xoffset,
449                              int yoffset,
450                              unsigned char* dst_ptr,
451                              int dst_pitch);
452 void vp8_sixtap_predict4x4_neon(unsigned char* src_ptr,
453                                 int src_pixels_per_line,
454                                 int xoffset,
455                                 int yoffset,
456                                 unsigned char* dst_ptr,
457                                 int dst_pitch);
458 #define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_neon
459 
460 void vp8_sixtap_predict8x4_c(unsigned char* src_ptr,
461                              int src_pixels_per_line,
462                              int xoffset,
463                              int yoffset,
464                              unsigned char* dst_ptr,
465                              int dst_pitch);
466 void vp8_sixtap_predict8x4_neon(unsigned char* src_ptr,
467                                 int src_pixels_per_line,
468                                 int xoffset,
469                                 int yoffset,
470                                 unsigned char* dst_ptr,
471                                 int dst_pitch);
472 #define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_neon
473 
474 void vp8_sixtap_predict8x8_c(unsigned char* src_ptr,
475                              int src_pixels_per_line,
476                              int xoffset,
477                              int yoffset,
478                              unsigned char* dst_ptr,
479                              int dst_pitch);
480 void vp8_sixtap_predict8x8_neon(unsigned char* src_ptr,
481                                 int src_pixels_per_line,
482                                 int xoffset,
483                                 int yoffset,
484                                 unsigned char* dst_ptr,
485                                 int dst_pitch);
486 #define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_neon
487 
488 void vp8_rtcd(void);
489 
490 #include "vpx_config.h"
491 
492 #ifdef RTCD_C
493 #include "vpx_ports/arm.h"
setup_rtcd_internal(void)494 static void setup_rtcd_internal(void) {
495   int flags = arm_cpu_caps();
496 
497   (void)flags;
498 }
499 #endif
500 
501 #ifdef __cplusplus
502 }  // extern "C"
503 #endif
504 
505 #endif
506