1afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#ifndef VPX_SCALE_RTCD_H_
2afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define VPX_SCALE_RTCD_H_
3afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
4afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#ifdef RTCD_C
5afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define RTCD_EXTERN
6afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#else
7afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define RTCD_EXTERN extern
8afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#endif
9afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
10da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanianstruct yv12_buffer_config;
11da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanian
12afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#ifdef __cplusplus
13afecaee6099284387688b9ce17ec3642ec4e5c1bJohannextern "C" {
14afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#endif
15afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
16afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid vp8_horizontal_line_2_1_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
17afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c
18afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
19afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid vp8_horizontal_line_5_3_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
20afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c
21afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
22afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid vp8_horizontal_line_5_4_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
23afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c
24afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
25afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid 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);
26afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c
27afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
28afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid 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);
29afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c
30afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
31afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid 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);
32afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c
33afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
34afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid 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);
35afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c
36afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
37afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
38afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define vp8_yv12_copy_frame vp8_yv12_copy_frame_c
39afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
40afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
41afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
42afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
43da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanianvoid vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
44da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanian#define vpx_extend_frame_borders vpx_extend_frame_borders_c
45afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
46da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanianvoid vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
47da49e34c1fb5e99681f4ad99c21d9cfd83eddb96Vignesh Venkatasubramanian#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
48afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
49afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
50afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#define vpx_yv12_copy_y vpx_yv12_copy_y_c
51afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
52afecaee6099284387688b9ce17ec3642ec4e5c1bJohannvoid vpx_scale_rtcd(void);
53afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
54afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#ifdef RTCD_C
55afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#include "vpx_ports/x86.h"
56afecaee6099284387688b9ce17ec3642ec4e5c1bJohannstatic void setup_rtcd_internal(void)
57afecaee6099284387688b9ce17ec3642ec4e5c1bJohann{
58afecaee6099284387688b9ce17ec3642ec4e5c1bJohann    int flags = x86_simd_caps();
59afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
60afecaee6099284387688b9ce17ec3642ec4e5c1bJohann    (void)flags;
61afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
62afecaee6099284387688b9ce17ec3642ec4e5c1bJohann}
63afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#endif
64afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
65afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#ifdef __cplusplus
66afecaee6099284387688b9ce17ec3642ec4e5c1bJohann}  // extern "C"
67afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#endif
68afecaee6099284387688b9ce17ec3642ec4e5c1bJohann
69afecaee6099284387688b9ce17ec3642ec4e5c1bJohann#endif
70