Introduce RtcEvent and subclasses
We're moving to an RtcEventLog interface that accepts std::unique_ptr<EventLog> and stores the event for encoding when encoding becomes necessary, rather than before. This will be useful while we maintain the legacy (current) encoding alongside the new encoding on which we're working.
This CL just introduces the new RtcEvent and its sub-classes, without constructors and without use. Upcoming CLs will finish the work.
BUG=webrtc:8111
Change-Id: I782383e861c31670b7cd13ffc6b43ca6a26c98f6
Reviewed-on: https://webrtc-review.googlesource.com/1360
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20068}
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index eb4cec2..34737d2 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -24,6 +24,41 @@
rtc_source_set("rtc_event_log_api") {
sources = [
+ "rtc_event_log/events/rtc_event.h",
+ "rtc_event_log/events/rtc_event_audio_network_adaptation.cc",
+ "rtc_event_log/events/rtc_event_audio_network_adaptation.h",
+ "rtc_event_log/events/rtc_event_audio_playout.cc",
+ "rtc_event_log/events/rtc_event_audio_playout.h",
+ "rtc_event_log/events/rtc_event_audio_receive_stream_config.cc",
+ "rtc_event_log/events/rtc_event_audio_receive_stream_config.h",
+ "rtc_event_log/events/rtc_event_audio_send_stream_config.cc",
+ "rtc_event_log/events/rtc_event_audio_send_stream_config.h",
+ "rtc_event_log/events/rtc_event_bwe_update_delay_based.cc",
+ "rtc_event_log/events/rtc_event_bwe_update_delay_based.h",
+ "rtc_event_log/events/rtc_event_bwe_update_loss_based.cc",
+ "rtc_event_log/events/rtc_event_bwe_update_loss_based.h",
+ "rtc_event_log/events/rtc_event_logging_started.cc",
+ "rtc_event_log/events/rtc_event_logging_started.h",
+ "rtc_event_log/events/rtc_event_logging_stopped.cc",
+ "rtc_event_log/events/rtc_event_logging_stopped.h",
+ "rtc_event_log/events/rtc_event_probe_cluster_created.cc",
+ "rtc_event_log/events/rtc_event_probe_cluster_created.h",
+ "rtc_event_log/events/rtc_event_probe_result_failure.cc",
+ "rtc_event_log/events/rtc_event_probe_result_failure.h",
+ "rtc_event_log/events/rtc_event_probe_result_success.cc",
+ "rtc_event_log/events/rtc_event_probe_result_success.h",
+ "rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc",
+ "rtc_event_log/events/rtc_event_rtcp_packet_incoming.h",
+ "rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc",
+ "rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h",
+ "rtc_event_log/events/rtc_event_rtp_packet_incoming.cc",
+ "rtc_event_log/events/rtc_event_rtp_packet_incoming.h",
+ "rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc",
+ "rtc_event_log/events/rtc_event_rtp_packet_outgoing.h",
+ "rtc_event_log/events/rtc_event_video_receive_stream_config.cc",
+ "rtc_event_log/events/rtc_event_video_receive_stream_config.h",
+ "rtc_event_log/events/rtc_event_video_send_stream_config.cc",
+ "rtc_event_log/events/rtc_event_video_send_stream_config.h",
"rtc_event_log/rtc_event_log.h",
"rtc_event_log/rtc_event_log_factory_interface.h",
"rtc_event_log/rtc_stream_config.cc",
diff --git a/logging/rtc_event_log/events/rtc_event.h b/logging/rtc_event_log/events/rtc_event.h
new file mode 100644
index 0000000..19c44d0
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_H_
+
+namespace webrtc {
+
+// This class allows us to store unencoded RTC events. Subclasses of this class
+// store the actual information. This allows us to keep all unencoded events,
+// even when their type and associated information differ, in the same buffer.
+// Additionally, it prevents dependency leaking - a module that only logs
+// events of type RtcEvent_A doesn't need to know about anything associated
+// with events of type RtcEvent_B.
+class RtcEvent {
+ public:
+ // Subclasses of this class have to associate themselves with a unique value
+ // of Type. This leaks the information of existing subclasses into the
+ // superclass, but the *actual* information - rtclog::StreamConfig, etc. -
+ // is kept separate.
+ enum class Type {
+ AudioNetworkAdaptation,
+ AudioPlayout,
+ AudioReceiveStreamConfig,
+ AudioSendStreamConfig,
+ BweUpdateDelayBased,
+ BweUpdateLossBased,
+ LoggingStarted,
+ LoggingStopped,
+ ProbeClusterCreated,
+ ProbeResultFailure,
+ ProbeResultSuccess,
+ RtcpPacketIncoming,
+ RtcpPacketOutgoing,
+ RtpPacketIncoming,
+ RtpPacketOutgoing,
+ VideoReceiveStreamConfig,
+ VideoSendStreamConfig
+ };
+
+ virtual ~RtcEvent() = default;
+
+ virtual Type GetType() const = 0;
+
+ virtual bool IsConfigEvent() const = 0;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_H_
diff --git a/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc
new file mode 100644
index 0000000..2ae110c
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventAudioNetworkAdaptation::GetType() const {
+ return RtcEvent::Type::AudioNetworkAdaptation;
+}
+
+bool RtcEventAudioNetworkAdaptation::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h
new file mode 100644
index 0000000..3b40737
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_AUDIO_NETWORK_ADAPTATION_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_NETWORK_ADAPTATION_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventAudioNetworkAdaptation final : public RtcEvent {
+ public:
+ ~RtcEventAudioNetworkAdaptation() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_NETWORK_ADAPTATION_H_
diff --git a/logging/rtc_event_log/events/rtc_event_audio_playout.cc b/logging/rtc_event_log/events/rtc_event_audio_playout.cc
new file mode 100644
index 0000000..354c0b8
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_audio_playout.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_audio_playout.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventAudioPlayout::GetType() const {
+ return RtcEvent::Type::AudioPlayout;
+}
+
+bool RtcEventAudioPlayout::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_audio_playout.h b/logging/rtc_event_log/events/rtc_event_audio_playout.h
new file mode 100644
index 0000000..19d3bde
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_audio_playout.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_AUDIO_PLAYOUT_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_PLAYOUT_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventAudioPlayout final : public RtcEvent {
+ public:
+ ~RtcEventAudioPlayout() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_PLAYOUT_H_
diff --git a/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc
new file mode 100644
index 0000000..d9f8e74
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventAudioReceiveStreamConfig::GetType() const {
+ return RtcEvent::Type::AudioReceiveStreamConfig;
+}
+
+bool RtcEventAudioReceiveStreamConfig::IsConfigEvent() const {
+ return true;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h
new file mode 100644
index 0000000..bc30424
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_AUDIO_RECEIVE_STREAM_CONFIG_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_RECEIVE_STREAM_CONFIG_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventAudioReceiveStreamConfig final : public RtcEvent {
+ public:
+ ~RtcEventAudioReceiveStreamConfig() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_RECEIVE_STREAM_CONFIG_H_
diff --git a/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc
new file mode 100644
index 0000000..0ad07ce
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventAudioSendStreamConfig::GetType() const {
+ return RtcEvent::Type::AudioSendStreamConfig;
+}
+
+bool RtcEventAudioSendStreamConfig::IsConfigEvent() const {
+ return true;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h
new file mode 100644
index 0000000..2fad7b3
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_AUDIO_SEND_STREAM_CONFIG_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_SEND_STREAM_CONFIG_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventAudioSendStreamConfig final : public RtcEvent {
+ public:
+ ~RtcEventAudioSendStreamConfig() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_SEND_STREAM_CONFIG_H_
diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc
new file mode 100644
index 0000000..681dd7d
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventBweUpdateDelayBased::GetType() const {
+ return RtcEvent::Type::BweUpdateDelayBased;
+}
+
+bool RtcEventBweUpdateDelayBased::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h
new file mode 100644
index 0000000..78750be
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_BWE_UPDATE_DELAY_BASED_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_BWE_UPDATE_DELAY_BASED_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventBweUpdateDelayBased final : public RtcEvent {
+ public:
+ ~RtcEventBweUpdateDelayBased() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_BWE_UPDATE_DELAY_BASED_H_
diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc
new file mode 100644
index 0000000..e9cba1e
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventBweUpdateLossBased::GetType() const {
+ return RtcEvent::Type::BweUpdateLossBased;
+}
+
+bool RtcEventBweUpdateLossBased::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h
new file mode 100644
index 0000000..cbc8624
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_BWE_UPDATE_LOSS_BASED_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_BWE_UPDATE_LOSS_BASED_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventBweUpdateLossBased final : public RtcEvent {
+ public:
+ ~RtcEventBweUpdateLossBased() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_BWE_UPDATE_LOSS_BASED_H_
diff --git a/logging/rtc_event_log/events/rtc_event_logging_started.cc b/logging/rtc_event_log/events/rtc_event_logging_started.cc
new file mode 100644
index 0000000..47780b8
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_logging_started.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_logging_started.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventLoggingStarted::GetType() const {
+ return RtcEvent::Type::LoggingStarted;
+}
+
+bool RtcEventLoggingStarted::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_logging_started.h b/logging/rtc_event_log/events/rtc_event_logging_started.h
new file mode 100644
index 0000000..05dac6b
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_logging_started.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_LOGGING_STARTED_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_LOGGING_STARTED_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventLoggingStarted final : public RtcEvent {
+ public:
+ ~RtcEventLoggingStarted() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_LOGGING_STARTED_H_
diff --git a/logging/rtc_event_log/events/rtc_event_logging_stopped.cc b/logging/rtc_event_log/events/rtc_event_logging_stopped.cc
new file mode 100644
index 0000000..8560cdb
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_logging_stopped.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_logging_stopped.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventLoggingStopped::GetType() const {
+ return RtcEvent::Type::LoggingStopped;
+}
+
+bool RtcEventLoggingStopped::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_logging_stopped.h b/logging/rtc_event_log/events/rtc_event_logging_stopped.h
new file mode 100644
index 0000000..4b8575f
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_logging_stopped.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_LOGGING_STOPPED_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_LOGGING_STOPPED_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventLoggingStopped final : public RtcEvent {
+ public:
+ ~RtcEventLoggingStopped() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_LOGGING_STOPPED_H_
diff --git a/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc
new file mode 100644
index 0000000..314f816
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_probe_cluster_created.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventProbeClusterCreated::GetType() const {
+ return RtcEvent::Type::ProbeClusterCreated;
+}
+
+bool RtcEventProbeClusterCreated::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h
new file mode 100644
index 0000000..8893406
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_PROBE_CLUSTER_CREATED_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_PROBE_CLUSTER_CREATED_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventProbeClusterCreated final : public RtcEvent {
+ public:
+ ~RtcEventProbeClusterCreated() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_PROBE_CLUSTER_CREATED_H_
diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc b/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc
new file mode 100644
index 0000000..d2f6cc4
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventProbeResultFailure::GetType() const {
+ return RtcEvent::Type::ProbeResultFailure;
+}
+
+bool RtcEventProbeResultFailure::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_failure.h b/logging/rtc_event_log/events/rtc_event_probe_result_failure.h
new file mode 100644
index 0000000..6817a3b
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_probe_result_failure.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_PROBE_RESULT_FAILURE_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_PROBE_RESULT_FAILURE_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventProbeResultFailure final : public RtcEvent {
+ public:
+ ~RtcEventProbeResultFailure() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_PROBE_RESULT_FAILURE_H_
diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_success.cc b/logging/rtc_event_log/events/rtc_event_probe_result_success.cc
new file mode 100644
index 0000000..bf9fba9
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_probe_result_success.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_probe_result_success.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventProbeResultSuccess::GetType() const {
+ return RtcEvent::Type::ProbeResultSuccess;
+}
+
+bool RtcEventProbeResultSuccess::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_success.h b/logging/rtc_event_log/events/rtc_event_probe_result_success.h
new file mode 100644
index 0000000..cdf9493
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_probe_result_success.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_PROBE_RESULT_SUCCESS_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_PROBE_RESULT_SUCCESS_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventProbeResultSuccess final : public RtcEvent {
+ public:
+ ~RtcEventProbeResultSuccess() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_PROBE_RESULT_SUCCESS_H_
diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc
new file mode 100644
index 0000000..df84b17
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventRtcpPacketIncoming::GetType() const {
+ return RtcEvent::Type::RtcpPacketIncoming;
+}
+
+bool RtcEventRtcpPacketIncoming::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h
new file mode 100644
index 0000000..c9402d7
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_RTCP_PACKET_INCOMING_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTCP_PACKET_INCOMING_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventRtcpPacketIncoming final : public RtcEvent {
+ public:
+ ~RtcEventRtcpPacketIncoming() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTCP_PACKET_INCOMING_H_
diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc
new file mode 100644
index 0000000..a74671a
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventRtcpPacketOutgoing::GetType() const {
+ return RtcEvent::Type::RtcpPacketOutgoing;
+}
+
+bool RtcEventRtcpPacketOutgoing::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h
new file mode 100644
index 0000000..41c726f
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_RTCP_PACKET_OUTGOING_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTCP_PACKET_OUTGOING_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventRtcpPacketOutgoing final : public RtcEvent {
+ public:
+ ~RtcEventRtcpPacketOutgoing() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTCP_PACKET_OUTGOING_H_
diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc
new file mode 100644
index 0000000..324bb15
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventRtpPacketIncoming::GetType() const {
+ return RtcEvent::Type::RtpPacketIncoming;
+}
+
+bool RtcEventRtpPacketIncoming::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h
new file mode 100644
index 0000000..02bc7e8
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_RTP_PACKET_INCOMING_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTP_PACKET_INCOMING_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventRtpPacketIncoming final : public RtcEvent {
+ public:
+ ~RtcEventRtpPacketIncoming() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTP_PACKET_INCOMING_H_
diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc
new file mode 100644
index 0000000..4b3613d
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventRtpPacketOutgoing::GetType() const {
+ return RtcEvent::Type::RtpPacketOutgoing;
+}
+
+bool RtcEventRtpPacketOutgoing::IsConfigEvent() const {
+ return false;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h
new file mode 100644
index 0000000..0d77156
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_RTP_PACKET_OUTGOING_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTP_PACKET_OUTGOING_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventRtpPacketOutgoing final : public RtcEvent {
+ public:
+ ~RtcEventRtpPacketOutgoing() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTP_PACKET_OUTGOING_H_
diff --git a/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc
new file mode 100644
index 0000000..1e3fb67
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventVideoReceiveStreamConfig::GetType() const {
+ return Type::VideoReceiveStreamConfig;
+}
+
+bool RtcEventVideoReceiveStreamConfig::IsConfigEvent() const {
+ return true;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h
new file mode 100644
index 0000000..1506e8b
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_VIDEO_RECEIVE_STREAM_CONFIG_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_VIDEO_RECEIVE_STREAM_CONFIG_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventVideoReceiveStreamConfig final : public RtcEvent {
+ public:
+ ~RtcEventVideoReceiveStreamConfig() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_VIDEO_RECEIVE_STREAM_CONFIG_H_
diff --git a/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc
new file mode 100644
index 0000000..f54d825
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2017 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.
+ */
+
+#include "logging/rtc_event_log/events/rtc_event_video_send_stream_config.h"
+
+namespace webrtc {
+
+RtcEvent::Type RtcEventVideoSendStreamConfig::GetType() const {
+ return RtcEvent::Type::VideoSendStreamConfig;
+}
+
+bool RtcEventVideoSendStreamConfig::IsConfigEvent() const {
+ return true;
+}
+
+} // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h
new file mode 100644
index 0000000..97e2497
--- /dev/null
+++ b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 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_EVENTS_RTC_EVENT_VIDEO_SEND_STREAM_CONFIG_H_
+#define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_VIDEO_SEND_STREAM_CONFIG_H_
+
+#include "logging/rtc_event_log/events/rtc_event.h"
+
+namespace webrtc {
+
+class RtcEventVideoSendStreamConfig final : public RtcEvent {
+ public:
+ ~RtcEventVideoSendStreamConfig() override = default;
+
+ Type GetType() const override;
+
+ bool IsConfigEvent() const override;
+};
+
+} // namespace webrtc
+
+#endif // LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_VIDEO_SEND_STREAM_CONFIG_H_