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

Side by Side Diff: webrtc/api/peerconnection.h

Issue 2600153004: Adding support for Unified Plan offer/answer negotiation.
Patch Set: Got tests working (aside from ones that need to be completely rewritten) Created 3 years, 11 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
« no previous file with comments | « no previous file | webrtc/api/peerconnection.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 13 matching lines...) Expand all
24 #include "webrtc/api/statscollector.h" 24 #include "webrtc/api/statscollector.h"
25 #include "webrtc/api/streamcollection.h" 25 #include "webrtc/api/streamcollection.h"
26 #include "webrtc/api/webrtcsession.h" 26 #include "webrtc/api/webrtcsession.h"
27 27
28 namespace webrtc { 28 namespace webrtc {
29 29
30 class MediaStreamObserver; 30 class MediaStreamObserver;
31 class VideoRtpReceiver; 31 class VideoRtpReceiver;
32 class RtcEventLog; 32 class RtcEventLog;
33 33
34 // Populates |session_options| from |rtc_options|, and returns true if options
35 // are valid.
36 // |session_options|->transport_options map entries must exist in order for
37 // them to be populated from |rtc_options|.
38 bool ExtractMediaSessionOptions(
39 const PeerConnectionInterface::RTCOfferAnswerOptions& rtc_options,
40 bool is_offer,
41 cricket::MediaSessionOptions* session_options);
42
43 // Populates |session_options| from |constraints|, and returns true if all
44 // mandatory constraints are satisfied.
45 // Assumes that |session_options|->transport_options map entries exist.
46 // Will also set defaults if corresponding constraints are not present:
47 // recv_audio=true, recv_video=true, bundle_enabled=true.
48 // Other fields will be left with existing values.
49 //
50 // Deprecated. Will be removed once callers that use constraints are gone.
51 // TODO(hta): Remove when callers are gone.
52 // https://bugs.chromium.org/p/webrtc/issues/detail?id=5617
53 bool ParseConstraintsForAnswer(const MediaConstraintsInterface* constraints,
54 cricket::MediaSessionOptions* session_options);
55
56 // Parses the URLs for each server in |servers| to build |stun_servers| and 34 // Parses the URLs for each server in |servers| to build |stun_servers| and
57 // |turn_servers|. 35 // |turn_servers|.
58 bool ParseIceServers(const PeerConnectionInterface::IceServers& servers, 36 bool ParseIceServers(const PeerConnectionInterface::IceServers& servers,
59 cricket::ServerAddresses* stun_servers, 37 cricket::ServerAddresses* stun_servers,
60 std::vector<cricket::RelayServerConfig>* turn_servers); 38 std::vector<cricket::RelayServerConfig>* turn_servers);
61 39
62 // PeerConnection implements the PeerConnectionInterface interface. 40 // PeerConnection implements the PeerConnectionInterface interface.
63 // It uses WebRtcSession to implement the PeerConnection functionality. 41 // It uses WebRtcSession to implement the PeerConnection functionality.
64 class PeerConnection : public PeerConnectionInterface, 42 class PeerConnection : public PeerConnectionInterface,
65 public IceObserver, 43 public IceObserver,
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 void PostCreateSessionDescriptionFailure( 206 void PostCreateSessionDescriptionFailure(
229 CreateSessionDescriptionObserver* observer, 207 CreateSessionDescriptionObserver* observer,
230 const std::string& error); 208 const std::string& error);
231 209
232 bool IsClosed() const { 210 bool IsClosed() const {
233 return signaling_state_ == PeerConnectionInterface::kClosed; 211 return signaling_state_ == PeerConnectionInterface::kClosed;
234 } 212 }
235 213
236 // Returns a MediaSessionOptions struct with options decided by |options|, 214 // Returns a MediaSessionOptions struct with options decided by |options|,
237 // the local MediaStreams and DataChannels. 215 // the local MediaStreams and DataChannels.
238 virtual bool GetOptionsForOffer( 216 void GetOptionsForOffer(
239 const PeerConnectionInterface::RTCOfferAnswerOptions& rtc_options, 217 const PeerConnectionInterface::RTCOfferAnswerOptions& rtc_options,
240 cricket::MediaSessionOptions* session_options); 218 cricket::MediaSessionOptions* session_options);
241 219
242 // Returns a MediaSessionOptions struct with options decided by 220 // Returns a MediaSessionOptions struct with options decided by
243 // |constraints|, the local MediaStreams and DataChannels. 221 // |constraints|, the local MediaStreams and DataChannels.
244 // Deprecated, use version without constraints. 222 void GetOptionsForAnswer(const RTCOfferAnswerOptions& rtc_options,
245 virtual bool GetOptionsForAnswer( 223 cricket::MediaSessionOptions* session_options);
246 const MediaConstraintsInterface* constraints,
247 cricket::MediaSessionOptions* session_options);
248 virtual bool GetOptionsForAnswer(
249 const RTCOfferAnswerOptions& options,
250 cricket::MediaSessionOptions* session_options);
251
252 void InitializeOptionsForAnswer(
253 cricket::MediaSessionOptions* session_options);
254
255 // Helper function for options processing.
256 // Deprecated.
257 virtual void FinishOptionsForAnswer(
258 cricket::MediaSessionOptions* session_options);
259 224
260 // Remove all local and remote tracks of type |media_type|. 225 // Remove all local and remote tracks of type |media_type|.
261 // Called when a media type is rejected (m-line set to port 0). 226 // Called when a media type is rejected (m-line set to port 0).
262 void RemoveTracks(cricket::MediaType media_type); 227 void RemoveTracks(cricket::MediaType media_type);
263 228
264 // Makes sure a MediaStreamTrack is created for each StreamParam in |streams|, 229 // Makes sure a MediaStreamTrack is created for each StreamParam in |streams|,
265 // and existing MediaStreamTracks are removed if there is no corresponding 230 // and existing MediaStreamTracks are removed if there is no corresponding
266 // StreamParam. If |default_track_needed| is true, a default MediaStreamTrack 231 // StreamParam. If |default_track_needed| is true, a default MediaStreamTrack
267 // is created if it doesn't exist; if false, it's removed if it exists. 232 // is created if it doesn't exist; if false, it's removed if it exists.
268 // |media_type| is the type of the |streams| and can be either audio or video. 233 // |media_type| is the type of the |streams| and can be either audio or video.
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 void OnVoiceChannelDestroyed(); 310 void OnVoiceChannelDestroyed();
346 void OnVideoChannelCreated(); 311 void OnVideoChannelCreated();
347 void OnVideoChannelDestroyed(); 312 void OnVideoChannelDestroyed();
348 void OnDataChannelCreated(); 313 void OnDataChannelCreated();
349 void OnDataChannelDestroyed(); 314 void OnDataChannelDestroyed();
350 // Called when the cricket::DataChannel receives a message indicating that a 315 // Called when the cricket::DataChannel receives a message indicating that a
351 // webrtc::DataChannel should be opened. 316 // webrtc::DataChannel should be opened.
352 void OnDataChannelOpenMessage(const std::string& label, 317 void OnDataChannelOpenMessage(const std::string& label,
353 const InternalDataChannelInit& config); 318 const InternalDataChannelInit& config);
354 319
320 bool HasRtpSender(cricket::MediaType type) const;
355 RtpSenderInternal* FindSenderById(const std::string& id); 321 RtpSenderInternal* FindSenderById(const std::string& id);
356 322
357 std::vector<rtc::scoped_refptr< 323 std::vector<rtc::scoped_refptr<
358 RtpSenderProxyWithInternal<RtpSenderInternal>>>::iterator 324 RtpSenderProxyWithInternal<RtpSenderInternal>>>::iterator
359 FindSenderForTrack(MediaStreamTrackInterface* track); 325 FindSenderForTrack(MediaStreamTrackInterface* track);
360 std::vector<rtc::scoped_refptr< 326 std::vector<rtc::scoped_refptr<
361 RtpReceiverProxyWithInternal<RtpReceiverInternal>>>::iterator 327 RtpReceiverProxyWithInternal<RtpReceiverInternal>>>::iterator
362 FindReceiverForTrack(const std::string& track_id); 328 FindReceiverForTrack(const std::string& track_id);
363 329
364 TrackInfos* GetRemoteTracks(cricket::MediaType media_type); 330 TrackInfos* GetRemoteTracks(cricket::MediaType media_type);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 rtc::scoped_refptr<RtpReceiverProxyWithInternal<RtpReceiverInternal>>> 400 rtc::scoped_refptr<RtpReceiverProxyWithInternal<RtpReceiverInternal>>>
435 receivers_; 401 receivers_;
436 std::unique_ptr<WebRtcSession> session_; 402 std::unique_ptr<WebRtcSession> session_;
437 std::unique_ptr<StatsCollector> stats_; 403 std::unique_ptr<StatsCollector> stats_;
438 rtc::scoped_refptr<RTCStatsCollector> stats_collector_; 404 rtc::scoped_refptr<RTCStatsCollector> stats_collector_;
439 }; 405 };
440 406
441 } // namespace webrtc 407 } // namespace webrtc
442 408
443 #endif // WEBRTC_API_PEERCONNECTION_H_ 409 #endif // WEBRTC_API_PEERCONNECTION_H_
OLDNEW
« no previous file with comments | « no previous file | webrtc/api/peerconnection.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698