Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Unified Diff: webrtc/video/video_send_stream.cc

Issue 1706803002: Simplify EncoderStateFeedback. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());

Powered by Google App Engine
This is Rietveld 408576698