Fix total_time_encoded calc in AV1LevelStats

Level monitoring stats are reset every key frame,
hence total_compressed_size would be reset to 0, but
total_time_encoded would still be maintained as time
encoded from the first frame. This is incorrect and
caused the average bitrate to drop significantly in
the monitoring process after a keyframe. This commit
resets the total_time_encoded after every key frame, to
calculate the correct average bit-rate, correctly over
each key interval.

BUG=aomedia:2739

Change-Id: I9d6394ca4e520a4fac9cf743c6ff4bf0a6cbf27d
diff --git a/av1/encoder/level.c b/av1/encoder/level.c
index 3403a3a..a7005a3 100644
--- a/av1/encoder/level.c
+++ b/av1/encoder/level.c
@@ -1072,9 +1072,6 @@
 
   aom_clear_system_state();
   const double compression_ratio = av1_get_compression_ratio(cm, size);
-  const double total_time_encoded =
-      (cpi->time_stamps.prev_end_seen - cpi->time_stamps.first_ever) /
-      (double)TICKS_PER_SEC;
 
   const int temporal_layer_id = cm->temporal_layer_id;
   const int spatial_layer_id = cm->spatial_layer_id;
@@ -1131,7 +1128,9 @@
           show_frame ? count_frames(buffer, TICKS_PER_SEC) : 0;
       scan_past_frames(buffer, encoded_frames_in_last_second, level_spec,
                        level_stats);
-      level_stats->total_time_encoded = total_time_encoded;
+      level_stats->total_time_encoded +=
+          (cpi->time_stamps.prev_end_seen - cpi->time_stamps.prev_start_seen) /
+          (double)TICKS_PER_SEC;
     }
 
     DECODER_MODEL *const decoder_models = level_info->decoder_models;
diff --git a/test/level_test.cc b/test/level_test.cc
index 9fa617e..82ada98 100644
--- a/test/level_test.cc
+++ b/test/level_test.cc
@@ -129,13 +129,14 @@
 
 TEST_P(LevelTest, TestLevelMonitoringHighBitrate) {
   // To save run time, we only test speed 4.
-  if (cpu_used_ == 4 && encoding_mode_ == ::libaom_test::kTwoPassGood) {
+  if (cpu_used_ == 4) {
     libaom_test::I420VideoSource video("hantro_collage_w352h288.yuv", 352, 288,
                                        30, 1, 0, 40);
     target_level_ = kLevelKeepStats;
     cfg_.rc_target_bitrate = 4000;
+    cfg_.g_limit = 40;
     ASSERT_NO_FATAL_FAILURE(RunLoop(&video));
-    ASSERT_EQ(level_[0], 0);
+    ASSERT_EQ(level_[0], 4);
   }
 }