Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / libvpx / source / config / linux / arm-neon-cpu-detect / vpx_scale_rtcd.h
1 #ifndef VPX_SCALE_RTCD_H_
2 #define VPX_SCALE_RTCD_H_
3
4 #ifdef RTCD_C
5 #define RTCD_EXTERN
6 #else
7 #define RTCD_EXTERN extern
8 #endif
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 struct yv12_buffer_config;
15
16 void vp8_horizontal_line_2_1_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
17 #define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c
18
19 void vp8_horizontal_line_5_3_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
20 #define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c
21
22 void vp8_horizontal_line_5_4_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
23 #define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c
24
25 void vp8_vertical_band_2_1_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
26 #define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c
27
28 void vp8_vertical_band_2_1_scale_i_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
29 #define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c
30
31 void vp8_vertical_band_5_3_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
32 #define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c
33
34 void vp8_vertical_band_5_4_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
35 #define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c
36
37 void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
38 void vp8_yv12_copy_frame_neon(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
39 RTCD_EXTERN void (*vp8_yv12_copy_frame)(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
40
41 void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
42 void vp8_yv12_extend_frame_borders_neon(struct yv12_buffer_config *ybf);
43 RTCD_EXTERN void (*vp8_yv12_extend_frame_borders)(struct yv12_buffer_config *ybf);
44
45 void vp9_extend_frame_borders_c(struct yv12_buffer_config *ybf);
46 #define vp9_extend_frame_borders vp9_extend_frame_borders_c
47
48 void vp9_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
49 #define vp9_extend_frame_inner_borders vp9_extend_frame_inner_borders_c
50
51 void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
52 #define vpx_yv12_copy_y vpx_yv12_copy_y_c
53
54 void vpx_scale_rtcd(void);
55
56 #include "vpx_config.h"
57
58 #ifdef RTCD_C
59 #include "vpx_ports/arm.h"
60 static void setup_rtcd_internal(void)
61 {
62     int flags = arm_cpu_caps();
63
64     (void)flags;
65
66     vp8_yv12_copy_frame = vp8_yv12_copy_frame_c;
67     if (flags & HAS_NEON) vp8_yv12_copy_frame = vp8_yv12_copy_frame_neon;
68     vp8_yv12_extend_frame_borders = vp8_yv12_extend_frame_borders_c;
69     if (flags & HAS_NEON) vp8_yv12_extend_frame_borders = vp8_yv12_extend_frame_borders_neon;
70 }
71 #endif
72
73 #ifdef __cplusplus
74 }  // extern "C"
75 #endif
76
77 #endif