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

Side by Side Diff: talk/app/webrtc/peerconnection.h

Issue 1469833006: Fixing issue with default stream upon setting 2nd remote description. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years 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 unified diff | Download patch
« no previous file with comments | « no previous file | talk/app/webrtc/peerconnection.cc » ('j') | talk/app/webrtc/peerconnection.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 protected: 151 protected:
152 ~PeerConnection() override; 152 ~PeerConnection() override;
153 153
154 private: 154 private:
155 struct TrackInfo { 155 struct TrackInfo {
156 TrackInfo() : ssrc(0) {} 156 TrackInfo() : ssrc(0) {}
157 TrackInfo(const std::string& stream_label, 157 TrackInfo(const std::string& stream_label,
158 const std::string track_id, 158 const std::string track_id,
159 uint32_t ssrc) 159 uint32_t ssrc)
160 : stream_label(stream_label), track_id(track_id), ssrc(ssrc) {} 160 : stream_label(stream_label), track_id(track_id), ssrc(ssrc) {}
161 bool operator==(const TrackInfo& other) {
162 return this->stream_label == other.stream_label &&
163 this->track_id == other.track_id && this->ssrc == other.ssrc;
164 }
161 std::string stream_label; 165 std::string stream_label;
162 std::string track_id; 166 std::string track_id;
163 uint32_t ssrc; 167 uint32_t ssrc;
164 }; 168 };
165 typedef std::vector<TrackInfo> TrackInfos; 169 typedef std::vector<TrackInfo> TrackInfos;
166 170
167 struct RemotePeerInfo { 171 struct RemotePeerInfo {
168 RemotePeerInfo() 172 RemotePeerInfo()
169 : msid_supported(false), 173 : msid_supported(false),
170 default_audio_track_needed(false), 174 default_audio_track_needed(false),
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 // MediaStream and triggers DestroyAudioReceiver or DestroyVideoReceiver. 276 // MediaStream and triggers DestroyAudioReceiver or DestroyVideoReceiver.
273 void OnRemoteTrackRemoved(const std::string& stream_label, 277 void OnRemoteTrackRemoved(const std::string& stream_label,
274 const std::string& track_id, 278 const std::string& track_id,
275 cricket::MediaType media_type); 279 cricket::MediaType media_type);
276 280
277 // Finds remote MediaStreams without any tracks and removes them from 281 // Finds remote MediaStreams without any tracks and removes them from
278 // |remote_streams_| and notifies the observer that the MediaStreams no longer 282 // |remote_streams_| and notifies the observer that the MediaStreams no longer
279 // exist. 283 // exist.
280 void UpdateEndedRemoteMediaStreams(); 284 void UpdateEndedRemoteMediaStreams();
281 285
286 void MaybeRemoveDefaultTracks();
282 void MaybeCreateDefaultStream(); 287 void MaybeCreateDefaultStream();
283 288
284 // Set the MediaStreamTrackInterface::TrackState to |kEnded| on all remote 289 // Set the MediaStreamTrackInterface::TrackState to |kEnded| on all remote
285 // tracks of type |media_type|. 290 // tracks of type |media_type|.
286 void EndRemoteTracks(cricket::MediaType media_type); 291 void EndRemoteTracks(cricket::MediaType media_type);
287 292
288 // Loops through the vector of |streams| and finds added and removed 293 // Loops through the vector of |streams| and finds added and removed
289 // StreamParams since last time this method was called. 294 // StreamParams since last time this method was called.
290 // For each new or removed StreamParam, OnLocalTrackSeen or 295 // For each new or removed StreamParam, OnLocalTrackSeen or
291 // OnLocalTrackRemoved is invoked. 296 // OnLocalTrackRemoved is invoked.
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 // because its destruction fires signals (such as VoiceChannelDestroyed) 406 // because its destruction fires signals (such as VoiceChannelDestroyed)
402 // which will trigger some final actions in PeerConnection... 407 // which will trigger some final actions in PeerConnection...
403 rtc::scoped_ptr<WebRtcSession> session_; 408 rtc::scoped_ptr<WebRtcSession> session_;
404 // ... But stats_ depends on session_ so it should be destroyed even earlier. 409 // ... But stats_ depends on session_ so it should be destroyed even earlier.
405 rtc::scoped_ptr<StatsCollector> stats_; 410 rtc::scoped_ptr<StatsCollector> stats_;
406 }; 411 };
407 412
408 } // namespace webrtc 413 } // namespace webrtc
409 414
410 #endif // TALK_APP_WEBRTC_PEERCONNECTION_H_ 415 #endif // TALK_APP_WEBRTC_PEERCONNECTION_H_
OLDNEW
« no previous file with comments | « no previous file | talk/app/webrtc/peerconnection.cc » ('j') | talk/app/webrtc/peerconnection.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698