| Index: webrtc/video/video_receive_stream.cc
 | 
| diff --git a/webrtc/video/video_receive_stream.cc b/webrtc/video/video_receive_stream.cc
 | 
| index 9eceb009c421ee44d8a113b9f7ebbb5cc3159fb4..acc497b616433e771a2259247f1360cbd1619095 100644
 | 
| --- a/webrtc/video/video_receive_stream.cc
 | 
| +++ b/webrtc/video/video_receive_stream.cc
 | 
| @@ -21,6 +21,7 @@
 | 
|  #include "webrtc/base/logging.h"
 | 
|  #include "webrtc/base/optional.h"
 | 
|  #include "webrtc/base/trace_event.h"
 | 
| +#include "webrtc/call/rtp_stream_receiver_controller_interface.h"
 | 
|  #include "webrtc/common_types.h"
 | 
|  #include "webrtc/common_video/h264/profile_level_id.h"
 | 
|  #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
 | 
| @@ -168,11 +169,13 @@ VideoCodec CreateDecoderVideoCodec(const VideoReceiveStream::Decoder& decoder) {
 | 
|  
 | 
|  namespace internal {
 | 
|  
 | 
| -VideoReceiveStream::VideoReceiveStream(int num_cpu_cores,
 | 
| -                                       PacketRouter* packet_router,
 | 
| -                                       VideoReceiveStream::Config config,
 | 
| -                                       ProcessThread* process_thread,
 | 
| -                                       CallStats* call_stats)
 | 
| +VideoReceiveStream::VideoReceiveStream(
 | 
| +    RtpStreamReceiverControllerInterface* receiver_controller,
 | 
| +    int num_cpu_cores,
 | 
| +    PacketRouter* packet_router,
 | 
| +    VideoReceiveStream::Config config,
 | 
| +    ProcessThread* process_thread,
 | 
| +    CallStats* call_stats)
 | 
|      : transport_adapter_(config.rtcp_send_transport),
 | 
|        config_(std::move(config)),
 | 
|        num_cpu_cores_(num_cpu_cores),
 | 
| @@ -222,6 +225,14 @@ VideoReceiveStream::VideoReceiveStream(int num_cpu_cores,
 | 
|        clock_, jitter_estimator_.get(), timing_.get(), &stats_proxy_));
 | 
|  
 | 
|    process_thread_->RegisterModule(&rtp_stream_sync_, RTC_FROM_HERE);
 | 
| +
 | 
| +  // Register with RtpStreamReceiverController.
 | 
| +  media_receiver_ = receiver_controller->CreateReceiver(
 | 
| +      config_.rtp.remote_ssrc, &rtp_video_stream_receiver_);
 | 
| +  if (config.rtp.rtx_ssrc) {
 | 
| +    rtx_receiver_ = receiver_controller->CreateReceiver(
 | 
| +        config_.rtp.rtx_ssrc, &rtp_video_stream_receiver_);
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  VideoReceiveStream::~VideoReceiveStream() {
 | 
| @@ -241,10 +252,6 @@ bool VideoReceiveStream::DeliverRtcp(const uint8_t* packet, size_t length) {
 | 
|    return rtp_video_stream_receiver_.DeliverRtcp(packet, length);
 | 
|  }
 | 
|  
 | 
| -void VideoReceiveStream::OnRtpPacket(const RtpPacketReceived& packet) {
 | 
| -  rtp_video_stream_receiver_.OnRtpPacket(packet);
 | 
| -}
 | 
| -
 | 
|  void VideoReceiveStream::SetSync(Syncable* audio_syncable) {
 | 
|    RTC_DCHECK_RUN_ON(&worker_thread_checker_);
 | 
|    rtp_stream_sync_.ConfigureSync(audio_syncable);
 | 
| 
 |