Sync prev_frame/last_show_frame update with decoder
authorJingning Han <jingning@google.com>
Wed, 22 Aug 2018 17:31:18 +0000 (10:31 -0700)
committerJingning Han <jingning@google.com>
Wed, 22 Aug 2018 22:11:10 +0000 (22:11 +0000)
Make the encoder side handling of prev_frame and last_show_frame
update synchronized with the decoder behavior.

Change-Id: I0f265391cba182d7cc266a1c327fe6b92e24ab17

vp9/encoder/vp9_encoder.c

index a057ecf..44683f0 100644 (file)
@@ -4972,7 +4972,10 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, size_t *size,
   cm->last_height = cm->height;
 
   // reset to normal state now that we are done.
-  if (!cm->show_existing_frame) cm->last_show_frame = cm->show_frame;
+  if (!cm->show_existing_frame) {
+    cm->last_show_frame = cm->show_frame;
+    cm->prev_frame = cm->cur_frame;
+  }
 
   if (cm->show_frame) {
     vp9_swap_mi_and_prev_mi(cm);
@@ -4981,7 +4984,6 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, size_t *size,
     ++cm->current_video_frame;
     if (cpi->use_svc) vp9_inc_frame_in_layer(cpi);
   }
-  cm->prev_frame = cm->cur_frame;
 
   if (cpi->use_svc) {
     cpi->svc