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: webrtc/api/objc/RTCPeerConnection.h

Issue 1903663002: Build dynamic iOS SDK. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fix test gyp Created 4 years, 7 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 | « webrtc/api/objc/RTCOpenGLVideoRenderer.mm ('k') | webrtc/api/objc/RTCPeerConnection.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright 2015 The WebRTC project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #import <Foundation/Foundation.h>
12
13 #import "webrtc/base/objc/RTCMacros.h"
14
15 @class RTCConfiguration;
16 @class RTCDataChannel;
17 @class RTCDataChannelConfiguration;
18 @class RTCIceCandidate;
19 @class RTCMediaConstraints;
20 @class RTCMediaStream;
21 @class RTCMediaStreamTrack;
22 @class RTCPeerConnectionFactory;
23 @class RTCRtpSender;
24 @class RTCSessionDescription;
25 @class RTCStatsReport;
26
27 NS_ASSUME_NONNULL_BEGIN
28
29 extern NSString * const kRTCPeerConnectionErrorDomain;
30 extern int const kRTCSessionDescriptionErrorCode;
31
32 /** Represents the signaling state of the peer connection. */
33 typedef NS_ENUM(NSInteger, RTCSignalingState) {
34 RTCSignalingStateStable,
35 RTCSignalingStateHaveLocalOffer,
36 RTCSignalingStateHaveLocalPrAnswer,
37 RTCSignalingStateHaveRemoteOffer,
38 RTCSignalingStateHaveRemotePrAnswer,
39 // Not an actual state, represents the total number of states.
40 RTCSignalingStateClosed,
41 };
42
43 /** Represents the ice connection state of the peer connection. */
44 typedef NS_ENUM(NSInteger, RTCIceConnectionState) {
45 RTCIceConnectionStateNew,
46 RTCIceConnectionStateChecking,
47 RTCIceConnectionStateConnected,
48 RTCIceConnectionStateCompleted,
49 RTCIceConnectionStateFailed,
50 RTCIceConnectionStateDisconnected,
51 RTCIceConnectionStateClosed,
52 RTCIceConnectionStateCount,
53 };
54
55 /** Represents the ice gathering state of the peer connection. */
56 typedef NS_ENUM(NSInteger, RTCIceGatheringState) {
57 RTCIceGatheringStateNew,
58 RTCIceGatheringStateGathering,
59 RTCIceGatheringStateComplete,
60 };
61
62 /** Represents the stats output level. */
63 typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) {
64 RTCStatsOutputLevelStandard,
65 RTCStatsOutputLevelDebug,
66 };
67
68 @class RTCPeerConnection;
69
70 RTC_EXPORT
71 @protocol RTCPeerConnectionDelegate <NSObject>
72
73 /** Called when the SignalingState changed. */
74 - (void)peerConnection:(RTCPeerConnection *)peerConnection
75 didChangeSignalingState:(RTCSignalingState)stateChanged;
76
77 /** Called when media is received on a new stream from remote peer. */
78 - (void)peerConnection:(RTCPeerConnection *)peerConnection
79 didAddStream:(RTCMediaStream *)stream;
80
81 /** Called when a remote peer closes a stream. */
82 - (void)peerConnection:(RTCPeerConnection *)peerConnection
83 didRemoveStream:(RTCMediaStream *)stream;
84
85 /** Called when negotiation is needed, for example ICE has restarted. */
86 - (void)peerConnectionShouldNegotiate:(RTCPeerConnection *)peerConnection;
87
88 /** Called any time the IceConnectionState changes. */
89 - (void)peerConnection:(RTCPeerConnection *)peerConnection
90 didChangeIceConnectionState:(RTCIceConnectionState)newState;
91
92 /** Called any time the IceGatheringState changes. */
93 - (void)peerConnection:(RTCPeerConnection *)peerConnection
94 didChangeIceGatheringState:(RTCIceGatheringState)newState;
95
96 /** New ice candidate has been found. */
97 - (void)peerConnection:(RTCPeerConnection *)peerConnection
98 didGenerateIceCandidate:(RTCIceCandidate *)candidate;
99
100 /** New data channel has been opened. */
101 - (void)peerConnection:(RTCPeerConnection *)peerConnection
102 didOpenDataChannel:(RTCDataChannel *)dataChannel;
103
104 @end
105
106 RTC_EXPORT
107 @interface RTCPeerConnection : NSObject
108
109 /** The object that will be notifed about events such as state changes and
110 * streams being added or removed.
111 */
112 @property(nonatomic, weak, nullable) id<RTCPeerConnectionDelegate> delegate;
113 @property(nonatomic, readonly) NSArray *localStreams;
114 @property(nonatomic, readonly, nullable)
115 RTCSessionDescription *localDescription;
116 @property(nonatomic, readonly, nullable)
117 RTCSessionDescription *remoteDescription;
118 @property(nonatomic, readonly) RTCSignalingState signalingState;
119 @property(nonatomic, readonly) RTCIceConnectionState iceConnectionState;
120 @property(nonatomic, readonly) RTCIceGatheringState iceGatheringState;
121
122 /** Gets all RTCRtpSenders associated with this peer connection.
123 * Note: reading this property returns different instances of RTCRtpSender.
124 * Use isEqual: instead of == to compare RTCRtpSender instances.
125 */
126 @property(nonatomic, readonly) NSArray<RTCRtpSender *> *senders;
127
128 - (instancetype)init NS_UNAVAILABLE;
129
130 /** Sets the PeerConnection's global configuration to |configuration|.
131 * Any changes to STUN/TURN servers or ICE candidate policy will affect the
132 * next gathering phase, and cause the next call to createOffer to generate
133 * new ICE credentials. Note that the BUNDLE and RTCP-multiplexing policies
134 * cannot be changed with this method.
135 */
136 - (BOOL)setConfiguration:(RTCConfiguration *)configuration;
137
138 /** Terminate all media and close the transport. */
139 - (void)close;
140
141 /** Provide a remote candidate to the ICE Agent. */
142 - (void)addIceCandidate:(RTCIceCandidate *)candidate;
143
144 /** Add a new media stream to be sent on this peer connection. */
145 - (void)addStream:(RTCMediaStream *)stream;
146
147 /** Remove the given media stream from this peer connection. */
148 - (void)removeStream:(RTCMediaStream *)stream;
149
150 /** Generate an SDP offer. */
151 - (void)offerForConstraints:(RTCMediaConstraints *)constraints
152 completionHandler:(nullable void (^)
153 (RTCSessionDescription * _Nullable sdp,
154 NSError * _Nullable error))completionHandler;
155
156 /** Generate an SDP answer. */
157 - (void)answerForConstraints:(RTCMediaConstraints *)constraints
158 completionHandler:(nullable void (^)
159 (RTCSessionDescription * _Nullable sdp,
160 NSError * _Nullable error))completionHandler;
161
162 /** Apply the supplied RTCSessionDescription as the local description. */
163 - (void)setLocalDescription:(RTCSessionDescription *)sdp
164 completionHandler:
165 (nullable void (^)(NSError * _Nullable error))completionHandler;
166
167 /** Apply the supplied RTCSessionDescription as the remote description. */
168 - (void)setRemoteDescription:(RTCSessionDescription *)sdp
169 completionHandler:
170 (nullable void (^)(NSError * _Nullable error))completionHandler;
171
172 @end
173
174 @interface RTCPeerConnection (DataChannel)
175
176 /** Create a new data channel with the given label and configuration. */
177 - (RTCDataChannel *)dataChannelForLabel:(NSString *)label
178 configuration:(RTCDataChannelConfiguration *)configuration;
179
180 @end
181
182 @interface RTCPeerConnection (Stats)
183
184 /** Gather stats for the given RTCMediaStreamTrack. If |mediaStreamTrack| is nil
185 * statistics are gathered for all tracks.
186 */
187 - (void)statsForTrack:
188 (nullable RTCMediaStreamTrack *)mediaStreamTrack
189 statsOutputLevel:(RTCStatsOutputLevel)statsOutputLevel
190 completionHandler:
191 (nullable void (^)(NSArray<RTCStatsReport *> *stats))completionHandler;
192
193 @end
194
195 NS_ASSUME_NONNULL_END
OLDNEW
« no previous file with comments | « webrtc/api/objc/RTCOpenGLVideoRenderer.mm ('k') | webrtc/api/objc/RTCPeerConnection.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698