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

Unified Diff: webrtc/call/call.cc

Issue 2458863002: Start probes only after network is connected. (Closed)
Patch Set: . Created 4 years, 2 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/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) {

Powered by Google App Engine
This is Rietveld 408576698