diff --git a/call/BUILD.gn b/call/BUILD.gn
index 90b44cf..636fe0b 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -28,6 +28,7 @@
     "..:webrtc_common",
     "../:typedefs",
     "../api:audio_mixer_api",
+    "../api:fec_controller_api",
     "../api:libjingle_peerconnection_api",
     "../api:optional",
     "../api:transport_api",
@@ -149,6 +150,7 @@
     "../modules/rtp_rtcp",
     "../modules/rtp_rtcp:rtp_rtcp_format",
     "../modules/utility",
+    "../modules/video_coding:video_coding",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_task_queue",
diff --git a/call/DEPS b/call/DEPS
index 307a26e..f823a7b 100644
--- a/call/DEPS
+++ b/call/DEPS
@@ -7,6 +7,7 @@
   "+modules/audio_processing",
   "+modules/bitrate_controller",
   "+modules/congestion_controller",
+  "+modules/video_coding",
   "+modules/pacing",
   "+modules/rtp_rtcp",
   "+modules/utility",
diff --git a/call/call.cc b/call/call.cc
index fceea13..fc8333c 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -42,6 +42,7 @@
 #include "modules/rtp_rtcp/source/byte_io.h"
 #include "modules/rtp_rtcp/source/rtp_packet_received.h"
 #include "modules/utility/include/process_thread.h"
+#include "modules/video_coding/fec_controller_default.h"
 #include "rtc_base/basictypes.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/constructormagic.h"
@@ -184,6 +185,10 @@
   webrtc::VideoSendStream* CreateVideoSendStream(
       webrtc::VideoSendStream::Config config,
       VideoEncoderConfig encoder_config) override;
+  webrtc::VideoSendStream* CreateVideoSendStream(
+      webrtc::VideoSendStream::Config config,
+      VideoEncoderConfig encoder_config,
+      std::unique_ptr<FecController> fec_controller) override;
   void DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) override;
 
   webrtc::VideoReceiveStream* CreateVideoReceiveStream(
@@ -402,6 +407,13 @@
   return new internal::Call(config, std::move(transport_send));
 }
 
+VideoSendStream* Call::CreateVideoSendStream(
+    VideoSendStream::Config config,
+    VideoEncoderConfig encoder_config,
+    std::unique_ptr<FecController> fec_controller) {
+  return nullptr;
+}
+
 namespace internal {
 
 Call::Call(const Call::Config& config,
@@ -714,6 +726,15 @@
 webrtc::VideoSendStream* Call::CreateVideoSendStream(
     webrtc::VideoSendStream::Config config,
     VideoEncoderConfig encoder_config) {
+  return CreateVideoSendStream(
+      std::move(config), std::move(encoder_config),
+      rtc::MakeUnique<FecControllerDefault>(Clock::GetRealTimeClock()));
+}
+
+webrtc::VideoSendStream* Call::CreateVideoSendStream(
+    webrtc::VideoSendStream::Config config,
+    VideoEncoderConfig encoder_config,
+    std::unique_ptr<FecController> fec_controller) {
   TRACE_EVENT0("webrtc", "Call::CreateVideoSendStream");
   RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_);
 
@@ -733,7 +754,7 @@
       call_stats_.get(), transport_send_.get(), bitrate_allocator_.get(),
       video_send_delay_stats_.get(), event_log_, std::move(config),
       std::move(encoder_config), suspended_video_send_ssrcs_,
-      suspended_video_payload_states_);
+      suspended_video_payload_states_, std::move(fec_controller));
 
   {
     WriteLockScoped write_lock(*send_crit_);
diff --git a/call/call.h b/call/call.h
index b6e0aea..eb23e8b 100644
--- a/call/call.h
+++ b/call/call.h
@@ -15,6 +15,7 @@
 #include <string>
 #include <vector>
 
+#include "api/fec_controller.h"
 #include "api/rtcerror.h"
 #include "call/audio_receive_stream.h"
 #include "call/audio_send_stream.h"
@@ -144,6 +145,10 @@
   virtual VideoSendStream* CreateVideoSendStream(
       VideoSendStream::Config config,
       VideoEncoderConfig encoder_config) = 0;
+  virtual VideoSendStream* CreateVideoSendStream(
+      VideoSendStream::Config config,
+      VideoEncoderConfig encoder_config,
+      std::unique_ptr<FecController> fec_controller);
   virtual void DestroyVideoSendStream(VideoSendStream* send_stream) = 0;
 
   virtual VideoReceiveStream* CreateVideoReceiveStream(
