| Index: source/libvpx/vp9/encoder/vp9_rdopt.c
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_rdopt.c (revision 271012)
|
| +++ source/libvpx/vp9/encoder/vp9_rdopt.c (working copy)
|
| @@ -745,7 +745,8 @@
|
| int use_fast_coef_casting) {
|
| MACROBLOCKD *const xd = &x->e_mbd;
|
| const struct macroblockd_plane *const pd = &xd->plane[plane];
|
| - struct rdcost_block_args args = { 0 };
|
| + struct rdcost_block_args args;
|
| + vp9_zero(args);
|
| args.x = x;
|
| args.best_rd = ref_best_rd;
|
| args.use_fast_coef_costing = use_fast_coef_casting;
|
| @@ -806,7 +807,7 @@
|
| {INT64_MAX, INT64_MAX},
|
| {INT64_MAX, INT64_MAX},
|
| {INT64_MAX, INT64_MAX}};
|
| - int n, m;
|
| + TX_SIZE n, m;
|
| int s0, s1;
|
| const TX_SIZE max_mode_tx_size = tx_mode_to_biggest_tx_size[cm->tx_mode];
|
| int64_t best_rd = INT64_MAX;
|
| @@ -889,7 +890,7 @@
|
| {INT64_MAX, INT64_MAX},
|
| {INT64_MAX, INT64_MAX},
|
| {INT64_MAX, INT64_MAX}};
|
| - int n, m;
|
| + TX_SIZE n, m;
|
| int s0, s1;
|
| double scale_rd[TX_SIZES] = {1.73, 1.44, 1.20, 1.00};
|
| const TX_SIZE max_mode_tx_size = tx_mode_to_biggest_tx_size[cm->tx_mode];
|
| @@ -961,7 +962,7 @@
|
|
|
| vp9_subtract_plane(x, bs, 0);
|
|
|
| - if (cpi->sf.tx_size_search_method == USE_LARGESTALL) {
|
| + if (cpi->sf.tx_size_search_method == USE_LARGESTALL || xd->lossless) {
|
| vpx_memset(txfm_cache, 0, TX_MODES * sizeof(int64_t));
|
| choose_largest_txfm_size(cpi, x, rate, distortion, skip, sse,
|
| ref_best_rd, bs);
|
| @@ -999,7 +1000,7 @@
|
| MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi;
|
|
|
| assert(bs == mbmi->sb_type);
|
| - if (cpi->sf.tx_size_search_method != USE_FULL_RD) {
|
| + if (cpi->sf.tx_size_search_method != USE_FULL_RD || xd->lossless) {
|
| vpx_memset(txfm_cache, 0, TX_MODES * sizeof(int64_t));
|
| choose_largest_txfm_size(cpi, x, rate, distortion, skip, sse,
|
| ref_best_rd, bs);
|
| @@ -2312,7 +2313,7 @@
|
| MACROBLOCKD *xd = &x->e_mbd;
|
| const VP9_COMMON *cm = &cpi->common;
|
| MB_MODE_INFO *mbmi = &xd->mi[0]->mbmi;
|
| - struct buf_2d backup_yv12[MAX_MB_PLANE] = {{0}};
|
| + struct buf_2d backup_yv12[MAX_MB_PLANE] = {{0, 0}};
|
| int bestsme = INT_MAX;
|
| int step_param;
|
| int sadpb = x->sadperbit16;
|
| @@ -2514,8 +2515,7 @@
|
| bestsme = vp9_refining_search_8p_c(x, &tmp_mv, sadpb,
|
| search_range,
|
| &cpi->fn_ptr[bsize],
|
| - &ref_mv[id].as_mv, second_pred,
|
| - pw, ph);
|
| + &ref_mv[id].as_mv, second_pred);
|
| if (bestsme < INT_MAX)
|
| bestsme = vp9_get_mvpred_av_var(x, &tmp_mv, &ref_mv[id].as_mv,
|
| second_pred, &cpi->fn_ptr[bsize], 1);
|
| @@ -3069,7 +3069,7 @@
|
| int64_t best_pred_rd[REFERENCE_MODES];
|
| int64_t best_filter_rd[SWITCHABLE_FILTER_CONTEXTS];
|
| int64_t best_filter_diff[SWITCHABLE_FILTER_CONTEXTS];
|
| - MB_MODE_INFO best_mbmode = { 0 };
|
| + MB_MODE_INFO best_mbmode;
|
| int mode_index, best_mode_index = -1;
|
| unsigned int ref_costs_single[MAX_REF_FRAMES], ref_costs_comp[MAX_REF_FRAMES];
|
| vp9_prob comp_mode_p;
|
| @@ -3095,7 +3095,7 @@
|
| const int intra_y_mode_mask =
|
| cpi->sf.intra_y_mode_mask[max_txsize_lookup[bsize]];
|
| int disable_inter_mode_mask = cpi->sf.disable_inter_mode_mask[bsize];
|
| -
|
| + vp9_zero(best_mbmode);
|
| x->skip_encode = cpi->sf.skip_encode_frame && x->q_index < QIDX_SKIP_THRESH;
|
|
|
| estimate_ref_frame_costs(cm, xd, segment_id, ref_costs_single, ref_costs_comp,
|
| @@ -3678,7 +3678,7 @@
|
| int64_t best_pred_rd[REFERENCE_MODES];
|
| int64_t best_filter_rd[SWITCHABLE_FILTER_CONTEXTS];
|
| int64_t best_filter_diff[SWITCHABLE_FILTER_CONTEXTS];
|
| - MB_MODE_INFO best_mbmode = { 0 };
|
| + MB_MODE_INFO best_mbmode;
|
| int ref_index, best_ref_index = 0;
|
| unsigned int ref_costs_single[MAX_REF_FRAMES], ref_costs_comp[MAX_REF_FRAMES];
|
| vp9_prob comp_mode_p;
|
| @@ -3698,6 +3698,7 @@
|
|
|
| x->skip_encode = cpi->sf.skip_encode_frame && x->q_index < QIDX_SKIP_THRESH;
|
| vpx_memset(x->zcoeff_blk[TX_4X4], 0, 4);
|
| + vp9_zero(best_mbmode);
|
|
|
| for (i = 0; i < 4; i++) {
|
| int j;
|
|
|