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

Unified Diff: webrtc/call/call.cc

Issue 2461523002: Remove usage of VoEBase::AssociateSendChannel() from WVoMC. (Closed)
Patch Set: Added unit tests Created 4 years, 1 month 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 ebc1aeb866237b9c8c16abef5a5499419c228a62..77a76f9f8ece49e9363eef23e056a3aa31079755 100644
--- a/webrtc/call/call.cc
+++ b/webrtc/call/call.cc
@@ -407,6 +407,14 @@ webrtc::AudioSendStream* Call::CreateAudioSendStream(
audio_send_ssrcs_.end());
audio_send_ssrcs_[config.rtp.ssrc] = send_stream;
}
+ {
+ ReadLockScoped read_lock(*receive_crit_);
+ for (const auto& kv : audio_receive_ssrcs_) {
+ if (kv.second->config().rtp.local_ssrc == config.rtp.ssrc) {
+ kv.second->AssociateSendStream(send_stream);
+ }
+ }
+ }
send_stream->SignalNetworkState(audio_network_state_);
UpdateAggregateNetworkState();
return send_stream;
@@ -421,12 +429,20 @@ void Call::DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) {
webrtc::internal::AudioSendStream* audio_send_stream =
static_cast<webrtc::internal::AudioSendStream*>(send_stream);
+ uint32_t ssrc = audio_send_stream->config().rtp.ssrc;
kwiberg-webrtc 2016/11/11 13:47:40 const?
the sun 2016/11/11 20:03:39 Hmm, why here, in particular, and not on every loc
kwiberg-webrtc 2016/11/13 20:17:02 I try to complain in pretty much all such cases, y
the sun 2016/11/14 18:58:06 In the name of consistency with surrounding code I
kwiberg-webrtc 2016/11/15 05:05:02 I don't think the style guide takes a position on
{
WriteLockScoped write_lock(*send_crit_);
- size_t num_deleted = audio_send_ssrcs_.erase(
- audio_send_stream->config().rtp.ssrc);
+ size_t num_deleted = audio_send_ssrcs_.erase(ssrc);
RTC_DCHECK(num_deleted == 1);
kwiberg-webrtc 2016/11/11 13:47:39 RTC_DCHECK_EQ
the sun 2016/11/11 20:03:39 Done.
}
+ {
+ ReadLockScoped read_lock(*receive_crit_);
+ for (const auto& kv : audio_receive_ssrcs_) {
+ if (kv.second->config().rtp.local_ssrc == ssrc) {
+ kv.second->AssociateSendStream(nullptr);
+ }
+ }
+ }
UpdateAggregateNetworkState();
delete audio_send_stream;
}
@@ -445,6 +461,13 @@ webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream(
audio_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream;
ConfigureSync(config.sync_group);
}
+ {
+ ReadLockScoped read_lock(*send_crit_);
+ auto it = audio_send_ssrcs_.find(config.rtp.local_ssrc);
+ if (it != audio_send_ssrcs_.end()) {
+ receive_stream->AssociateSendStream(it->second);
+ }
+ }
receive_stream->SignalNetworkState(audio_network_state_);
UpdateAggregateNetworkState();
return receive_stream;

Powered by Google App Engine
This is Rietveld 408576698