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

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

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 unified diff | Download patch
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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 // Triggered when the remote SessionDescription removes a stream. 60 // Triggered when the remote SessionDescription removes a stream.
61 virtual void OnRemoveRemoteStream(MediaStreamInterface* stream) = 0; 61 virtual void OnRemoveRemoteStream(MediaStreamInterface* stream) = 0;
62 62
63 // Triggered when the remote SessionDescription has a new data channel. 63 // Triggered when the remote SessionDescription has a new data channel.
64 virtual void OnAddDataChannel(DataChannelInterface* data_channel) = 0; 64 virtual void OnAddDataChannel(DataChannelInterface* data_channel) = 0;
65 65
66 // Triggered when the remote SessionDescription has a new audio track. 66 // Triggered when the remote SessionDescription has a new audio track.
67 virtual void OnAddRemoteAudioTrack(MediaStreamInterface* stream, 67 virtual void OnAddRemoteAudioTrack(MediaStreamInterface* stream,
68 AudioTrackInterface* audio_track, 68 AudioTrackInterface* audio_track,
69 uint32 ssrc) = 0; 69 uint32 ssrc,
70 const std::string& mid) = 0;
pthatcher1 2015/09/17 04:25:46 I don't see how MID is even useful here. I think
Taylor Brandstetter 2015/09/23 00:10:45 It's not useful right now. It's just something I k
70 71
71 // Triggered when the remote SessionDescription has a new video track. 72 // Triggered when the remote SessionDescription has a new video track.
72 virtual void OnAddRemoteVideoTrack(MediaStreamInterface* stream, 73 virtual void OnAddRemoteVideoTrack(MediaStreamInterface* stream,
73 VideoTrackInterface* video_track, 74 VideoTrackInterface* video_track,
74 uint32 ssrc) = 0; 75 uint32 ssrc,
76 const std::string& mid) = 0;
75 77
76 // Triggered when the remote SessionDescription has removed an audio track. 78 // Triggered when the remote SessionDescription has removed an audio track.
77 virtual void OnRemoveRemoteAudioTrack(MediaStreamInterface* stream, 79 virtual void OnRemoveRemoteAudioTrack(MediaStreamInterface* stream,
78 AudioTrackInterface* audio_track) = 0; 80 AudioTrackInterface* audio_track) = 0;
79 81
80 // Triggered when the remote SessionDescription has removed a video track. 82 // Triggered when the remote SessionDescription has removed a video track.
81 virtual void OnRemoveRemoteVideoTrack(MediaStreamInterface* stream, 83 virtual void OnRemoveRemoteVideoTrack(MediaStreamInterface* stream,
82 VideoTrackInterface* video_track) = 0; 84 VideoTrackInterface* video_track) = 0;
83 85
84 // Triggered when the local SessionDescription has a new audio track. 86 // Triggered when the local SessionDescription has a new audio track.
85 virtual void OnAddLocalAudioTrack(MediaStreamInterface* stream, 87 virtual void OnAddLocalAudioTrack(MediaStreamInterface* stream,
86 AudioTrackInterface* audio_track, 88 AudioTrackInterface* audio_track,
87 uint32 ssrc) = 0; 89 uint32 ssrc,
90 const std::string& mid) = 0;
88 91
89 // Triggered when the local SessionDescription has a new video track. 92 // Triggered when the local SessionDescription has a new video track.
90 virtual void OnAddLocalVideoTrack(MediaStreamInterface* stream, 93 virtual void OnAddLocalVideoTrack(MediaStreamInterface* stream,
91 VideoTrackInterface* video_track, 94 VideoTrackInterface* video_track,
92 uint32 ssrc) = 0; 95 uint32 ssrc,
96 const std::string& mid) = 0;
93 97
94 // Triggered when the local SessionDescription has removed an audio track. 98 // Triggered when the local SessionDescription has removed an audio track.
95 virtual void OnRemoveLocalAudioTrack(MediaStreamInterface* stream, 99 virtual void OnRemoveLocalAudioTrack(MediaStreamInterface* stream,
96 AudioTrackInterface* audio_track, 100 AudioTrackInterface* audio_track,
97 uint32 ssrc) = 0; 101 uint32 ssrc) = 0;
98 102
99 // Triggered when the local SessionDescription has removed a video track. 103 // Triggered when the local SessionDescription has removed a video track.
100 virtual void OnRemoveLocalVideoTrack(MediaStreamInterface* stream, 104 virtual void OnRemoveLocalVideoTrack(MediaStreamInterface* stream,
101 VideoTrackInterface* video_track) = 0; 105 VideoTrackInterface* video_track) = 0;
102 106
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 } 273 }
270 // True if it has been discovered that the remote peer support MSID. 274 // True if it has been discovered that the remote peer support MSID.
271 bool msid_supported; 275 bool msid_supported;
272 // The remote peer indicates in the session description that audio will be 276 // The remote peer indicates in the session description that audio will be
273 // sent but no MSID is given. 277 // sent but no MSID is given.
274 bool default_audio_track_needed; 278 bool default_audio_track_needed;
275 // The remote peer indicates in the session description that video will be 279 // The remote peer indicates in the session description that video will be
276 // sent but no MSID is given. 280 // sent but no MSID is given.
277 bool default_video_track_needed; 281 bool default_video_track_needed;
278 282
283 // mid strings associated with the empty audio/video content descriptions.
284 std::string default_audio_mid;
285 std::string default_video_mid;
286
279 bool IsDefaultMediaStreamNeeded() { 287 bool IsDefaultMediaStreamNeeded() {
280 return !msid_supported && (default_audio_track_needed || 288 return !msid_supported && (default_audio_track_needed ||
281 default_video_track_needed); 289 default_video_track_needed);
282 } 290 }
283 }; 291 };
284 292
285 struct TrackInfo { 293 struct TrackInfo {
286 TrackInfo() : ssrc(0) {} 294 TrackInfo() : ssrc(0) {}
287 TrackInfo(const std::string& stream_label, 295 TrackInfo(const std::string& stream_label,
288 const std::string track_id, 296 const std::string track_id,
289 uint32 ssrc) 297 uint32 ssrc,
298 const std::string& mid)
290 : stream_label(stream_label), 299 : stream_label(stream_label),
291 track_id(track_id), 300 track_id(track_id),
292 ssrc(ssrc) { 301 ssrc(ssrc),
293 } 302 mid(mid) {}
294 std::string stream_label; 303 std::string stream_label;
295 std::string track_id; 304 std::string track_id;
296 uint32 ssrc; 305 uint32 ssrc;
306 std::string mid;
297 }; 307 };
298 typedef std::vector<TrackInfo> TrackInfos; 308 typedef std::vector<TrackInfo> TrackInfos;
299 309
300 // Makes sure a MediaStream Track is created for each StreamParam in 310 // Makes sure a MediaStream Track is created for each StreamParam in
301 // |streams|. |media_type| is the type of the |streams| and can be either 311 // |streams|. |media_type| is the type of the |streams| and can be either
302 // audio or video. 312 // audio or video.
303 // If a new MediaStream is created it is added to |new_streams|. 313 // If a new MediaStream is created it is added to |new_streams|.
304 void UpdateRemoteStreamsList( 314 void UpdateRemoteStreamsList(
305 const std::vector<cricket::StreamParams>& streams, 315 const std::vector<cricket::StreamParams>& streams,
306 cricket::MediaType media_type, 316 cricket::MediaType media_type,
317 const std::string& mid,
307 StreamCollection* new_streams); 318 StreamCollection* new_streams);
308 319
309 // Triggered when a remote track has been seen for the first time in a remote 320 // Triggered when a remote track has been seen for the first time in a remote
310 // session description. It creates a remote MediaStreamTrackInterface 321 // session description. It creates a remote MediaStreamTrackInterface
311 // implementation and triggers MediaStreamSignaling::OnAddRemoteAudioTrack or 322 // implementation and triggers MediaStreamSignaling::OnAddRemoteAudioTrack or
312 // MediaStreamSignaling::OnAddRemoteVideoTrack. 323 // MediaStreamSignaling::OnAddRemoteVideoTrack.
313 void OnRemoteTrackSeen(const std::string& stream_label, 324 void OnRemoteTrackSeen(const std::string& stream_label,
314 const std::string& track_id, 325 const std::string& track_id,
315 uint32 ssrc, 326 uint32 ssrc,
316 cricket::MediaType media_type); 327 cricket::MediaType media_type,
328 const std::string& mid);
317 329
318 // Triggered when a remote track has been removed from a remote session 330 // Triggered when a remote track has been removed from a remote session
319 // description. It removes the remote track with id |track_id| from a remote 331 // description. It removes the remote track with id |track_id| from a remote
320 // MediaStream and triggers MediaStreamSignaling::OnRemoveRemoteAudioTrack or 332 // MediaStream and triggers MediaStreamSignaling::OnRemoveRemoteAudioTrack or
321 // MediaStreamSignaling::OnRemoveRemoteVideoTrack. 333 // MediaStreamSignaling::OnRemoveRemoteVideoTrack.
322 void OnRemoteTrackRemoved(const std::string& stream_label, 334 void OnRemoteTrackRemoved(const std::string& stream_label,
323 const std::string& track_id, 335 const std::string& track_id,
324 cricket::MediaType media_type); 336 cricket::MediaType media_type);
325 337
326 // Set the MediaStreamTrackInterface::TrackState to |kEnded| on all remote 338 // Set the MediaStreamTrackInterface::TrackState to |kEnded| on all remote
327 // tracks of type |media_type|. 339 // tracks of type |media_type|.
328 void RejectRemoteTracks(cricket::MediaType media_type); 340 void RejectRemoteTracks(cricket::MediaType media_type);
329 341
330 // Finds remote MediaStreams without any tracks and removes them from 342 // Finds remote MediaStreams without any tracks and removes them from
331 // |remote_streams_| and notifies the observer that the MediaStream no longer 343 // |remote_streams_| and notifies the observer that the MediaStream no longer
332 // exist. 344 // exist.
333 void UpdateEndedRemoteMediaStreams(); 345 void UpdateEndedRemoteMediaStreams();
334 void MaybeCreateDefaultStream(); 346 void MaybeCreateDefaultStream();
335 TrackInfos* GetRemoteTracks(cricket::MediaType type); 347 TrackInfos* GetRemoteTracks(cricket::MediaType type);
336 348
337 // Returns a map of currently negotiated LocalTrackInfo of type |type|. 349 // Returns a map of currently negotiated LocalTrackInfo of type |type|.
338 TrackInfos* GetLocalTracks(cricket::MediaType type); 350 TrackInfos* GetLocalTracks(cricket::MediaType type);
339 bool FindLocalTrack(const std::string& track_id, cricket::MediaType type); 351 bool FindLocalTrack(const std::string& track_id, cricket::MediaType type);
340 352
341 // Loops through the vector of |streams| and finds added and removed 353 // Loops through the vector of |streams| and finds added and removed
342 // StreamParams since last time this method was called. 354 // StreamParams since last time this method was called.
343 // For each new or removed StreamParam NotifyLocalTrackAdded or 355 // For each new or removed StreamParam NotifyLocalTrackAdded or
344 // NotifyLocalTrackRemoved in invoked. 356 // NotifyLocalTrackRemoved in invoked.
345 void UpdateLocalTracks(const std::vector<cricket::StreamParams>& streams, 357 void UpdateLocalTracks(const std::vector<cricket::StreamParams>& streams,
346 cricket::MediaType media_type); 358 cricket::MediaType media_type,
359 const std::string& mid);
347 360
348 // Triggered when a local track has been seen for the first time in a local 361 // Triggered when a local track has been seen for the first time in a local
349 // session description. 362 // session description.
350 // This method triggers MediaStreamSignaling::OnAddLocalAudioTrack or 363 // This method triggers MediaStreamSignaling::OnAddLocalAudioTrack or
351 // MediaStreamSignaling::OnAddLocalVideoTrack if the rtp streams in the local 364 // MediaStreamSignaling::OnAddLocalVideoTrack if the rtp streams in the local
352 // SessionDescription can be mapped to a MediaStreamTrack in a MediaStream in 365 // SessionDescription can be mapped to a MediaStreamTrack in a MediaStream in
353 // |local_streams_| 366 // |local_streams_|
354 void OnLocalTrackSeen(const std::string& stream_label, 367 void OnLocalTrackSeen(const std::string& stream_label,
355 const std::string& track_id, 368 const std::string& track_id,
356 uint32 ssrc, 369 uint32 ssrc,
357 cricket::MediaType media_type); 370 cricket::MediaType media_type,
371 const std::string& mid);
358 372
359 // Triggered when a local track has been removed from a local session 373 // Triggered when a local track has been removed from a local session
360 // description. 374 // description.
361 // This method triggers MediaStreamSignaling::OnRemoveLocalAudioTrack or 375 // This method triggers MediaStreamSignaling::OnRemoveLocalAudioTrack or
362 // MediaStreamSignaling::OnRemoveLocalVideoTrack if a stream has been removed 376 // MediaStreamSignaling::OnRemoveLocalVideoTrack if a stream has been removed
363 // from the local SessionDescription and the stream can be mapped to a 377 // from the local SessionDescription and the stream can be mapped to a
364 // MediaStreamTrack in a MediaStream in |local_streams_|. 378 // MediaStreamTrack in a MediaStream in |local_streams_|.
365 void OnLocalTrackRemoved(const std::string& stream_label, 379 void OnLocalTrackRemoved(const std::string& stream_label,
366 const std::string& track_id, 380 const std::string& track_id,
367 uint32 ssrc, 381 uint32 ssrc,
(...skipping 29 matching lines...) Expand all
397 int last_allocated_sctp_even_sid_; 411 int last_allocated_sctp_even_sid_;
398 int last_allocated_sctp_odd_sid_; 412 int last_allocated_sctp_odd_sid_;
399 413
400 RtpDataChannels rtp_data_channels_; 414 RtpDataChannels rtp_data_channels_;
401 SctpDataChannels sctp_data_channels_; 415 SctpDataChannels sctp_data_channels_;
402 }; 416 };
403 417
404 } // namespace webrtc 418 } // namespace webrtc
405 419
406 #endif // TALK_APP_WEBRTC_MEDIASTREAMSIGNALING_H_ 420 #endif // TALK_APP_WEBRTC_MEDIASTREAMSIGNALING_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698