#ifndef AOM_AV1_ENCODER_MOTION_SEARCH_H_
#define AOM_AV1_ENCODER_MOTION_SEARCH_H_
#include "av1/encoder/encoder.h"
#ifdef __cplusplus
extern "C" {
#endif
#define NUM_JOINT_ME_REFINE_ITER …
#define REDUCED_JOINT_ME_REFINE_ITER …
inter_mode_info;
struct HandleInterModeArgs;
void av1_single_motion_search(const AV1_COMP *const cpi, MACROBLOCK *x,
BLOCK_SIZE bsize, int ref_idx, int *rate_mv,
int search_range, inter_mode_info *mode_info,
int_mv *best_mv,
struct HandleInterModeArgs *const args);
int av1_joint_motion_search(const AV1_COMP *cpi, MACROBLOCK *x,
BLOCK_SIZE bsize, int_mv *cur_mv,
const uint8_t *mask, int mask_stride, int *rate_mv,
int allow_second_mv, int joint_me_num_refine_iter);
int av1_interinter_compound_motion_search(const AV1_COMP *const cpi,
MACROBLOCK *x,
const int_mv *const cur_mv,
const BLOCK_SIZE bsize,
const PREDICTION_MODE this_mode);
int av1_compound_single_motion_search(const AV1_COMP *cpi, MACROBLOCK *x,
BLOCK_SIZE bsize, MV *this_mv,
const uint8_t *second_pred,
const uint8_t *mask, int mask_stride,
int *rate_mv, int ref_idx);
int_mv av1_simple_motion_search_sse_var(struct AV1_COMP *cpi, MACROBLOCK *x,
int mi_row, int mi_col,
BLOCK_SIZE bsize, int ref,
const FULLPEL_MV start_mv,
int num_planes, int use_subpixel,
unsigned int *sse, unsigned int *var);
static inline const search_site_config *av1_get_search_site_config(
const AV1_COMP *cpi, MACROBLOCK *x, SEARCH_METHODS search_method) { … }
static inline SEARCH_METHODS av1_get_faster_search_method(
SEARCH_METHODS search_method) { … }
static inline SEARCH_METHODS av1_get_default_mv_search_method(
const MACROBLOCK *x, const MV_SPEED_FEATURES *mv_sf, BLOCK_SIZE bsize) { … }
#ifdef __cplusplus
}
#endif
#endif