Add encoder support on FWD_KF update

The status for reset_decoder_state is not needed to be explicitly
signaled, as the forward coded keyframe now has to be specified as
KEY_FRAME for its frame type. Whenever a show_existing_frame points
to a to-show frame as KEY_FRAME, it will be identified as forwarded
coded keyframe. Intra only frames are no longer considered as forward
coded keyframe.

Change-Id: I1b612dfe50e669f433aba4a3b5a47e378e4311ee
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index ed77a85..3ddf3db 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -3283,12 +3283,12 @@
 #endif
 
 #if CONFIG_FWD_KF
-    if (cm->reset_decoder_state && !frame_bufs[frame_to_show].intra_only) {
+    if (cm->reset_decoder_state &&
+        frame_bufs[frame_to_show].frame_type != KEY_FRAME) {
       aom_internal_error(
           &cm->error, AOM_CODEC_UNSUP_BITSTREAM,
-          "show_existing_frame to reset state on non-intra_only");
+          "show_existing_frame to reset state on KEY_FRAME only");
     }
-    aom_wb_write_bit(wb, cm->reset_decoder_state);
 #endif  // CONFIG_FWD_KF
 
     return;
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 2ab88ad..5f8a46b 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -5852,6 +5852,7 @@
 
   // frame type has been decided outside of this function call
   cm->cur_frame->intra_only = cm->frame_type == KEY_FRAME || cm->intra_only;
+  cm->cur_frame->frame_type = cm->frame_type;
   cm->use_ref_frame_mvs = !cpi->oxcf.disable_tempmv &&
                           !cm->cur_frame->intra_only &&
                           frame_might_use_prev_frame_mvs(cm);