Revert "Revert "Encode log events periodically instead of for every event.""

This reverts commit 33c5c7f5e4f018a5103770021328fc530d451d75.

Reason for revert: Fix broken API change.

TBR=sprang@webrtc.org,solenberg@webrtc.org
TBRing because only pc/ and api/ have changed since last LGTMed version.

Original change's description:
> Revert "Encode log events periodically instead of for every event."
>
> This reverts commit b154c27e72fddb6c0d7cac69a9c68fff22154519.
>
> Reason for revert: Broke the internal project.
>
> Original change's description:
> > Encode log events periodically instead of for every event.
> >
> > Updated unit test to take output_period and random seed as parameters.
> > Updated the peerconnection interface to allow passing in an output_period.
> >
> > This is in preparation of some upcoming CLs that will change the format
> > to store batches of delta-encoded values.
> >
> >
> > Bug: webrtc:8111
> > Change-Id: Id5d9844dfad8d8edad346cd7cbebc7eadaaa5416
> > Reviewed-on: https://webrtc-review.googlesource.com/22600
> > Commit-Queue: Björn Terelius <terelius@webrtc.org>
> > Reviewed-by: Elad Alon <eladalon@webrtc.org>
> > Reviewed-by: Tommi <tommi@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20736}
>
> Change-Id: I2257c46c014adb8c7c4fb28538635cabed1f2229
> Bug: webrtc:8111
> Reviewed-on: https://webrtc-review.googlesource.com/24160
> Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
> Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20738}

Bug: webrtc:8111
Change-Id: Ie69862cd52d11c1e15adeb6e2caacafe16863c80
Reviewed-on: https://webrtc-review.googlesource.com/24620
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20811}
diff --git a/pc/peerconnection.cc b/pc/peerconnection.cc
index 53c891e..e4864c9 100644
--- a/pc/peerconnection.cc
+++ b/pc/peerconnection.cc
@@ -1956,19 +1956,23 @@
                               ? RtcEventLog::kUnlimitedOutput
                               : rtc::saturated_cast<size_t>(max_size_bytes);
   return StartRtcEventLog(
-      rtc::MakeUnique<RtcEventLogOutputFile>(file, max_size));
+      rtc::MakeUnique<RtcEventLogOutputFile>(file, max_size),
+      webrtc::RtcEventLog::kImmediateOutput);
 }
 
-bool PeerConnection::StartRtcEventLog(
-    std::unique_ptr<RtcEventLogOutput> output) {
+bool PeerConnection::StartRtcEventLog(std::unique_ptr<RtcEventLogOutput> output,
+                                      int64_t output_period_ms) {
   // TODO(eladalon): In C++14, this can be done with a lambda.
   struct Functor {
-    bool operator()() { return pc->StartRtcEventLog_w(std::move(output)); }
+    bool operator()() {
+      return pc->StartRtcEventLog_w(std::move(output), output_period_ms);
+    }
     PeerConnection* const pc;
     std::unique_ptr<RtcEventLogOutput> output;
+    const int64_t output_period_ms;
   };
-  return worker_thread()->Invoke<bool>(RTC_FROM_HERE,
-                                       Functor{this, std::move(output)});
+  return worker_thread()->Invoke<bool>(
+      RTC_FROM_HERE, Functor{this, std::move(output), output_period_ms});
 }
 
 void PeerConnection::StopRtcEventLog() {
@@ -3203,11 +3207,12 @@
 }
 
 bool PeerConnection::StartRtcEventLog_w(
-    std::unique_ptr<RtcEventLogOutput> output) {
+    std::unique_ptr<RtcEventLogOutput> output,
+    int64_t output_period_ms) {
   if (!event_log_) {
     return false;
   }
-  return event_log_->StartLogging(std::move(output));
+  return event_log_->StartLogging(std::move(output), output_period_ms);
 }
 
 void PeerConnection::StopRtcEventLog_w() {
diff --git a/pc/peerconnection.h b/pc/peerconnection.h
index 0b00588..2b36a86 100644
--- a/pc/peerconnection.h
+++ b/pc/peerconnection.h
@@ -177,7 +177,8 @@
 
   RTC_DEPRECATED bool StartRtcEventLog(rtc::PlatformFile file,
                                        int64_t max_size_bytes) override;
-  bool StartRtcEventLog(std::unique_ptr<RtcEventLogOutput> output) override;
+  bool StartRtcEventLog(std::unique_ptr<RtcEventLogOutput> output,
+                        int64_t output_period_ms) override;
   void StopRtcEventLog() override;
 
   void Close() override;
@@ -505,7 +506,8 @@
 
   // Starts output of an RTC event log to the given output object.
   // This function should only be called from the worker thread.
-  bool StartRtcEventLog_w(std::unique_ptr<RtcEventLogOutput> output);
+  bool StartRtcEventLog_w(std::unique_ptr<RtcEventLogOutput> output,
+                          int64_t output_period_ms);
 
   // Stops recording an RTC event log.
   // This function should only be called from the worker thread.
diff --git a/pc/peerconnection_integrationtest.cc b/pc/peerconnection_integrationtest.cc
index 2fc471c..90aad09 100644
--- a/pc/peerconnection_integrationtest.cc
+++ b/pc/peerconnection_integrationtest.cc
@@ -3521,7 +3521,8 @@
   ON_CALL(*output, IsActive()).WillByDefault(testing::Return(true));
   ON_CALL(*output, Write(::testing::_)).WillByDefault(testing::Return(true));
   EXPECT_CALL(*output, Write(::testing::_)).Times(::testing::AtLeast(1));
-  EXPECT_TRUE(caller()->pc()->StartRtcEventLog(std::move(output)));
+  EXPECT_TRUE(caller()->pc()->StartRtcEventLog(
+      std::move(output), webrtc::RtcEventLog::kImmediateOutput));
 
   caller()->AddAudioVideoMediaStream();
   caller()->CreateAndSetAndSignalOffer();
diff --git a/pc/peerconnectioninterface_unittest.cc b/pc/peerconnectioninterface_unittest.cc
index b0423a3..409fa91 100644
--- a/pc/peerconnectioninterface_unittest.cc
+++ b/pc/peerconnectioninterface_unittest.cc
@@ -3246,7 +3246,8 @@
   rtc::PlatformFile file = 0;
   int64_t max_size_bytes = 1024;
   EXPECT_FALSE(pc_->StartRtcEventLog(
-      rtc::MakeUnique<webrtc::RtcEventLogOutputFile>(file, max_size_bytes)));
+      rtc::MakeUnique<webrtc::RtcEventLogOutputFile>(file, max_size_bytes),
+      webrtc::RtcEventLog::kImmediateOutput));
   pc_->StopRtcEventLog();
 }