| Index: webrtc/logging/rtc_event_log/rtc_event_log_unittest.cc | 
| diff --git a/webrtc/logging/rtc_event_log/rtc_event_log_unittest.cc b/webrtc/logging/rtc_event_log/rtc_event_log_unittest.cc | 
| index a297c6c2439b0c3b4aa4f2410f31ac56bd456fa8..a48690e8dca098aac76d778040b92bc255cc9add 100644 | 
| --- a/webrtc/logging/rtc_event_log/rtc_event_log_unittest.cc | 
| +++ b/webrtc/logging/rtc_event_log/rtc_event_log_unittest.cc | 
| @@ -15,6 +15,23 @@ | 
| #include <vector> | 
|  | 
| #include "webrtc/call/call.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_audio_playout.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_logging_started.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_logging_stopped.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_probe_result_failure.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_probe_result_success.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h" | 
| +#include "webrtc/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h" | 
| #include "webrtc/logging/rtc_event_log/rtc_event_log.h" | 
| #include "webrtc/logging/rtc_event_log/rtc_event_log_parser.h" | 
| #include "webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.h" | 
| @@ -374,45 +391,49 @@ void SessionDescription::WriteSession() { | 
| log_dumper->StartLogging(temp_filename, 10000000); | 
| switch (event_types[i]) { | 
| case EventType::INCOMING_RTP: | 
| -        log_dumper->LogIncomingRtpHeader( | 
| -            incoming_rtp_packets[incoming_rtp_written++]); | 
| +        log_dumper->Log(rtc::MakeUnique<RtcEventRtpPacketIncoming>( | 
| +            incoming_rtp_packets[incoming_rtp_written++])); | 
| break; | 
| -      case EventType::OUTGOING_RTP: | 
| -        log_dumper->LogOutgoingRtpHeader( | 
| -            outgoing_rtp_packets[outgoing_rtp_written++], | 
| -            PacedPacketInfo::kNotAProbe); | 
| +      case EventType::OUTGOING_RTP: { | 
| +        constexpr int kNotAProble = PacedPacketInfo::kNotAProbe;  // Compiler... | 
| +        log_dumper->Log(rtc::MakeUnique<RtcEventRtpPacketOutgoing>( | 
| +            outgoing_rtp_packets[outgoing_rtp_written++], kNotAProble)); | 
| break; | 
| +      } | 
| case EventType::INCOMING_RTCP: | 
| -        log_dumper->LogIncomingRtcpPacket( | 
| -            incoming_rtcp_packets[incoming_rtcp_written++]); | 
| +        log_dumper->Log(rtc::MakeUnique<RtcEventRtcpPacketIncoming>( | 
| +            incoming_rtcp_packets[incoming_rtcp_written++])); | 
| break; | 
| case EventType::OUTGOING_RTCP: | 
| -        log_dumper->LogOutgoingRtcpPacket( | 
| -            outgoing_rtcp_packets[outgoing_rtcp_written++]); | 
| +        log_dumper->Log(rtc::MakeUnique<RtcEventRtcpPacketOutgoing>( | 
| +            outgoing_rtcp_packets[outgoing_rtcp_written++])); | 
| break; | 
| case EventType::AUDIO_PLAYOUT: | 
| -        log_dumper->LogAudioPlayout(playout_ssrcs[playouts_written++]); | 
| +        log_dumper->Log(rtc::MakeUnique<RtcEventAudioPlayout>( | 
| +            playout_ssrcs[playouts_written++])); | 
| break; | 
| case EventType::BWE_LOSS_UPDATE: | 
| -        log_dumper->LogLossBasedBweUpdate( | 
| +        log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateLossBased>( | 
| bwe_loss_updates[bwe_loss_written].bitrate_bps, | 
| bwe_loss_updates[bwe_loss_written].fraction_loss, | 
| -            bwe_loss_updates[bwe_loss_written].total_packets); | 
| +            bwe_loss_updates[bwe_loss_written].total_packets)); | 
| bwe_loss_written++; | 
| break; | 
| case EventType::BWE_DELAY_UPDATE: | 
| -        log_dumper->LogDelayBasedBweUpdate( | 
| +        log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateDelayBased>( | 
| bwe_delay_updates[bwe_delay_written].first, | 
| -            bwe_delay_updates[bwe_delay_written].second); | 
| +            bwe_delay_updates[bwe_delay_written].second)); | 
| bwe_delay_written++; | 
| break; | 
| case EventType::VIDEO_RECV_CONFIG: | 
| -        log_dumper->LogVideoReceiveStreamConfig( | 
| -            receiver_configs[recv_configs_written++]); | 
| +        log_dumper->Log(rtc::MakeUnique<RtcEventVideoReceiveStreamConfig>( | 
| +            rtc::MakeUnique<rtclog::StreamConfig>( | 
| +                receiver_configs[recv_configs_written++]))); | 
| break; | 
| case EventType::VIDEO_SEND_CONFIG: | 
| -        log_dumper->LogVideoSendStreamConfig( | 
| -            sender_configs[send_configs_written++]); | 
| +        log_dumper->Log(rtc::MakeUnique<RtcEventVideoSendStreamConfig>( | 
| +            rtc::MakeUnique<rtclog::StreamConfig>( | 
| +                sender_configs[send_configs_written++]))); | 
| break; | 
| case EventType::AUDIO_RECV_CONFIG: | 
| // Not implemented | 
| @@ -740,13 +761,13 @@ TEST(RtcEventLogTest, LogEventAndReadBack) { | 
| fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); | 
| std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
|  | 
| -  log_dumper->LogIncomingRtpHeader(rtp_packet); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventRtpPacketIncoming>(rtp_packet)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|  | 
| log_dumper->StartLogging(temp_filename, 10000000); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|  | 
| -  log_dumper->LogOutgoingRtcpPacket(rtcp_packet); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventRtcpPacketOutgoing>(rtcp_packet)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|  | 
| log_dumper->StopLogging(); | 
| @@ -793,7 +814,8 @@ TEST(RtcEventLogTest, LogLossBasedBweUpdateAndReadBack) { | 
| std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
| log_dumper->StartLogging(temp_filename, 10000000); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| -  log_dumper->LogLossBasedBweUpdate(bitrate, fraction_lost, total_packets); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateLossBased>( | 
| +      bitrate, fraction_lost, total_packets)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| log_dumper->StopLogging(); | 
|  | 
| @@ -833,11 +855,14 @@ TEST(RtcEventLogTest, LogDelayBasedBweUpdateAndReadBack) { | 
| std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
| log_dumper->StartLogging(temp_filename, 10000000); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| -  log_dumper->LogDelayBasedBweUpdate(bitrate1, BandwidthUsage::kBwNormal); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateDelayBased>( | 
| +      bitrate1, BandwidthUsage::kBwNormal)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| -  log_dumper->LogDelayBasedBweUpdate(bitrate2, BandwidthUsage::kBwOverusing); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateDelayBased>( | 
| +      bitrate2, BandwidthUsage::kBwOverusing)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| -  log_dumper->LogDelayBasedBweUpdate(bitrate3, BandwidthUsage::kBwUnderusing); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateDelayBased>( | 
| +      bitrate3, BandwidthUsage::kBwUnderusing)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| log_dumper->StopLogging(); | 
|  | 
| @@ -885,11 +910,14 @@ TEST(RtcEventLogTest, LogProbeClusterCreatedAndReadBack) { | 
| std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
|  | 
| log_dumper->StartLogging(temp_filename, 10000000); | 
| -  log_dumper->LogProbeClusterCreated(0, bitrate_bps0, min_probes0, min_bytes0); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventProbeClusterCreated>( | 
| +      0, bitrate_bps0, min_probes0, min_bytes0)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| -  log_dumper->LogProbeClusterCreated(1, bitrate_bps1, min_probes1, min_bytes1); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventProbeClusterCreated>( | 
| +      1, bitrate_bps1, min_probes1, min_bytes1)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| -  log_dumper->LogProbeClusterCreated(2, bitrate_bps2, min_probes2, min_bytes2); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventProbeClusterCreated>( | 
| +      2, bitrate_bps2, min_probes2, min_bytes2)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| log_dumper->StopLogging(); | 
|  | 
| @@ -931,11 +959,11 @@ TEST(RtcEventLogTest, LogProbeResultSuccessAndReadBack) { | 
| std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
|  | 
| log_dumper->StartLogging(temp_filename, 10000000); | 
| -  log_dumper->LogProbeResultSuccess(0, bitrate_bps0); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultSuccess>(0, bitrate_bps0)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| -  log_dumper->LogProbeResultSuccess(1, bitrate_bps1); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultSuccess>(1, bitrate_bps1)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| -  log_dumper->LogProbeResultSuccess(2, bitrate_bps2); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultSuccess>(2, bitrate_bps2)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| log_dumper->StopLogging(); | 
|  | 
| @@ -973,13 +1001,14 @@ TEST(RtcEventLogTest, LogProbeResultFailureAndReadBack) { | 
| std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
|  | 
| log_dumper->StartLogging(temp_filename, 10000000); | 
| -  log_dumper->LogProbeResultFailure( | 
| -      0, ProbeFailureReason::kInvalidSendReceiveInterval); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultFailure>( | 
| +      0, ProbeFailureReason::kInvalidSendReceiveInterval)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| -  log_dumper->LogProbeResultFailure( | 
| -      1, ProbeFailureReason::kInvalidSendReceiveRatio); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultFailure>( | 
| +      1, ProbeFailureReason::kInvalidSendReceiveRatio)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| -  log_dumper->LogProbeResultFailure(2, ProbeFailureReason::kTimeout); | 
| +  log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultFailure>( | 
| +      2, ProbeFailureReason::kTimeout)); | 
| fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
| log_dumper->StopLogging(); | 
|  | 
| @@ -1061,7 +1090,8 @@ class AudioReceiveConfigReadWriteTest : public ConfigReadWriteTest { | 
| GenerateAudioReceiveConfig(extensions, &config, &prng); | 
| } | 
| void LogConfig(RtcEventLog* event_log) override { | 
| -    event_log->LogAudioReceiveStreamConfig(config); | 
| +    event_log->Log(rtc::MakeUnique<RtcEventAudioReceiveStreamConfig>( | 
| +        rtc::MakeUnique<rtclog::StreamConfig>(config))); | 
| } | 
| void VerifyConfig(const ParsedRtcEventLog& parsed_log, | 
| size_t index) override { | 
| @@ -1078,7 +1108,8 @@ class AudioSendConfigReadWriteTest : public ConfigReadWriteTest { | 
| GenerateAudioSendConfig(extensions, &config, &prng); | 
| } | 
| void LogConfig(RtcEventLog* event_log) override { | 
| -    event_log->LogAudioSendStreamConfig(config); | 
| +    event_log->Log(rtc::MakeUnique<RtcEventAudioSendStreamConfig>( | 
| +        rtc::MakeUnique<rtclog::StreamConfig>(config))); | 
| } | 
| void VerifyConfig(const ParsedRtcEventLog& parsed_log, | 
| size_t index) override { | 
| @@ -1095,7 +1126,8 @@ class VideoReceiveConfigReadWriteTest : public ConfigReadWriteTest { | 
| GenerateVideoReceiveConfig(extensions, &config, &prng); | 
| } | 
| void LogConfig(RtcEventLog* event_log) override { | 
| -    event_log->LogVideoReceiveStreamConfig(config); | 
| +    event_log->Log(rtc::MakeUnique<RtcEventVideoReceiveStreamConfig>( | 
| +        rtc::MakeUnique<rtclog::StreamConfig>(config))); | 
| } | 
| void VerifyConfig(const ParsedRtcEventLog& parsed_log, | 
| size_t index) override { | 
| @@ -1112,7 +1144,8 @@ class VideoSendConfigReadWriteTest : public ConfigReadWriteTest { | 
| GenerateVideoSendConfig(extensions, &config, &prng); | 
| } | 
| void LogConfig(RtcEventLog* event_log) override { | 
| -    event_log->LogVideoSendStreamConfig(config); | 
| +    event_log->Log(rtc::MakeUnique<RtcEventVideoSendStreamConfig>( | 
| +        rtc::MakeUnique<rtclog::StreamConfig>(config))); | 
| } | 
| void VerifyConfig(const ParsedRtcEventLog& parsed_log, | 
| size_t index) override { | 
| @@ -1128,7 +1161,8 @@ class AudioNetworkAdaptationReadWriteTest : public ConfigReadWriteTest { | 
| GenerateAudioNetworkAdaptation(extensions, &config, &prng); | 
| } | 
| void LogConfig(RtcEventLog* event_log) override { | 
| -    event_log->LogAudioNetworkAdaptation(config); | 
| +    event_log->Log(rtc::MakeUnique<RtcEventAudioNetworkAdaptation>( | 
| +        rtc::MakeUnique<AudioEncoderRuntimeConfig>(config))); | 
| } | 
| void VerifyConfig(const ParsedRtcEventLog& parsed_log, | 
| size_t index) override { | 
|  |