Commit 3c4f47e8 authored by Ronald S. Bultje's avatar Ronald S. Bultje
Browse files

Place non-static function prototypes in a header file.

Change-Id: I7cd21b9f1e69f4e0b3338bfe27b3c67e4b47de58
parent 06f3e51d
......@@ -12,6 +12,7 @@
#include "vpx_ports/config.h"
#include "vpx_scale/yv12config.h"
#include "postproc.h"
#include "vp9/common/textblit.h"
#include "vpx_scale/vpxscale.h"
#include "systemdependent.h"
......@@ -126,10 +127,6 @@ const short vp9_rv[] = {
};
extern void vp9_blit_text(const char *msg, unsigned char *address,
const int pitch);
extern void vp9_blit_line(int x0, int x1, int y0, int y1,
unsigned char *image, const int pitch);
/****************************************************************************
*/
void vp9_post_proc_down_and_across_c(unsigned char *src_ptr,
......
......@@ -13,6 +13,6 @@
#include "blockd.h"
extern void init_intra_left_above_pixels(MACROBLOCKD *xd);
extern void vp9_recon_intra_mbuv(MACROBLOCKD *xd);
#endif // __INC_RECONINTRA_H
......@@ -55,6 +55,12 @@ specialize vp9_dequant_idct_add_uv_block_8x8
prototype void vp9_dequant_idct_add_16x16 "short *input, short *dq, unsigned char *pred, unsigned char *dest, int pitch, int stride"
specialize vp9_dequant_idct_add_16x16
prototype void vp9_dequant_idct_add_8x8 "short *input, short *dq, unsigned char *pred, unsigned char *dest, int pitch, int stride"
specialize vp9_dequant_idct_add_8x8
prototype void vp9_dequant_dc_idct_add_8x8 "short *input, short *dq, unsigned char *pred, unsigned char *dest, int pitch, int stride, int Dc"
specialize vp9_dequant_dc_idct_add_8x8
prototype void vp9_dequant_idct_add "short *input, short *dq, unsigned char *pred, unsigned char *dest, int pitch, int stride"
specialize vp9_dequant_idct_add
......
......@@ -10,6 +10,7 @@
#include <stdlib.h>
#include "vp9/common/textblit.h"
void vp9_blit_text(const char *msg, unsigned char *address, const int pitch) {
int letter_bitmap;
......
/*
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef __INC_TEXTBLIT_H
#define __INC_TEXTBLIT_H
extern void vp9_blit_text(const char *msg, unsigned char *address,
const int pitch);
extern void vp9_blit_line(int x0, int x1, int y0, int y1,
unsigned char *image, const int pitch);
#endif // __INC_TEXTBLIT_H
......@@ -14,6 +14,7 @@
#include "vp9/common/reconintra.h"
#include "vp9/common/reconintra4x4.h"
#include "vp9/common/reconinter.h"
#include "vp9/decoder/decodframe.h"
#include "detokenize.h"
#include "vp9/common/invtrans.h"
#include "vp9/common/alloccommon.h"
......
/*
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef __INC_DECODFRAME_H
#define __INC_DECODFRAME_H
struct VP9Decompressor;
extern void vp9_init_de_quantizer(struct VP9Decompressor *pbi);
#endif // __INC_DECODFRAME_H
......@@ -9,24 +9,12 @@
*/
#include "vpx_ports/config.h"
#include "vpx_rtcd.h"
#include "dequantize.h"
#include "vp9/common/idct.h"
#include "vpx_mem/vpx_mem.h"
#include "onyxd_int.h"
extern void vp9_short_idct4x4llm_c(short *input, short *output, int pitch);
extern void vp9_short_idct4x4llm_1_c(short *input, short *output, int pitch);
extern void vp9_short_idct8x8_c(short *input, short *output, int pitch);
extern void vp9_short_idct8x8_1_c(short *input, short *output, int pitch);
#if CONFIG_LOSSLESS
extern void vp9_short_inv_walsh4x4_x8_c(short *input, short *output,
int pitch);
extern void vp9_short_inv_walsh4x4_1_x8_c(short *input, short *output,
int pitch);
#endif
#ifdef DEC_DEBUG
extern int dec_debug;
#endif
......
......@@ -8,25 +8,8 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "vpx_ports/config.h"
#include "vpx_rtcd.h"
#include "vp9/common/idct.h"
#include "dequantize.h"
void vp9_dequant_dc_idct_add_c(short *input, short *dq, unsigned char *pred,
unsigned char *dest, int pitch, int stride,
int Dc);
void vp9_dequant_idct_add_c(short *input, short *dq, unsigned char *pred,
unsigned char *dest, int pitch, int stride);
void vp9_dc_only_idct_add_c(short input_dc, unsigned char *pred_ptr,
unsigned char *dst_ptr, int pitch, int stride);
#if CONFIG_LOSSLESS
void vp9_dequant_idct_add_lossless_c(short *input, short *dq,
unsigned char *pred, unsigned char *dest,
int pitch, int stride);
void vp9_dc_only_idct_add_lossless_c(short input_dc, unsigned char *pred_ptr,
unsigned char *dst_ptr,
int pitch, int stride);
#endif
void vp9_dequant_dc_idct_add_y_block_c(short *q, short *dq,
unsigned char *pre,
......
......@@ -26,12 +26,12 @@
#include "vpx_scale/vpxscale.h"
#include "vp9/common/systemdependent.h"
#include "vpx_ports/vpx_timer.h"
#include "vp9/decoder/decodframe.h"
#include "detokenize.h"
#if ARCH_ARM
#include "vpx_ports/arm.h"
#endif
extern void vp9_init_de_quantizer(VP9D_COMP *pbi);
static int get_free_fb(VP9_COMMON *cm);
static void ref_cnt_fb(int *buf, int *idx, int new_idx);
......
......@@ -10,6 +10,7 @@
#include "vpx_ports/config.h"
#include "vp9/encoder/encodeframe.h"
#include "encodemb.h"
#include "encodemv.h"
#include "vp9/common/common.h"
......@@ -27,6 +28,7 @@
#include "vp9/common/findnearmv.h"
#include "vp9/common/reconintra.h"
#include "vp9/common/seg_common.h"
#include "vp9/encoder/tokenize.h"
#include "vpx_rtcd.h"
#include <stdio.h>
#include <math.h>
......@@ -54,35 +56,19 @@ int enc_debug = 0;
int mb_row_debug, mb_col_debug;
#endif
extern void vp9_initialize_me_consts(VP9_COMP *cpi, int QIndex);
static void encode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int recon_yoffset,
int recon_uvoffset, int output_enabled);
extern void vp9_auto_select_speed(VP9_COMP *cpi);
static void encode_inter_superblock(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int recon_yoffset,
int recon_uvoffset, int mb_col, int mb_row);
int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
int recon_yoffset, int recon_uvoffset,
int *returnrate, int *returndistortion);
static void encode_intra_macro_block(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int output_enabled);
extern void vp9_pick_mode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x,
int recon_yoffset,
int recon_uvoffset, int *r, int *d);
void vp9_build_block_offsets(MACROBLOCK *x);
void vp9_setup_block_ptrs(MACROBLOCK *x);
void vp9_encode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t,
int recon_yoffset, int recon_uvoffset,
int output_enabled);
void vp9_encode_inter_superblock(VP9_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t,
int recon_yoffset, int recon_uvoffset,
int mb_col, int mb_row);
void vp9_encode_intra_macro_block(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int output_enabled);
void vp9_encode_intra_super_block(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int mb_col);
static void encode_intra_super_block(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int mb_col);
static void adjust_act_zbin(VP9_COMP *cpi, MACROBLOCK *x);
......@@ -634,7 +620,7 @@ static void pick_mb_modes(VP9_COMP *cpi,
*totaldist += d;
// Dummy encode, do not do the tokenization
vp9_encode_intra_macro_block(cpi, x, tp, 0);
encode_intra_macro_block(cpi, x, tp, 0);
// Note the encoder may have changed the segment_id
// Save the coding context
......@@ -661,8 +647,8 @@ static void pick_mb_modes(VP9_COMP *cpi,
*totaldist += d;
// Dummy encode, do not do the tokenization
vp9_encode_inter_macroblock(cpi, x, tp,
recon_yoffset, recon_uvoffset, 0);
encode_inter_macroblock(cpi, x, tp,
recon_yoffset, recon_uvoffset, 0);
seg_id = mbmi->segment_id;
if (cpi->mb.e_mbd.segmentation_enabled && seg_id == 0) {
......@@ -992,10 +978,10 @@ static void encode_sb(VP9_COMP *cpi,
if (cm->frame_type == KEY_FRAME) {
#if CONFIG_SUPERBLOCKS
if (xd->mode_info_context->mbmi.encoded_as_sb)
vp9_encode_intra_super_block(cpi, x, tp, mb_col);
encode_intra_super_block(cpi, x, tp, mb_col);
else
#endif
vp9_encode_intra_macro_block(cpi, x, tp, 1);
encode_intra_macro_block(cpi, x, tp, 1);
// Note the encoder may have changed the segment_id
#ifdef MODE_STATS
......@@ -1018,12 +1004,12 @@ static void encode_sb(VP9_COMP *cpi,
#if CONFIG_SUPERBLOCKS
if (xd->mode_info_context->mbmi.encoded_as_sb)
vp9_encode_inter_superblock(cpi, x, tp, recon_yoffset, recon_uvoffset,
mb_col, mb_row);
encode_inter_superblock(cpi, x, tp, recon_yoffset, recon_uvoffset,
mb_col, mb_row);
else
#endif
vp9_encode_inter_macroblock(cpi, x, tp,
recon_yoffset, recon_uvoffset, 1);
encode_inter_macroblock(cpi, x, tp,
recon_yoffset, recon_uvoffset, 1);
// Note the encoder may have changed the segment_id
#ifdef MODE_STATS
......@@ -1851,10 +1837,8 @@ static void update_sb_skip_coeff_state(VP9_COMP *cpi,
}
}
void vp9_encode_intra_super_block(VP9_COMP *cpi,
MACROBLOCK *x,
TOKENEXTRA **t,
int mb_col) {
static void encode_intra_super_block(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int mb_col) {
const int output_enabled = 1;
int n;
MACROBLOCKD *xd = &x->e_mbd;
......@@ -1931,10 +1915,8 @@ void vp9_encode_intra_super_block(VP9_COMP *cpi,
}
#endif /* CONFIG_SUPERBLOCKS */
void vp9_encode_intra_macro_block(VP9_COMP *cpi,
MACROBLOCK *x,
TOKENEXTRA **t,
int output_enabled) {
static void encode_intra_macro_block(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int output_enabled) {
MB_MODE_INFO * mbmi = &x->e_mbd.mode_info_context->mbmi;
if ((cpi->oxcf.tuning == VP8_TUNE_SSIM) && output_enabled) {
adjust_act_zbin(cpi, x);
......@@ -1984,11 +1966,9 @@ void vp9_encode_intra_macro_block(VP9_COMP *cpi,
#endif
}
extern void vp9_fix_contexts(MACROBLOCKD *xd);
void vp9_encode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int recon_yoffset,
int recon_uvoffset, int output_enabled) {
static void encode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int recon_yoffset,
int recon_uvoffset, int output_enabled) {
VP9_COMMON *cm = &cpi->common;
MACROBLOCKD *const xd = &x->e_mbd;
MB_MODE_INFO * mbmi = &xd->mode_info_context->mbmi;
......@@ -2172,9 +2152,10 @@ void vp9_encode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x,
}
#if CONFIG_SUPERBLOCKS
void vp9_encode_inter_superblock(VP9_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t,
int recon_yoffset, int recon_uvoffset,
int mb_col, int mb_row) {
static void encode_inter_superblock(VP9_COMP *cpi, MACROBLOCK *x,
TOKENEXTRA **t, int recon_yoffset,
int recon_uvoffset,
int mb_col, int mb_row) {
const int output_enabled = 1;
VP9_COMMON *cm = &cpi->common;
MACROBLOCKD *xd = &x->e_mbd;
......
/*
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef __INC_ENCODEFRAME_H
#define __INC_ENCODEFRAME_H
struct macroblock;
extern void vp9_build_block_offsets(struct macroblock *x);
extern void vp9_setup_block_ptrs(struct macroblock *x);
#endif // __INC_ENCODEFRAME_H
......@@ -18,12 +18,14 @@
#include "mcomp.h"
#include "firstpass.h"
#include "vpx_scale/vpxscale.h"
#include "vp9/encoder/encodeframe.h"
#include "encodemb.h"
#include "vp9/common/extend.h"
#include "vp9/common/systemdependent.h"
#include "vpx_mem/vpx_mem.h"
#include "vp9/common/swapyv12buffer.h"
#include <stdio.h>
#include "vp9/encoder/quantize.h"
#include "rdopt.h"
#include "ratectrl.h"
#include "vp9/common/quant_common.h"
......@@ -38,17 +40,6 @@
#define IF_RTCD(x) NULL
#endif
extern void vp9_build_block_offsets(MACROBLOCK *x);
extern void vp9_setup_block_ptrs(MACROBLOCK *x);
extern void vp9_frame_init_quantizer(VP9_COMP *cpi);
extern void vp9_set_mbmode_and_mvs(MACROBLOCK *x, MB_PREDICTION_MODE mb,
int_mv *mv);
extern void vp9_alloc_compressor_data(VP9_COMP *cpi);
#define IIFACTOR 12.5
#define IIKFACTOR1 12.5
#define IIKFACTOR2 15.0
......
......@@ -36,6 +36,7 @@
#include "vp9/common/pred_common.h"
#include "vp9/encoder/rdopt.h"
#include "bitstream.h"
#include "vp9/encoder/picklpf.h"
#include "ratectrl.h"
#if CONFIG_NEWBESTREFMV
......@@ -58,18 +59,8 @@
#define RTCD(x) NULL
#endif
extern void vp9_pick_filter_level_fast(YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi);
extern void vp9_set_alt_lf_level(VP9_COMP *cpi, int filt_val);
extern void vp9_pick_filter_level(YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi);
extern void vp9_cmachine_specific_config(VP9_COMP *cpi);
extern void vp9_deblock_frame(YV12_BUFFER_CONFIG *source,
YV12_BUFFER_CONFIG *post,
int filt_lvl, int low_var_thresh, int flag);
extern void print_tree_update_probs();
#if HAVE_ARMV7
......@@ -80,10 +71,6 @@ extern void vp8_yv12_copy_src_frame_func_neon(YV12_BUFFER_CONFIG *src_ybc,
YV12_BUFFER_CONFIG *dst_ybc);
#endif
int vp9_calc_ss_err(YV12_BUFFER_CONFIG *source, YV12_BUFFER_CONFIG *dest);
extern void vp9_temporal_filter_prepare_c(VP9_COMP *cpi, int distance);
static void set_default_lf_deltas(VP9_COMP *cpi);
#define DEFAULT_INTERP_FILTER EIGHTTAP /* SWITCHABLE for better performance */
......
......@@ -764,11 +764,13 @@ void vp9_pack_bitstream(VP9_COMP *cpi, unsigned char *dest,
void vp9_activity_masking(VP9_COMP *cpi, MACROBLOCK *x);
void vp9_tokenize_mb(VP9_COMP *, MACROBLOCKD *, TOKENEXTRA **, int dry_run);
void vp9_stuff_mb(VP9_COMP *cpi, MACROBLOCKD *xd, TOKENEXTRA **t, int dry_run);
void vp9_set_speed_features(VP9_COMP *cpi);
extern int vp9_calc_ss_err(YV12_BUFFER_CONFIG *source,
YV12_BUFFER_CONFIG *dest);
extern void vp9_alloc_compressor_data(VP9_COMP *cpi);
#if CONFIG_DEBUG
#define CHECK_MEM_ERROR(lval,expr) do {\
lval = (expr); \
......
......@@ -11,6 +11,7 @@
#include "vp9/common/onyxc_int.h"
#include "onyx_int.h"
#include "vp9/encoder/picklpf.h"
#include "quantize.h"
#include "vpx_mem/vpx_mem.h"
#include "vpx_scale/vpxscale.h"
......@@ -20,8 +21,6 @@
#include "vpx_ports/arm.h"
#endif
extern int vp9_calc_ss_err(YV12_BUFFER_CONFIG *source,
YV12_BUFFER_CONFIG *dest);
#if HAVE_ARMV7
extern void vp8_yv12_copy_frame_yonly_no_extend_frame_borders_neon(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc);
#endif
......
/*
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef __INC_PICKLPF_H
#define __INC_PICKLPF_H
struct yv12_buffer_config;
struct VP9_COMP;
extern void vp9_pick_filter_level_fast(struct yv12_buffer_config *sd,
struct VP9_COMP *cpi);
extern void vp9_set_alt_lf_level(struct VP9_COMP *cpi, int filt_val);
extern void vp9_pick_filter_level(struct yv12_buffer_config *sd,
struct VP9_COMP *cpi);
#endif // __INC_PICKLPF_H
......@@ -51,9 +51,6 @@
#define IF_RTCD(x) NULL
#endif
extern void vp9_mb_init_quantizer(VP9_COMP *cpi, MACROBLOCK *x);
extern void vp9_update_zbin_extra(VP9_COMP *cpi, MACROBLOCK *x);
#define MAXF(a,b) (((a) > (b)) ? (a) : (b))
#define INVALID_MV 0x80008000
......@@ -391,59 +388,6 @@ void vp9_initialize_rd_consts(VP9_COMP *cpi, int QIndex) {
}
}
void vp9_auto_select_speed(VP9_COMP *cpi) {
int milliseconds_for_compress = (int)(1000000 / cpi->oxcf.frame_rate);
milliseconds_for_compress = milliseconds_for_compress * (16 - cpi->oxcf.cpu_used) / 16;
/*
// this is done during parameter valid check
if( cpi->oxcf.cpu_used > 16)
cpi->oxcf.cpu_used = 16;
if( cpi->oxcf.cpu_used < -16)
cpi->oxcf.cpu_used = -16;
*/
if (cpi->avg_pick_mode_time < milliseconds_for_compress &&
(cpi->avg_encode_time - cpi->avg_pick_mode_time) <
milliseconds_for_compress) {
if (cpi->avg_pick_mode_time == 0) {
cpi->Speed = 4;
} else {
if (milliseconds_for_compress * 100 < cpi->avg_encode_time * 95) {
cpi->Speed += 2;
cpi->avg_pick_mode_time = 0;
cpi->avg_encode_time = 0;
if (cpi->Speed > 16) {
cpi->Speed = 16;
}
}
if (milliseconds_for_compress * 100 >
cpi->avg_encode_time * auto_speed_thresh[cpi->Speed]) {
cpi->Speed -= 1;
cpi->avg_pick_mode_time = 0;
cpi->avg_encode_time = 0;
// In real-time mode, cpi->speed is in [4, 16].
if (cpi->Speed < 4) { // if ( cpi->Speed < 0 )
cpi->Speed = 4; // cpi->Speed = 0;
}
}
}
} else {
cpi->Speed += 4;
if (cpi->Speed > 16)
cpi->Speed = 16;
cpi->avg_pick_mode_time = 0;
cpi->avg_encode_time = 0;
}
}
int vp9_block_error_c(short *coeff, short *dqcoeff, int block_size) {
int i, error = 0;
......@@ -3527,10 +3471,10 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
return this_rd; // if 0, this will be re-calculated by caller
}
void vp9_rd_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
int recon_yoffset, int recon_uvoffset,
int *returnrate, int *returndistortion,
int64_t *returnintra) {
static void rd_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
int recon_yoffset, int recon_uvoffset,
int *returnrate, int *returndistortion,
int64_t *returnintra) {
VP9_COMMON *cm = &cpi->common;
MACROBLOCKD *xd = &x->e_mbd;
union b_mode_info best_bmodes[16];
......@@ -4834,8 +4778,8 @@ void vp9_pick_mode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x,
{
int zbin_mode_boost_enabled = cpi->zbin_mode_boost_enabled;
vp9_rd_pick_inter_mode(cpi, x, recon_yoffset, recon_uvoffset, &rate,
&distortion, &intra_error);
rd_pick_inter_mode(cpi, x, recon_yoffset, recon_uvoffset, &rate,
&distortion, &intra_error);
/* restore cpi->zbin_mode_boost_enabled */
cpi->zbin_mode_boost_enabled = zbin_mode_boost_enabled;
......
......@@ -17,10 +17,7 @@
extern void vp9_initialize_rd_consts(VP9_COMP *cpi, int Qvalue);
extern void vp9_rd_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
int recon_yoffset, int recon_uvoffset,
int *returnrate, int *returndistortion,
int64_t *returnintra);
extern void vp9_initialize_me_consts(VP9_COMP *cpi, int QIndex);
extern void vp9_rd_pick_intra_mode(VP9_COMP *cpi, MACROBLOCK *x,
int *r, int *d);
......@@ -28,6 +25,14 @@ extern void vp9_rd_pick_intra_mode(VP9_COMP *cpi, MACROBLOCK *x,
extern void vp9_rd_pick_intra_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
int *r, int *d);
extern void vp9_pick_mode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x,
int recon_yoffset,
int recon_uvoffset, int *r, int *d);
extern int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
int recon_yoffset, int recon_uvoffset,
int *returnrate, int *returndist);
extern void vp9_mv_pred(VP9_COMP *cpi, MACROBLOCKD *xd,
const MODE_INFO *here, int_mv *mvp,
int refframe, int *ref_frame_sign_bias,
......
......@@ -44,4 +44,8 @@ typedef struct {
#define TEMPORAL_INVOKE(ctx,fn) vp9_temporal_filter_##fn
#endif
struct VP9_COMP;
extern void vp9_temporal_filter_prepare_c(struct VP9_COMP *cpi, int distance);