Chromium Code Reviews| Index: webrtc/video/video_send_stream.cc | 
| diff --git a/webrtc/video/video_send_stream.cc b/webrtc/video/video_send_stream.cc | 
| index 08dcd77ac69c749ac609e63c73d1f65c0490b5bb..e219dc9c191fbf4b5e9de7012b7eb9295fdff28c 100644 | 
| --- a/webrtc/video/video_send_stream.cc | 
| +++ b/webrtc/video/video_send_stream.cc | 
| @@ -28,6 +28,7 @@ | 
| #include "webrtc/video/video_capture_input.h" | 
| #include "webrtc/video/vie_channel.h" | 
| #include "webrtc/video/vie_encoder.h" | 
| +#include "webrtc/video/vie_remb.h" | 
| #include "webrtc/video_send_stream.h" | 
| namespace webrtc { | 
| @@ -113,6 +114,7 @@ VideoSendStream::VideoSendStream( | 
| ProcessThread* module_process_thread, | 
| CallStats* call_stats, | 
| CongestionController* congestion_controller, | 
| + VieRemb* remb, | 
| BitrateAllocator* bitrate_allocator, | 
| const VideoSendStream::Config& config, | 
| const VideoEncoderConfig& encoder_config, | 
| @@ -127,6 +129,7 @@ VideoSendStream::VideoSendStream( | 
| module_process_thread_(module_process_thread), | 
| call_stats_(call_stats), | 
| congestion_controller_(congestion_controller), | 
| + remb_(remb), | 
| encoder_feedback_(new EncoderStateFeedback()), | 
| use_config_bitrate_(true) { | 
| 
 
the sun
2016/02/05 15:12:37
Same as in receive stream, RTC_DCHECK(remb); and t
 
stefan-webrtc
2016/02/07 18:29:27
Done.
 
 | 
| LOG(LS_INFO) << "VideoSendStream: " << config_.ToString(); | 
| @@ -189,8 +192,9 @@ VideoSendStream::VideoSendStream( | 
| } | 
| } | 
| - congestion_controller_->SetChannelRembStatus(true, false, | 
| - vie_channel_->rtp_rtcp()); | 
| + RtpRtcp* rtp_module = vie_channel_->rtp_rtcp(); | 
| + remb_->AddRembSender(rtp_module); | 
| + rtp_module->SetREMBStatus(true); | 
| // Enable NACK, FEC or both. | 
| const bool enable_protection_nack = config_.rtp.nack.rtp_history_ms > 0; | 
| @@ -232,7 +236,6 @@ VideoSendStream::VideoSendStream( | 
| if (config_.suspend_below_min_bitrate) | 
| vie_encoder_->SuspendBelowMinBitrate(); | 
| - congestion_controller_->AddEncoder(vie_encoder_.get()); | 
| encoder_feedback_->AddEncoder(ssrcs, vie_encoder_.get()); | 
| vie_channel_->RegisterSendChannelRtcpStatisticsCallback(&stats_proxy_); | 
| @@ -258,12 +261,13 @@ VideoSendStream::~VideoSendStream() { | 
| config_.encoder_settings.payload_type); | 
| call_stats_->DeregisterStatsObserver(vie_channel_->GetStatsObserver()); | 
| - congestion_controller_->SetChannelRembStatus(false, false, | 
| - vie_channel_->rtp_rtcp()); | 
| + | 
| + RtpRtcp* rtp_module = vie_channel_->rtp_rtcp(); | 
| + rtp_module->SetREMBStatus(false); | 
| + remb_->RemoveRembSender(rtp_module); | 
| // Remove the feedback, stop all encoding threads and processing. This must be | 
| // done before deleting the channel. | 
| - congestion_controller_->RemoveEncoder(vie_encoder_.get()); | 
| encoder_feedback_->RemoveEncoder(vie_encoder_.get()); | 
| vie_encoder_->StopThreadsAndRemoveSharedMembers(); |