| Index: webrtc/video/video_receive_stream.cc
 | 
| diff --git a/webrtc/video/video_receive_stream.cc b/webrtc/video/video_receive_stream.cc
 | 
| index 79bebebb0448247408ad5bb1f4ad98456843ca57..5fd436d6a4caea4672327772d1350fc8c7c01d2e 100644
 | 
| --- a/webrtc/video/video_receive_stream.cc
 | 
| +++ b/webrtc/video/video_receive_stream.cc
 | 
| @@ -186,6 +186,7 @@ namespace internal {
 | 
|  
 | 
|  VideoReceiveStream::VideoReceiveStream(
 | 
|      int num_cpu_cores,
 | 
| +    bool protected_by_flexfec,
 | 
|      CongestionController* congestion_controller,
 | 
|      PacketRouter* packet_router,
 | 
|      VideoReceiveStream::Config config,
 | 
| @@ -196,6 +197,7 @@ VideoReceiveStream::VideoReceiveStream(
 | 
|      : transport_adapter_(config.rtcp_send_transport),
 | 
|        config_(std::move(config)),
 | 
|        num_cpu_cores_(num_cpu_cores),
 | 
| +      protected_by_flexfec_(protected_by_flexfec),
 | 
|        process_thread_(process_thread),
 | 
|        clock_(Clock::GetRealTimeClock()),
 | 
|        decode_thread_(DecodeThreadFunction, this, "DecodingThread"),
 | 
| @@ -204,21 +206,20 @@ VideoReceiveStream::VideoReceiveStream(
 | 
|        timing_(new VCMTiming(clock_)),
 | 
|        video_receiver_(clock_, nullptr, this, timing_.get(), this, this),
 | 
|        stats_proxy_(&config_, clock_),
 | 
| -      rtp_stream_receiver_(
 | 
| -          &video_receiver_,
 | 
| -          congestion_controller_->GetRemoteBitrateEstimator(
 | 
| -              UseSendSideBwe(config_)),
 | 
| -          &transport_adapter_,
 | 
| -          call_stats_->rtcp_rtt_stats(),
 | 
| -          packet_router,
 | 
| -          remb,
 | 
| -          &config_,
 | 
| -          &stats_proxy_,
 | 
| -          process_thread_,
 | 
| -          this,  // NackSender
 | 
| -          this,  // KeyFrameRequestSender
 | 
| -          this,  // OnCompleteFrameCallback
 | 
| -          timing_.get()),
 | 
| +      rtp_stream_receiver_(&video_receiver_,
 | 
| +                           congestion_controller_->GetRemoteBitrateEstimator(
 | 
| +                               UseSendSideBwe(config_)),
 | 
| +                           &transport_adapter_,
 | 
| +                           call_stats_->rtcp_rtt_stats(),
 | 
| +                           packet_router,
 | 
| +                           remb,
 | 
| +                           &config_,
 | 
| +                           &stats_proxy_,
 | 
| +                           process_thread_,
 | 
| +                           this,  // NackSender
 | 
| +                           this,  // KeyFrameRequestSender
 | 
| +                           this,  // OnCompleteFrameCallback
 | 
| +                           timing_.get()),
 | 
|        rtp_stream_sync_(&video_receiver_, &rtp_stream_receiver_),
 | 
|        jitter_buffer_experiment_(
 | 
|            field_trial::FindFullName("WebRTC-NewVideoJitterBuffer") ==
 | 
| @@ -297,12 +298,15 @@ void VideoReceiveStream::SetSyncChannel(VoiceEngine* voice_engine,
 | 
|  void VideoReceiveStream::Start() {
 | 
|    if (decode_thread_.IsRunning())
 | 
|      return;
 | 
| +
 | 
| +  bool protected_by_fec =
 | 
| +      protected_by_flexfec_ || rtp_stream_receiver_.IsUlpfecEnabled();
 | 
| +
 | 
|    if (jitter_buffer_experiment_) {
 | 
|      frame_buffer_->Start();
 | 
|      call_stats_->RegisterStatsObserver(&rtp_stream_receiver_);
 | 
|  
 | 
| -    if (rtp_stream_receiver_.IsRetransmissionsEnabled() &&
 | 
| -        rtp_stream_receiver_.IsUlpfecEnabled()) {
 | 
| +    if (rtp_stream_receiver_.IsRetransmissionsEnabled() && protected_by_fec) {
 | 
|        frame_buffer_->SetProtectionMode(kProtectionNackFEC);
 | 
|      }
 | 
|    }
 | 
| @@ -331,9 +335,8 @@ void VideoReceiveStream::Start() {
 | 
|  
 | 
|    video_stream_decoder_.reset(new VideoStreamDecoder(
 | 
|        &video_receiver_, &rtp_stream_receiver_, &rtp_stream_receiver_,
 | 
| -      rtp_stream_receiver_.IsRetransmissionsEnabled(),
 | 
| -      rtp_stream_receiver_.IsUlpfecEnabled(), &stats_proxy_, renderer,
 | 
| -      config_.pre_render_callback));
 | 
| +      rtp_stream_receiver_.IsRetransmissionsEnabled(), protected_by_fec,
 | 
| +      &stats_proxy_, renderer, config_.pre_render_callback));
 | 
|    // Register the channel to receive stats updates.
 | 
|    call_stats_->RegisterStatsObserver(video_stream_decoder_.get());
 | 
|    // Start the decode thread
 | 
| 
 |