#ifndef AOM_AV1_COMMON_MVREF_COMMON_H_
#define AOM_AV1_COMMON_MVREF_COMMON_H_
#include "av1/common/av1_common_int.h"
#include "av1/common/blockd.h"
#ifdef __cplusplus
extern "C" {
#endif
#define MVREF_ROW_COLS …
#define REFMVS_LIMIT …
POSITION;
#define MV_BORDER …
static inline int get_relative_dist(const OrderHintInfo *oh, int a, int b) { … }
static inline void clamp_mv_ref(MV *mv, int bw, int bh, const MACROBLOCKD *xd) { … }
static inline int_mv get_block_mv(const MB_MODE_INFO *candidate, int which_mv) { … }
static inline int is_inside(const TileInfo *const tile, int mi_col, int mi_row,
const POSITION *mi_pos) { … }
static inline int find_valid_row_offset(const TileInfo *const tile, int mi_row,
int row_offset) { … }
static inline int find_valid_col_offset(const TileInfo *const tile, int mi_col,
int col_offset) { … }
static inline void lower_mv_precision(MV *mv, int allow_hp, int is_integer) { … }
static inline int8_t get_uni_comp_ref_idx(const MV_REFERENCE_FRAME *const rf) { … }
static inline int8_t av1_ref_frame_type(const MV_REFERENCE_FRAME *const rf) { … }
static MV_REFERENCE_FRAME ref_frame_map[TOTAL_COMP_REFS][2] = …;
static inline void av1_set_ref_frame(MV_REFERENCE_FRAME *rf,
MV_REFERENCE_FRAME ref_frame_type) { … }
static uint16_t compound_mode_ctx_map[3][COMP_NEWMV_CTXS] = …;
static inline int16_t av1_mode_context_analyzer(
const int16_t *const mode_context, const MV_REFERENCE_FRAME *const rf) { … }
static inline uint8_t av1_drl_ctx(const uint16_t *ref_mv_weight, int ref_idx) { … }
void av1_setup_frame_buf_refs(AV1_COMMON *cm);
void av1_setup_frame_sign_bias(AV1_COMMON *cm);
void av1_setup_skip_mode_allowed(AV1_COMMON *cm);
void av1_calculate_ref_frame_side(AV1_COMMON *cm);
void av1_setup_motion_field(AV1_COMMON *cm);
void av1_set_frame_refs(AV1_COMMON *const cm, int *remapped_ref_idx,
int lst_map_idx, int gld_map_idx);
static inline void av1_collect_neighbors_ref_counts(MACROBLOCKD *const xd) { … }
void av1_copy_frame_mvs(const AV1_COMMON *const cm,
const MB_MODE_INFO *const mi, int mi_row, int mi_col,
int x_mis, int y_mis);
void av1_find_mv_refs(const AV1_COMMON *cm, const MACROBLOCKD *xd,
MB_MODE_INFO *mi, MV_REFERENCE_FRAME ref_frame,
uint8_t ref_mv_count[MODE_CTX_REF_FRAMES],
CANDIDATE_MV ref_mv_stack[][MAX_REF_MV_STACK_SIZE],
uint16_t ref_mv_weight[][MAX_REF_MV_STACK_SIZE],
int_mv mv_ref_list[][MAX_MV_REF_CANDIDATES],
int_mv *global_mvs, int16_t *mode_context);
void av1_find_best_ref_mvs(int allow_hp, int_mv *mvlist, int_mv *nearest_mv,
int_mv *near_mv, int is_integer);
uint8_t av1_selectSamples(MV *mv, int *pts, int *pts_inref, int len,
BLOCK_SIZE bsize);
uint8_t av1_findSamples(const AV1_COMMON *cm, MACROBLOCKD *xd, int *pts,
int *pts_inref);
#define INTRABC_DELAY_PIXELS …
#define INTRABC_DELAY_SB64 …
static inline void av1_find_ref_dv(int_mv *ref_dv, const TileInfo *const tile,
int mib_size, int mi_row) { … }
static inline int av1_is_dv_valid(const MV dv, const AV1_COMMON *cm,
const MACROBLOCKD *xd, int mi_row, int mi_col,
BLOCK_SIZE bsize, int mib_size_log2) { … }
#ifdef __cplusplus
}
#endif
#endif