Properly save and restore skip related variables Change-Id: Id52744e140585c08d047fb395b75ac9318a0b4c3
diff --git a/vp10/encoder/rdopt.c b/vp10/encoder/rdopt.c index 16deebf..2b7d8f5 100644 --- a/vp10/encoder/rdopt.c +++ b/vp10/encoder/rdopt.c
@@ -8063,6 +8063,7 @@ int_mv backup_mv = frame_mv[NEARMV][ref_frame]; int_mv cur_mv = mbmi_ext->ref_mv_stack[ref_frame][2].this_mv; MB_MODE_INFO backup_mbmi = *mbmi; + int backup_skip = x->skip; int64_t tmp_ref_rd = this_rd; int ref_idx; @@ -8095,6 +8096,7 @@ int tmp_rate = 0, tmp_rate_y = 0, tmp_rate_uv = 0; int tmp_skip = 1; int64_t tmp_dist = 0, tmp_sse = 0; + int dummy_disable_skip = 0; cur_mv = mbmi_ext->ref_mv_stack[ref_frame][2 + ref_idx].this_mv; lower_mv_precision(&cur_mv.as_mv, cm->allow_high_precision_mv); @@ -8168,6 +8170,7 @@ if (tmp_ref_rd > tmp_alt_rd) { rate2 = tmp_rate; + disable_skip = dummy_disable_skip; distortion2 = tmp_dist; skippable = tmp_skip; rate_y = tmp_rate_y; @@ -8176,6 +8179,7 @@ this_rd = tmp_alt_rd; tmp_ref_rd = tmp_alt_rd; backup_mbmi = *mbmi; + backup_skip = x->skip; #if CONFIG_VAR_TX for (i = 0; i < MAX_MB_PLANE; ++i) memcpy(x->blk_skip_drl[i], x->blk_skip[i], @@ -8183,6 +8187,7 @@ #endif } else { *mbmi = backup_mbmi; + x->skip = backup_skip; } }