From 457a61db616f17be54b32bc7d8bb781d53396f69 Mon Sep 17 00:00:00 2001 From: stefan Date: Wed, 14 Oct 2015 03:12:59 -0700 Subject: [PATCH] Pause/resume pacer from Call instead of via SendStreams. BUG=webrtc:5073 Review URL: https://codereview.webrtc.org/1398443007 Cr-Commit-Position: refs/heads/master@{#10271} --- webrtc/call/call.cc | 1 + webrtc/video_engine/vie_channel_group.cc | 8 ++++++++ webrtc/video_engine/vie_channel_group.h | 2 ++ webrtc/video_engine/vie_encoder.cc | 5 ----- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc index 2c80ccff0d..41b2c83d38 100644 --- a/webrtc/call/call.cc +++ b/webrtc/call/call.cc @@ -396,6 +396,7 @@ void Call::SignalNetworkState(NetworkState state) { // to guarantee a consistent state across streams. rtc::CritScope lock(&network_enabled_crit_); network_enabled_ = state == kNetworkUp; + channel_group_->SignalNetworkState(state); { ReadLockScoped write_lock(*send_crit_); for (auto& kv : video_send_ssrcs_) { diff --git a/webrtc/video_engine/vie_channel_group.cc b/webrtc/video_engine/vie_channel_group.cc index ed4332ab08..7ed0341056 100644 --- a/webrtc/video_engine/vie_channel_group.cc +++ b/webrtc/video_engine/vie_channel_group.cc @@ -422,6 +422,14 @@ void ChannelGroup::SetChannelRembStatus(bool sender, } } +void ChannelGroup::SignalNetworkState(NetworkState state) { + if (state == kNetworkUp) { + pacer_->Resume(); + } else { + pacer_->Pause(); + } +} + void ChannelGroup::OnNetworkChanged(uint32_t target_bitrate_bps, uint8_t fraction_loss, int64_t rtt) { diff --git a/webrtc/video_engine/vie_channel_group.h b/webrtc/video_engine/vie_channel_group.h index 374bd00333..c2ae12745c 100644 --- a/webrtc/video_engine/vie_channel_group.h +++ b/webrtc/video_engine/vie_channel_group.h @@ -69,6 +69,8 @@ class ChannelGroup : public BitrateObserver { void SetChannelRembStatus(bool sender, bool receiver, ViEChannel* channel); + void SignalNetworkState(NetworkState state); + BitrateController* GetBitrateController() const; CallStats* GetCallStats() const; RemoteBitrateEstimator* GetRemoteBitrateEstimator() const; diff --git a/webrtc/video_engine/vie_encoder.cc b/webrtc/video_engine/vie_encoder.cc index fcdc5bb34e..45e9612358 100644 --- a/webrtc/video_engine/vie_encoder.cc +++ b/webrtc/video_engine/vie_encoder.cc @@ -185,11 +185,6 @@ void ViEEncoder::SetNetworkTransmissionState(bool is_transmitting) { CriticalSectionScoped cs(data_cs_.get()); network_is_transmitting_ = is_transmitting; } - if (is_transmitting) { - pacer_->Resume(); - } else { - pacer_->Pause(); - } } void ViEEncoder::Pause() {