Moves logged event structs to separate header.

Bug: webrtc:10170
Change-Id: I2f6f5b9688f5064fc476063e4e64ac3f9a335b3c
Reviewed-on: https://webrtc-review.googlesource.com/c/116061
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26123}
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index 27be9d5..3eda875 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -290,6 +290,7 @@
   rtc_static_library("rtc_event_log_parser") {
     visibility = [ "*" ]
     sources = [
+      "rtc_event_log/logged_events.h",
       "rtc_event_log/rtc_event_log_parser_new.cc",
       "rtc_event_log/rtc_event_log_parser_new.h",
       "rtc_event_log/rtc_event_processor.h",
diff --git a/logging/rtc_event_log/logged_events.h b/logging/rtc_event_log/logged_events.h
new file mode 100644
index 0000000..7ff7e2d
--- /dev/null
+++ b/logging/rtc_event_log/logged_events.h
@@ -0,0 +1,441 @@
+/*
+ *  Copyright 2019 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+#ifndef LOGGING_RTC_EVENT_LOG_LOGGED_EVENTS_H_
+#define LOGGING_RTC_EVENT_LOG_LOGGED_EVENTS_H_
+
+#include <string>
+#include <vector>
+
+#include "api/rtp_headers.h"
+#include "logging/rtc_event_log/events/rtc_event_dtls_transport_state.h"
+#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h"
+#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h"
+#include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h"
+#include "logging/rtc_event_log/rtc_stream_config.h"
+#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
+#include "modules/remote_bitrate_estimator/include/bwe_defines.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/nack.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/remb.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
+
+namespace webrtc {
+
+// The different event types are deliberately POD. Analysis of large logs is
+// already resource intensive. The code simplifications that would be possible
+// possible by having a base class (containing e.g. the log time) are not
+// considered to outweigh the added memory and runtime overhead incurred by
+// adding a vptr.
+struct LoggedAlrStateEvent {
+  LoggedAlrStateEvent() = default;
+  LoggedAlrStateEvent(int64_t timestamp_us, bool in_alr)
+      : timestamp_us(timestamp_us), in_alr(in_alr) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  bool in_alr;
+};
+
+struct LoggedAudioPlayoutEvent {
+  LoggedAudioPlayoutEvent() = default;
+  LoggedAudioPlayoutEvent(int64_t timestamp_us, uint32_t ssrc)
+      : timestamp_us(timestamp_us), ssrc(ssrc) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  uint32_t ssrc;
+};
+
+struct LoggedAudioNetworkAdaptationEvent {
+  LoggedAudioNetworkAdaptationEvent() = default;
+  LoggedAudioNetworkAdaptationEvent(int64_t timestamp_us,
+                                    const AudioEncoderRuntimeConfig& config)
+      : timestamp_us(timestamp_us), config(config) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  AudioEncoderRuntimeConfig config;
+};
+
+struct LoggedBweDelayBasedUpdate {
+  LoggedBweDelayBasedUpdate() = default;
+  LoggedBweDelayBasedUpdate(int64_t timestamp_us,
+                            int32_t bitrate_bps,
+                            BandwidthUsage detector_state)
+      : timestamp_us(timestamp_us),
+        bitrate_bps(bitrate_bps),
+        detector_state(detector_state) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  int32_t bitrate_bps;
+  BandwidthUsage detector_state;
+};
+
+struct LoggedBweLossBasedUpdate {
+  LoggedBweLossBasedUpdate() = default;
+  LoggedBweLossBasedUpdate(int64_t timestamp_us,
+                           int32_t bitrate_bps,
+                           uint8_t fraction_lost,
+                           int32_t expected_packets)
+      : timestamp_us(timestamp_us),
+        bitrate_bps(bitrate_bps),
+        fraction_lost(fraction_lost),
+        expected_packets(expected_packets) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  int32_t bitrate_bps;
+  uint8_t fraction_lost;
+  int32_t expected_packets;
+};
+
+struct LoggedDtlsTransportState {
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  DtlsTransportState dtls_transport_state;
+};
+
+struct LoggedDtlsWritableState {
+  LoggedDtlsWritableState() = default;
+  explicit LoggedDtlsWritableState(bool writable) : writable(writable) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  bool writable;
+};
+
+struct LoggedBweProbeClusterCreatedEvent {
+  LoggedBweProbeClusterCreatedEvent() = default;
+  LoggedBweProbeClusterCreatedEvent(int64_t timestamp_us,
+                                    int32_t id,
+                                    int32_t bitrate_bps,
+                                    uint32_t min_packets,
+                                    uint32_t min_bytes)
+      : timestamp_us(timestamp_us),
+        id(id),
+        bitrate_bps(bitrate_bps),
+        min_packets(min_packets),
+        min_bytes(min_bytes) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  int32_t id;
+  int32_t bitrate_bps;
+  uint32_t min_packets;
+  uint32_t min_bytes;
+};
+
+struct LoggedBweProbeSuccessEvent {
+  LoggedBweProbeSuccessEvent() = default;
+  LoggedBweProbeSuccessEvent(int64_t timestamp_us,
+                             int32_t id,
+                             int32_t bitrate_bps)
+      : timestamp_us(timestamp_us), id(id), bitrate_bps(bitrate_bps) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  int32_t id;
+  int32_t bitrate_bps;
+};
+
+struct LoggedBweProbeFailureEvent {
+  LoggedBweProbeFailureEvent() = default;
+  LoggedBweProbeFailureEvent(int64_t timestamp_us,
+                             int32_t id,
+                             ProbeFailureReason failure_reason)
+      : timestamp_us(timestamp_us), id(id), failure_reason(failure_reason) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  int32_t id;
+  ProbeFailureReason failure_reason;
+};
+
+struct LoggedIceCandidatePairConfig {
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  IceCandidatePairConfigType type;
+  uint32_t candidate_pair_id;
+  IceCandidateType local_candidate_type;
+  IceCandidatePairProtocol local_relay_protocol;
+  IceCandidateNetworkType local_network_type;
+  IceCandidatePairAddressFamily local_address_family;
+  IceCandidateType remote_candidate_type;
+  IceCandidatePairAddressFamily remote_address_family;
+  IceCandidatePairProtocol candidate_pair_protocol;
+};
+
+struct LoggedIceCandidatePairEvent {
+  LoggedIceCandidatePairEvent() = default;
+  LoggedIceCandidatePairEvent(int64_t timestamp_us,
+                              IceCandidatePairEventType type,
+                              uint32_t candidate_pair_id,
+                              uint32_t transaction_id)
+      : timestamp_us(timestamp_us),
+        type(type),
+        candidate_pair_id(candidate_pair_id),
+        transaction_id(transaction_id) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  IceCandidatePairEventType type;
+  uint32_t candidate_pair_id;
+  uint32_t transaction_id;
+};
+
+struct LoggedRtpPacket {
+  LoggedRtpPacket(uint64_t timestamp_us,
+                  RTPHeader header,
+                  size_t header_length,
+                  size_t total_length)
+      : timestamp_us(timestamp_us),
+        header(header),
+        header_length(header_length),
+        total_length(total_length) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  // TODO(terelius): This allocates space for 15 CSRCs even if none are used.
+  RTPHeader header;
+  size_t header_length;
+  size_t total_length;
+};
+
+struct LoggedRtpPacketIncoming {
+  LoggedRtpPacketIncoming(uint64_t timestamp_us,
+                          RTPHeader header,
+                          size_t header_length,
+                          size_t total_length)
+      : rtp(timestamp_us, header, header_length, total_length) {}
+  int64_t log_time_us() const { return rtp.timestamp_us; }
+  int64_t log_time_ms() const { return rtp.timestamp_us / 1000; }
+
+  LoggedRtpPacket rtp;
+};
+
+struct LoggedRtpPacketOutgoing {
+  LoggedRtpPacketOutgoing(uint64_t timestamp_us,
+                          RTPHeader header,
+                          size_t header_length,
+                          size_t total_length)
+      : rtp(timestamp_us, header, header_length, total_length) {}
+  int64_t log_time_us() const { return rtp.timestamp_us; }
+  int64_t log_time_ms() const { return rtp.timestamp_us / 1000; }
+
+  LoggedRtpPacket rtp;
+};
+
+struct LoggedRtcpPacket {
+  LoggedRtcpPacket(uint64_t timestamp_us,
+                   const uint8_t* packet,
+                   size_t total_length);
+  LoggedRtcpPacket(uint64_t timestamp_us, const std::string& packet);
+  LoggedRtcpPacket(const LoggedRtcpPacket&);
+  ~LoggedRtcpPacket();
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  std::vector<uint8_t> raw_data;
+};
+
+struct LoggedRtcpPacketIncoming {
+  LoggedRtcpPacketIncoming(uint64_t timestamp_us,
+                           const uint8_t* packet,
+                           size_t total_length)
+      : rtcp(timestamp_us, packet, total_length) {}
+  LoggedRtcpPacketIncoming(uint64_t timestamp_us, const std::string& packet)
+      : rtcp(timestamp_us, packet) {}
+
+  int64_t log_time_us() const { return rtcp.timestamp_us; }
+  int64_t log_time_ms() const { return rtcp.timestamp_us / 1000; }
+
+  LoggedRtcpPacket rtcp;
+};
+
+struct LoggedRtcpPacketOutgoing {
+  LoggedRtcpPacketOutgoing(uint64_t timestamp_us,
+                           const uint8_t* packet,
+                           size_t total_length)
+      : rtcp(timestamp_us, packet, total_length) {}
+  LoggedRtcpPacketOutgoing(uint64_t timestamp_us, const std::string& packet)
+      : rtcp(timestamp_us, packet) {}
+
+  int64_t log_time_us() const { return rtcp.timestamp_us; }
+  int64_t log_time_ms() const { return rtcp.timestamp_us / 1000; }
+
+  LoggedRtcpPacket rtcp;
+};
+
+struct LoggedRtcpPacketReceiverReport {
+  LoggedRtcpPacketReceiverReport() = default;
+  LoggedRtcpPacketReceiverReport(int64_t timestamp_us,
+                                 const rtcp::ReceiverReport& rr)
+      : timestamp_us(timestamp_us), rr(rr) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  rtcp::ReceiverReport rr;
+};
+
+struct LoggedRtcpPacketSenderReport {
+  LoggedRtcpPacketSenderReport() = default;
+  LoggedRtcpPacketSenderReport(int64_t timestamp_us,
+                               const rtcp::SenderReport& sr)
+      : timestamp_us(timestamp_us), sr(sr) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  rtcp::SenderReport sr;
+};
+
+struct LoggedRtcpPacketRemb {
+  LoggedRtcpPacketRemb() = default;
+  LoggedRtcpPacketRemb(int64_t timestamp_us, const rtcp::Remb& remb)
+      : timestamp_us(timestamp_us), remb(remb) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  rtcp::Remb remb;
+};
+
+struct LoggedRtcpPacketNack {
+  LoggedRtcpPacketNack() = default;
+  LoggedRtcpPacketNack(int64_t timestamp_us, const rtcp::Nack& nack)
+      : timestamp_us(timestamp_us), nack(nack) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  rtcp::Nack nack;
+};
+
+struct LoggedRtcpPacketTransportFeedback {
+  LoggedRtcpPacketTransportFeedback() = default;
+  LoggedRtcpPacketTransportFeedback(
+      int64_t timestamp_us,
+      const rtcp::TransportFeedback& transport_feedback)
+      : timestamp_us(timestamp_us), transport_feedback(transport_feedback) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  rtcp::TransportFeedback transport_feedback;
+};
+
+struct LoggedStartEvent {
+  explicit LoggedStartEvent(int64_t timestamp_us)
+      : LoggedStartEvent(timestamp_us, timestamp_us / 1000) {}
+
+  LoggedStartEvent(int64_t timestamp_us, int64_t utc_start_time_ms)
+      : timestamp_us(timestamp_us), utc_start_time_ms(utc_start_time_ms) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  int64_t utc_start_time_ms;
+};
+
+struct LoggedStopEvent {
+  explicit LoggedStopEvent(int64_t timestamp_us) : timestamp_us(timestamp_us) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+};
+
+struct LoggedAudioRecvConfig {
+  LoggedAudioRecvConfig() = default;
+  LoggedAudioRecvConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
+      : timestamp_us(timestamp_us), config(config) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  rtclog::StreamConfig config;
+};
+
+struct LoggedAudioSendConfig {
+  LoggedAudioSendConfig() = default;
+  LoggedAudioSendConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
+      : timestamp_us(timestamp_us), config(config) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  rtclog::StreamConfig config;
+};
+
+struct LoggedVideoRecvConfig {
+  LoggedVideoRecvConfig() = default;
+  LoggedVideoRecvConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
+      : timestamp_us(timestamp_us), config(config) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  rtclog::StreamConfig config;
+};
+
+struct LoggedVideoSendConfig {
+  LoggedVideoSendConfig() = default;
+  LoggedVideoSendConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
+      : timestamp_us(timestamp_us), config(config) {}
+
+  int64_t log_time_us() const { return timestamp_us; }
+  int64_t log_time_ms() const { return timestamp_us / 1000; }
+
+  int64_t timestamp_us;
+  rtclog::StreamConfig config;
+};
+}  // namespace webrtc
+#endif  // LOGGING_RTC_EVENT_LOG_LOGGED_EVENTS_H_
diff --git a/logging/rtc_event_log/rtc_event_log_parser_new.h b/logging/rtc_event_log/rtc_event_log_parser_new.h
index 903993f..0ee70a5 100644
--- a/logging/rtc_event_log/rtc_event_log_parser_new.h
+++ b/logging/rtc_event_log/rtc_event_log_parser_new.h
@@ -20,20 +20,10 @@
 
 #include "call/video_receive_stream.h"
 #include "call/video_send_stream.h"
-#include "logging/rtc_event_log/events/rtc_event_dtls_transport_state.h"
-#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h"
-#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h"
-#include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h"
+#include "logging/rtc_event_log/logged_events.h"
 #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_config.h"
 #include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/common_header.h"
-#include "modules/rtp_rtcp/source/rtcp_packet/nack.h"
-#include "modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
-#include "modules/rtp_rtcp/source/rtcp_packet/remb.h"
-#include "modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
-#include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
 #include "rtc_base/ignore_wundef.h"
 
 // Files generated at build-time by the protobuf compiler.
@@ -49,418 +39,6 @@
 
 namespace webrtc {
 
-enum class BandwidthUsage;
-struct AudioEncoderRuntimeConfig;
-
-// The different event types are deliberately POD. Analysis of large logs is
-// already resource intensive. The code simplifications that would be possible
-// possible by having a base class (containing e.g. the log time) are not
-// considered to outweigh the added memory and runtime overhead incurred by
-// adding a vptr.
-struct LoggedAlrStateEvent {
-  LoggedAlrStateEvent() = default;
-  LoggedAlrStateEvent(int64_t timestamp_us, bool in_alr)
-      : timestamp_us(timestamp_us), in_alr(in_alr) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  bool in_alr;
-};
-
-struct LoggedAudioPlayoutEvent {
-  LoggedAudioPlayoutEvent() = default;
-  LoggedAudioPlayoutEvent(int64_t timestamp_us, uint32_t ssrc)
-      : timestamp_us(timestamp_us), ssrc(ssrc) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  uint32_t ssrc;
-};
-
-struct LoggedAudioNetworkAdaptationEvent {
-  LoggedAudioNetworkAdaptationEvent() = default;
-  LoggedAudioNetworkAdaptationEvent(int64_t timestamp_us,
-                                    const AudioEncoderRuntimeConfig& config)
-      : timestamp_us(timestamp_us), config(config) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  AudioEncoderRuntimeConfig config;
-};
-
-struct LoggedBweDelayBasedUpdate {
-  LoggedBweDelayBasedUpdate() = default;
-  LoggedBweDelayBasedUpdate(int64_t timestamp_us,
-                            int32_t bitrate_bps,
-                            BandwidthUsage detector_state)
-      : timestamp_us(timestamp_us),
-        bitrate_bps(bitrate_bps),
-        detector_state(detector_state) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  int32_t bitrate_bps;
-  BandwidthUsage detector_state;
-};
-
-struct LoggedBweLossBasedUpdate {
-  LoggedBweLossBasedUpdate() = default;
-  LoggedBweLossBasedUpdate(int64_t timestamp_us,
-                           int32_t bitrate_bps,
-                           uint8_t fraction_lost,
-                           int32_t expected_packets)
-      : timestamp_us(timestamp_us),
-        bitrate_bps(bitrate_bps),
-        fraction_lost(fraction_lost),
-        expected_packets(expected_packets) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  int32_t bitrate_bps;
-  uint8_t fraction_lost;
-  int32_t expected_packets;
-};
-
-struct LoggedDtlsTransportState {
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  DtlsTransportState dtls_transport_state;
-};
-
-struct LoggedDtlsWritableState {
-  LoggedDtlsWritableState() = default;
-  explicit LoggedDtlsWritableState(bool writable) : writable(writable) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  bool writable;
-};
-
-struct LoggedBweProbeClusterCreatedEvent {
-  LoggedBweProbeClusterCreatedEvent() = default;
-  LoggedBweProbeClusterCreatedEvent(int64_t timestamp_us,
-                                    int32_t id,
-                                    int32_t bitrate_bps,
-                                    uint32_t min_packets,
-                                    uint32_t min_bytes)
-      : timestamp_us(timestamp_us),
-        id(id),
-        bitrate_bps(bitrate_bps),
-        min_packets(min_packets),
-        min_bytes(min_bytes) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  int32_t id;
-  int32_t bitrate_bps;
-  uint32_t min_packets;
-  uint32_t min_bytes;
-};
-
-struct LoggedBweProbeSuccessEvent {
-  LoggedBweProbeSuccessEvent() = default;
-  LoggedBweProbeSuccessEvent(int64_t timestamp_us,
-                             int32_t id,
-                             int32_t bitrate_bps)
-      : timestamp_us(timestamp_us), id(id), bitrate_bps(bitrate_bps) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  int32_t id;
-  int32_t bitrate_bps;
-};
-
-struct LoggedBweProbeFailureEvent {
-  LoggedBweProbeFailureEvent() = default;
-  LoggedBweProbeFailureEvent(int64_t timestamp_us,
-                             int32_t id,
-                             ProbeFailureReason failure_reason)
-      : timestamp_us(timestamp_us), id(id), failure_reason(failure_reason) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  int32_t id;
-  ProbeFailureReason failure_reason;
-};
-
-struct LoggedIceCandidatePairConfig {
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  IceCandidatePairConfigType type;
-  uint32_t candidate_pair_id;
-  IceCandidateType local_candidate_type;
-  IceCandidatePairProtocol local_relay_protocol;
-  IceCandidateNetworkType local_network_type;
-  IceCandidatePairAddressFamily local_address_family;
-  IceCandidateType remote_candidate_type;
-  IceCandidatePairAddressFamily remote_address_family;
-  IceCandidatePairProtocol candidate_pair_protocol;
-};
-
-struct LoggedIceCandidatePairEvent {
-  LoggedIceCandidatePairEvent() = default;
-  LoggedIceCandidatePairEvent(int64_t timestamp_us,
-                              IceCandidatePairEventType type,
-                              uint32_t candidate_pair_id,
-                              uint32_t transaction_id)
-      : timestamp_us(timestamp_us),
-        type(type),
-        candidate_pair_id(candidate_pair_id),
-        transaction_id(transaction_id) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  IceCandidatePairEventType type;
-  uint32_t candidate_pair_id;
-  uint32_t transaction_id;
-};
-
-struct LoggedRtpPacket {
-  LoggedRtpPacket(uint64_t timestamp_us,
-                  RTPHeader header,
-                  size_t header_length,
-                  size_t total_length)
-      : timestamp_us(timestamp_us),
-        header(header),
-        header_length(header_length),
-        total_length(total_length) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  // TODO(terelius): This allocates space for 15 CSRCs even if none are used.
-  RTPHeader header;
-  size_t header_length;
-  size_t total_length;
-};
-
-struct LoggedRtpPacketIncoming {
-  LoggedRtpPacketIncoming(uint64_t timestamp_us,
-                          RTPHeader header,
-                          size_t header_length,
-                          size_t total_length)
-      : rtp(timestamp_us, header, header_length, total_length) {}
-  int64_t log_time_us() const { return rtp.timestamp_us; }
-  int64_t log_time_ms() const { return rtp.timestamp_us / 1000; }
-
-  LoggedRtpPacket rtp;
-};
-
-struct LoggedRtpPacketOutgoing {
-  LoggedRtpPacketOutgoing(uint64_t timestamp_us,
-                          RTPHeader header,
-                          size_t header_length,
-                          size_t total_length)
-      : rtp(timestamp_us, header, header_length, total_length) {}
-  int64_t log_time_us() const { return rtp.timestamp_us; }
-  int64_t log_time_ms() const { return rtp.timestamp_us / 1000; }
-
-  LoggedRtpPacket rtp;
-};
-
-struct LoggedRtcpPacket {
-  LoggedRtcpPacket(uint64_t timestamp_us,
-                   const uint8_t* packet,
-                   size_t total_length);
-  LoggedRtcpPacket(uint64_t timestamp_us, const std::string& packet);
-  LoggedRtcpPacket(const LoggedRtcpPacket&);
-  ~LoggedRtcpPacket();
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  std::vector<uint8_t> raw_data;
-};
-
-struct LoggedRtcpPacketIncoming {
-  LoggedRtcpPacketIncoming(uint64_t timestamp_us,
-                           const uint8_t* packet,
-                           size_t total_length)
-      : rtcp(timestamp_us, packet, total_length) {}
-  LoggedRtcpPacketIncoming(uint64_t timestamp_us, const std::string& packet)
-      : rtcp(timestamp_us, packet) {}
-
-  int64_t log_time_us() const { return rtcp.timestamp_us; }
-  int64_t log_time_ms() const { return rtcp.timestamp_us / 1000; }
-
-  LoggedRtcpPacket rtcp;
-};
-
-struct LoggedRtcpPacketOutgoing {
-  LoggedRtcpPacketOutgoing(uint64_t timestamp_us,
-                           const uint8_t* packet,
-                           size_t total_length)
-      : rtcp(timestamp_us, packet, total_length) {}
-  LoggedRtcpPacketOutgoing(uint64_t timestamp_us, const std::string& packet)
-      : rtcp(timestamp_us, packet) {}
-
-  int64_t log_time_us() const { return rtcp.timestamp_us; }
-  int64_t log_time_ms() const { return rtcp.timestamp_us / 1000; }
-
-  LoggedRtcpPacket rtcp;
-};
-
-struct LoggedRtcpPacketReceiverReport {
-  LoggedRtcpPacketReceiverReport() = default;
-  LoggedRtcpPacketReceiverReport(int64_t timestamp_us,
-                                 const rtcp::ReceiverReport& rr)
-      : timestamp_us(timestamp_us), rr(rr) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  rtcp::ReceiverReport rr;
-};
-
-struct LoggedRtcpPacketSenderReport {
-  LoggedRtcpPacketSenderReport() = default;
-  LoggedRtcpPacketSenderReport(int64_t timestamp_us,
-                               const rtcp::SenderReport& sr)
-      : timestamp_us(timestamp_us), sr(sr) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  rtcp::SenderReport sr;
-};
-
-struct LoggedRtcpPacketRemb {
-  LoggedRtcpPacketRemb() = default;
-  LoggedRtcpPacketRemb(int64_t timestamp_us, const rtcp::Remb& remb)
-      : timestamp_us(timestamp_us), remb(remb) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  rtcp::Remb remb;
-};
-
-struct LoggedRtcpPacketNack {
-  LoggedRtcpPacketNack() = default;
-  LoggedRtcpPacketNack(int64_t timestamp_us, const rtcp::Nack& nack)
-      : timestamp_us(timestamp_us), nack(nack) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  rtcp::Nack nack;
-};
-
-struct LoggedRtcpPacketTransportFeedback {
-  LoggedRtcpPacketTransportFeedback() = default;
-  LoggedRtcpPacketTransportFeedback(
-      int64_t timestamp_us,
-      const rtcp::TransportFeedback& transport_feedback)
-      : timestamp_us(timestamp_us), transport_feedback(transport_feedback) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  rtcp::TransportFeedback transport_feedback;
-};
-
-struct LoggedStartEvent {
-  explicit LoggedStartEvent(int64_t timestamp_us)
-      : LoggedStartEvent(timestamp_us, timestamp_us / 1000) {}
-
-  LoggedStartEvent(int64_t timestamp_us, int64_t utc_start_time_ms)
-      : timestamp_us(timestamp_us), utc_start_time_ms(utc_start_time_ms) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  int64_t utc_start_time_ms;
-};
-
-struct LoggedStopEvent {
-  explicit LoggedStopEvent(int64_t timestamp_us) : timestamp_us(timestamp_us) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-};
-
-struct LoggedAudioRecvConfig {
-  LoggedAudioRecvConfig() = default;
-  LoggedAudioRecvConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
-      : timestamp_us(timestamp_us), config(config) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  rtclog::StreamConfig config;
-};
-
-struct LoggedAudioSendConfig {
-  LoggedAudioSendConfig() = default;
-  LoggedAudioSendConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
-      : timestamp_us(timestamp_us), config(config) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  rtclog::StreamConfig config;
-};
-
-struct LoggedVideoRecvConfig {
-  LoggedVideoRecvConfig() = default;
-  LoggedVideoRecvConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
-      : timestamp_us(timestamp_us), config(config) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  rtclog::StreamConfig config;
-};
-
-struct LoggedVideoSendConfig {
-  LoggedVideoSendConfig() = default;
-  LoggedVideoSendConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
-      : timestamp_us(timestamp_us), config(config) {}
-
-  int64_t log_time_us() const { return timestamp_us; }
-  int64_t log_time_ms() const { return timestamp_us / 1000; }
-
-  int64_t timestamp_us;
-  rtclog::StreamConfig config;
-};
-
 template <typename T>
 class PacketView;