Index: webrtc/video/video_send_stream.cc |
diff --git a/webrtc/video/video_send_stream.cc b/webrtc/video/video_send_stream.cc |
index fafb0223aee3f47cd7a32624c9de47a8217ddd40..3c5eaf919d43e86552efe154e1c1393ae8db2edb 100644 |
--- a/webrtc/video/video_send_stream.cc |
+++ b/webrtc/video/video_send_stream.cc |
@@ -178,7 +178,7 @@ VideoSendStream::VideoSendStream( |
module_process_thread_, |
&payload_router_, |
nullptr, |
- encoder_feedback_.GetRtcpIntraFrameObserver(), |
+ &encoder_feedback_, |
congestion_controller_->GetBitrateController() |
->CreateRtcpBandwidthObserver(), |
congestion_controller_->GetTransportFeedbackObserver(), |
@@ -210,6 +210,7 @@ VideoSendStream::VideoSendStream( |
RTC_DCHECK(congestion_controller_); |
RTC_DCHECK(remb_); |
+ encoder_feedback_.Init(config_.rtp.ssrcs, &vie_encoder_); |
danilchap
2016/02/17 16:14:01
encoder_feedback obviously depends on vie_encoder_
pbos-webrtc
2016/02/18 16:00:29
Done.
|
RTC_CHECK(vie_encoder_.Init()); |
RTC_CHECK(vie_channel_.Init() == 0); |
@@ -290,8 +291,6 @@ VideoSendStream::VideoSendStream( |
if (config_.suspend_below_min_bitrate) |
vie_encoder_.SuspendBelowMinBitrate(); |
- encoder_feedback_.AddEncoder(config_.rtp.ssrcs, &vie_encoder_); |
- |
vie_channel_.RegisterSendChannelRtcpStatisticsCallback(&stats_proxy_); |
vie_channel_.RegisterSendChannelRtpStatisticsCallback(&stats_proxy_); |
vie_channel_.RegisterRtcpPacketTypeCounterObserver(&stats_proxy_); |
@@ -321,9 +320,9 @@ VideoSendStream::~VideoSendStream() { |
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. |
- encoder_feedback_.RemoveEncoder(&vie_encoder_); |
+ // ViEChannel outlives ViEEncoder so remove encoder from feedback before |
+ // destruction. |
+ encoder_feedback_.TearDown(); |
congestion_controller_->GetRemoteBitrateEstimator(false)->RemoveStream( |
vie_receiver_->GetRemoteSsrc()); |