Index: webrtc/call/call.cc |
diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc |
index d7272170841c665883fff1e4ceae0adb1e12d66b..d6e57659e0481a0aa0b11d9c1f0d640693b6c2f1 100644 |
--- a/webrtc/call/call.cc |
+++ b/webrtc/call/call.cc |
@@ -146,7 +146,6 @@ class Call : public webrtc::Call, |
void UpdateSendHistograms() EXCLUSIVE_LOCKS_REQUIRED(&bitrate_crit_); |
void UpdateReceiveHistograms(); |
void UpdateHistograms(); |
- void UpdateAggregateNetworkState(); |
Clock* const clock_; |
@@ -282,8 +281,8 @@ Call::Call(const Call::Config& config) |
call_stats_->RegisterStatsObserver(congestion_controller_.get()); |
congestion_controller_->SetBweBitrates( |
- config_.bitrate_config.min_bitrate_bps, |
config_.bitrate_config.start_bitrate_bps, |
+ config_.bitrate_config.min_bitrate_bps, |
config_.bitrate_config.max_bitrate_bps); |
module_process_thread_->Start(); |
@@ -405,7 +404,6 @@ webrtc::AudioSendStream* Call::CreateAudioSendStream( |
audio_send_ssrcs_[config.rtp.ssrc] = send_stream; |
} |
send_stream->SignalNetworkState(audio_network_state_); |
- UpdateAggregateNetworkState(); |
return send_stream; |
} |
@@ -424,7 +422,6 @@ void Call::DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) { |
audio_send_stream->config().rtp.ssrc); |
RTC_DCHECK(num_deleted == 1); |
} |
- UpdateAggregateNetworkState(); |
delete audio_send_stream; |
} |
@@ -443,7 +440,6 @@ webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream( |
ConfigureSync(config.sync_group); |
} |
receive_stream->SignalNetworkState(audio_network_state_); |
- UpdateAggregateNetworkState(); |
return receive_stream; |
} |
@@ -467,7 +463,6 @@ void Call::DestroyAudioReceiveStream( |
ConfigureSync(sync_group); |
} |
} |
- UpdateAggregateNetworkState(); |
delete audio_receive_stream; |
} |
@@ -499,7 +494,6 @@ webrtc::VideoSendStream* Call::CreateVideoSendStream( |
video_send_streams_.insert(send_stream); |
} |
send_stream->SignalNetworkState(video_network_state_); |
- UpdateAggregateNetworkState(); |
return send_stream; |
} |
@@ -535,7 +529,6 @@ void Call::DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) { |
suspended_video_send_ssrcs_[it->first] = it->second; |
} |
- UpdateAggregateNetworkState(); |
delete send_stream_impl; |
} |
@@ -562,7 +555,6 @@ webrtc::VideoReceiveStream* Call::CreateVideoReceiveStream( |
ConfigureSync(config.sync_group); |
} |
receive_stream->SignalNetworkState(video_network_state_); |
- UpdateAggregateNetworkState(); |
event_log_->LogVideoReceiveStreamConfig(config); |
return receive_stream; |
} |
@@ -592,7 +584,6 @@ void Call::DestroyVideoReceiveStream( |
RTC_CHECK(receive_stream_impl != nullptr); |
ConfigureSync(receive_stream_impl->config().sync_group); |
} |
- UpdateAggregateNetworkState(); |
delete receive_stream_impl; |
} |
@@ -695,9 +686,10 @@ void Call::SetBitrateConfig( |
if (bitrate_config.start_bitrate_bps > 0) |
config_.bitrate_config.start_bitrate_bps = bitrate_config.start_bitrate_bps; |
config_.bitrate_config.max_bitrate_bps = bitrate_config.max_bitrate_bps; |
- congestion_controller_->SetBweBitrates(bitrate_config.min_bitrate_bps, |
- bitrate_config.start_bitrate_bps, |
- bitrate_config.max_bitrate_bps); |
+ congestion_controller_->SetBweBitrates( |
+ config_.bitrate_config.start_bitrate_bps, |
+ config_.bitrate_config.min_bitrate_bps, |
+ config_.bitrate_config.max_bitrate_bps); |
} |
void Call::SignalChannelNetworkState(MediaType media, NetworkState state) { |
@@ -715,7 +707,6 @@ void Call::SignalChannelNetworkState(MediaType media, NetworkState state) { |
break; |
} |
- UpdateAggregateNetworkState(); |
honghaiz3
2016/11/03 06:10:20
I don't think it is appropriate to remove this her
|
{ |
ReadLockScoped read_lock(*send_crit_); |
for (auto& kv : audio_send_ssrcs_) { |
@@ -749,61 +740,15 @@ void Call::OnNetworkRouteChanged(const std::string& transport_name, |
} |
// Check whether the network route has changed on each transport. |
- auto result = |
- network_routes_.insert(std::make_pair(transport_name, network_route)); |
- auto kv = result.first; |
- bool inserted = result.second; |
- if (inserted) { |
- // No need to reset BWE if this is the first time the network connects. |
- return; |
- } |
- if (kv->second != network_route) { |
- kv->second = network_route; |
+ auto& old_route = network_routes_[transport_name]; |
+ if (old_route != network_route) { |
+ old_route = network_route; |
LOG(LS_INFO) << "Network route changed on transport " << transport_name |
<< ": new local network id " << network_route.local_network_id |
- << " new remote network id " << network_route.remote_network_id |
- << " Reset bitrates to min: " |
- << config_.bitrate_config.min_bitrate_bps |
- << " bps, start: " << config_.bitrate_config.start_bitrate_bps |
- << " bps, max: " << config_.bitrate_config.start_bitrate_bps |
- << " bps."; |
- congestion_controller_->ResetBweAndBitrates( |
- config_.bitrate_config.start_bitrate_bps, |
- config_.bitrate_config.min_bitrate_bps, |
- config_.bitrate_config.max_bitrate_bps); |
- } |
-} |
- |
-void Call::UpdateAggregateNetworkState() { |
- RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread()); |
- |
- bool have_audio = false; |
- bool have_video = false; |
- { |
- ReadLockScoped read_lock(*send_crit_); |
- if (audio_send_ssrcs_.size() > 0) |
- have_audio = true; |
- if (video_send_ssrcs_.size() > 0) |
- have_video = true; |
+ << " new remote network id " |
+ << network_route.remote_network_id; |
+ congestion_controller_->OnNetworkRouteChanged(network_route); |
} |
- { |
- ReadLockScoped read_lock(*receive_crit_); |
- if (audio_receive_ssrcs_.size() > 0) |
- have_audio = true; |
- if (video_receive_ssrcs_.size() > 0) |
- have_video = true; |
- } |
- |
- NetworkState aggregate_state = kNetworkDown; |
- if ((have_video && video_network_state_ == kNetworkUp) || |
- (have_audio && audio_network_state_ == kNetworkUp)) { |
- aggregate_state = kNetworkUp; |
- } |
- |
- LOG(LS_INFO) << "UpdateAggregateNetworkState: aggregate_state=" |
- << (aggregate_state == kNetworkUp ? "up" : "down"); |
- |
- congestion_controller_->SignalNetworkState(aggregate_state); |
} |
void Call::OnSentPacket(const rtc::SentPacket& sent_packet) { |