Fix assertion failure with drop frames

In this CL, the update of 'cm->current_frame->frame_number'
and 'cpi->frame_index_set.show_frame_count' is handled
correctly when a frame is dropped. This fixes the assertion
failure in init_gop_frames_for_tpl() while encoding with
--drop-frame=1. The update of relevant frame counters is also
abstracted in to a new function 'update_counters_for_show_frame'.

STATS_CHANGED expected with --drop-frame=1

BUG=aomedia:3372

Change-Id: I9d01375d026d3a8d74acbe9cf12cbf8116390ec3
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 2b93c1e..4f74772 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -952,11 +952,10 @@
   frame_index_set->show_frame_count = 0;
 }
 
-static INLINE void update_frame_index_set(FRAME_INDEX_SET *frame_index_set,
-                                          int is_show_frame) {
-  if (is_show_frame) {
-    frame_index_set->show_frame_count++;
-  }
+static INLINE void update_counters_for_show_frame(AV1_COMP *const cpi) {
+  assert(cpi->common.show_frame);
+  cpi->frame_index_set.show_frame_count++;
+  cpi->common.current_frame.frame_number++;
 }
 
 AV1_PRIMARY *av1_create_primary_compressor(
@@ -3674,8 +3673,7 @@
     }
 #endif  // !CONFIG_REALTIME_ONLY
 
-    ++current_frame->frame_number;
-    update_frame_index_set(&cpi->frame_index_set, cm->show_frame);
+    update_counters_for_show_frame(cpi);
     return AOM_CODEC_OK;
   }
 
@@ -3736,6 +3734,12 @@
       av1_rc_postencode_update_drop_frame(cpi);
       release_scaled_references(cpi);
       cpi->is_dropped_frame = true;
+      // A dropped frame might not be shown but it always takes a slot in the gf
+      // group. Therefore, even when it is not shown, we still need to update
+      // the relevant frame counters.
+      if (cm->show_frame) {
+        update_counters_for_show_frame(cpi);
+      }
       return AOM_CODEC_OK;
     }
   }
@@ -3950,12 +3954,8 @@
   cm->seg.update_data = 0;
   cm->lf.mode_ref_delta_update = 0;
 
-  // A droppable frame might not be shown but it always
-  // takes a space in the gf group. Therefore, even when
-  // it is not shown, we still need update the count down.
   if (cm->show_frame) {
-    update_frame_index_set(&cpi->frame_index_set, cm->show_frame);
-    ++current_frame->frame_number;
+    update_counters_for_show_frame(cpi);
   }
 
 #if CONFIG_COLLECT_COMPONENT_TIMING