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;
}
}