Index: webrtc/pc/trackmediainfomap.cc |
diff --git a/webrtc/pc/trackmediainfomap.cc b/webrtc/pc/trackmediainfomap.cc |
index d296c7f70e7fa60ae367bef8416f677107021e34..33880b9380bcf7e7751af58b60331d68c2fb6eb7 100644 |
--- a/webrtc/pc/trackmediainfomap.cc |
+++ b/webrtc/pc/trackmediainfomap.cc |
@@ -31,10 +31,14 @@ const V* FindAddressOrNull(const std::map<K, V>& map, const K& key) { |
void GetAudioAndVideoTrackBySsrc( |
const std::vector<rtc::scoped_refptr<RtpSenderInterface>>& rtp_senders, |
const std::vector<rtc::scoped_refptr<RtpReceiverInterface>>& rtp_receivers, |
- std::map<uint32_t, AudioTrackInterface*>* audio_track_by_ssrc, |
- std::map<uint32_t, VideoTrackInterface*>* video_track_by_ssrc) { |
- RTC_DCHECK(audio_track_by_ssrc->empty()); |
- RTC_DCHECK(video_track_by_ssrc->empty()); |
+ std::map<uint32_t, AudioTrackInterface*>* local_audio_track_by_ssrc, |
+ std::map<uint32_t, VideoTrackInterface*>* local_video_track_by_ssrc, |
+ std::map<uint32_t, AudioTrackInterface*>* remote_audio_track_by_ssrc, |
+ std::map<uint32_t, VideoTrackInterface*>* remote_video_track_by_ssrc) { |
+ RTC_DCHECK(local_audio_track_by_ssrc->empty()); |
+ RTC_DCHECK(local_video_track_by_ssrc->empty()); |
+ RTC_DCHECK(remote_audio_track_by_ssrc->empty()); |
+ RTC_DCHECK(remote_video_track_by_ssrc->empty()); |
// TODO(hbos): RTP senders/receivers uses a proxy to the signaling thread, and |
// our sender/receiver implementations invokes on the worker thread. (This |
// means one thread jump if on signaling thread and two thread jumps if on any |
@@ -53,13 +57,15 @@ void GetAudioAndVideoTrackBySsrc( |
uint32_t ssrc = rtp_sender->ssrc(); |
if (ssrc != 0) { |
if (media_type == cricket::MEDIA_TYPE_AUDIO) { |
- RTC_DCHECK(audio_track_by_ssrc->find(ssrc) == |
- audio_track_by_ssrc->end()); |
- (*audio_track_by_ssrc)[ssrc] = static_cast<AudioTrackInterface*>(track); |
+ RTC_DCHECK(local_audio_track_by_ssrc->find(ssrc) == |
+ local_audio_track_by_ssrc->end()); |
+ (*local_audio_track_by_ssrc)[ssrc] = |
+ static_cast<AudioTrackInterface*>(track); |
} else { |
- RTC_DCHECK(video_track_by_ssrc->find(ssrc) == |
- video_track_by_ssrc->end()); |
- (*video_track_by_ssrc)[ssrc] = static_cast<VideoTrackInterface*>(track); |
+ RTC_DCHECK(local_video_track_by_ssrc->find(ssrc) == |
+ local_video_track_by_ssrc->end()); |
+ (*local_video_track_by_ssrc)[ssrc] = |
+ static_cast<VideoTrackInterface*>(track); |
} |
} |
} |
@@ -77,14 +83,14 @@ void GetAudioAndVideoTrackBySsrc( |
continue; |
} |
if (media_type == cricket::MEDIA_TYPE_AUDIO) { |
- RTC_DCHECK(audio_track_by_ssrc->find(*encoding.ssrc) == |
- audio_track_by_ssrc->end()); |
- (*audio_track_by_ssrc)[*encoding.ssrc] = |
+ RTC_DCHECK(remote_audio_track_by_ssrc->find(*encoding.ssrc) == |
+ remote_audio_track_by_ssrc->end()); |
+ (*remote_audio_track_by_ssrc)[*encoding.ssrc] = |
static_cast<AudioTrackInterface*>(track); |
} else { |
- RTC_DCHECK(video_track_by_ssrc->find(*encoding.ssrc) == |
- video_track_by_ssrc->end()); |
- (*video_track_by_ssrc)[*encoding.ssrc] = |
+ RTC_DCHECK(remote_video_track_by_ssrc->find(*encoding.ssrc) == |
+ remote_video_track_by_ssrc->end()); |
+ (*remote_video_track_by_ssrc)[*encoding.ssrc] = |
static_cast<VideoTrackInterface*>(track); |
} |
} |
@@ -100,14 +106,20 @@ TrackMediaInfoMap::TrackMediaInfoMap( |
const std::vector<rtc::scoped_refptr<RtpReceiverInterface>>& rtp_receivers) |
: voice_media_info_(std::move(voice_media_info)), |
video_media_info_(std::move(video_media_info)) { |
- std::map<uint32_t, AudioTrackInterface*> audio_track_by_ssrc; |
- std::map<uint32_t, VideoTrackInterface*> video_track_by_ssrc; |
- GetAudioAndVideoTrackBySsrc(rtp_senders, rtp_receivers, &audio_track_by_ssrc, |
- &video_track_by_ssrc); |
+ std::map<uint32_t, AudioTrackInterface*> local_audio_track_by_ssrc; |
+ std::map<uint32_t, VideoTrackInterface*> local_video_track_by_ssrc; |
+ std::map<uint32_t, AudioTrackInterface*> remote_audio_track_by_ssrc; |
+ std::map<uint32_t, VideoTrackInterface*> remote_video_track_by_ssrc; |
+ GetAudioAndVideoTrackBySsrc(rtp_senders, |
+ rtp_receivers, |
+ &local_audio_track_by_ssrc, |
+ &local_video_track_by_ssrc, |
+ &remote_audio_track_by_ssrc, |
+ &remote_video_track_by_ssrc); |
if (voice_media_info_) { |
for (auto& sender_info : voice_media_info_->senders) { |
AudioTrackInterface* associated_track = |
- FindValueOrNull(audio_track_by_ssrc, sender_info.ssrc()); |
+ FindValueOrNull(local_audio_track_by_ssrc, sender_info.ssrc()); |
if (associated_track) { |
// One sender is associated with at most one track. |
// One track may be associated with multiple senders. |
@@ -117,7 +129,7 @@ TrackMediaInfoMap::TrackMediaInfoMap( |
} |
for (auto& receiver_info : voice_media_info_->receivers) { |
AudioTrackInterface* associated_track = |
- FindValueOrNull(audio_track_by_ssrc, receiver_info.ssrc()); |
+ FindValueOrNull(remote_audio_track_by_ssrc, receiver_info.ssrc()); |
if (associated_track) { |
// One receiver is associated with at most one track, which is uniquely |
// associated with that receiver. |
@@ -131,7 +143,7 @@ TrackMediaInfoMap::TrackMediaInfoMap( |
if (video_media_info_) { |
for (auto& sender_info : video_media_info_->senders) { |
VideoTrackInterface* associated_track = |
- FindValueOrNull(video_track_by_ssrc, sender_info.ssrc()); |
+ FindValueOrNull(local_video_track_by_ssrc, sender_info.ssrc()); |
if (associated_track) { |
// One sender is associated with at most one track. |
// One track may be associated with multiple senders. |
@@ -141,7 +153,7 @@ TrackMediaInfoMap::TrackMediaInfoMap( |
} |
for (auto& receiver_info : video_media_info_->receivers) { |
VideoTrackInterface* associated_track = |
- FindValueOrNull(video_track_by_ssrc, receiver_info.ssrc()); |
+ FindValueOrNull(remote_video_track_by_ssrc, receiver_info.ssrc()); |
if (associated_track) { |
// One receiver is associated with at most one track, which is uniquely |
// associated with that receiver. |