diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index fac7e3d..18d6084 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -26,6 +26,8 @@
   sources = [
     "rtc_event_log/rtc_event_log.h",
     "rtc_event_log/rtc_event_log_factory_interface.h",
+    "rtc_event_log/rtc_stream_config.cc",
+    "rtc_event_log/rtc_stream_config.h",
   ]
   deps = [
     "..:webrtc_common",
diff --git a/logging/rtc_event_log/rtc_event_log.h b/logging/rtc_event_log/rtc_event_log.h
index 1e4650c..40d8989 100644
--- a/logging/rtc_event_log/rtc_event_log.h
+++ b/logging/rtc_event_log/rtc_event_log.h
@@ -15,43 +15,17 @@
 #include <string>
 #include <vector>
 
+// TODO(eladalon): Get rid of this later in the CL-stack.
 #include "webrtc/api/rtpparameters.h"
 #include "webrtc/common_types.h"
+// TODO(eladalon): Get rid of this later in the CL-stack.
+#include "webrtc/logging/rtc_event_log/rtc_stream_config.h"
 #include "webrtc/rtc_base/platform_file.h"
 
 namespace webrtc {
 
-// Forward declaration of storage class that is automatically generated from
-// the protobuf file.
 namespace rtclog {
-class EventStream;
-
-struct StreamConfig {
-  uint32_t local_ssrc = 0;
-  uint32_t remote_ssrc = 0;
-  uint32_t rtx_ssrc = 0;
-  std::string rsid;
-
-  bool remb = false;
-  std::vector<RtpExtension> rtp_extensions;
-
-  RtcpMode rtcp_mode = RtcpMode::kReducedSize;
-
-  struct Codec {
-    Codec(const std::string& payload_name,
-          int payload_type,
-          int rtx_payload_type)
-        : payload_name(payload_name),
-          payload_type(payload_type),
-          rtx_payload_type(rtx_payload_type) {}
-
-    std::string payload_name;
-    int payload_type;
-    int rtx_payload_type;
-  };
-  std::vector<Codec> codecs;
-};
-
+class EventStream;  // Storage class automatically generated from protobuf.
 }  // namespace rtclog
 
 class Clock;
diff --git a/logging/rtc_event_log/rtc_stream_config.cc b/logging/rtc_event_log/rtc_stream_config.cc
new file mode 100644
index 0000000..c6e5cb9
--- /dev/null
+++ b/logging/rtc_event_log/rtc_stream_config.cc
@@ -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.
+ */
+
+#include "webrtc/logging/rtc_event_log/rtc_stream_config.h"
+
+namespace webrtc {
+namespace rtclog {
+
+StreamConfig::StreamConfig() {}
+
+StreamConfig::~StreamConfig() {}
+
+StreamConfig::Codec::Codec(const std::string& payload_name,
+                           int payload_type,
+                           int rtx_payload_type)
+        : payload_name(payload_name),
+          payload_type(payload_type),
+          rtx_payload_type(rtx_payload_type) {}
+
+
+}  // namespace rtclog
+}  // namespace webrtc
diff --git a/logging/rtc_event_log/rtc_stream_config.h b/logging/rtc_event_log/rtc_stream_config.h
new file mode 100644
index 0000000..4a09873
--- /dev/null
+++ b/logging/rtc_event_log/rtc_stream_config.h
@@ -0,0 +1,53 @@
+/*
+ *  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 WEBRTC_LOGGING_RTC_EVENT_LOG_RTC_STREAM_CONFIG_H_
+#define WEBRTC_LOGGING_RTC_EVENT_LOG_RTC_STREAM_CONFIG_H_
+
+#include <string>
+#include <vector>
+
+#include "webrtc/api/rtpparameters.h"
+#include "webrtc/common_types.h"
+
+namespace webrtc {
+namespace rtclog {
+
+struct StreamConfig {
+  StreamConfig();
+  ~StreamConfig();
+
+  uint32_t local_ssrc = 0;
+  uint32_t remote_ssrc = 0;
+  uint32_t rtx_ssrc = 0;
+  std::string rsid;
+
+  bool remb = false;
+  std::vector<RtpExtension> rtp_extensions;
+
+  RtcpMode rtcp_mode = RtcpMode::kReducedSize;
+
+  struct Codec {
+    Codec(const std::string& payload_name,
+          int payload_type,
+          int rtx_payload_type);
+
+    std::string payload_name;
+    int payload_type;
+    int rtx_payload_type;
+  };
+
+  std::vector<Codec> codecs;
+};
+
+}  // namespace rtclog
+}  // namespace webrtc
+
+#endif  // WEBRTC_LOGGING_RTC_EVENT_LOG_RTC_STREAM_CONFIG_H_
