Chromium Code Reviews| 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) { |