| Index: source/libvpx/vp9/encoder/vp9_rd.c
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_rd.c (revision 290053)
|
| +++ source/libvpx/vp9/encoder/vp9_rd.c (working copy)
|
| @@ -121,7 +121,7 @@
|
| const int q = vp9_dc_quant(qindex, 0);
|
| int rdmult = 88 * q * q / 24;
|
|
|
| - if (cpi->pass == 2 && (cpi->common.frame_type != KEY_FRAME)) {
|
| + if (cpi->oxcf.pass == 2 && (cpi->common.frame_type != KEY_FRAME)) {
|
| const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
|
| const FRAME_UPDATE_TYPE frame_type = gf_group->update_type[gf_group->index];
|
| const int boost_index = MIN(15, (cpi->rc.gfu_boost / 100));
|
| @@ -220,8 +220,6 @@
|
| }
|
| }
|
|
|
| -static const int MAX_XSQ_Q10 = 245727;
|
| -
|
| static void model_rd_norm(int xsq_q10, int *r_q10, int *d_q10) {
|
| // NOTE: The tables below must be of the same size.
|
|
|
| @@ -311,10 +309,10 @@
|
| *dist = 0;
|
| } else {
|
| int d_q10, r_q10;
|
| + static const uint32_t MAX_XSQ_Q10 = 245727;
|
| const uint64_t xsq_q10_64 =
|
| ((((uint64_t)qstep * qstep * n) << 10) + (var >> 1)) / var;
|
| - const int xsq_q10 = xsq_q10_64 > MAX_XSQ_Q10 ?
|
| - MAX_XSQ_Q10 : (int)xsq_q10_64;
|
| + const int xsq_q10 = (int)MIN(xsq_q10_64, MAX_XSQ_Q10);
|
| model_rd_norm(xsq_q10, &r_q10, &d_q10);
|
| *rate = (n * r_q10 + 2) >> 2;
|
| *dist = (var * (int64_t)d_q10 + 512) >> 10;
|
| @@ -357,6 +355,7 @@
|
| break;
|
| default:
|
| assert(0 && "Invalid transform size.");
|
| + break;
|
| }
|
| }
|
|
|
|
|