#ifndef AOM_AV1_COMMON_CONVOLVE_H_
#define AOM_AV1_COMMON_CONVOLVE_H_
#include "av1/common/filter.h"
#ifdef __cplusplus
extern "C" {
#endif
CONV_BUF_TYPE;
ConvolveParams;
WienerConvolveParams;
#define ROUND0_BITS …
#define COMPOUND_ROUND1_BITS …
#define WIENER_ROUND0_BITS …
#define WIENER_CLAMP_LIMIT(r0, bd) …
aom_convolve_fn_t;
aom_highbd_convolve_fn_t;
struct AV1Common;
struct scale_factors;
void av1_convolve_2d_facade(const uint8_t *src, int src_stride, uint8_t *dst,
int dst_stride, int w, int h,
const InterpFilterParams *interp_filters[2],
const int subpel_x_qn, int x_step_q4,
const int subpel_y_qn, int y_step_q4, int scaled,
ConvolveParams *conv_params);
static inline ConvolveParams get_conv_params_no_round(int cmp_index, int plane,
CONV_BUF_TYPE *dst,
int dst_stride,
int is_compound, int bd) { … }
static inline ConvolveParams get_conv_params(int do_average, int plane,
int bd) { … }
static inline WienerConvolveParams get_conv_params_wiener(int bd) { … }
void av1_highbd_convolve_2d_facade(const uint8_t *src8, int src_stride,
uint8_t *dst, int dst_stride, int w, int h,
const InterpFilterParams *interp_filters[2],
const int subpel_x_qn, int x_step_q4,
const int subpel_y_qn, int y_step_q4,
int scaled, ConvolveParams *conv_params,
int bd);
#ifdef __cplusplus
}
#endif
#endif