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

Unified Diff: talk/app/webrtc/mediastreamsignaling.cc

Issue 1351803002: Exposing RtpSenders and RtpReceivers from PeerConnection. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 3 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: talk/app/webrtc/mediastreamsignaling.cc
diff --git a/talk/app/webrtc/mediastreamsignaling.cc b/talk/app/webrtc/mediastreamsignaling.cc
index 1f5f14fd7b55a3e6641349058f03ed1c38bfdb4a..e18180baabd8b654cd0e557cfc638b79888695f6 100644
--- a/talk/app/webrtc/mediastreamsignaling.cc
+++ b/talk/app/webrtc/mediastreamsignaling.cc
@@ -359,7 +359,8 @@ bool MediaStreamSignaling::AddLocalStream(MediaStreamInterface* local_stream) {
(*it)->id());
if (track_info) {
OnLocalTrackSeen(track_info->stream_label, track_info->track_id,
- track_info->ssrc, cricket::MEDIA_TYPE_AUDIO);
+ track_info->ssrc, cricket::MEDIA_TYPE_AUDIO,
+ track_info->mid);
}
}
@@ -371,7 +372,8 @@ bool MediaStreamSignaling::AddLocalStream(MediaStreamInterface* local_stream) {
(*it)->id());
if (track_info) {
OnLocalTrackSeen(track_info->stream_label, track_info->track_id,
- track_info->ssrc, cricket::MEDIA_TYPE_VIDEO);
+ track_info->ssrc, cricket::MEDIA_TYPE_VIDEO,
+ track_info->mid);
}
}
return true;
@@ -471,10 +473,14 @@ void MediaStreamSignaling::OnRemoteDescriptionChanged(
const cricket::AudioContentDescription* desc =
static_cast<const cricket::AudioContentDescription*>(
audio_content->description);
- UpdateRemoteStreamsList(desc->streams(), desc->type(), new_streams);
+ UpdateRemoteStreamsList(desc->streams(), desc->type(), audio_content->name,
+ new_streams);
remote_info_.default_audio_track_needed =
MediaContentDirectionHasSend(desc->direction()) &&
desc->streams().empty();
+ if (remote_info_.default_audio_track_needed) {
+ remote_info_.default_audio_mid = audio_content->name;
+ }
}
// Find all video rtp streams and create corresponding remote VideoTracks
@@ -484,10 +490,14 @@ void MediaStreamSignaling::OnRemoteDescriptionChanged(
const cricket::VideoContentDescription* desc =
static_cast<const cricket::VideoContentDescription*>(
video_content->description);
- UpdateRemoteStreamsList(desc->streams(), desc->type(), new_streams);
+ UpdateRemoteStreamsList(desc->streams(), desc->type(), video_content->name,
+ new_streams);
remote_info_.default_video_track_needed =
MediaContentDirectionHasSend(desc->direction()) &&
desc->streams().empty();
+ if (remote_info_.default_video_track_needed) {
+ remote_info_.default_video_mid = video_content->name;
+ }
}
// Update the DataChannels with the information from the remote peer.
@@ -530,7 +540,8 @@ void MediaStreamSignaling::OnLocalDescriptionChanged(
const cricket::AudioContentDescription* audio_desc =
static_cast<const cricket::AudioContentDescription*>(
audio_content->description);
- UpdateLocalTracks(audio_desc->streams(), audio_desc->type());
+ UpdateLocalTracks(audio_desc->streams(), audio_desc->type(),
+ audio_content->name);
}
const cricket::ContentInfo* video_content =
@@ -542,7 +553,8 @@ void MediaStreamSignaling::OnLocalDescriptionChanged(
const cricket::VideoContentDescription* video_desc =
static_cast<const cricket::VideoContentDescription*>(
video_content->description);
- UpdateLocalTracks(video_desc->streams(), video_desc->type());
+ UpdateLocalTracks(video_desc->streams(), video_desc->type(),
+ video_content->name);
}
const cricket::ContentInfo* data_content =
@@ -587,6 +599,7 @@ void MediaStreamSignaling::OnDataChannelClose() {
void MediaStreamSignaling::UpdateRemoteStreamsList(
const cricket::StreamParamsVec& streams,
cricket::MediaType media_type,
+ const std::string& mid,
StreamCollection* new_streams) {
TrackInfos* current_tracks = GetRemoteTracks(media_type);
@@ -626,8 +639,9 @@ void MediaStreamSignaling::UpdateRemoteStreamsList(
const TrackInfo* track_info = FindTrackInfo(*current_tracks, stream_label,
track_id);
if (!track_info) {
- current_tracks->push_back(TrackInfo(stream_label, track_id, ssrc));
- OnRemoteTrackSeen(stream_label, track_id, it->first_ssrc(), media_type);
+ current_tracks->push_back(TrackInfo(stream_label, track_id, ssrc, mid));
+ OnRemoteTrackSeen(stream_label, track_id, it->first_ssrc(), media_type,
+ mid);
}
}
}
@@ -635,17 +649,18 @@ void MediaStreamSignaling::UpdateRemoteStreamsList(
void MediaStreamSignaling::OnRemoteTrackSeen(const std::string& stream_label,
const std::string& track_id,
uint32 ssrc,
- cricket::MediaType media_type) {
+ cricket::MediaType media_type,
+ const std::string& mid) {
MediaStreamInterface* stream = remote_streams_->find(stream_label);
if (media_type == cricket::MEDIA_TYPE_AUDIO) {
AudioTrackInterface* audio_track =
remote_stream_factory_->AddAudioTrack(stream, track_id);
- stream_observer_->OnAddRemoteAudioTrack(stream, audio_track, ssrc);
+ stream_observer_->OnAddRemoteAudioTrack(stream, audio_track, ssrc, mid);
} else if (media_type == cricket::MEDIA_TYPE_VIDEO) {
VideoTrackInterface* video_track =
remote_stream_factory_->AddVideoTrack(stream, track_id);
- stream_observer_->OnAddRemoteVideoTrack(stream, video_track, ssrc);
+ stream_observer_->OnAddRemoteVideoTrack(stream, video_track, ssrc, mid);
} else {
ASSERT(false && "Invalid media type");
}
@@ -736,17 +751,21 @@ void MediaStreamSignaling::MaybeCreateDefaultStream() {
if (remote_info_.default_audio_track_needed &&
default_remote_stream->GetAudioTracks().size() == 0) {
remote_audio_tracks_.push_back(TrackInfo(kDefaultStreamLabel,
- kDefaultAudioTrackLabel, 0));
+ kDefaultAudioTrackLabel, 0,
+ remote_info_.default_audio_mid));
OnRemoteTrackSeen(kDefaultStreamLabel, kDefaultAudioTrackLabel, 0,
- cricket::MEDIA_TYPE_AUDIO);
+ cricket::MEDIA_TYPE_AUDIO,
+ remote_info_.default_audio_mid);
}
if (remote_info_.default_video_track_needed &&
default_remote_stream->GetVideoTracks().size() == 0) {
remote_video_tracks_.push_back(TrackInfo(kDefaultStreamLabel,
- kDefaultVideoTrackLabel, 0));
+ kDefaultVideoTrackLabel, 0,
+ remote_info_.default_video_mid));
OnRemoteTrackSeen(kDefaultStreamLabel, kDefaultVideoTrackLabel, 0,
- cricket::MEDIA_TYPE_VIDEO);
+ cricket::MEDIA_TYPE_VIDEO,
+ remote_info_.default_video_mid);
}
if (default_created) {
stream_observer_->OnAddRemoteStream(default_remote_stream);
@@ -774,7 +793,8 @@ MediaStreamSignaling::TrackInfos* MediaStreamSignaling::GetLocalTracks(
void MediaStreamSignaling::UpdateLocalTracks(
const std::vector<cricket::StreamParams>& streams,
- cricket::MediaType media_type) {
+ cricket::MediaType media_type,
+ const std::string& mid) {
TrackInfos* current_tracks = GetLocalTracks(media_type);
// Find removed tracks. Ie tracks where the track id, stream label or ssrc
@@ -806,18 +826,18 @@ void MediaStreamSignaling::UpdateLocalTracks(
stream_label,
track_id);
if (!track_info) {
- current_tracks->push_back(TrackInfo(stream_label, track_id, ssrc));
- OnLocalTrackSeen(stream_label, track_id, it->first_ssrc(),
- media_type);
+ current_tracks->push_back(TrackInfo(stream_label, track_id, ssrc, mid));
+ OnLocalTrackSeen(stream_label, track_id, it->first_ssrc(), media_type,
+ mid);
}
}
}
-void MediaStreamSignaling::OnLocalTrackSeen(
- const std::string& stream_label,
- const std::string& track_id,
- uint32 ssrc,
- cricket::MediaType media_type) {
+void MediaStreamSignaling::OnLocalTrackSeen(const std::string& stream_label,
+ const std::string& track_id,
+ uint32 ssrc,
+ cricket::MediaType media_type,
+ const std::string& mid) {
MediaStreamInterface* stream = local_streams_->find(stream_label);
if (!stream) {
LOG(LS_WARNING) << "An unknown local MediaStream with label "
@@ -832,7 +852,7 @@ void MediaStreamSignaling::OnLocalTrackSeen(
<< track_id << " has been configured.";
return;
}
- stream_observer_->OnAddLocalAudioTrack(stream, audio_track, ssrc);
+ stream_observer_->OnAddLocalAudioTrack(stream, audio_track, ssrc, mid);
} else if (media_type == cricket::MEDIA_TYPE_VIDEO) {
VideoTrackInterface* video_track = stream->FindVideoTrack(track_id);
if (!video_track) {
@@ -840,7 +860,7 @@ void MediaStreamSignaling::OnLocalTrackSeen(
<< track_id << " has been configured.";
return;
}
- stream_observer_->OnAddLocalVideoTrack(stream, video_track, ssrc);
+ stream_observer_->OnAddLocalVideoTrack(stream, video_track, ssrc, mid);
} else {
ASSERT(false && "Invalid media type");
}

Powered by Google App Engine
This is Rietveld 408576698