Revert of Collecting encode_time_ms for each frame (patchset #13 id:220001 of https://codereview.webrtc.org/1374233002/ )

Reason for revert:
Breaks EndToEndTest.AssignsTransportSequenceNumbers in video_engine_tests
on several bots:
http://build.chromium.org/p/client.webrtc/builders/Linux64%20Debug/builds/5507
http://build.chromium.org/p/client.webrtc/builders/Mac64%20Debug/builds/4815
http://build.chromium.org/p/client.webrtc/builders/Win%20SyzyASan/builds/3272
http://build.chromium.org/p/client.webrtc/builders/Linux%20Memcheck/builds/4414

It seems very unfortunate that it breaks on _exactly_ the bot configs that aren't covered by the CQ trybots.

Original issue's description:
> Collecting encode_time_ms for each frame.
>
> Also, in Sample struct, replacing double with the original type.
> It makes more sense to save the original data as truthful as possible, and then
> convert it to double later if necessary (in the plot script).
>
> Committed: https://crrev.com/092b13384e57b33e2003d9736dfa1f491e76f938
> Cr-Commit-Position: refs/heads/master@{#10184}

TBR=sprang@webrtc.org,pbos@webrtc.org,mflodman@webrtc.org,asapersson@webrtc.org,ivica@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1383283005

Cr-Commit-Position: refs/heads/master@{#10185}
diff --git a/webrtc/video/full_stack_plot.py b/webrtc/video/full_stack_plot.py
index 4e09b41..0e89901 100755
--- a/webrtc/video/full_stack_plot.py
+++ b/webrtc/video/full_stack_plot.py
@@ -34,16 +34,15 @@
 
 # Fields
 DROPPED = 0
-INPUT_TIME = 1              # ms (timestamp)
-SEND_TIME = 2               # ms (timestamp)
-RECV_TIME = 3               # ms (timestamp)
-RENDER_TIME = 4             # ms (timestamp)
-ENCODED_FRAME_SIZE = 5      # bytes
-PSNR = 6
-SSIM = 7
-ENCODE_TIME = 8             # ms (time interval)
+INPUT_TIME = 1              # ms
+SEND_TIME = 2               # ms
+RECV_TIME = 3               # ms
+ENCODED_FRAME_SIZE = 4      # bytes
+PSNR = 5
+SSIM = 6
+RENDER_TIME = 7             # ms
 
-TOTAL_RAW_FIELDS = 9
+TOTAL_RAW_FIELDS = 8
 
 SENDER_TIME = TOTAL_RAW_FIELDS + 0
 RECEIVER_TIME = TOTAL_RAW_FIELDS + 1
@@ -67,7 +66,6 @@
     (PSNR, "psnr", "PSNR"),
     (SSIM, "ssim", "SSIM"),
     (RENDER_TIME, "render_time_ms", "render time"),
-    (ENCODE_TIME, "encode_time_ms", "encode time"),
     # Auto-generated
     (SENDER_TIME, "sender_time", "sender time"),
     (RECEIVER_TIME, "receiver_time", "receiver time"),
diff --git a/webrtc/video/video_capture_input.cc b/webrtc/video/video_capture_input.cc
index 3e815a2..25d408b 100644
--- a/webrtc/video/video_capture_input.cc
+++ b/webrtc/video/video_capture_input.cc
@@ -29,13 +29,11 @@
 namespace webrtc {
 
 namespace internal {
-VideoCaptureInput::VideoCaptureInput(
-    ProcessThread* module_process_thread,
-    VideoCaptureCallback* frame_callback,
-    VideoRenderer* local_renderer,
-    SendStatisticsProxy* stats_proxy,
-    CpuOveruseObserver* overuse_observer,
-    EncodingTimeObserver* encoding_time_observer)
+VideoCaptureInput::VideoCaptureInput(ProcessThread* module_process_thread,
+                                     VideoCaptureCallback* frame_callback,
+                                     VideoRenderer* local_renderer,
+                                     SendStatisticsProxy* stats_proxy,
+                                     CpuOveruseObserver* overuse_observer)
     : capture_cs_(CriticalSectionWrapper::CreateCriticalSection()),
       module_process_thread_(module_process_thread),
       frame_callback_(frame_callback),
@@ -54,8 +52,7 @@
       overuse_detector_(new OveruseFrameDetector(Clock::GetRealTimeClock(),
                                                  CpuOveruseOptions(),
                                                  overuse_observer,
-                                                 stats_proxy)),
-      encoding_time_observer_(encoding_time_observer) {
+                                                 stats_proxy)) {
   encoder_thread_->Start();
   encoder_thread_->SetPriority(kHighPriority);
   module_process_thread_->RegisterModule(overuse_detector_.get());
@@ -152,10 +149,6 @@
           Clock::GetRealTimeClock()->TimeInMilliseconds() - encode_start_time);
       overuse_detector_->FrameEncoded(encode_time_ms);
       stats_proxy_->OnEncodedFrame(encode_time_ms);
-      if (encoding_time_observer_) {
-        encoding_time_observer_->OnReportEncodedTime(
-            deliver_frame.ntp_time_ms(), encode_time_ms);
-      }
     }
   }
   // We're done!
diff --git a/webrtc/video/video_capture_input.h b/webrtc/video/video_capture_input.h
index 1248296..e2ef07e 100644
--- a/webrtc/video/video_capture_input.h
+++ b/webrtc/video/video_capture_input.h
@@ -55,8 +55,7 @@
                     VideoCaptureCallback* frame_callback,
                     VideoRenderer* local_renderer,
                     SendStatisticsProxy* send_stats_proxy,
-                    CpuOveruseObserver* overuse_observer,
-                    EncodingTimeObserver* encoding_time_observer);
+                    CpuOveruseObserver* overuse_observer);
   ~VideoCaptureInput();
 
   void IncomingCapturedFrame(const VideoFrame& video_frame) override;
@@ -91,7 +90,6 @@
   const int64_t delta_ntp_internal_ms_;
 
   rtc::scoped_ptr<OveruseFrameDetector> overuse_detector_;
-  EncodingTimeObserver* const encoding_time_observer_;
 };
 
 }  // namespace internal
diff --git a/webrtc/video/video_capture_input_unittest.cc b/webrtc/video/video_capture_input_unittest.cc
index 6fc8f75..f1bd656 100644
--- a/webrtc/video/video_capture_input_unittest.cc
+++ b/webrtc/video/video_capture_input_unittest.cc
@@ -64,7 +64,7 @@
     Config config;
     input_.reset(new internal::VideoCaptureInput(
         mock_process_thread_.get(), mock_frame_callback_.get(), nullptr,
-        &stats_proxy_, nullptr, nullptr));
+        &stats_proxy_, nullptr));
   }
 
   virtual void TearDown() {
diff --git a/webrtc/video/video_quality_test.cc b/webrtc/video/video_quality_test.cc
index c0f5754..c452e11 100644
--- a/webrtc/video/video_quality_test.cc
+++ b/webrtc/video/video_quality_test.cc
@@ -42,16 +42,16 @@
                       public Transport,
                       public VideoRenderer,
                       public VideoCaptureInput,
-                      public EncodedFrameObserver,
-                      public EncodingTimeObserver {
+                      public EncodedFrameObserver {
  public:
-  VideoAnalyzer(Transport* transport,
+  VideoAnalyzer(VideoCaptureInput* input,
+                Transport* transport,
                 const std::string& test_label,
                 double avg_psnr_threshold,
                 double avg_ssim_threshold,
                 int duration_frames,
                 FILE* graph_data_output_file)
-      : input_(nullptr),
+      : input_(input),
         transport_(transport),
         receiver_(nullptr),
         send_stream_(nullptr),
@@ -123,12 +123,6 @@
     return receiver_->DeliverPacket(media_type, packet, length, packet_time);
   }
 
-  // EncodingTimeObserver.
-  void OnReportEncodedTime(int64_t ntp_time_ms, int encode_time_ms) override {
-    rtc::CritScope crit(&comparison_lock_);
-    samples_encode_time_ms_[ntp_time_ms] = encode_time_ms;
-  }
-
   void IncomingCapturedFrame(const VideoFrame& video_frame) override {
     VideoFrame copy = video_frame;
     copy.set_timestamp(copy.ntp_time_ms() * 90);
@@ -285,31 +279,31 @@
   };
 
   struct Sample {
-    Sample(int dropped,
-           int64_t input_time_ms,
-           int64_t send_time_ms,
-           int64_t recv_time_ms,
-           int64_t render_time_ms,
-           size_t encoded_frame_size,
+    Sample(double dropped,
+           double input_time_ms,
+           double send_time_ms,
+           double recv_time_ms,
+           double encoded_frame_size,
            double psnr,
-           double ssim)
+           double ssim,
+           double render_time_ms)
         : dropped(dropped),
           input_time_ms(input_time_ms),
           send_time_ms(send_time_ms),
           recv_time_ms(recv_time_ms),
-          render_time_ms(render_time_ms),
           encoded_frame_size(encoded_frame_size),
           psnr(psnr),
-          ssim(ssim) {}
+          ssim(ssim),
+          render_time_ms(render_time_ms) {}
 
-    int dropped;
-    int64_t input_time_ms;
-    int64_t send_time_ms;
-    int64_t recv_time_ms;
-    int64_t render_time_ms;
-    size_t encoded_frame_size;
+    double dropped;
+    double input_time_ms;
+    double send_time_ms;
+    double recv_time_ms;
+    double encoded_frame_size;
     double psnr;
     double ssim;
+    double render_time_ms;
   };
 
   void AddFrameComparison(const VideoFrame& reference,
@@ -471,8 +465,8 @@
     if (graph_data_output_file_) {
       samples_.push_back(
           Sample(comparison.dropped, input_time_ms, comparison.send_time_ms,
-                 comparison.recv_time_ms, comparison.render_time_ms,
-                 comparison.encoded_frame_size, psnr, ssim));
+                 comparison.recv_time_ms, comparison.encoded_frame_size, psnr,
+                 ssim, comparison.render_time_ms));
     }
     psnr_.AddSample(psnr);
     ssim_.AddSample(ssim);
@@ -518,39 +512,21 @@
             "input_time_ms "
             "send_time_ms "
             "recv_time_ms "
-            "render_time_ms "
             "encoded_frame_size "
             "psnr "
             "ssim "
-            "encode_time_ms\n");
-    int missing_encode_time_samples = 0;
+            "render_time_ms\n");
     for (const Sample& sample : samples_) {
-      auto it = samples_encode_time_ms_.find(sample.input_time_ms);
-      int encode_time_ms;
-      if (it != samples_encode_time_ms_.end()) {
-        encode_time_ms = it->second;
-      } else {
-        ++missing_encode_time_samples;
-        encode_time_ms = -1;
-      }
-      fprintf(out, "%d %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRIuS
-                   " %lf %lf %d\n",
-              sample.dropped, sample.input_time_ms, sample.send_time_ms,
-              sample.recv_time_ms, sample.render_time_ms,
+      fprintf(out, "%lf %lf %lf %lf %lf %lf %lf %lf\n", sample.dropped,
+              sample.input_time_ms, sample.send_time_ms, sample.recv_time_ms,
               sample.encoded_frame_size, sample.psnr, sample.ssim,
-              encode_time_ms);
-    }
-    if (missing_encode_time_samples) {
-      fprintf(stderr,
-              "Warning: Missing encode_time_ms samples for %d frame(s).\n",
-              missing_encode_time_samples);
+              sample.render_time_ms);
     }
   }
 
   const std::string test_label_;
   FILE* const graph_data_output_file_;
   std::vector<Sample> samples_ GUARDED_BY(comparison_lock_);
-  std::map<int64_t, int> samples_encode_time_ms_ GUARDED_BY(comparison_lock_);
   test::Statistics sender_time_ GUARDED_BY(comparison_lock_);
   test::Statistics receiver_time_ GUARDED_BY(comparison_lock_);
   test::Statistics psnr_ GUARDED_BY(comparison_lock_);
@@ -761,7 +737,7 @@
       static_cast<uint8_t>(params.common.tl_discard_threshold), 0);
   test::DirectTransport recv_transport(params.pipe);
   VideoAnalyzer analyzer(
-      &send_transport, params.analyzer.test_label,
+      nullptr, &send_transport, params.analyzer.test_label,
       params.analyzer.avg_psnr_threshold, params.analyzer.avg_ssim_threshold,
       params.analyzer.test_durations_secs * params.common.fps,
       graph_data_output_file);
@@ -775,7 +751,6 @@
   recv_transport.SetReceiver(sender_call_->Receiver());
 
   SetupFullStack(params, &analyzer, &recv_transport);
-  send_config_.encoding_time_observer = &analyzer;
   receive_configs_[0].renderer = &analyzer;
   for (auto& config : receive_configs_)
     config.pre_decode_callback = &analyzer;
diff --git a/webrtc/video/video_send_stream.cc b/webrtc/video/video_send_stream.cc
index 953aa35..16d80da 100644
--- a/webrtc/video/video_send_stream.cc
+++ b/webrtc/video/video_send_stream.cc
@@ -162,7 +162,7 @@
 
   input_.reset(new internal::VideoCaptureInput(
       module_process_thread_, vie_encoder_, config_.local_renderer,
-      &stats_proxy_, this, config_.encoding_time_observer));
+      &stats_proxy_, this));
 
   // 28 to match packet overhead in ModuleRtpRtcpImpl.
   RTC_DCHECK_LE(config_.rtp.max_packet_size, static_cast<size_t>(0xFFFF - 28));
diff --git a/webrtc/video_send_stream.h b/webrtc/video_send_stream.h
index 0c0af80..04f4fea 100644
--- a/webrtc/video_send_stream.h
+++ b/webrtc/video_send_stream.h
@@ -26,13 +26,6 @@
 class LoadObserver;
 class VideoEncoder;
 
-class EncodingTimeObserver {
- public:
-  virtual ~EncodingTimeObserver() {}
-
-  virtual void OnReportEncodedTime(int64_t ntp_time_ms, int encode_time_ms) = 0;
-};
-
 // Class to deliver captured frame to the video send stream.
 class VideoCaptureInput {
  public:
@@ -159,11 +152,6 @@
     // below the minimum configured bitrate. If this variable is false, the
     // stream may send at a rate higher than the estimated available bitrate.
     bool suspend_below_min_bitrate = false;
-
-    // Called for each encoded frame. Passes the total time spent on encoding.
-    // TODO(ivica): Consolidate with post_encode_callback:
-    // https://code.google.com/p/webrtc/issues/detail?id=5042
-    EncodingTimeObserver* encoding_time_observer = nullptr;
   };
 
   // Gets interface used to insert captured frames. Valid as long as the