From: Tero Rintaluoma Date: Tue, 14 Jun 2011 10:39:06 +0000 (+0300) Subject: Fix RT only build X-Git-Tag: 1.0_branch~405^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9909047461fb8f13efca3e9d61452e8d31cc00b5;p=profile%2Fivi%2Flibvpx.git Fix RT only build Moved encode_intra function from firstpass.c to encodeintra.c to prevent linking problem in real-time only build. Also changed name of the function to vp8_encode_intra because it is not a static. Change-Id: Ibf3c6c1de3152567347e5fbef47d1d39564620a5 --- diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c index 8b1b65c..892284e 100644 --- a/vp8/encoder/encodeframe.c +++ b/vp8/encoder/encodeframe.c @@ -104,11 +104,10 @@ static unsigned int tt_activity_measure( VP8_COMP *cpi, MACROBLOCK *x ) } // Stub for alternative experimental activity measures. -extern int encode_intra(VP8_COMP *cpi, MACROBLOCK *x, int use_dc_pred); static unsigned int alt_activity_measure( VP8_COMP *cpi, MACROBLOCK *x, int use_dc_pred ) { - return encode_intra(cpi,x, use_dc_pred); + return vp8_encode_intra(cpi,x, use_dc_pred); } diff --git a/vp8/encoder/encodeintra.c b/vp8/encoder/encodeintra.c index 5da69bc..cc2e44f 100644 --- a/vp8/encoder/encodeintra.c +++ b/vp8/encoder/encodeintra.c @@ -28,6 +28,34 @@ #define IF_RTCD(x) NULL #endif +int vp8_encode_intra(VP8_COMP *cpi, MACROBLOCK *x, int use_dc_pred) +{ + + int i; + int intra_pred_var = 0; + (void) cpi; + + if (use_dc_pred) + { + x->e_mbd.mode_info_context->mbmi.mode = DC_PRED; + x->e_mbd.mode_info_context->mbmi.uv_mode = DC_PRED; + x->e_mbd.mode_info_context->mbmi.ref_frame = INTRA_FRAME; + + vp8_encode_intra16x16mby(IF_RTCD(&cpi->rtcd), x); + } + else + { + for (i = 0; i < 16; i++) + { + x->e_mbd.block[i].bmi.as_mode = B_DC_PRED; + vp8_encode_intra4x4block(IF_RTCD(&cpi->rtcd), x, i); + } + } + + intra_pred_var = VARIANCE_INVOKE(&cpi->rtcd.variance, getmbss)(x->src_diff); + + return intra_pred_var; +} void vp8_encode_intra4x4block(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x, int ib) @@ -124,4 +152,3 @@ void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) vp8_recon_intra_mbuv(IF_RTCD(&rtcd->common->recon), &x->e_mbd); } - diff --git a/vp8/encoder/encodeintra.h b/vp8/encoder/encodeintra.h index 5861fd1..9c1fa56 100644 --- a/vp8/encoder/encodeintra.h +++ b/vp8/encoder/encodeintra.h @@ -13,6 +13,7 @@ #define _ENCODEINTRA_H_ #include "onyx_int.h" +int vp8_encode_intra(VP8_COMP *cpi, MACROBLOCK *x, int use_dc_pred); void vp8_encode_intra16x16mby(const VP8_ENCODER_RTCD *, MACROBLOCK *x); void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *, MACROBLOCK *x); void vp8_encode_intra4x4mby(const VP8_ENCODER_RTCD *, MACROBLOCK *mb); diff --git a/vp8/encoder/firstpass.c b/vp8/encoder/firstpass.c index bc18634..b5d3ff9 100644 --- a/vp8/encoder/firstpass.c +++ b/vp8/encoder/firstpass.c @@ -81,35 +81,6 @@ static const int cq_level[QINDEX_RANGE] = static void find_next_key_frame(VP8_COMP *cpi, FIRSTPASS_STATS *this_frame); -int encode_intra(VP8_COMP *cpi, MACROBLOCK *x, int use_dc_pred) -{ - - int i; - int intra_pred_var = 0; - (void) cpi; - - if (use_dc_pred) - { - x->e_mbd.mode_info_context->mbmi.mode = DC_PRED; - x->e_mbd.mode_info_context->mbmi.uv_mode = DC_PRED; - x->e_mbd.mode_info_context->mbmi.ref_frame = INTRA_FRAME; - - vp8_encode_intra16x16mby(IF_RTCD(&cpi->rtcd), x); - } - else - { - for (i = 0; i < 16; i++) - { - x->e_mbd.block[i].bmi.as_mode = B_DC_PRED; - vp8_encode_intra4x4block(IF_RTCD(&cpi->rtcd), x, i); - } - } - - intra_pred_var = VARIANCE_INVOKE(&cpi->rtcd.variance, getmbss)(x->src_diff); - - return intra_pred_var; -} - // Resets the first pass file to the given position using a relative seek from the current position static void reset_fpf_position(VP8_COMP *cpi, FIRSTPASS_STATS *Position) { @@ -607,7 +578,7 @@ void vp8_first_pass(VP8_COMP *cpi) xd->left_available = (mb_col != 0); // do intra 16x16 prediction - this_error = encode_intra(cpi, x, use_dc_pred); + this_error = vp8_encode_intra(cpi, x, use_dc_pred); // "intrapenalty" below deals with situations where the intra and inter error scores are very low (eg a plain black frame) // We do not have special cases in first pass for 0,0 and nearest etc so all inter modes carry an overhead cost estimate fot the mv.