1ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#ifndef VPX_SCALE_RTCD_H_
2ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define VPX_SCALE_RTCD_H_
3ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
4ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#ifdef RTCD_C
5ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define RTCD_EXTERN
6ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#else
7ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define RTCD_EXTERN extern
8ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#endif
9ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
10ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangstruct yv12_buffer_config;
11ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
12ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp8_horizontal_line_5_4_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
13ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c
14ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
15ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid 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);
16ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c
17ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
18ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp8_horizontal_line_5_3_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
19ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c
20ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
21ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid 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);
22ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c
23ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
24ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp8_horizontal_line_2_1_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
25ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c
26ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
27ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid 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);
28ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c
29ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
30ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid 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);
31ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c
32ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
33ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
34ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
35ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
361184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
37ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp8_yv12_copy_frame vp8_yv12_copy_frame_c
38ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
391184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
401184aebb761cbeac9124c37189a80a1a58f04b6bhkuang#define vpx_yv12_copy_y vpx_yv12_copy_y_c
41ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
42ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_extend_frame_borders_c(struct yv12_buffer_config *ybf, int subsampling_x, int subsampling_y);
43ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp9_extend_frame_borders vp9_extend_frame_borders_c
44ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
4591037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf, int subsampling_x, int subsampling_y);
4691037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_extend_frame_inner_borders vp9_extend_frame_inner_borders_c
4791037db265ecdd914a26e056cf69207b4f50924ehkuang
48ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vpx_scale_rtcd(void);
49ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "vpx_config.h"
50ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
51ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#ifdef RTCD_C
52ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangstatic void setup_rtcd_internal(void)
53ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang{
54ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
55ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#if HAVE_DSPR2
565ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#if CONFIG_VP8
57ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid dsputil_static_init();
58ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangdsputil_static_init();
59ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#endif
605ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#if CONFIG_VP9
615ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_dsputil_static_init();
625ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvp9_dsputil_static_init();
635ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#endif
645ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#endif
65ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang}
66ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#endif
67ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#endif
68