Revert "Remove deprecated functions from RtcEventLog"

This reverts commit 5fd6e5ec1feed9e937efbe27ba9924cee3be2b81.

Reason for revert: breaks downstream project
please still keep default arguments for CreateEventLog

Original change's description:
> Remove deprecated functions from RtcEventLog
> 
> The unified Log() interface replaces the many old LogX() functions. This helps hide dependencies between the modules which log different events.
> 
> TBR=stefan@webrtc.org
> 
> Bug: webrtc:8111
> Change-Id: I5ea9fd50ba6da87d5867513c81c5e3bdb0524a32
> Reviewed-on: https://webrtc-review.googlesource.com/2689
> Commit-Queue: Elad Alon <eladalon@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Elad Alon <eladalon@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20159}

TBR=danilchap@webrtc.org,eladalon@webrtc.org,terelius@webrtc.org,stefan@webrtc.org

Change-Id: Iefc195f5804dabc0f76b87f889ff55481f4d285b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8111
Reviewed-on: https://webrtc-review.googlesource.com/6842
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20164}
diff --git a/logging/rtc_event_log/mock/mock_rtc_event_log.h b/logging/rtc_event_log/mock/mock_rtc_event_log.h
index 6a4cdbd..1f44c0b 100644
--- a/logging/rtc_event_log/mock/mock_rtc_event_log.h
+++ b/logging/rtc_event_log/mock/mock_rtc_event_log.h
@@ -12,8 +12,13 @@
 #define LOGGING_RTC_EVENT_LOG_MOCK_MOCK_RTC_EVENT_LOG_H_
 
 #include <memory>
+#include <string>
 
 #include "logging/rtc_event_log/rtc_event_log.h"
+#include "logging/rtc_event_log/rtc_stream_config.h"
+#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
+#include "modules/rtp_rtcp/source/rtp_packet_received.h"
+#include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
 #include "test/gmock.h"
 
 namespace webrtc {
@@ -25,12 +30,76 @@
   }
   MOCK_METHOD1(StartLoggingProxy, bool(RtcEventLogOutput*));
 
+  MOCK_METHOD2(StartLogging,
+               bool(const std::string& file_name, int64_t max_size_bytes));
+
+  MOCK_METHOD2(StartLogging,
+               bool(rtc::PlatformFile log_file, int64_t max_size_bytes));
+
   MOCK_METHOD0(StopLogging, void());
 
   virtual void Log(std::unique_ptr<RtcEvent> event) {
     return LogProxy(event.get());
   }
   MOCK_METHOD1(LogProxy, void(RtcEvent*));
+
+  MOCK_METHOD1(LogVideoReceiveStreamConfig,
+               void(const rtclog::StreamConfig& config));
+
+  MOCK_METHOD1(LogVideoSendStreamConfig,
+               void(const rtclog::StreamConfig& config));
+
+  MOCK_METHOD1(LogAudioReceiveStreamConfig,
+               void(const rtclog::StreamConfig& config));
+
+  MOCK_METHOD1(LogAudioSendStreamConfig,
+               void(const rtclog::StreamConfig& config));
+  MOCK_METHOD3(LogRtpHeader,
+               void(PacketDirection direction,
+                    const uint8_t* header,
+                    size_t packet_length));
+
+  MOCK_METHOD4(LogRtpHeader,
+               void(PacketDirection direction,
+                    const uint8_t* header,
+                    size_t packet_length,
+                    int probe_cluster_id));
+
+  MOCK_METHOD3(LogRtcpPacket,
+               void(PacketDirection direction,
+                    const uint8_t* packet,
+                    size_t length));
+
+  MOCK_METHOD1(LogIncomingRtpHeader, void(const RtpPacketReceived& packet));
+
+  MOCK_METHOD2(LogOutgoingRtpHeader,
+               void(const RtpPacketToSend& packet, int probe_cluster_id));
+
+  MOCK_METHOD1(LogIncomingRtcpPacket,
+               void(rtc::ArrayView<const uint8_t> packet));
+
+  MOCK_METHOD1(LogOutgoingRtcpPacket,
+               void(rtc::ArrayView<const uint8_t> packet));
+
+  MOCK_METHOD1(LogAudioPlayout, void(uint32_t ssrc));
+
+  MOCK_METHOD3(LogLossBasedBweUpdate,
+               void(int32_t bitrate_bps,
+                    uint8_t fraction_loss,
+                    int32_t total_packets));
+
+  MOCK_METHOD2(LogDelayBasedBweUpdate,
+               void(int32_t bitrate_bps, BandwidthUsage detector_state));
+
+  MOCK_METHOD1(LogAudioNetworkAdaptation,
+               void(const AudioEncoderRuntimeConfig& config));
+
+  MOCK_METHOD4(LogProbeClusterCreated,
+               void(int id, int bitrate_bps, int min_probes, int min_bytes));
+
+  MOCK_METHOD2(LogProbeResultSuccess, void(int id, int bitrate_bps));
+  MOCK_METHOD2(LogProbeResultFailure,
+               void(int id, ProbeFailureReason failure_reason));
 };
 
 }  // namespace webrtc
diff --git a/logging/rtc_event_log/rtc_event_log.cc b/logging/rtc_event_log/rtc_event_log.cc
index 22dd287..83ba029 100644
--- a/logging/rtc_event_log/rtc_event_log.cc
+++ b/logging/rtc_event_log/rtc_event_log.cc
@@ -19,9 +19,44 @@
 #include <vector>
 
 #include "logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.h"
+// TODO(eladalon): Remove events/* when the deprecated functions are removed.
+#include "logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h"
+#include "logging/rtc_event_log/events/rtc_event_audio_playout.h"
+#include "logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h"
+#include "logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h"
+#include "logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h"
+#include "logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h"
 #include "logging/rtc_event_log/events/rtc_event_logging_started.h"
 #include "logging/rtc_event_log/events/rtc_event_logging_stopped.h"
+#include "logging/rtc_event_log/events/rtc_event_probe_cluster_created.h"
+#include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h"
+#include "logging/rtc_event_log/events/rtc_event_probe_result_success.h"
+#include "logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h"
+#include "logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h"
+#include "logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h"
+#include "logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h"
+#include "logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h"
+#include "logging/rtc_event_log/events/rtc_event_video_send_stream_config.h"
+#include "logging/rtc_event_log/output/rtc_event_log_output.h"
 #include "logging/rtc_event_log/output/rtc_event_log_output_file.h"
+#include "logging/rtc_event_log/rtc_stream_config.h"
+// TODO(eladalon): Remove these when deprecated functions are removed.
+#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
+#include "modules/remote_bitrate_estimator/include/bwe_defines.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include "modules/rtp_rtcp/source/byte_io.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/app.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/bye.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/common_header.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/extended_reports.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/psfb.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/rtpfb.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/sdes.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
+#include "modules/rtp_rtcp/source/rtp_packet_received.h"
+#include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/event.h"
@@ -31,6 +66,7 @@
 #include "rtc_base/sequenced_task_checker.h"
 #include "rtc_base/task_queue.h"
 #include "rtc_base/thread_annotations.h"
+#include "typedefs.h"  // NOLINT(build/include)
 
 namespace webrtc {
 
@@ -81,6 +117,11 @@
   explicit RtcEventLogImpl(std::unique_ptr<RtcEventLogEncoder> event_encoder);
   ~RtcEventLogImpl() override;
 
+  bool StartLogging(const std::string& file_name,
+                    int64_t max_size_bytes) override;
+  bool StartLogging(rtc::PlatformFile platform_file,
+                    int64_t max_size_bytes) override;
+
   // TODO(eladalon): We should change these name to reflect that what we're
   // actually starting/stopping is the output of the log, not the log itself.
   bool StartLogging(std::unique_ptr<RtcEventLogOutput> output) override;
@@ -88,6 +129,47 @@
 
   void Log(std::unique_ptr<RtcEvent> event) override;
 
+  void LogVideoReceiveStreamConfig(const rtclog::StreamConfig& config) override;
+  void LogVideoSendStreamConfig(const rtclog::StreamConfig& config) override;
+  void LogAudioReceiveStreamConfig(const rtclog::StreamConfig& config) override;
+  void LogAudioSendStreamConfig(const rtclog::StreamConfig& config) override;
+  // TODO(terelius): This can be removed as soon as the interface has been
+  // updated.
+  void LogRtpHeader(PacketDirection direction,
+                    const uint8_t* header,
+                    size_t packet_length) override;
+  // TODO(terelius): This can be made private, non-virtual as soon as the
+  // interface has been updated.
+  void LogRtpHeader(PacketDirection direction,
+                    const uint8_t* header,
+                    size_t packet_length,
+                    int probe_cluster_id) override;
+  void LogIncomingRtpHeader(const RtpPacketReceived& packet) override;
+  void LogOutgoingRtpHeader(const RtpPacketToSend& packet,
+                            int probe_cluster_id) override;
+  // TODO(terelius): This can be made private, non-virtual as soon as the
+  // interface has been updated.
+  void LogRtcpPacket(PacketDirection direction,
+                     const uint8_t* packet,
+                     size_t length) override;
+  void LogIncomingRtcpPacket(rtc::ArrayView<const uint8_t> packet) override;
+  void LogOutgoingRtcpPacket(rtc::ArrayView<const uint8_t> packet) override;
+  void LogAudioPlayout(uint32_t ssrc) override;
+  void LogLossBasedBweUpdate(int32_t bitrate_bps,
+                             uint8_t fraction_loss,
+                             int32_t total_packets) override;
+  void LogDelayBasedBweUpdate(int32_t bitrate_bps,
+                              BandwidthUsage detector_state) override;
+  void LogAudioNetworkAdaptation(
+      const AudioEncoderRuntimeConfig& config) override;
+  void LogProbeClusterCreated(int id,
+                              int bitrate_bps,
+                              int min_probes,
+                              int min_bytes) override;
+  void LogProbeResultSuccess(int id, int bitrate_bps) override;
+  void LogProbeResultFailure(int id,
+                             ProbeFailureReason failure_reason) override;
+
  private:
   // Appends an event to the output protobuf string, returning true on success.
   // Fails and returns false in case the limit on output size prevents the
@@ -150,6 +232,20 @@
   RTC_DCHECK_GE(count, 0);
 }
 
+bool RtcEventLogImpl::StartLogging(const std::string& file_name,
+                                   int64_t max_size_bytes) {
+  RTC_CHECK(max_size_bytes > 0 || max_size_bytes == kUnlimitedOutput);
+  return StartLogging(rtc::MakeUnique<RtcEventLogOutputFile>(
+      file_name, rtc::saturated_cast<size_t>(max_size_bytes)));
+}
+
+bool RtcEventLogImpl::StartLogging(rtc::PlatformFile platform_file,
+                                   int64_t max_size_bytes) {
+  RTC_CHECK(max_size_bytes > 0 || max_size_bytes == kUnlimitedOutput);
+  return StartLogging(rtc::MakeUnique<RtcEventLogOutputFile>(
+      platform_file, rtc::saturated_cast<size_t>(max_size_bytes)));
+}
+
 bool RtcEventLogImpl::StartLogging(std::unique_ptr<RtcEventLogOutput> output) {
   RTC_DCHECK_CALLED_SEQUENTIALLY(&owner_sequence_checker_);
 
@@ -214,6 +310,124 @@
       std::move(event), event_handler));
 }
 
+void RtcEventLogImpl::LogVideoReceiveStreamConfig(
+    const rtclog::StreamConfig& config) {
+  Log(rtc::MakeUnique<RtcEventVideoReceiveStreamConfig>(
+      rtc::MakeUnique<rtclog::StreamConfig>(config)));
+}
+
+void RtcEventLogImpl::LogVideoSendStreamConfig(
+    const rtclog::StreamConfig& config) {
+  Log(rtc::MakeUnique<RtcEventVideoSendStreamConfig>(
+      rtc::MakeUnique<rtclog::StreamConfig>(config)));
+}
+
+void RtcEventLogImpl::LogAudioReceiveStreamConfig(
+    const rtclog::StreamConfig& config) {
+  Log(rtc::MakeUnique<RtcEventAudioReceiveStreamConfig>(
+      rtc::MakeUnique<rtclog::StreamConfig>(config)));
+}
+
+void RtcEventLogImpl::LogAudioSendStreamConfig(
+    const rtclog::StreamConfig& config) {
+  Log(rtc::MakeUnique<RtcEventAudioSendStreamConfig>(
+      rtc::MakeUnique<rtclog::StreamConfig>(config)));
+}
+
+void RtcEventLogImpl::LogIncomingRtpHeader(const RtpPacketReceived& packet) {
+  Log(rtc::MakeUnique<RtcEventRtpPacketIncoming>(packet));
+}
+
+void RtcEventLogImpl::LogOutgoingRtpHeader(const RtpPacketToSend& packet,
+                                           int probe_cluster_id) {
+  Log(rtc::MakeUnique<RtcEventRtpPacketOutgoing>(packet, probe_cluster_id));
+}
+
+void RtcEventLogImpl::LogRtpHeader(PacketDirection direction,
+                                   const uint8_t* header,
+                                   size_t packet_length) {
+  LogRtpHeader(direction, header, packet_length, PacedPacketInfo::kNotAProbe);
+}
+
+void RtcEventLogImpl::LogRtpHeader(PacketDirection direction,
+                                   const uint8_t* header,
+                                   size_t packet_length,
+                                   int probe_cluster_id) {
+  // TODO(eladalon): This is highly inefficient. We're only doing this for
+  // the deprecated interface. We should remove this soon.
+  if (direction == PacketDirection::kIncomingPacket) {
+    RtpPacketReceived packet;
+    packet.Parse(header, packet_length);
+    Log(rtc::MakeUnique<RtcEventRtpPacketIncoming>(packet));
+  } else {
+    RTC_CHECK_EQ(direction, PacketDirection::kOutgoingPacket);
+    RtpPacketToSend packet(nullptr);
+    packet.Parse(header, packet_length);
+    Log(rtc::MakeUnique<RtcEventRtpPacketOutgoing>(packet, probe_cluster_id));
+  }
+}
+
+void RtcEventLogImpl::LogIncomingRtcpPacket(
+    rtc::ArrayView<const uint8_t> packet) {
+  Log(rtc::MakeUnique<RtcEventRtcpPacketIncoming>(packet));
+}
+
+void RtcEventLogImpl::LogOutgoingRtcpPacket(
+    rtc::ArrayView<const uint8_t> packet) {
+  Log(rtc::MakeUnique<RtcEventRtcpPacketOutgoing>(packet));
+}
+
+void RtcEventLogImpl::LogRtcpPacket(PacketDirection direction,
+                                    const uint8_t* packet,
+                                    size_t length) {
+  if (direction == PacketDirection::kIncomingPacket) {
+    LogIncomingRtcpPacket(rtc::ArrayView<const uint8_t>(packet, length));
+  } else {
+    RTC_CHECK_EQ(direction, PacketDirection::kOutgoingPacket);
+    LogOutgoingRtcpPacket(rtc::ArrayView<const uint8_t>(packet, length));
+  }
+}
+
+void RtcEventLogImpl::LogAudioPlayout(uint32_t ssrc) {
+  Log(rtc::MakeUnique<RtcEventAudioPlayout>(ssrc));
+}
+
+void RtcEventLogImpl::LogLossBasedBweUpdate(int32_t bitrate_bps,
+                                            uint8_t fraction_loss,
+                                            int32_t total_packets) {
+  Log(rtc::MakeUnique<RtcEventBweUpdateLossBased>(bitrate_bps, fraction_loss,
+                                                  total_packets));
+}
+
+void RtcEventLogImpl::LogDelayBasedBweUpdate(int32_t bitrate_bps,
+                                             BandwidthUsage detector_state) {
+  Log(rtc::MakeUnique<RtcEventBweUpdateDelayBased>(bitrate_bps,
+                                                   detector_state));
+}
+
+void RtcEventLogImpl::LogAudioNetworkAdaptation(
+    const AudioEncoderRuntimeConfig& config) {
+  Log(rtc::MakeUnique<RtcEventAudioNetworkAdaptation>(
+      rtc::MakeUnique<AudioEncoderRuntimeConfig>(config)));
+}
+
+void RtcEventLogImpl::LogProbeClusterCreated(int id,
+                                             int bitrate_bps,
+                                             int min_probes,
+                                             int min_bytes) {
+  Log(rtc::MakeUnique<RtcEventProbeClusterCreated>(id, bitrate_bps, min_probes,
+                                                   min_bytes));
+}
+
+void RtcEventLogImpl::LogProbeResultSuccess(int id, int bitrate_bps) {
+  Log(rtc::MakeUnique<RtcEventProbeResultSuccess>(id, bitrate_bps));
+}
+
+void RtcEventLogImpl::LogProbeResultFailure(int id,
+                                            ProbeFailureReason failure_reason) {
+  Log(rtc::MakeUnique<RtcEventProbeResultFailure>(id, failure_reason));
+}
+
 bool RtcEventLogImpl::AppendEventToString(const RtcEvent& event,
                                           std::string* output_string) {
   RTC_DCHECK_RUN_ON(&task_queue_);
diff --git a/logging/rtc_event_log/rtc_event_log.h b/logging/rtc_event_log/rtc_event_log.h
index f798045..cb9d097 100644
--- a/logging/rtc_event_log/rtc_event_log.h
+++ b/logging/rtc_event_log/rtc_event_log.h
@@ -14,13 +14,33 @@
 #include <memory>
 #include <string>
 
-#include "logging/rtc_event_log/events/rtc_event.h"
+// TODO(eladalon): Remove this include once LogIncomingRtcpPacket(), etc., have
+// been removed (they are currently deprecated).
+#include "api/array_view.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "logging/rtc_event_log/output/rtc_event_log_output.h"
+// TODO(eladalon): This is here because of ProbeFailureReason; remove this
+// dependency along with the deprecated LogProbeResultFailure().
+#include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h"
+// TODO(eladalon): Remove this #include once the deprecated versions of
+// StartLogging() have been removed.
+#include "rtc_base/platform_file.h"
 
 namespace webrtc {
 
-class Clock;
+namespace rtclog {
+class EventStream;  // Storage class automatically generated from protobuf.
+// TODO(eladalon): Get rid of this when deprecated methods are removed.
+struct StreamConfig;
+}  // namespace rtclog
 
+class Clock;
+// TODO(eladalon): The following may be removed when the deprecated methods
+// are removed.
+struct AudioEncoderRuntimeConfig;
+class RtpPacketReceived;
+class RtpPacketToSend;
+enum class BandwidthUsage;
 enum PacketDirection { kIncomingPacket = 0, kOutgoingPacket };
 
 class RtcEventLog {
@@ -35,12 +55,16 @@
   virtual ~RtcEventLog() {}
 
   // Factory method to create an RtcEventLog object.
-  static std::unique_ptr<RtcEventLog> Create(EncodingType encoding_type);
+  // TODO(eladalon): Get rid of the default value after internal projects fixed.
+  static std::unique_ptr<RtcEventLog> Create(
+      EncodingType encoding_type = EncodingType::Legacy);
   // TODO(nisse): webrtc::Clock is deprecated. Delete this method and
   // above forward declaration of Clock when
   // webrtc/system_wrappers/include/clock.h is deleted.
-  static std::unique_ptr<RtcEventLog> Create(const Clock* clock,
-                                             EncodingType encoding_type) {
+  // TODO(eladalon): Get rid of the default value after internal projects fixed.
+  static std::unique_ptr<RtcEventLog> Create(
+      const Clock* clock,
+      EncodingType encoding_type = EncodingType::Legacy) {
     return Create(encoding_type);
   }
 
@@ -51,12 +75,115 @@
   // and may close itself once it has reached the maximum size.
   virtual bool StartLogging(std::unique_ptr<RtcEventLogOutput> output) = 0;
 
+  // Starts logging a maximum of max_size_bytes bytes to the specified file.
+  // If the file already exists it will be overwritten.
+  // If max_size_bytes <= 0, logging will be active until StopLogging is called.
+  // The function has no effect and returns false if we can't start a new log
+  // e.g. because we are already logging or the file cannot be opened.
+  RTC_DEPRECATED virtual bool StartLogging(const std::string& file_name,
+                                           int64_t max_size_bytes) = 0;
+
+  // Same as above. The RtcEventLog takes ownership of the file if the call
+  // is successful, i.e. if it returns true.
+  RTC_DEPRECATED virtual bool StartLogging(rtc::PlatformFile platform_file,
+                                           int64_t max_size_bytes) = 0;
+
+  // Deprecated. Pass an explicit file size limit.
+  RTC_DEPRECATED bool StartLogging(const std::string& file_name) {
+    return StartLogging(file_name, 10000000);
+  }
+
+  // Deprecated. Pass an explicit file size limit.
+  RTC_DEPRECATED bool StartLogging(rtc::PlatformFile platform_file) {
+    return StartLogging(platform_file, 10000000);
+  }
+
   // Stops logging to file and waits until the file has been closed, after
   // which it would be permissible to read and/or modify it.
   virtual void StopLogging() = 0;
 
   // Log an RTC event (the type of event is determined by the subclass).
   virtual void Log(std::unique_ptr<RtcEvent> event) = 0;
+
+  // Logs configuration information for a video receive stream.
+  RTC_DEPRECATED virtual void LogVideoReceiveStreamConfig(
+      const rtclog::StreamConfig& config) = 0;
+
+  // Logs configuration information for a video send stream.
+  RTC_DEPRECATED virtual void LogVideoSendStreamConfig(
+      const rtclog::StreamConfig& config) = 0;
+
+  // Logs configuration information for an audio receive stream.
+  RTC_DEPRECATED virtual void LogAudioReceiveStreamConfig(
+      const rtclog::StreamConfig& config) = 0;
+
+  // Logs configuration information for an audio send stream.
+  RTC_DEPRECATED virtual void LogAudioSendStreamConfig(
+      const rtclog::StreamConfig& config) = 0;
+
+  RTC_DEPRECATED virtual void LogRtpHeader(PacketDirection direction,
+                                           const uint8_t* header,
+                                           size_t packet_length) {}
+
+  RTC_DEPRECATED virtual void LogRtpHeader(PacketDirection direction,
+                                           const uint8_t* header,
+                                           size_t packet_length,
+                                           int probe_cluster_id) {}
+
+  // Logs the header of an incoming RTP packet. |packet_length|
+  // is the total length of the packet, including both header and payload.
+  RTC_DEPRECATED virtual void LogIncomingRtpHeader(
+      const RtpPacketReceived& packet) = 0;
+
+  // Logs the header of an incoming RTP packet. |packet_length|
+  // is the total length of the packet, including both header and payload.
+  RTC_DEPRECATED virtual void LogOutgoingRtpHeader(
+      const RtpPacketToSend& packet,
+      int probe_cluster_id) = 0;
+
+  RTC_DEPRECATED virtual void LogRtcpPacket(PacketDirection direction,
+                                            const uint8_t* header,
+                                            size_t packet_length) {}
+
+  // Logs an incoming RTCP packet.
+  RTC_DEPRECATED virtual void LogIncomingRtcpPacket(
+      rtc::ArrayView<const uint8_t> packet) = 0;
+
+  // Logs an outgoing RTCP packet.
+  RTC_DEPRECATED virtual void LogOutgoingRtcpPacket(
+      rtc::ArrayView<const uint8_t> packet) = 0;
+
+  // Logs an audio playout event.
+  RTC_DEPRECATED virtual void LogAudioPlayout(uint32_t ssrc) = 0;
+
+  // Logs a bitrate update from the bandwidth estimator based on packet loss.
+  RTC_DEPRECATED virtual void LogLossBasedBweUpdate(int32_t bitrate_bps,
+                                                    uint8_t fraction_loss,
+                                                    int32_t total_packets) = 0;
+
+  // Logs a bitrate update from the bandwidth estimator based on delay changes.
+  RTC_DEPRECATED virtual void LogDelayBasedBweUpdate(
+      int32_t bitrate_bps,
+      BandwidthUsage detector_state) = 0;
+
+  // Logs audio encoder re-configuration driven by audio network adaptor.
+  RTC_DEPRECATED virtual void LogAudioNetworkAdaptation(
+      const AudioEncoderRuntimeConfig& config) = 0;
+
+  // Logs when a probe cluster is created.
+  RTC_DEPRECATED virtual void LogProbeClusterCreated(int id,
+                                                     int bitrate_bps,
+                                                     int min_probes,
+                                                     int min_bytes) = 0;
+
+  // Logs the result of a successful probing attempt.
+  RTC_DEPRECATED virtual void LogProbeResultSuccess(int id,
+                                                    int bitrate_bps) = 0;
+
+  // Logs the result of an unsuccessful probing attempt.
+  RTC_DEPRECATED virtual void LogProbeResultFailure(
+      int id,
+      ProbeFailureReason failure_reason) = 0;
 };
 
 // No-op implementation is used if flag is not set, or in tests.
@@ -65,8 +192,42 @@
   bool StartLogging(std::unique_ptr<RtcEventLogOutput> output) override {
     return false;
   }
+  bool StartLogging(const std::string& file_name,
+                    int64_t max_size_bytes) override {
+    return false;
+  }
+  bool StartLogging(rtc::PlatformFile platform_file,
+                    int64_t max_size_bytes) override {
+    return false;
+  }
   void StopLogging() override {}
   void Log(std::unique_ptr<RtcEvent> event) override {}
+  void LogVideoReceiveStreamConfig(
+      const rtclog::StreamConfig& config) override {}
+  void LogVideoSendStreamConfig(const rtclog::StreamConfig& config) override {}
+  void LogAudioReceiveStreamConfig(
+      const rtclog::StreamConfig& config) override {}
+  void LogAudioSendStreamConfig(const rtclog::StreamConfig& config) override {}
+  void LogIncomingRtpHeader(const RtpPacketReceived& packet) override {}
+  void LogOutgoingRtpHeader(const RtpPacketToSend& packet,
+                            int probe_cluster_id) override {}
+  void LogIncomingRtcpPacket(rtc::ArrayView<const uint8_t> packet) override {}
+  void LogOutgoingRtcpPacket(rtc::ArrayView<const uint8_t> packet) override {}
+  void LogAudioPlayout(uint32_t ssrc) override {}
+  void LogLossBasedBweUpdate(int32_t bitrate_bps,
+                             uint8_t fraction_loss,
+                             int32_t total_packets) override {}
+  void LogDelayBasedBweUpdate(int32_t bitrate_bps,
+                              BandwidthUsage detector_state) override {}
+  void LogAudioNetworkAdaptation(
+      const AudioEncoderRuntimeConfig& config) override {}
+  void LogProbeClusterCreated(int id,
+                              int bitrate_bps,
+                              int min_probes,
+                              int min_bytes) override{};
+  void LogProbeResultSuccess(int id, int bitrate_bps) override{};
+  void LogProbeResultFailure(int id,
+                             ProbeFailureReason failure_reason) override{};
 };
 
 }  // namespace webrtc
diff --git a/logging/rtc_event_log/rtc_event_log_parser.h b/logging/rtc_event_log/rtc_event_log_parser.h
index 8192c30..4980959 100644
--- a/logging/rtc_event_log/rtc_event_log_parser.h
+++ b/logging/rtc_event_log/rtc_event_log_parser.h
@@ -17,7 +17,6 @@
 
 #include "call/video_receive_stream.h"
 #include "call/video_send_stream.h"
-#include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h"
 #include "logging/rtc_event_log/rtc_event_log.h"
 #include "logging/rtc_event_log/rtc_stream_config.h"
 #include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
@@ -35,11 +34,8 @@
 
 namespace webrtc {
 
-enum class BandwidthUsage;
 enum class MediaType;
 
-struct AudioEncoderRuntimeConfig;
-
 class ParsedRtcEventLog {
   friend class RtcEventLogTestHelper;
 
diff --git a/voice_engine/channel.cc b/voice_engine/channel.cc
index 542ea2d..19873f1 100644
--- a/voice_engine/channel.cc
+++ b/voice_engine/channel.cc
@@ -12,7 +12,6 @@
 
 #include <algorithm>
 #include <map>
-#include <memory>
 #include <string>
 #include <utility>
 #include <vector>
@@ -21,7 +20,24 @@
 #include "audio/utility/audio_frame_operations.h"
 #include "call/rtp_transport_controller_send_interface.h"
 #include "logging/rtc_event_log/rtc_event_log.h"
+// TODO(eladalon): Remove events/* after removing the deprecated functions.
+#include "logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h"
 #include "logging/rtc_event_log/events/rtc_event_audio_playout.h"
+#include "logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h"
+#include "logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h"
+#include "logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h"
+#include "logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h"
+#include "logging/rtc_event_log/events/rtc_event_logging_started.h"
+#include "logging/rtc_event_log/events/rtc_event_logging_stopped.h"
+#include "logging/rtc_event_log/events/rtc_event_probe_cluster_created.h"
+#include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h"
+#include "logging/rtc_event_log/events/rtc_event_probe_result_success.h"
+#include "logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h"
+#include "logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h"
+#include "logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h"
+#include "logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h"
+#include "logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h"
+#include "logging/rtc_event_log/events/rtc_event_video_send_stream_config.h"
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
 #include "modules/audio_coding/codecs/audio_format_conversion.h"
 #include "modules/audio_device/include/audio_device.h"
@@ -70,6 +86,18 @@
     return false;
   }
 
+  bool StartLogging(const std::string& file_name,
+                    int64_t max_size_bytes) override {
+    RTC_NOTREACHED();
+    return false;
+  }
+
+  bool StartLogging(rtc::PlatformFile log_file,
+                    int64_t max_size_bytes) override {
+    RTC_NOTREACHED();
+    return false;
+  }
+
   void StopLogging() override { RTC_NOTREACHED(); }
 
   void Log(std::unique_ptr<RtcEvent> event) override {
@@ -79,6 +107,126 @@
     }
   }
 
+  void LogVideoReceiveStreamConfig(
+      const webrtc::rtclog::StreamConfig&) override {
+    RTC_NOTREACHED();
+  }
+
+  void LogVideoSendStreamConfig(const webrtc::rtclog::StreamConfig&) override {
+    RTC_NOTREACHED();
+  }
+
+  void LogAudioReceiveStreamConfig(
+      const webrtc::rtclog::StreamConfig& config) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(rtc::MakeUnique<RtcEventAudioReceiveStreamConfig>(
+          rtc::MakeUnique<webrtc::rtclog::StreamConfig>(config)));
+    }
+  }
+
+  void LogAudioSendStreamConfig(
+      const webrtc::rtclog::StreamConfig& config) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(rtc::MakeUnique<RtcEventAudioSendStreamConfig>(
+          rtc::MakeUnique<webrtc::rtclog::StreamConfig>(config)));
+    }
+  }
+
+  void LogIncomingRtpHeader(const RtpPacketReceived& packet) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(rtc::MakeUnique<RtcEventRtpPacketIncoming>(packet));
+    }
+  }
+
+  void LogOutgoingRtpHeader(const RtpPacketToSend& packet,
+                            int probe_cluster_id) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(
+          rtc::MakeUnique<RtcEventRtpPacketOutgoing>(packet, probe_cluster_id));
+    }
+  }
+
+  void LogIncomingRtcpPacket(rtc::ArrayView<const uint8_t> packet) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(rtc::MakeUnique<RtcEventRtcpPacketIncoming>(packet));
+    }
+  }
+
+  void LogOutgoingRtcpPacket(rtc::ArrayView<const uint8_t> packet) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(rtc::MakeUnique<RtcEventRtcpPacketOutgoing>(packet));
+    }
+  }
+
+  void LogAudioPlayout(uint32_t ssrc) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(rtc::MakeUnique<RtcEventAudioPlayout>(ssrc));
+    }
+  }
+
+  void LogLossBasedBweUpdate(int32_t bitrate_bps,
+                             uint8_t fraction_loss,
+                             int32_t total_packets) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(rtc::MakeUnique<RtcEventBweUpdateLossBased>(
+          bitrate_bps, fraction_loss, total_packets));
+    }
+  }
+
+  void LogDelayBasedBweUpdate(int32_t bitrate_bps,
+                              BandwidthUsage detector_state) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(rtc::MakeUnique<RtcEventBweUpdateDelayBased>(
+          bitrate_bps, detector_state));
+    }
+  }
+
+  void LogAudioNetworkAdaptation(
+      const AudioEncoderRuntimeConfig& config) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(rtc::MakeUnique<RtcEventAudioNetworkAdaptation>(
+          rtc::MakeUnique<AudioEncoderRuntimeConfig>(config)));
+    }
+  }
+
+  void LogProbeClusterCreated(int id,
+                              int bitrate_bps,
+                              int min_probes,
+                              int min_bytes) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(rtc::MakeUnique<RtcEventProbeClusterCreated>(
+          id, bitrate_bps, min_probes, min_bytes));
+    }
+  };
+
+  void LogProbeResultSuccess(int id, int bitrate_bps) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(
+          rtc::MakeUnique<RtcEventProbeResultSuccess>(id, bitrate_bps));
+    }
+  };
+
+  void LogProbeResultFailure(int id,
+                             ProbeFailureReason failure_reason) override {
+    rtc::CritScope lock(&crit_);
+    if (event_log_) {
+      event_log_->Log(
+          rtc::MakeUnique<RtcEventProbeResultFailure>(id, failure_reason));
+    }
+  };
+
   void SetEventLog(RtcEventLog* event_log) {
     rtc::CritScope lock(&crit_);
     event_log_ = event_log;