Delete batch mode from VideoProcessorIntegrationTest.

After landing https://codereview.webrtc.org/2997283002/,
batch mode will no longer be needed.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3005593002
Cr-Original-Commit-Position: refs/heads/master@{#19520}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 9dbd084761208bd161f10a3b3bcb6295339c15e9
diff --git a/modules/video_coding/codecs/test/plot_videoprocessor_integrationtest.cc b/modules/video_coding/codecs/test/plot_videoprocessor_integrationtest.cc
index 468a718..b8f152d 100644
--- a/modules/video_coding/codecs/test/plot_videoprocessor_integrationtest.cc
+++ b/modules/video_coding/codecs/test/plot_videoprocessor_integrationtest.cc
@@ -30,7 +30,6 @@
 const bool kFrameDropperOn = false;
 
 // Test settings.
-const bool kBatchMode = true;
 const bool kVerboseLogging = true;
 const float kPacketLoss = 0.0f;
 const VisualizationParams kVisualizationParams = {
@@ -59,7 +58,7 @@
                int framerate,
                const std::string& filename) {
     SetTestConfig(&config_, hw_codec_, kUseSingleCore, kPacketLoss, filename,
-                  kVerboseLogging, kBatchMode);
+                  kVerboseLogging);
     SetCodecSettings(&config_, codec_type_, kNumTemporalLayers,
                      kErrorConcealmentOn, kDenoisingOn, kFrameDropperOn,
                      kSpatialResizeOn, kResilienceOn, width, height);
diff --git a/modules/video_coding/codecs/test/videoprocessor.h b/modules/video_coding/codecs/test/videoprocessor.h
index 49a7b2e..a8c9858 100644
--- a/modules/video_coding/codecs/test/videoprocessor.h
+++ b/modules/video_coding/codecs/test/videoprocessor.h
@@ -113,12 +113,6 @@
 
   // If HW or SW codec should be used.
   bool hw_codec = false;
-
-  // In batch mode, the VideoProcessor is fed all the frames for processing
-  // before any metrics are calculated. This is useful for pipelining HW codecs,
-  // for which some calculated metrics otherwise would be incorrect. The
-  // downside with batch mode is that mid-test rate allocation is not supported.
-  bool batch_mode = false;
 };
 
 // Handles encoding/decoding of video using the VideoEncoder/VideoDecoder
diff --git a/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc b/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc
index 87dc5f3..04609bf 100644
--- a/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc
+++ b/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc
@@ -22,7 +22,6 @@
 const bool kUseSingleCore = true;
 const bool kVerboseLogging = false;
 const bool kHwCodec = false;
-const bool kBatchMode = false;
 
 // Codec settings.
 const bool kResilienceOn = true;
@@ -49,7 +48,7 @@
 // not been added.
 TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossH264) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecH264, 1, false, false, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -77,7 +76,7 @@
 // One key frame (first frame only) in sequence.
 TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossVP9) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -99,7 +98,7 @@
 // lower. One key frame (first frame only) in sequence.
 TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLossVP9) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.05f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -123,7 +122,7 @@
 // One key frame (first frame only) in sequence.
 TEST_F(VideoProcessorIntegrationTest, ProcessNoLossChangeBitRateVP9) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -155,7 +154,7 @@
 TEST_F(VideoProcessorIntegrationTest,
        ProcessNoLossChangeFrameRateFrameDropVP9) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -180,7 +179,7 @@
 // VP9: Run with no packet loss and denoiser on. One key frame (first frame).
 TEST_F(VideoProcessorIntegrationTest, ProcessNoLossDenoiserOnVP9) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP9, 1, false, true, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -204,7 +203,7 @@
 TEST_F(VideoProcessorIntegrationTest,
        DISABLED_ProcessNoLossSpatialResizeFrameDropVP9) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, true,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -232,7 +231,7 @@
 // to -1 below means no periodic key frames in test.
 TEST_F(VideoProcessorIntegrationTest, ProcessZeroPacketLoss) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -254,7 +253,7 @@
 // lower. One key frame (first frame only) in sequence.
 TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLoss) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.05f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -276,7 +275,7 @@
 // One key frame (first frame only) in sequence.
 TEST_F(VideoProcessorIntegrationTest, Process10PercentPacketLoss) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.1f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -294,30 +293,6 @@
                               kNoVisualizationParams);
 }
 
-// This test is identical to VideoProcessorIntegrationTest.ProcessZeroPacketLoss
-// except that |batch_mode| is turned on. The main point of this test is to see
-// that the reported stats are not wildly varying between batch mode and the
-// regular online mode.
-TEST_F(VideoProcessorIntegrationTest, ProcessInBatchMode) {
-  SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, true /* batch_mode */);
-  SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
-                   kResilienceOn, kCifWidth, kCifHeight);
-
-  RateProfile rate_profile;
-  SetRateProfile(&rate_profile, 0, 500, 30, 0);
-  rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
-  rate_profile.num_frames = kNumFramesShort;
-
-  std::vector<RateControlThresholds> rc_thresholds;
-  AddRateControlThresholds(0, 40, 20, 10, 15, 0, 1, &rc_thresholds);
-
-  QualityThresholds quality_thresholds(34.95, 33.0, 0.90, 0.89);
-
-  ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds,
-                              kNoVisualizationParams);
-}
-
 #endif  // !defined(WEBRTC_IOS)
 
 // The tests below are currently disabled for Android. For ARM, the encoder
@@ -342,7 +317,7 @@
 #endif
 TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossChangeBitRateVP8) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -382,7 +357,7 @@
 TEST_F(VideoProcessorIntegrationTest,
        MAYBE_ProcessNoLossChangeFrameRateFrameDropVP8) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
@@ -418,7 +393,7 @@
 #endif
 TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossTemporalLayersVP8) {
   SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif,
-                kVerboseLogging, kBatchMode);
+                kVerboseLogging);
   SetCodecSettings(&config_, kVideoCodecVP8, 3, false, true, true, false,
                    kResilienceOn, kCifWidth, kCifHeight);
 
diff --git a/modules/video_coding/codecs/test/videoprocessor_integrationtest.h b/modules/video_coding/codecs/test/videoprocessor_integrationtest.h
index d87ffed..f971a01 100644
--- a/modules/video_coding/codecs/test/videoprocessor_integrationtest.h
+++ b/modules/video_coding/codecs/test/videoprocessor_integrationtest.h
@@ -492,59 +492,34 @@
     ResetRateControlMetrics(
         rate_profile.frame_index_rate_update[update_index + 1]);
 
-    if (config_.batch_mode) {
-      // In batch mode, we calculate the metrics for all frames after all frames
-      // have been sent for encoding.
+    while (frame_number < num_frames) {
+      processor_->ProcessFrame(frame_number);
+      VerifyQpParser(frame_number);
+      const int tl_idx = TemporalLayerIndexForFrame(frame_number);
+      ++num_frames_per_update_[tl_idx];
+      ++num_frames_total_;
+      UpdateRateControlMetrics(frame_number);
 
-      for (frame_number = 0; frame_number < num_frames; ++frame_number) {
-        processor_->ProcessFrame(frame_number);
-      }
+      ++frame_number;
 
-      for (frame_number = 0; frame_number < num_frames; ++frame_number) {
-        const int tl_idx = TemporalLayerIndexForFrame(frame_number);
-        ++num_frames_per_update_[tl_idx];
-        ++num_frames_total_;
-        UpdateRateControlMetrics(frame_number);
-      }
-    } else {
-      // In online mode, we calculate the metrics for a given frame right after
-      // it has been sent for encoding.
+      // If we hit another/next update, verify stats for current state and
+      // update layers and codec with new rates.
+      if (frame_number ==
+          rate_profile.frame_index_rate_update[update_index + 1]) {
+        PrintAndMaybeVerifyRateControlMetrics(update_index, rc_thresholds);
 
-      if (config_.hw_codec) {
-        LOG(LS_WARNING) << "HW codecs should mostly be run in batch mode, "
-                           "since they may be pipelining.";
-      }
-
-      while (frame_number < num_frames) {
-        processor_->ProcessFrame(frame_number);
-        VerifyQpParser(frame_number);
-        const int tl_idx = TemporalLayerIndexForFrame(frame_number);
-        ++num_frames_per_update_[tl_idx];
-        ++num_frames_total_;
-        UpdateRateControlMetrics(frame_number);
-
-        ++frame_number;
-
-        // If we hit another/next update, verify stats for current state and
-        // update layers and codec with new rates.
-        if (frame_number ==
-            rate_profile.frame_index_rate_update[update_index + 1]) {
-          PrintAndMaybeVerifyRateControlMetrics(update_index, rc_thresholds);
-
-          // Update layer rates and the codec with new rates.
-          ++update_index;
-          bitrate_kbps_ = rate_profile.target_bit_rate[update_index];
-          framerate_ = rate_profile.input_frame_rate[update_index];
-          SetTemporalLayerRates();
-          ResetRateControlMetrics(
-              rate_profile.frame_index_rate_update[update_index + 1]);
-          processor_->SetRates(bitrate_kbps_, framerate_);
-        }
+        // Update layer rates and the codec with new rates.
+        ++update_index;
+        bitrate_kbps_ = rate_profile.target_bit_rate[update_index];
+        framerate_ = rate_profile.input_frame_rate[update_index];
+        SetTemporalLayerRates();
+        ResetRateControlMetrics(
+            rate_profile.frame_index_rate_update[update_index + 1]);
+        processor_->SetRates(bitrate_kbps_, framerate_);
       }
     }
 
-    // Verify rate control metrics for all frames (if in batch mode), or for all
-    // frames since the last rate update (if not in batch mode).
+    // Verify rate control metrics for all frames since the last rate update.
     PrintAndMaybeVerifyRateControlMetrics(update_index, rc_thresholds);
     EXPECT_EQ(num_frames, frame_number);
     EXPECT_EQ(num_frames, static_cast<int>(stats_.stats_.size()));
@@ -592,8 +567,7 @@
                             bool use_single_core,
                             float packet_loss_probability,
                             std::string filename,
-                            bool verbose_logging,
-                            bool batch_mode) {
+                            bool verbose_logging) {
     config->filename = filename;
     config->input_filename = ResourcePath(filename, "yuv");
     // Generate an output filename in a safe way.
@@ -603,7 +577,6 @@
     config->use_single_core = use_single_core;
     config->verbose = verbose_logging;
     config->hw_codec = hw_codec;
-    config->batch_mode = batch_mode;
   }
 
   static void SetCodecSettings(TestConfig* config,