├── Android └── libwebrtc.aar ├── IOS └── WebRTC.framework │ ├── Headers │ ├── RTCAVFoundationVideoSource.h │ ├── RTCAudioSource.h │ ├── RTCAudioTrack.h │ ├── RTCCameraPreviewView.h │ ├── RTCConfiguration.h │ ├── RTCDataChannel.h │ ├── RTCDataChannelConfiguration.h │ ├── RTCDispatcher.h │ ├── RTCEAGLVideoView.h │ ├── RTCFieldTrials.h │ ├── RTCFileLogger.h │ ├── RTCIceCandidate.h │ ├── RTCIceServer.h │ ├── RTCLegacyStatsReport.h │ ├── RTCLogging.h │ ├── RTCMTLVideoView.h │ ├── RTCMacros.h │ ├── RTCMediaConstraints.h │ ├── RTCMediaSource.h │ ├── RTCMediaStream.h │ ├── RTCMediaStreamTrack.h │ ├── RTCMetrics.h │ ├── RTCMetricsSampleInfo.h │ ├── RTCPeerConnection.h │ ├── RTCPeerConnectionFactory.h │ ├── RTCRtpCodecParameters.h │ ├── RTCRtpEncodingParameters.h │ ├── RTCRtpParameters.h │ ├── RTCRtpReceiver.h │ ├── RTCRtpSender.h │ ├── RTCSSLAdapter.h │ ├── RTCSessionDescription.h │ ├── RTCTracing.h │ ├── RTCVideoFrame.h │ ├── RTCVideoRenderer.h │ ├── RTCVideoSource.h │ ├── RTCVideoTrack.h │ ├── UIDevice+RTCDevice.h │ └── WebRTC.h │ ├── Info.plist │ ├── Modules │ └── module.modulemap │ └── WebRTC ├── MAC └── WebRTC.framework │ ├── Headers │ ├── .DS_Store │ └── WebRTC │ │ ├── RTCAVFoundationVideoSource.h │ │ ├── RTCAudioTrack.h │ │ ├── RTCCameraPreviewView.h │ │ ├── RTCConfiguration.h │ │ ├── RTCDataChannel.h │ │ ├── RTCDataChannelConfiguration.h │ │ ├── RTCDispatcher.h │ │ ├── RTCEAGLVideoView.h │ │ ├── RTCFieldTrials.h │ │ ├── RTCFileLogger.h │ │ ├── RTCIceCandidate.h │ │ ├── RTCIceServer.h │ │ ├── RTCLogging.h │ │ ├── RTCMacros.h │ │ ├── RTCMediaConstraints.h │ │ ├── RTCMediaStream.h │ │ ├── RTCMediaStreamTrack.h │ │ ├── RTCMetrics.h │ │ ├── RTCMetricsSampleInfo.h │ │ ├── RTCNSGLVideoView.h │ │ ├── RTCPeerConnection.h │ │ ├── RTCPeerConnectionFactory.h │ │ ├── RTCRtpCodecParameters.h │ │ ├── RTCRtpEncodingParameters.h │ │ ├── RTCRtpParameters.h │ │ ├── RTCRtpReceiver.h │ │ ├── RTCRtpSender.h │ │ ├── RTCSSLAdapter.h │ │ ├── RTCSessionDescription.h │ │ ├── RTCStatsReport.h │ │ ├── RTCTracing.h │ │ ├── RTCVideoFrame.h │ │ ├── RTCVideoRenderer.h │ │ ├── RTCVideoSource.h │ │ ├── RTCVideoTrack.h │ │ ├── UIDevice+RTCDevice.h │ │ └── WebRTC.h │ ├── Resources │ └── Info.plist │ ├── Versions │ ├── A │ │ ├── Resources │ │ │ └── Info.plist │ │ └── WebRTC │ └── Current │ │ ├── Resources │ │ └── Info.plist │ │ └── WebRTC │ └── WebRTC └── README.md /Android/libwebrtc.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AjayChoudary/WebRTCFramework/dd266ca5231de062e0715841b63c46d196cea9f8/Android/libwebrtc.aar -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCAVFoundationVideoSource.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | @class AVCaptureSession; 15 | @class RTCMediaConstraints; 16 | @class RTCPeerConnectionFactory; 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | /** 21 | * RTCAVFoundationVideoSource is a video source that uses 22 | * webrtc::AVFoundationVideoCapturer. We do not currently provide a wrapper for 23 | * that capturer because cricket::VideoCapturer is not ref counted and we cannot 24 | * guarantee its lifetime. Instead, we expose its properties through the ref 25 | * counted video source interface. 26 | */ 27 | RTC_EXPORT 28 | @interface RTCAVFoundationVideoSource : RTCVideoSource 29 | 30 | - (instancetype)init NS_UNAVAILABLE; 31 | 32 | /** 33 | * Calling this function will cause frames to be scaled down to the 34 | * requested resolution. Also, frames will be cropped to match the 35 | * requested aspect ratio, and frames will be dropped to match the 36 | * requested fps. The requested aspect ratio is orientation agnostic and 37 | * will be adjusted to maintain the input orientation, so it doesn't 38 | * matter if e.g. 1280x720 or 720x1280 is requested. 39 | */ 40 | - (void)adaptOutputFormatToWidth:(int)width height:(int)height fps:(int)fps; 41 | 42 | /** Returns whether rear-facing camera is available for use. */ 43 | @property(nonatomic, readonly) BOOL canUseBackCamera; 44 | 45 | /** Switches the camera being used (either front or back). */ 46 | @property(nonatomic, assign) BOOL useBackCamera; 47 | 48 | /** Returns the active capture session. */ 49 | @property(nonatomic, readonly) AVCaptureSession *captureSession; 50 | 51 | @end 52 | 53 | NS_ASSUME_NONNULL_END 54 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCAudioSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_EXPORT 19 | @interface RTCAudioSource : RTCMediaSource 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | // Sets the volume for the RTCMediaSource. |volume] is a gain value in the range 24 | // [0, 10]. 25 | // Temporary fix to be able to modify volume of remote audio tracks 26 | // TODO: property stays here temporarily until a proper volume-api is avaialble 27 | // on the surface exposed by webrtc 28 | @property(nonatomic, assign) double volume; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCAudioTrack.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @class RTCAudioSource; 17 | 18 | RTC_EXPORT 19 | @interface RTCAudioTrack : RTCMediaStreamTrack 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | /** The audio source for this audio track. */ 24 | @property(nonatomic, readonly) RTCAudioSource *source; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCCameraPreviewView.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | #import 15 | 16 | @class AVCaptureSession; 17 | @class RTCAVFoundationVideoSource; 18 | 19 | /** RTCCameraPreviewView is a view that renders local video from an 20 | * AVCaptureSession. 21 | */ 22 | RTC_EXPORT 23 | @interface RTCCameraPreviewView : UIView 24 | 25 | /** The capture session being rendered in the view. Capture session 26 | * is assigned to AVCaptureVideoPreviewLayer async in the same 27 | * queue that the AVCaptureSession is started/stopped. 28 | */ 29 | @property(nonatomic, strong) AVCaptureSession *captureSession; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCConfiguration.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | @class RTCIceServer; 16 | 17 | /** 18 | * Represents the ice transport policy. This exposes the same states in C++, 19 | * which include one more state than what exists in the W3C spec. 20 | */ 21 | typedef NS_ENUM(NSInteger, RTCIceTransportPolicy) { 22 | RTCIceTransportPolicyNone, 23 | RTCIceTransportPolicyRelay, 24 | RTCIceTransportPolicyNoHost, 25 | RTCIceTransportPolicyAll 26 | }; 27 | 28 | /** Represents the bundle policy. */ 29 | typedef NS_ENUM(NSInteger, RTCBundlePolicy) { 30 | RTCBundlePolicyBalanced, 31 | RTCBundlePolicyMaxCompat, 32 | RTCBundlePolicyMaxBundle 33 | }; 34 | 35 | /** Represents the rtcp mux policy. */ 36 | typedef NS_ENUM(NSInteger, RTCRtcpMuxPolicy) { 37 | RTCRtcpMuxPolicyNegotiate, 38 | RTCRtcpMuxPolicyRequire 39 | }; 40 | 41 | /** Represents the tcp candidate policy. */ 42 | typedef NS_ENUM(NSInteger, RTCTcpCandidatePolicy) { 43 | RTCTcpCandidatePolicyEnabled, 44 | RTCTcpCandidatePolicyDisabled 45 | }; 46 | 47 | /** Represents the candidate network policy. */ 48 | typedef NS_ENUM(NSInteger, RTCCandidateNetworkPolicy) { 49 | RTCCandidateNetworkPolicyAll, 50 | RTCCandidateNetworkPolicyLowCost 51 | }; 52 | 53 | /** Represents the continual gathering policy. */ 54 | typedef NS_ENUM(NSInteger, RTCContinualGatheringPolicy) { 55 | RTCContinualGatheringPolicyGatherOnce, 56 | RTCContinualGatheringPolicyGatherContinually 57 | }; 58 | 59 | /** Represents the encryption key type. */ 60 | typedef NS_ENUM(NSInteger, RTCEncryptionKeyType) { 61 | RTCEncryptionKeyTypeRSA, 62 | RTCEncryptionKeyTypeECDSA, 63 | }; 64 | 65 | NS_ASSUME_NONNULL_BEGIN 66 | 67 | RTC_EXPORT 68 | @interface RTCConfiguration : NSObject 69 | 70 | /** An array of Ice Servers available to be used by ICE. */ 71 | @property(nonatomic, copy) NSArray *iceServers; 72 | 73 | /** Which candidates the ICE agent is allowed to use. The W3C calls it 74 | * |iceTransportPolicy|, while in C++ it is called |type|. */ 75 | @property(nonatomic, assign) RTCIceTransportPolicy iceTransportPolicy; 76 | 77 | /** The media-bundling policy to use when gathering ICE candidates. */ 78 | @property(nonatomic, assign) RTCBundlePolicy bundlePolicy; 79 | 80 | /** The rtcp-mux policy to use when gathering ICE candidates. */ 81 | @property(nonatomic, assign) RTCRtcpMuxPolicy rtcpMuxPolicy; 82 | @property(nonatomic, assign) RTCTcpCandidatePolicy tcpCandidatePolicy; 83 | @property(nonatomic, assign) RTCCandidateNetworkPolicy candidateNetworkPolicy; 84 | @property(nonatomic, assign) 85 | RTCContinualGatheringPolicy continualGatheringPolicy; 86 | @property(nonatomic, assign) int audioJitterBufferMaxPackets; 87 | @property(nonatomic, assign) BOOL audioJitterBufferFastAccelerate; 88 | @property(nonatomic, assign) int iceConnectionReceivingTimeout; 89 | @property(nonatomic, assign) int iceBackupCandidatePairPingInterval; 90 | 91 | /** Key type used to generate SSL identity. Default is ECDSA. */ 92 | @property(nonatomic, assign) RTCEncryptionKeyType keyType; 93 | 94 | /** ICE candidate pool size as defined in JSEP. Default is 0. */ 95 | @property(nonatomic, assign) int iceCandidatePoolSize; 96 | 97 | /** Prune turn ports on the same network to the same turn server. 98 | * Default is NO. 99 | */ 100 | @property(nonatomic, assign) BOOL shouldPruneTurnPorts; 101 | 102 | /** If set to YES, this means the ICE transport should presume TURN-to-TURN 103 | * candidate pairs will succeed, even before a binding response is received. 104 | */ 105 | @property(nonatomic, assign) BOOL shouldPresumeWritableWhenFullyRelayed; 106 | 107 | /** If set to non-nil, controls the minimal interval between consecutive ICE 108 | * check packets. 109 | */ 110 | @property(nonatomic, copy, nullable) NSNumber *iceCheckMinInterval; 111 | 112 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 113 | 114 | @end 115 | 116 | NS_ASSUME_NONNULL_END 117 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCDataChannel.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_EXPORT 19 | @interface RTCDataBuffer : NSObject 20 | 21 | /** NSData representation of the underlying buffer. */ 22 | @property(nonatomic, readonly) NSData *data; 23 | 24 | /** Indicates whether |data| contains UTF-8 or binary data. */ 25 | @property(nonatomic, readonly) BOOL isBinary; 26 | 27 | - (instancetype)init NS_UNAVAILABLE; 28 | 29 | /** 30 | * Initialize an RTCDataBuffer from NSData. |isBinary| indicates whether |data| 31 | * contains UTF-8 or binary data. 32 | */ 33 | - (instancetype)initWithData:(NSData *)data isBinary:(BOOL)isBinary; 34 | 35 | @end 36 | 37 | 38 | @class RTCDataChannel; 39 | RTC_EXPORT 40 | @protocol RTCDataChannelDelegate 41 | 42 | /** The data channel state changed. */ 43 | - (void)dataChannelDidChangeState:(RTCDataChannel *)dataChannel; 44 | 45 | /** The data channel successfully received a data buffer. */ 46 | - (void)dataChannel:(RTCDataChannel *)dataChannel 47 | didReceiveMessageWithBuffer:(RTCDataBuffer *)buffer; 48 | 49 | @optional 50 | /** The data channel's |bufferedAmount| changed. */ 51 | - (void)dataChannel:(RTCDataChannel *)dataChannel 52 | didChangeBufferedAmount:(uint64_t)amount; 53 | 54 | @end 55 | 56 | 57 | /** Represents the state of the data channel. */ 58 | typedef NS_ENUM(NSInteger, RTCDataChannelState) { 59 | RTCDataChannelStateConnecting, 60 | RTCDataChannelStateOpen, 61 | RTCDataChannelStateClosing, 62 | RTCDataChannelStateClosed, 63 | }; 64 | 65 | RTC_EXPORT 66 | @interface RTCDataChannel : NSObject 67 | 68 | /** 69 | * A label that can be used to distinguish this data channel from other data 70 | * channel objects. 71 | */ 72 | @property(nonatomic, readonly) NSString *label; 73 | 74 | /** Whether the data channel can send messages in unreliable mode. */ 75 | @property(nonatomic, readonly) BOOL isReliable DEPRECATED_ATTRIBUTE; 76 | 77 | /** Returns whether this data channel is ordered or not. */ 78 | @property(nonatomic, readonly) BOOL isOrdered; 79 | 80 | /** Deprecated. Use maxPacketLifeTime. */ 81 | @property(nonatomic, readonly) NSUInteger maxRetransmitTime 82 | DEPRECATED_ATTRIBUTE; 83 | 84 | /** 85 | * The length of the time window (in milliseconds) during which transmissions 86 | * and retransmissions may occur in unreliable mode. 87 | */ 88 | @property(nonatomic, readonly) uint16_t maxPacketLifeTime; 89 | 90 | /** 91 | * The maximum number of retransmissions that are attempted in unreliable mode. 92 | */ 93 | @property(nonatomic, readonly) uint16_t maxRetransmits; 94 | 95 | /** 96 | * The name of the sub-protocol used with this data channel, if any. Otherwise 97 | * this returns an empty string. 98 | */ 99 | @property(nonatomic, readonly) NSString *protocol; 100 | 101 | /** 102 | * Returns whether this data channel was negotiated by the application or not. 103 | */ 104 | @property(nonatomic, readonly) BOOL isNegotiated; 105 | 106 | /** Deprecated. Use channelId. */ 107 | @property(nonatomic, readonly) NSInteger streamId DEPRECATED_ATTRIBUTE; 108 | 109 | /** The identifier for this data channel. */ 110 | @property(nonatomic, readonly) int channelId; 111 | 112 | /** The state of the data channel. */ 113 | @property(nonatomic, readonly) RTCDataChannelState readyState; 114 | 115 | /** 116 | * The number of bytes of application data that have been queued using 117 | * |sendData:| but that have not yet been transmitted to the network. 118 | */ 119 | @property(nonatomic, readonly) uint64_t bufferedAmount; 120 | 121 | /** The delegate for this data channel. */ 122 | @property(nonatomic, weak) id delegate; 123 | 124 | - (instancetype)init NS_UNAVAILABLE; 125 | 126 | /** Closes the data channel. */ 127 | - (void)close; 128 | 129 | /** Attempt to send |data| on this data channel's underlying data transport. */ 130 | - (BOOL)sendData:(RTCDataBuffer *)data; 131 | 132 | @end 133 | 134 | NS_ASSUME_NONNULL_END 135 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCDataChannelConfiguration.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_EXPORT 19 | @interface RTCDataChannelConfiguration : NSObject 20 | 21 | /** Set to YES if ordered delivery is required. */ 22 | @property(nonatomic, assign) BOOL isOrdered; 23 | 24 | /** Deprecated. Use maxPacketLifeTime. */ 25 | @property(nonatomic, assign) NSInteger maxRetransmitTimeMs DEPRECATED_ATTRIBUTE; 26 | 27 | /** 28 | * Max period in milliseconds in which retransmissions will be sent. After this 29 | * time, no more retransmissions will be sent. -1 if unset. 30 | */ 31 | @property(nonatomic, assign) int maxPacketLifeTime; 32 | 33 | /** The max number of retransmissions. -1 if unset. */ 34 | @property(nonatomic, assign) int maxRetransmits; 35 | 36 | /** Set to YES if the channel has been externally negotiated and we do not send 37 | * an in-band signalling in the form of an "open" message. 38 | */ 39 | @property(nonatomic, assign) BOOL isNegotiated; 40 | 41 | /** Deprecated. Use channelId. */ 42 | @property(nonatomic, assign) int streamId DEPRECATED_ATTRIBUTE; 43 | 44 | /** The id of the data channel. */ 45 | @property(nonatomic, assign) int channelId; 46 | 47 | /** Set by the application and opaque to the WebRTC implementation. */ 48 | @property(nonatomic) NSString *protocol; 49 | 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCDispatcher.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | typedef NS_ENUM(NSInteger, RTCDispatcherQueueType) { 16 | // Main dispatcher queue. 17 | RTCDispatcherTypeMain, 18 | // Used for starting/stopping AVCaptureSession, and assigning 19 | // capture session to AVCaptureVideoPreviewLayer. 20 | RTCDispatcherTypeCaptureSession, 21 | // Used for operations on AVAudioSession. 22 | RTCDispatcherTypeAudioSession, 23 | }; 24 | 25 | /** Dispatcher that asynchronously dispatches blocks to a specific 26 | * shared dispatch queue. 27 | */ 28 | RTC_EXPORT 29 | @interface RTCDispatcher : NSObject 30 | 31 | - (instancetype)init NS_UNAVAILABLE; 32 | 33 | /** Dispatch the block asynchronously on the queue for dispatchType. 34 | * @param dispatchType The queue type to dispatch on. 35 | * @param block The block to dispatch asynchronously. 36 | */ 37 | + (void)dispatchAsyncOnType:(RTCDispatcherQueueType)dispatchType 38 | block:(dispatch_block_t)block; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCEAGLVideoView.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | @class RTCEAGLVideoView; 20 | RTC_EXPORT 21 | @protocol RTCEAGLVideoViewDelegate 22 | 23 | - (void)videoView:(RTCEAGLVideoView *)videoView didChangeVideoSize:(CGSize)size; 24 | 25 | @end 26 | 27 | /** 28 | * RTCEAGLVideoView is an RTCVideoRenderer which renders video frames in its 29 | * bounds using OpenGLES 2.0. 30 | */ 31 | RTC_EXPORT 32 | @interface RTCEAGLVideoView : UIView 33 | 34 | @property(nonatomic, weak) id delegate; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCFieldTrials.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | /** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */ 16 | RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweKey; 17 | RTC_EXTERN NSString * const kRTCFieldTrialSendSideBweWithOverheadKey; 18 | RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey; 19 | RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key; 20 | RTC_EXTERN NSString * const kRTCFieldTrialImprovedBitrateEstimateKey; 21 | RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey; 22 | 23 | /** The valid value for field trials above. */ 24 | RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue; 25 | 26 | /** Use a string returned by RTCFieldTrialMedianSlopeFilterValue as the value. */ 27 | RTC_EXTERN NSString * const kRTCFieldTrialMedianSlopeFilterKey; 28 | RTC_EXTERN NSString *RTCFieldTrialMedianSlopeFilterValue( 29 | size_t windowSize, double thresholdGain); 30 | 31 | /** Use a string returned by RTCFieldTrialTrendlineFilterValue as the value. */ 32 | RTC_EXTERN NSString * const kRTCFieldTrialTrendlineFilterKey; 33 | /** Returns a valid value for kRTCFieldTrialTrendlineFilterKey. */ 34 | RTC_EXTERN NSString *RTCFieldTrialTrendlineFilterValue( 35 | size_t windowSize, double smoothingCoeff, double thresholdGain); 36 | 37 | /** Initialize field trials using a dictionary mapping field trial keys to their values. See above 38 | * for valid keys and values. 39 | * Must be called before any other call into WebRTC. See: 40 | * webrtc/system_wrappers/include/field_trial_default.h 41 | */ 42 | RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary *fieldTrials); 43 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCFileLogger.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | typedef NS_ENUM(NSUInteger, RTCFileLoggerSeverity) { 16 | RTCFileLoggerSeverityVerbose, 17 | RTCFileLoggerSeverityInfo, 18 | RTCFileLoggerSeverityWarning, 19 | RTCFileLoggerSeverityError 20 | }; 21 | 22 | typedef NS_ENUM(NSUInteger, RTCFileLoggerRotationType) { 23 | RTCFileLoggerTypeCall, 24 | RTCFileLoggerTypeApp, 25 | }; 26 | 27 | NS_ASSUME_NONNULL_BEGIN 28 | 29 | // This class intercepts WebRTC logs and saves them to a file. The file size 30 | // will not exceed the given maximum bytesize. When the maximum bytesize is 31 | // reached, logs are rotated according to the rotationType specified. 32 | // For kRTCFileLoggerTypeCall, logs from the beginning and the end 33 | // are preserved while the middle section is overwritten instead. 34 | // For kRTCFileLoggerTypeApp, the oldest log is overwritten. 35 | // This class is not threadsafe. 36 | RTC_EXPORT 37 | @interface RTCFileLogger : NSObject 38 | 39 | // The severity level to capture. The default is kRTCFileLoggerSeverityInfo. 40 | @property(nonatomic, assign) RTCFileLoggerSeverity severity; 41 | 42 | // The rotation type for this file logger. The default is 43 | // kRTCFileLoggerTypeCall. 44 | @property(nonatomic, readonly) RTCFileLoggerRotationType rotationType; 45 | 46 | // Disables buffering disk writes. Should be set before |start|. Buffering 47 | // is enabled by default for performance. 48 | @property(nonatomic, assign) BOOL shouldDisableBuffering; 49 | 50 | // Default constructor provides default settings for dir path, file size and 51 | // rotation type. 52 | - (instancetype)init; 53 | 54 | // Create file logger with default rotation type. 55 | - (instancetype)initWithDirPath:(NSString *)dirPath 56 | maxFileSize:(NSUInteger)maxFileSize; 57 | 58 | - (instancetype)initWithDirPath:(NSString *)dirPath 59 | maxFileSize:(NSUInteger)maxFileSize 60 | rotationType:(RTCFileLoggerRotationType)rotationType 61 | NS_DESIGNATED_INITIALIZER; 62 | 63 | // Starts writing WebRTC logs to disk if not already started. Overwrites any 64 | // existing file(s). 65 | - (void)start; 66 | 67 | // Stops writing WebRTC logs to disk. This method is also called on dealloc. 68 | - (void)stop; 69 | 70 | // Returns the current contents of the logs, or nil if start has been called 71 | // without a stop. 72 | - (NSData *)logData; 73 | 74 | @end 75 | 76 | NS_ASSUME_NONNULL_END 77 | 78 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCIceCandidate.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXPORT 18 | @interface RTCIceCandidate : NSObject 19 | 20 | /** 21 | * If present, the identifier of the "media stream identification" for the media 22 | * component this candidate is associated with. 23 | */ 24 | @property(nonatomic, readonly, nullable) NSString *sdpMid; 25 | 26 | /** 27 | * The index (starting at zero) of the media description this candidate is 28 | * associated with in the SDP. 29 | */ 30 | @property(nonatomic, readonly) int sdpMLineIndex; 31 | 32 | /** The SDP string for this candidate. */ 33 | @property(nonatomic, readonly) NSString *sdp; 34 | 35 | /** The URL of the ICE server which this candidate is gathered from. */ 36 | @property(nonatomic, readonly, nullable) NSString *serverUrl; 37 | 38 | - (instancetype)init NS_UNAVAILABLE; 39 | 40 | /** 41 | * Initialize an RTCIceCandidate from SDP. 42 | */ 43 | - (instancetype)initWithSdp:(NSString *)sdp 44 | sdpMLineIndex:(int)sdpMLineIndex 45 | sdpMid:(nullable NSString *)sdpMid 46 | NS_DESIGNATED_INITIALIZER; 47 | 48 | @end 49 | 50 | NS_ASSUME_NONNULL_END 51 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCIceServer.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | typedef NS_ENUM(NSUInteger, RTCTlsCertPolicy) { 16 | RTCTlsCertPolicySecure, 17 | RTCTlsCertPolicyInsecureNoCheck 18 | }; 19 | 20 | NS_ASSUME_NONNULL_BEGIN 21 | 22 | RTC_EXPORT 23 | @interface RTCIceServer : NSObject 24 | 25 | /** URI(s) for this server represented as NSStrings. */ 26 | @property(nonatomic, readonly) NSArray *urlStrings; 27 | 28 | /** Username to use if this RTCIceServer object is a TURN server. */ 29 | @property(nonatomic, readonly, nullable) NSString *username; 30 | 31 | /** Credential to use if this RTCIceServer object is a TURN server. */ 32 | @property(nonatomic, readonly, nullable) NSString *credential; 33 | 34 | /** 35 | * TLS certificate policy to use if this RTCIceServer object is a TURN server. 36 | */ 37 | @property(nonatomic, readonly) RTCTlsCertPolicy tlsCertPolicy; 38 | 39 | - (nonnull instancetype)init NS_UNAVAILABLE; 40 | 41 | /** Convenience initializer for a server with no authentication (e.g. STUN). */ 42 | - (instancetype)initWithURLStrings:(NSArray *)urlStrings; 43 | 44 | /** 45 | * Initialize an RTCIceServer with its associated URLs, optional username, 46 | * optional credential, and credentialType. 47 | */ 48 | - (instancetype)initWithURLStrings:(NSArray *)urlStrings 49 | username:(nullable NSString *)username 50 | credential:(nullable NSString *)credential; 51 | 52 | /** 53 | * Initialize an RTCIceServer with its associated URLs, optional username, 54 | * optional credential, and TLS cert policy. 55 | */ 56 | - (instancetype)initWithURLStrings:(NSArray *)urlStrings 57 | username:(nullable NSString *)username 58 | credential:(nullable NSString *)credential 59 | tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy 60 | NS_DESIGNATED_INITIALIZER; 61 | 62 | @end 63 | 64 | NS_ASSUME_NONNULL_END 65 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCLegacyStatsReport.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** This does not currently conform to the spec. */ 18 | RTC_EXPORT 19 | @interface RTCLegacyStatsReport : NSObject 20 | 21 | /** Time since 1970-01-01T00:00:00Z in milliseconds. */ 22 | @property(nonatomic, readonly) CFTimeInterval timestamp; 23 | 24 | /** The type of stats held by this object. */ 25 | @property(nonatomic, readonly) NSString *type; 26 | 27 | /** The identifier for this object. */ 28 | @property(nonatomic, readonly) NSString *reportId; 29 | 30 | /** A dictionary holding the actual stats. */ 31 | @property(nonatomic, readonly) NSDictionary *values; 32 | 33 | - (instancetype)init NS_UNAVAILABLE; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCLogging.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | // Subset of rtc::LoggingSeverity. 16 | typedef NS_ENUM(NSInteger, RTCLoggingSeverity) { 17 | RTCLoggingSeverityVerbose, 18 | RTCLoggingSeverityInfo, 19 | RTCLoggingSeverityWarning, 20 | RTCLoggingSeverityError, 21 | }; 22 | 23 | // Wrapper for C++ LOG(sev) macros. 24 | // Logs the log string to the webrtc logstream for the given severity. 25 | RTC_EXTERN void RTCLogEx(RTCLoggingSeverity severity, NSString* log_string); 26 | 27 | // Wrapper for rtc::LogMessage::LogToDebug. 28 | // Sets the minimum severity to be logged to console. 29 | RTC_EXTERN void RTCSetMinDebugLogLevel(RTCLoggingSeverity severity); 30 | 31 | // Returns the filename with the path prefix removed. 32 | RTC_EXTERN NSString* RTCFileName(const char* filePath); 33 | 34 | // Some convenience macros. 35 | 36 | #define RTCLogString(format, ...) \ 37 | [NSString stringWithFormat:@"(%@:%d %s): " format, \ 38 | RTCFileName(__FILE__), \ 39 | __LINE__, \ 40 | __FUNCTION__, \ 41 | ##__VA_ARGS__] 42 | 43 | #define RTCLogFormat(severity, format, ...) \ 44 | do { \ 45 | NSString* log_string = RTCLogString(format, ##__VA_ARGS__); \ 46 | RTCLogEx(severity, log_string); \ 47 | } while (false) 48 | 49 | #define RTCLogVerbose(format, ...) \ 50 | RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__) \ 51 | 52 | #define RTCLogInfo(format, ...) \ 53 | RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__) \ 54 | 55 | #define RTCLogWarning(format, ...) \ 56 | RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__) \ 57 | 58 | #define RTCLogError(format, ...) \ 59 | RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__) \ 60 | 61 | #if !defined(NDEBUG) 62 | #define RTCLogDebug(format, ...) RTCLogInfo(format, ##__VA_ARGS__) 63 | #else 64 | #define RTCLogDebug(format, ...) \ 65 | do { \ 66 | } while (false) 67 | #endif 68 | 69 | #define RTCLog(format, ...) RTCLogInfo(format, ##__VA_ARGS__) 70 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCMTLVideoView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 12 | 13 | #import "WebRTC/RTCVideoRenderer.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | RTC_EXPORT 17 | 18 | /** 19 | * RTCMTLVideoView is thin wrapper around MTKView. 20 | * 21 | * It has id property that renders video frames in the view's 22 | * bounds using Metal. 23 | */ 24 | NS_CLASS_AVAILABLE_IOS(9) 25 | @interface RTCMTLVideoView : UIView 26 | 27 | @end 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCMacros.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 | #ifndef WEBRTC_BASE_OBJC_RTC_MACROS_H_ 12 | #define WEBRTC_BASE_OBJC_RTC_MACROS_H_ 13 | 14 | #define RTC_EXPORT __attribute__((visibility("default"))) 15 | 16 | #if defined(__cplusplus) 17 | #define RTC_EXTERN extern "C" RTC_EXPORT 18 | #else 19 | #define RTC_EXTERN extern RTC_EXPORT 20 | #endif 21 | 22 | #ifdef __OBJC__ 23 | #define RTC_FWD_DECL_OBJC_CLASS(classname) @class classname 24 | #else 25 | #define RTC_FWD_DECL_OBJC_CLASS(classname) typedef struct objc_object classname 26 | #endif 27 | 28 | #endif // WEBRTC_BASE_OBJC_RTC_MACROS_H_ 29 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCMediaConstraints.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXTERN NSString * const kRTCMediaConstraintsMinAspectRatio; 18 | RTC_EXTERN NSString * const kRTCMediaConstraintsMaxAspectRatio; 19 | RTC_EXTERN NSString * const kRTCMediaConstraintsMaxWidth; 20 | RTC_EXTERN NSString * const kRTCMediaConstraintsMinWidth; 21 | RTC_EXTERN NSString * const kRTCMediaConstraintsMaxHeight; 22 | RTC_EXTERN NSString * const kRTCMediaConstraintsMinHeight; 23 | RTC_EXTERN NSString * const kRTCMediaConstraintsMaxFrameRate; 24 | RTC_EXTERN NSString * const kRTCMediaConstraintsMinFrameRate; 25 | RTC_EXTERN NSString * const kRTCMediaConstraintsLevelControl; 26 | /** The value for this key should be a base64 encoded string containing 27 | * the data from the serialized configuration proto. 28 | */ 29 | RTC_EXTERN NSString * const kRTCMediaConstraintsAudioNetworkAdaptorConfig; 30 | 31 | RTC_EXTERN NSString * const kRTCMediaConstraintsValueTrue; 32 | RTC_EXTERN NSString * const kRTCMediaConstraintsValueFalse; 33 | 34 | RTC_EXPORT 35 | @interface RTCMediaConstraints : NSObject 36 | 37 | - (instancetype)init NS_UNAVAILABLE; 38 | 39 | /** Initialize with mandatory and/or optional constraints. */ 40 | - (instancetype)initWithMandatoryConstraints: 41 | (nullable NSDictionary *)mandatory 42 | optionalConstraints: 43 | (nullable NSDictionary *)optional 44 | NS_DESIGNATED_INITIALIZER; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCMediaSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | typedef NS_ENUM(NSInteger, RTCSourceState) { 16 | RTCSourceStateInitializing, 17 | RTCSourceStateLive, 18 | RTCSourceStateEnded, 19 | RTCSourceStateMuted, 20 | }; 21 | 22 | NS_ASSUME_NONNULL_BEGIN 23 | 24 | RTC_EXPORT 25 | @interface RTCMediaSource : NSObject 26 | 27 | /** The current state of the RTCMediaSource. */ 28 | @property(nonatomic, readonly) RTCSourceState state; 29 | 30 | - (instancetype)init NS_UNAVAILABLE; 31 | 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCMediaStream.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class RTCAudioTrack; 18 | @class RTCPeerConnectionFactory; 19 | @class RTCVideoTrack; 20 | 21 | RTC_EXPORT 22 | @interface RTCMediaStream : NSObject 23 | 24 | /** The audio tracks in this stream. */ 25 | @property(nonatomic, strong, readonly) NSArray *audioTracks; 26 | 27 | /** The video tracks in this stream. */ 28 | @property(nonatomic, strong, readonly) NSArray *videoTracks; 29 | 30 | /** An identifier for this media stream. */ 31 | @property(nonatomic, readonly) NSString *streamId; 32 | 33 | - (instancetype)init NS_UNAVAILABLE; 34 | 35 | /** Adds the given audio track to this media stream. */ 36 | - (void)addAudioTrack:(RTCAudioTrack *)audioTrack; 37 | 38 | /** Adds the given video track to this media stream. */ 39 | - (void)addVideoTrack:(RTCVideoTrack *)videoTrack; 40 | 41 | /** Removes the given audio track to this media stream. */ 42 | - (void)removeAudioTrack:(RTCAudioTrack *)audioTrack; 43 | 44 | /** Removes the given video track to this media stream. */ 45 | - (void)removeVideoTrack:(RTCVideoTrack *)videoTrack; 46 | 47 | @end 48 | 49 | NS_ASSUME_NONNULL_END 50 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCMediaStreamTrack.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | /** 16 | * Represents the state of the track. This exposes the same states in C++. 17 | */ 18 | typedef NS_ENUM(NSInteger, RTCMediaStreamTrackState) { 19 | RTCMediaStreamTrackStateLive, 20 | RTCMediaStreamTrackStateEnded 21 | }; 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | RTC_EXTERN NSString * const kRTCMediaStreamTrackKindAudio; 26 | RTC_EXTERN NSString * const kRTCMediaStreamTrackKindVideo; 27 | 28 | RTC_EXPORT 29 | @interface RTCMediaStreamTrack : NSObject 30 | 31 | /** 32 | * The kind of track. For example, "audio" if this track represents an audio 33 | * track and "video" if this track represents a video track. 34 | */ 35 | @property(nonatomic, readonly) NSString *kind; 36 | 37 | /** An identifier string. */ 38 | @property(nonatomic, readonly) NSString *trackId; 39 | 40 | /** The enabled state of the track. */ 41 | @property(nonatomic, assign) BOOL isEnabled; 42 | 43 | /** The state of the track. */ 44 | @property(nonatomic, readonly) RTCMediaStreamTrackState readyState; 45 | 46 | - (instancetype)init NS_UNAVAILABLE; 47 | 48 | @end 49 | 50 | NS_ASSUME_NONNULL_END 51 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCMetrics.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | #import 15 | 16 | /** 17 | * Enables gathering of metrics (which can be fetched with 18 | * RTCGetAndResetMetrics). Must be called before any other call into WebRTC. 19 | */ 20 | RTC_EXTERN void RTCEnableMetrics(); 21 | 22 | /** Gets and clears native histograms. */ 23 | RTC_EXTERN NSArray *RTCGetAndResetMetrics(); 24 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCMetricsSampleInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXPORT 18 | @interface RTCMetricsSampleInfo : NSObject 19 | 20 | /** 21 | * Example of RTCMetricsSampleInfo: 22 | * name: "WebRTC.Video.InputFramesPerSecond" 23 | * min: 1 24 | * max: 100 25 | * bucketCount: 50 26 | * samples: [29]:2 [30]:1 27 | */ 28 | 29 | /** The name of the histogram. */ 30 | @property(nonatomic, readonly) NSString *name; 31 | 32 | /** The minimum bucket value. */ 33 | @property(nonatomic, readonly) int min; 34 | 35 | /** The maximum bucket value. */ 36 | @property(nonatomic, readonly) int max; 37 | 38 | /** The number of buckets. */ 39 | @property(nonatomic, readonly) int bucketCount; 40 | 41 | /** A dictionary holding the samples . */ 42 | @property(nonatomic, readonly) NSDictionary *samples; 43 | 44 | - (instancetype)init NS_UNAVAILABLE; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCPeerConnection.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 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 RTCRtpReceiver; 24 | @class RTCRtpSender; 25 | @class RTCSessionDescription; 26 | @class RTCLegacyStatsReport; 27 | 28 | NS_ASSUME_NONNULL_BEGIN 29 | 30 | extern NSString * const kRTCPeerConnectionErrorDomain; 31 | extern int const kRTCSessionDescriptionErrorCode; 32 | 33 | /** Represents the signaling state of the peer connection. */ 34 | typedef NS_ENUM(NSInteger, RTCSignalingState) { 35 | RTCSignalingStateStable, 36 | RTCSignalingStateHaveLocalOffer, 37 | RTCSignalingStateHaveLocalPrAnswer, 38 | RTCSignalingStateHaveRemoteOffer, 39 | RTCSignalingStateHaveRemotePrAnswer, 40 | // Not an actual state, represents the total number of states. 41 | RTCSignalingStateClosed, 42 | }; 43 | 44 | /** Represents the ice connection state of the peer connection. */ 45 | typedef NS_ENUM(NSInteger, RTCIceConnectionState) { 46 | RTCIceConnectionStateNew, 47 | RTCIceConnectionStateChecking, 48 | RTCIceConnectionStateConnected, 49 | RTCIceConnectionStateCompleted, 50 | RTCIceConnectionStateFailed, 51 | RTCIceConnectionStateDisconnected, 52 | RTCIceConnectionStateClosed, 53 | RTCIceConnectionStateCount, 54 | }; 55 | 56 | /** Represents the ice gathering state of the peer connection. */ 57 | typedef NS_ENUM(NSInteger, RTCIceGatheringState) { 58 | RTCIceGatheringStateNew, 59 | RTCIceGatheringStateGathering, 60 | RTCIceGatheringStateComplete, 61 | }; 62 | 63 | /** Represents the stats output level. */ 64 | typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) { 65 | RTCStatsOutputLevelStandard, 66 | RTCStatsOutputLevelDebug, 67 | }; 68 | 69 | @class RTCPeerConnection; 70 | 71 | RTC_EXPORT 72 | @protocol RTCPeerConnectionDelegate 73 | 74 | /** Called when the SignalingState changed. */ 75 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 76 | didChangeSignalingState:(RTCSignalingState)stateChanged; 77 | 78 | /** Called when media is received on a new stream from remote peer. */ 79 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 80 | didAddStream:(RTCMediaStream *)stream; 81 | 82 | /** Called when a remote peer closes a stream. */ 83 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 84 | didRemoveStream:(RTCMediaStream *)stream; 85 | 86 | /** Called when negotiation is needed, for example ICE has restarted. */ 87 | - (void)peerConnectionShouldNegotiate:(RTCPeerConnection *)peerConnection; 88 | 89 | /** Called any time the IceConnectionState changes. */ 90 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 91 | didChangeIceConnectionState:(RTCIceConnectionState)newState; 92 | 93 | /** Called any time the IceGatheringState changes. */ 94 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 95 | didChangeIceGatheringState:(RTCIceGatheringState)newState; 96 | 97 | /** New ice candidate has been found. */ 98 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 99 | didGenerateIceCandidate:(RTCIceCandidate *)candidate; 100 | 101 | /** Called when a group of local Ice candidates have been removed. */ 102 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 103 | didRemoveIceCandidates:(NSArray *)candidates; 104 | 105 | /** New data channel has been opened. */ 106 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 107 | didOpenDataChannel:(RTCDataChannel *)dataChannel; 108 | 109 | @end 110 | 111 | RTC_EXPORT 112 | @interface RTCPeerConnection : NSObject 113 | 114 | /** The object that will be notifed about events such as state changes and 115 | * streams being added or removed. 116 | */ 117 | @property(nonatomic, weak, nullable) id delegate; 118 | @property(nonatomic, readonly) NSArray *localStreams; 119 | @property(nonatomic, readonly, nullable) 120 | RTCSessionDescription *localDescription; 121 | @property(nonatomic, readonly, nullable) 122 | RTCSessionDescription *remoteDescription; 123 | @property(nonatomic, readonly) RTCSignalingState signalingState; 124 | @property(nonatomic, readonly) RTCIceConnectionState iceConnectionState; 125 | @property(nonatomic, readonly) RTCIceGatheringState iceGatheringState; 126 | 127 | /** Gets all RTCRtpSenders associated with this peer connection. 128 | * Note: reading this property returns different instances of RTCRtpSender. 129 | * Use isEqual: instead of == to compare RTCRtpSender instances. 130 | */ 131 | @property(nonatomic, readonly) NSArray *senders; 132 | 133 | /** Gets all RTCRtpReceivers associated with this peer connection. 134 | * Note: reading this property returns different instances of RTCRtpReceiver. 135 | * Use isEqual: instead of == to compare RTCRtpReceiver instances. 136 | */ 137 | @property(nonatomic, readonly) NSArray *receivers; 138 | 139 | - (instancetype)init NS_UNAVAILABLE; 140 | 141 | /** Sets the PeerConnection's global configuration to |configuration|. 142 | * Any changes to STUN/TURN servers or ICE candidate policy will affect the 143 | * next gathering phase, and cause the next call to createOffer to generate 144 | * new ICE credentials. Note that the BUNDLE and RTCP-multiplexing policies 145 | * cannot be changed with this method. 146 | */ 147 | - (BOOL)setConfiguration:(RTCConfiguration *)configuration; 148 | 149 | /** Terminate all media and close the transport. */ 150 | - (void)close; 151 | 152 | /** Provide a remote candidate to the ICE Agent. */ 153 | - (void)addIceCandidate:(RTCIceCandidate *)candidate; 154 | 155 | /** Remove a group of remote candidates from the ICE Agent. */ 156 | - (void)removeIceCandidates:(NSArray *)candidates; 157 | 158 | /** Add a new media stream to be sent on this peer connection. */ 159 | - (void)addStream:(RTCMediaStream *)stream; 160 | 161 | /** Remove the given media stream from this peer connection. */ 162 | - (void)removeStream:(RTCMediaStream *)stream; 163 | 164 | /** Generate an SDP offer. */ 165 | - (void)offerForConstraints:(RTCMediaConstraints *)constraints 166 | completionHandler:(nullable void (^) 167 | (RTCSessionDescription * _Nullable sdp, 168 | NSError * _Nullable error))completionHandler; 169 | 170 | /** Generate an SDP answer. */ 171 | - (void)answerForConstraints:(RTCMediaConstraints *)constraints 172 | completionHandler:(nullable void (^) 173 | (RTCSessionDescription * _Nullable sdp, 174 | NSError * _Nullable error))completionHandler; 175 | 176 | /** Apply the supplied RTCSessionDescription as the local description. */ 177 | - (void)setLocalDescription:(RTCSessionDescription *)sdp 178 | completionHandler: 179 | (nullable void (^)(NSError * _Nullable error))completionHandler; 180 | 181 | /** Apply the supplied RTCSessionDescription as the remote description. */ 182 | - (void)setRemoteDescription:(RTCSessionDescription *)sdp 183 | completionHandler: 184 | (nullable void (^)(NSError * _Nullable error))completionHandler; 185 | 186 | /** Start or stop recording an Rtc EventLog. */ 187 | - (BOOL)startRtcEventLogWithFilePath:(NSString *)filePath 188 | maxSizeInBytes:(int64_t)maxSizeInBytes; 189 | - (void)stopRtcEventLog; 190 | 191 | @end 192 | 193 | @interface RTCPeerConnection (Media) 194 | 195 | /** 196 | * Create an RTCRtpSender with the specified kind and media stream ID. 197 | * See RTCMediaStreamTrack.h for available kinds. 198 | */ 199 | - (RTCRtpSender *)senderWithKind:(NSString *)kind streamId:(NSString *)streamId; 200 | 201 | @end 202 | 203 | @interface RTCPeerConnection (DataChannel) 204 | 205 | /** Create a new data channel with the given label and configuration. */ 206 | - (RTCDataChannel *)dataChannelForLabel:(NSString *)label 207 | configuration:(RTCDataChannelConfiguration *)configuration; 208 | 209 | @end 210 | 211 | @interface RTCPeerConnection (Stats) 212 | 213 | /** Gather stats for the given RTCMediaStreamTrack. If |mediaStreamTrack| is nil 214 | * statistics are gathered for all tracks. 215 | */ 216 | - (void)statsForTrack: 217 | (nullable RTCMediaStreamTrack *)mediaStreamTrack 218 | statsOutputLevel:(RTCStatsOutputLevel)statsOutputLevel 219 | completionHandler: 220 | (nullable void (^)(NSArray *stats))completionHandler; 221 | 222 | @end 223 | 224 | NS_ASSUME_NONNULL_END 225 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCPeerConnectionFactory.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class RTCAVFoundationVideoSource; 18 | @class RTCAudioSource; 19 | @class RTCAudioTrack; 20 | @class RTCConfiguration; 21 | @class RTCMediaConstraints; 22 | @class RTCMediaStream; 23 | @class RTCPeerConnection; 24 | @class RTCVideoSource; 25 | @class RTCVideoTrack; 26 | @protocol RTCPeerConnectionDelegate; 27 | 28 | RTC_EXPORT 29 | @interface RTCPeerConnectionFactory : NSObject 30 | 31 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 32 | 33 | /** Initialize an RTCAudioSource with constraints. */ 34 | - (RTCAudioSource *)audioSourceWithConstraints:(nullable RTCMediaConstraints *)constraints; 35 | 36 | /** Initialize an RTCAudioTrack with an id. Convenience ctor to use an audio source with no 37 | * constraints. 38 | */ 39 | - (RTCAudioTrack *)audioTrackWithTrackId:(NSString *)trackId; 40 | 41 | /** Initialize an RTCAudioTrack with a source and an id. */ 42 | - (RTCAudioTrack *)audioTrackWithSource:(RTCAudioSource *)source 43 | trackId:(NSString *)trackId; 44 | 45 | /** Initialize an RTCAVFoundationVideoSource with constraints. */ 46 | - (RTCAVFoundationVideoSource *)avFoundationVideoSourceWithConstraints: 47 | (nullable RTCMediaConstraints *)constraints; 48 | 49 | /** Initialize an RTCVideoTrack with a source and an id. */ 50 | - (RTCVideoTrack *)videoTrackWithSource:(RTCVideoSource *)source 51 | trackId:(NSString *)trackId; 52 | 53 | /** Initialize an RTCMediaStream with an id. */ 54 | - (RTCMediaStream *)mediaStreamWithStreamId:(NSString *)streamId; 55 | 56 | /** Initialize an RTCPeerConnection with a configuration, constraints, and 57 | * delegate. 58 | */ 59 | - (RTCPeerConnection *)peerConnectionWithConfiguration: 60 | (RTCConfiguration *)configuration 61 | constraints: 62 | (RTCMediaConstraints *)constraints 63 | delegate: 64 | (nullable id)delegate; 65 | 66 | /** Start an AecDump recording. This API call will likely change in the future. */ 67 | - (BOOL)startAecDumpWithFilePath:(NSString *)filePath 68 | maxSizeInBytes:(int64_t)maxSizeInBytes; 69 | 70 | /* Stop an active AecDump recording */ 71 | - (void)stopAecDump; 72 | 73 | @end 74 | 75 | NS_ASSUME_NONNULL_END 76 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCRtpCodecParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXTERN const NSString * const kRTCRtxCodecName; 18 | RTC_EXTERN const NSString * const kRTCRedCodecName; 19 | RTC_EXTERN const NSString * const kRTCUlpfecCodecName; 20 | RTC_EXTERN const NSString * const kRTCFlexfecCodecName; 21 | RTC_EXTERN const NSString * const kRTCOpusCodecName; 22 | RTC_EXTERN const NSString * const kRTCIsacCodecName; 23 | RTC_EXTERN const NSString * const kRTCL16CodecName; 24 | RTC_EXTERN const NSString * const kRTCG722CodecName; 25 | RTC_EXTERN const NSString * const kRTCIlbcCodecName; 26 | RTC_EXTERN const NSString * const kRTCPcmuCodecName; 27 | RTC_EXTERN const NSString * const kRTCPcmaCodecName; 28 | RTC_EXTERN const NSString * const kRTCDtmfCodecName; 29 | RTC_EXTERN const NSString * const kRTCComfortNoiseCodecName; 30 | RTC_EXTERN const NSString * const kRTCVp8CodecName; 31 | RTC_EXTERN const NSString * const kRTCVp9CodecName; 32 | RTC_EXTERN const NSString * const kRTCH264CodecName; 33 | 34 | /** Defined in http://w3c.github.io/webrtc-pc/#idl-def-RTCRtpCodecParameters */ 35 | RTC_EXPORT 36 | @interface RTCRtpCodecParameters : NSObject 37 | 38 | /** The RTP payload type. */ 39 | @property(nonatomic, assign) int payloadType; 40 | 41 | /** 42 | * The codec MIME subtype. Valid types are listed in: 43 | * http://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-2 44 | * 45 | * Several supported types are represented by the constants above. 46 | */ 47 | @property(nonatomic, readonly, nonnull) NSString *name; 48 | 49 | /** 50 | * The media type of this codec. Equivalent to MIME top-level type. 51 | * 52 | * Valid values are kRTCMediaStreamTrackKindAudio and 53 | * kRTCMediaStreamTrackKindVideo. 54 | */ 55 | @property(nonatomic, readonly, nonnull) NSString *kind; 56 | 57 | /** The codec clock rate expressed in Hertz. */ 58 | @property(nonatomic, readonly, nullable) NSNumber *clockRate; 59 | 60 | /** 61 | * The number of channels (mono=1, stereo=2). 62 | * Set to null for video codecs. 63 | **/ 64 | @property(nonatomic, readonly, nullable) NSNumber *numChannels; 65 | 66 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 67 | 68 | @end 69 | 70 | NS_ASSUME_NONNULL_END 71 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCRtpEncodingParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXPORT 18 | @interface RTCRtpEncodingParameters : NSObject 19 | 20 | /** Controls whether the encoding is currently transmitted. */ 21 | @property(nonatomic, assign) BOOL isActive; 22 | 23 | /** The maximum bitrate to use for the encoding, or nil if there is no 24 | * limit. 25 | */ 26 | @property(nonatomic, copy, nullable) NSNumber *maxBitrateBps; 27 | 28 | /** The SSRC being used by this encoding. */ 29 | @property(nonatomic, readonly, nullable) NSNumber *ssrc; 30 | 31 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCRtpParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | RTC_EXPORT 20 | @interface RTCRtpParameters : NSObject 21 | 22 | /** The currently active encodings in the order of preference. */ 23 | @property(nonatomic, copy) NSArray *encodings; 24 | 25 | /** The negotiated set of send codecs in order of preference. */ 26 | @property(nonatomic, copy) NSArray *codecs; 27 | 28 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCRtpReceiver.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** Represents the media type of the RtpReceiver. */ 20 | typedef NS_ENUM(NSInteger, RTCRtpMediaType) { 21 | RTCRtpMediaTypeAudio, 22 | RTCRtpMediaTypeVideo, 23 | RTCRtpMediaTypeData, 24 | }; 25 | 26 | @class RTCRtpReceiver; 27 | 28 | RTC_EXPORT 29 | @protocol RTCRtpReceiverDelegate 30 | 31 | /** Called when the first RTP packet is received. 32 | * 33 | * Note: Currently if there are multiple RtpReceivers of the same media type, 34 | * they will all call OnFirstPacketReceived at once. 35 | * 36 | * For example, if we create three audio receivers, A/B/C, they will listen to 37 | * the same signal from the underneath network layer. Whenever the first audio packet 38 | * is received, the underneath signal will be fired. All the receivers A/B/C will be 39 | * notified and the callback of the receiver's delegate will be called. 40 | * 41 | * The process is the same for video receivers. 42 | */ 43 | - (void)rtpReceiver:(RTCRtpReceiver *)rtpReceiver 44 | didReceiveFirstPacketForMediaType:(RTCRtpMediaType)mediaType; 45 | 46 | @end 47 | 48 | RTC_EXPORT 49 | @protocol RTCRtpReceiver 50 | 51 | /** A unique identifier for this receiver. */ 52 | @property(nonatomic, readonly) NSString *receiverId; 53 | 54 | /** The currently active RTCRtpParameters, as defined in 55 | * https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters. 56 | * 57 | * The WebRTC specification only defines RTCRtpParameters in terms of senders, 58 | * but this API also applies them to receivers, similar to ORTC: 59 | * http://ortc.org/wp-content/uploads/2016/03/ortc.html#rtcrtpparameters*. 60 | */ 61 | @property(nonatomic, readonly) RTCRtpParameters *parameters; 62 | 63 | /** The RTCMediaStreamTrack associated with the receiver. 64 | * Note: reading this property returns a new instance of 65 | * RTCMediaStreamTrack. Use isEqual: instead of == to compare 66 | * RTCMediaStreamTrack instances. 67 | */ 68 | @property(nonatomic, readonly) RTCMediaStreamTrack *track; 69 | 70 | /** The delegate for this RtpReceiver. */ 71 | @property(nonatomic, weak) id delegate; 72 | 73 | @end 74 | 75 | RTC_EXPORT 76 | @interface RTCRtpReceiver : NSObject 77 | 78 | - (instancetype)init NS_UNAVAILABLE; 79 | 80 | @end 81 | 82 | NS_ASSUME_NONNULL_END 83 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCRtpSender.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | RTC_EXPORT 20 | @protocol RTCRtpSender 21 | 22 | /** A unique identifier for this sender. */ 23 | @property(nonatomic, readonly) NSString *senderId; 24 | 25 | /** The currently active RTCRtpParameters, as defined in 26 | * https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters. 27 | */ 28 | @property(nonatomic, copy) RTCRtpParameters *parameters; 29 | 30 | /** The RTCMediaStreamTrack associated with the sender. 31 | * Note: reading this property returns a new instance of 32 | * RTCMediaStreamTrack. Use isEqual: instead of == to compare 33 | * RTCMediaStreamTrack instances. 34 | */ 35 | @property(nonatomic, copy, nullable) RTCMediaStreamTrack *track; 36 | 37 | @end 38 | 39 | RTC_EXPORT 40 | @interface RTCRtpSender : NSObject 41 | 42 | - (instancetype)init NS_UNAVAILABLE; 43 | 44 | @end 45 | 46 | NS_ASSUME_NONNULL_END 47 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCSSLAdapter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | /** 16 | * Initialize and clean up the SSL library. Failure is fatal. These call the 17 | * corresponding functions in webrtc/base/ssladapter.h. 18 | */ 19 | RTC_EXTERN BOOL RTCInitializeSSL(); 20 | RTC_EXTERN BOOL RTCCleanupSSL(); 21 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCSessionDescription.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | /** 16 | * Represents the session description type. This exposes the same types that are 17 | * in C++, which doesn't include the rollback type that is in the W3C spec. 18 | */ 19 | typedef NS_ENUM(NSInteger, RTCSdpType) { 20 | RTCSdpTypeOffer, 21 | RTCSdpTypePrAnswer, 22 | RTCSdpTypeAnswer, 23 | }; 24 | 25 | NS_ASSUME_NONNULL_BEGIN 26 | 27 | RTC_EXPORT 28 | @interface RTCSessionDescription : NSObject 29 | 30 | /** The type of session description. */ 31 | @property(nonatomic, readonly) RTCSdpType type; 32 | 33 | /** The SDP string representation of this session description. */ 34 | @property(nonatomic, readonly) NSString *sdp; 35 | 36 | - (instancetype)init NS_UNAVAILABLE; 37 | 38 | /** Initialize a session description with a type and SDP string. */ 39 | - (instancetype)initWithType:(RTCSdpType)type sdp:(NSString *)sdp 40 | NS_DESIGNATED_INITIALIZER; 41 | 42 | + (NSString *)stringForType:(RTCSdpType)type; 43 | 44 | + (RTCSdpType)typeForString:(NSString *)string; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCTracing.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | RTC_EXTERN void RTCSetupInternalTracer(); 16 | /** Starts capture to specified file. Must be a valid writable path. 17 | * Returns YES if capture starts. 18 | */ 19 | RTC_EXTERN BOOL RTCStartInternalCapture(NSString *filePath); 20 | RTC_EXTERN void RTCStopInternalCapture(); 21 | RTC_EXTERN void RTCShutdownInternalTracer(); 22 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCVideoFrame.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | typedef NS_ENUM(NSInteger, RTCVideoRotation) { 19 | RTCVideoRotation_0 = 0, 20 | RTCVideoRotation_90 = 90, 21 | RTCVideoRotation_180 = 180, 22 | RTCVideoRotation_270 = 270, 23 | }; 24 | 25 | // RTCVideoFrame is an ObjectiveC version of webrtc::VideoFrame. 26 | RTC_EXPORT 27 | @interface RTCVideoFrame : NSObject 28 | 29 | /** Width without rotation applied. */ 30 | @property(nonatomic, readonly) int width; 31 | 32 | /** Height without rotation applied. */ 33 | @property(nonatomic, readonly) int height; 34 | @property(nonatomic, readonly) RTCVideoRotation rotation; 35 | /** Accessing YUV data should only be done for I420 frames, i.e. if nativeHandle 36 | * is null. It is always possible to get such a frame by calling 37 | * newI420VideoFrame. 38 | */ 39 | @property(nonatomic, readonly, nullable) const uint8_t *dataY; 40 | @property(nonatomic, readonly, nullable) const uint8_t *dataU; 41 | @property(nonatomic, readonly, nullable) const uint8_t *dataV; 42 | @property(nonatomic, readonly) int strideY; 43 | @property(nonatomic, readonly) int strideU; 44 | @property(nonatomic, readonly) int strideV; 45 | 46 | /** Timestamp in nanoseconds. */ 47 | @property(nonatomic, readonly) int64_t timeStampNs; 48 | 49 | /** The native handle should be a pixel buffer on iOS. */ 50 | @property(nonatomic, readonly) CVPixelBufferRef nativeHandle; 51 | 52 | - (instancetype)init NS_UNAVAILABLE; 53 | - (instancetype)new NS_UNAVAILABLE; 54 | 55 | /** Initialize an RTCVideoFrame from a pixel buffer, rotation, and timestamp. 56 | */ 57 | - (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer 58 | rotation:(RTCVideoRotation)rotation 59 | timeStampNs:(int64_t)timeStampNs; 60 | 61 | /** Initialize an RTCVideoFrame from a pixel buffer combined with cropping and 62 | * scaling. Cropping will be applied first on the pixel buffer, followed by 63 | * scaling to the final resolution of scaledWidth x scaledHeight. 64 | */ 65 | - (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer 66 | scaledWidth:(int)scaledWidth 67 | scaledHeight:(int)scaledHeight 68 | cropWidth:(int)cropWidth 69 | cropHeight:(int)cropHeight 70 | cropX:(int)cropX 71 | cropY:(int)cropY 72 | rotation:(RTCVideoRotation)rotation 73 | timeStampNs:(int64_t)timeStampNs; 74 | 75 | /** Return a frame that is guaranteed to be I420, i.e. it is possible to access 76 | * the YUV data on it. 77 | */ 78 | - (RTCVideoFrame *)newI420VideoFrame; 79 | 80 | @end 81 | 82 | NS_ASSUME_NONNULL_END 83 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCVideoRenderer.h: -------------------------------------------------------------------------------- 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 12 | #if TARGET_OS_IPHONE 13 | #import 14 | #endif 15 | 16 | #import 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @class RTCVideoFrame; 21 | 22 | RTC_EXPORT 23 | @protocol RTCVideoRenderer 24 | 25 | /** The size of the frame. */ 26 | - (void)setSize:(CGSize)size; 27 | 28 | /** The frame to be displayed. */ 29 | - (void)renderFrame:(nullable RTCVideoFrame *)frame; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCVideoSource.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_EXPORT 19 | @interface RTCVideoSource : RTCMediaSource 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/RTCVideoTrack.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @protocol RTCVideoRenderer; 18 | @class RTCPeerConnectionFactory; 19 | @class RTCVideoSource; 20 | 21 | RTC_EXPORT 22 | @interface RTCVideoTrack : RTCMediaStreamTrack 23 | 24 | /** The video source for this video track. */ 25 | @property(nonatomic, readonly) RTCVideoSource *source; 26 | 27 | - (instancetype)init NS_UNAVAILABLE; 28 | 29 | /** Register a renderer that will render all frames received on this track. */ 30 | - (void)addRenderer:(id)renderer; 31 | 32 | /** Deregister a renderer. */ 33 | - (void)removeRenderer:(id)renderer; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/UIDevice+RTCDevice.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | typedef NS_ENUM(NSInteger, RTCDeviceType) { 14 | RTCDeviceTypeUnknown, 15 | RTCDeviceTypeIPhone1G, 16 | RTCDeviceTypeIPhone3G, 17 | RTCDeviceTypeIPhone3GS, 18 | RTCDeviceTypeIPhone4, 19 | RTCDeviceTypeIPhone4Verizon, 20 | RTCDeviceTypeIPhone4S, 21 | RTCDeviceTypeIPhone5GSM, 22 | RTCDeviceTypeIPhone5GSM_CDMA, 23 | RTCDeviceTypeIPhone5CGSM, 24 | RTCDeviceTypeIPhone5CGSM_CDMA, 25 | RTCDeviceTypeIPhone5SGSM, 26 | RTCDeviceTypeIPhone5SGSM_CDMA, 27 | RTCDeviceTypeIPhone6Plus, 28 | RTCDeviceTypeIPhone6, 29 | RTCDeviceTypeIPhone6S, 30 | RTCDeviceTypeIPhone6SPlus, 31 | RTCDeviceTypeIPodTouch1G, 32 | RTCDeviceTypeIPodTouch2G, 33 | RTCDeviceTypeIPodTouch3G, 34 | RTCDeviceTypeIPodTouch4G, 35 | RTCDeviceTypeIPodTouch5G, 36 | RTCDeviceTypeIPad, 37 | RTCDeviceTypeIPad2Wifi, 38 | RTCDeviceTypeIPad2GSM, 39 | RTCDeviceTypeIPad2CDMA, 40 | RTCDeviceTypeIPad2Wifi2, 41 | RTCDeviceTypeIPadMiniWifi, 42 | RTCDeviceTypeIPadMiniGSM, 43 | RTCDeviceTypeIPadMiniGSM_CDMA, 44 | RTCDeviceTypeIPad3Wifi, 45 | RTCDeviceTypeIPad3GSM_CDMA, 46 | RTCDeviceTypeIPad3GSM, 47 | RTCDeviceTypeIPad4Wifi, 48 | RTCDeviceTypeIPad4GSM, 49 | RTCDeviceTypeIPad4GSM_CDMA, 50 | RTCDeviceTypeIPadAirWifi, 51 | RTCDeviceTypeIPadAirCellular, 52 | RTCDeviceTypeIPadMini2GWifi, 53 | RTCDeviceTypeIPadMini2GCellular, 54 | RTCDeviceTypeSimulatori386, 55 | RTCDeviceTypeSimulatorx86_64, 56 | }; 57 | 58 | @interface UIDevice (RTCDevice) 59 | 60 | + (RTCDeviceType)deviceType; 61 | + (NSString *)stringForDeviceType:(RTCDeviceType)deviceType; 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Headers/WebRTC.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | #import 13 | #import 14 | #if TARGET_OS_IPHONE 15 | #import 16 | #endif 17 | #import 18 | #import 19 | #import 20 | #import 21 | #if TARGET_OS_IPHONE 22 | #import 23 | #endif 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | #import 30 | #import 31 | #import 32 | #import 33 | #import 34 | #import 35 | #import 36 | #import 37 | #import 38 | #import 39 | #import 40 | #import 41 | #import 42 | #import 43 | #import 44 | #import 45 | #import 46 | #import 47 | #import 48 | #import 49 | #import 50 | #import 51 | #if TARGET_OS_IPHONE 52 | #import 53 | #endif 54 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AjayChoudary/WebRTCFramework/dd266ca5231de062e0715841b63c46d196cea9f8/IOS/WebRTC.framework/Info.plist -------------------------------------------------------------------------------- /IOS/WebRTC.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module WebRTC { 2 | umbrella header "WebRTC.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /IOS/WebRTC.framework/WebRTC: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AjayChoudary/WebRTCFramework/dd266ca5231de062e0715841b63c46d196cea9f8/IOS/WebRTC.framework/WebRTC -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AjayChoudary/WebRTCFramework/dd266ca5231de062e0715841b63c46d196cea9f8/MAC/WebRTC.framework/Headers/.DS_Store -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCAVFoundationVideoSource.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | @class AVCaptureSession; 15 | @class RTCMediaConstraints; 16 | @class RTCPeerConnectionFactory; 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | /** 21 | * RTCAVFoundationVideoSource is a video source that uses 22 | * webrtc::AVFoundationVideoCapturer. We do not currently provide a wrapper for 23 | * that capturer because cricket::VideoCapturer is not ref counted and we cannot 24 | * guarantee its lifetime. Instead, we expose its properties through the ref 25 | * counted video source interface. 26 | */ 27 | RTC_EXPORT 28 | @interface RTCAVFoundationVideoSource : RTCVideoSource 29 | 30 | - (instancetype)init NS_UNAVAILABLE; 31 | 32 | /** Returns whether rear-facing camera is available for use. */ 33 | @property(nonatomic, readonly) BOOL canUseBackCamera; 34 | 35 | /** Switches the camera being used (either front or back). */ 36 | @property(nonatomic, assign) BOOL useBackCamera; 37 | 38 | /** Returns the active capture session. */ 39 | @property(nonatomic, readonly) AVCaptureSession *captureSession; 40 | 41 | @end 42 | 43 | NS_ASSUME_NONNULL_END 44 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCAudioTrack.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | RTC_EXPORT 17 | @interface RTCAudioTrack : RTCMediaStreamTrack 18 | 19 | - (instancetype)init NS_UNAVAILABLE; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCCameraPreviewView.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | #import 15 | 16 | @class AVCaptureSession; 17 | @class RTCAVFoundationVideoSource; 18 | 19 | /** RTCCameraPreviewView is a view that renders local video from an 20 | * AVCaptureSession. 21 | */ 22 | RTC_EXPORT 23 | @interface RTCCameraPreviewView : UIView 24 | 25 | /** The capture session being rendered in the view. Capture session 26 | * is assigned to AVCaptureVideoPreviewLayer async in the same 27 | * queue that the AVCaptureSession is started/stopped. 28 | */ 29 | @property(nonatomic, strong) AVCaptureSession *captureSession; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCConfiguration.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | @class RTCIceServer; 16 | 17 | /** 18 | * Represents the ice transport policy. This exposes the same states in C++, 19 | * which include one more state than what exists in the W3C spec. 20 | */ 21 | typedef NS_ENUM(NSInteger, RTCIceTransportPolicy) { 22 | RTCIceTransportPolicyNone, 23 | RTCIceTransportPolicyRelay, 24 | RTCIceTransportPolicyNoHost, 25 | RTCIceTransportPolicyAll 26 | }; 27 | 28 | /** Represents the bundle policy. */ 29 | typedef NS_ENUM(NSInteger, RTCBundlePolicy) { 30 | RTCBundlePolicyBalanced, 31 | RTCBundlePolicyMaxCompat, 32 | RTCBundlePolicyMaxBundle 33 | }; 34 | 35 | /** Represents the rtcp mux policy. */ 36 | typedef NS_ENUM(NSInteger, RTCRtcpMuxPolicy) { 37 | RTCRtcpMuxPolicyNegotiate, 38 | RTCRtcpMuxPolicyRequire 39 | }; 40 | 41 | /** Represents the tcp candidate policy. */ 42 | typedef NS_ENUM(NSInteger, RTCTcpCandidatePolicy) { 43 | RTCTcpCandidatePolicyEnabled, 44 | RTCTcpCandidatePolicyDisabled 45 | }; 46 | 47 | /** Represents the candidate network policy. */ 48 | typedef NS_ENUM(NSInteger, RTCCandidateNetworkPolicy) { 49 | RTCCandidateNetworkPolicyAll, 50 | RTCCandidateNetworkPolicyLowCost 51 | }; 52 | 53 | /** Represents the continual gathering policy. */ 54 | typedef NS_ENUM(NSInteger, RTCContinualGatheringPolicy) { 55 | RTCContinualGatheringPolicyGatherOnce, 56 | RTCContinualGatheringPolicyGatherContinually 57 | }; 58 | 59 | /** Represents the encryption key type. */ 60 | typedef NS_ENUM(NSInteger, RTCEncryptionKeyType) { 61 | RTCEncryptionKeyTypeRSA, 62 | RTCEncryptionKeyTypeECDSA, 63 | }; 64 | 65 | NS_ASSUME_NONNULL_BEGIN 66 | 67 | RTC_EXPORT 68 | @interface RTCConfiguration : NSObject 69 | 70 | /** An array of Ice Servers available to be used by ICE. */ 71 | @property(nonatomic, copy) NSArray *iceServers; 72 | 73 | /** Which candidates the ICE agent is allowed to use. The W3C calls it 74 | * |iceTransportPolicy|, while in C++ it is called |type|. */ 75 | @property(nonatomic, assign) RTCIceTransportPolicy iceTransportPolicy; 76 | 77 | /** The media-bundling policy to use when gathering ICE candidates. */ 78 | @property(nonatomic, assign) RTCBundlePolicy bundlePolicy; 79 | 80 | /** The rtcp-mux policy to use when gathering ICE candidates. */ 81 | @property(nonatomic, assign) RTCRtcpMuxPolicy rtcpMuxPolicy; 82 | @property(nonatomic, assign) RTCTcpCandidatePolicy tcpCandidatePolicy; 83 | @property(nonatomic, assign) RTCCandidateNetworkPolicy candidateNetworkPolicy; 84 | @property(nonatomic, assign) 85 | RTCContinualGatheringPolicy continualGatheringPolicy; 86 | @property(nonatomic, assign) int audioJitterBufferMaxPackets; 87 | @property(nonatomic, assign) int iceConnectionReceivingTimeout; 88 | @property(nonatomic, assign) int iceBackupCandidatePairPingInterval; 89 | 90 | /** Key type used to generate SSL identity. Default is ECDSA. */ 91 | @property(nonatomic, assign) RTCEncryptionKeyType keyType; 92 | 93 | /** ICE candidate pool size as defined in JSEP. Default is 0. */ 94 | @property(nonatomic, assign) int iceCandidatePoolSize; 95 | 96 | /** Prune turn ports on the same network to the same turn server. 97 | * Default is NO. 98 | */ 99 | @property(nonatomic, assign) BOOL shouldPruneTurnPorts; 100 | 101 | /** If set to YES, this means the ICE transport should presume TURN-to-TURN 102 | * candidate pairs will succeed, even before a binding response is received. 103 | */ 104 | @property(nonatomic, assign) BOOL shouldPresumeWritableWhenFullyRelayed; 105 | 106 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 107 | 108 | @end 109 | 110 | NS_ASSUME_NONNULL_END 111 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCDataChannel.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_EXPORT 19 | @interface RTCDataBuffer : NSObject 20 | 21 | /** NSData representation of the underlying buffer. */ 22 | @property(nonatomic, readonly) NSData *data; 23 | 24 | /** Indicates whether |data| contains UTF-8 or binary data. */ 25 | @property(nonatomic, readonly) BOOL isBinary; 26 | 27 | - (instancetype)init NS_UNAVAILABLE; 28 | 29 | /** 30 | * Initialize an RTCDataBuffer from NSData. |isBinary| indicates whether |data| 31 | * contains UTF-8 or binary data. 32 | */ 33 | - (instancetype)initWithData:(NSData *)data isBinary:(BOOL)isBinary; 34 | 35 | @end 36 | 37 | 38 | @class RTCDataChannel; 39 | RTC_EXPORT 40 | @protocol RTCDataChannelDelegate 41 | 42 | /** The data channel state changed. */ 43 | - (void)dataChannelDidChangeState:(RTCDataChannel *)dataChannel; 44 | 45 | /** The data channel successfully received a data buffer. */ 46 | - (void)dataChannel:(RTCDataChannel *)dataChannel 47 | didReceiveMessageWithBuffer:(RTCDataBuffer *)buffer; 48 | 49 | @optional 50 | /** The data channel's |bufferedAmount| changed. */ 51 | - (void)dataChannel:(RTCDataChannel *)dataChannel 52 | didChangeBufferedAmount:(uint64_t)amount; 53 | 54 | @end 55 | 56 | 57 | /** Represents the state of the data channel. */ 58 | typedef NS_ENUM(NSInteger, RTCDataChannelState) { 59 | RTCDataChannelStateConnecting, 60 | RTCDataChannelStateOpen, 61 | RTCDataChannelStateClosing, 62 | RTCDataChannelStateClosed, 63 | }; 64 | 65 | RTC_EXPORT 66 | @interface RTCDataChannel : NSObject 67 | 68 | /** 69 | * A label that can be used to distinguish this data channel from other data 70 | * channel objects. 71 | */ 72 | @property(nonatomic, readonly) NSString *label; 73 | 74 | /** Whether the data channel can send messages in unreliable mode. */ 75 | @property(nonatomic, readonly) BOOL isReliable DEPRECATED_ATTRIBUTE; 76 | 77 | /** Returns whether this data channel is ordered or not. */ 78 | @property(nonatomic, readonly) BOOL isOrdered; 79 | 80 | /** Deprecated. Use maxPacketLifeTime. */ 81 | @property(nonatomic, readonly) NSUInteger maxRetransmitTime 82 | DEPRECATED_ATTRIBUTE; 83 | 84 | /** 85 | * The length of the time window (in milliseconds) during which transmissions 86 | * and retransmissions may occur in unreliable mode. 87 | */ 88 | @property(nonatomic, readonly) uint16_t maxPacketLifeTime; 89 | 90 | /** 91 | * The maximum number of retransmissions that are attempted in unreliable mode. 92 | */ 93 | @property(nonatomic, readonly) uint16_t maxRetransmits; 94 | 95 | /** 96 | * The name of the sub-protocol used with this data channel, if any. Otherwise 97 | * this returns an empty string. 98 | */ 99 | @property(nonatomic, readonly) NSString *protocol; 100 | 101 | /** 102 | * Returns whether this data channel was negotiated by the application or not. 103 | */ 104 | @property(nonatomic, readonly) BOOL isNegotiated; 105 | 106 | /** Deprecated. Use channelId. */ 107 | @property(nonatomic, readonly) NSInteger streamId DEPRECATED_ATTRIBUTE; 108 | 109 | /** The identifier for this data channel. */ 110 | @property(nonatomic, readonly) int channelId; 111 | 112 | /** The state of the data channel. */ 113 | @property(nonatomic, readonly) RTCDataChannelState readyState; 114 | 115 | /** 116 | * The number of bytes of application data that have been queued using 117 | * |sendData:| but that have not yet been transmitted to the network. 118 | */ 119 | @property(nonatomic, readonly) uint64_t bufferedAmount; 120 | 121 | /** The delegate for this data channel. */ 122 | @property(nonatomic, weak) id delegate; 123 | 124 | - (instancetype)init NS_UNAVAILABLE; 125 | 126 | /** Closes the data channel. */ 127 | - (void)close; 128 | 129 | /** Attempt to send |data| on this data channel's underlying data transport. */ 130 | - (BOOL)sendData:(RTCDataBuffer *)data; 131 | 132 | @end 133 | 134 | NS_ASSUME_NONNULL_END 135 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCDataChannelConfiguration.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_EXPORT 19 | @interface RTCDataChannelConfiguration : NSObject 20 | 21 | /** Set to YES if ordered delivery is required. */ 22 | @property(nonatomic, assign) BOOL isOrdered; 23 | 24 | /** Deprecated. Use maxPacketLifeTime. */ 25 | @property(nonatomic, assign) NSInteger maxRetransmitTimeMs DEPRECATED_ATTRIBUTE; 26 | 27 | /** 28 | * Max period in milliseconds in which retransmissions will be sent. After this 29 | * time, no more retransmissions will be sent. -1 if unset. 30 | */ 31 | @property(nonatomic, assign) int maxPacketLifeTime; 32 | 33 | /** The max number of retransmissions. -1 if unset. */ 34 | @property(nonatomic, assign) int maxRetransmits; 35 | 36 | /** Set to YES if the channel has been externally negotiated and we do not send 37 | * an in-band signalling in the form of an "open" message. 38 | */ 39 | @property(nonatomic, assign) BOOL isNegotiated; 40 | 41 | /** Deprecated. Use channelId. */ 42 | @property(nonatomic, assign) int streamId DEPRECATED_ATTRIBUTE; 43 | 44 | /** The id of the data channel. */ 45 | @property(nonatomic, assign) int channelId; 46 | 47 | /** Set by the application and opaque to the WebRTC implementation. */ 48 | @property(nonatomic) NSString *protocol; 49 | 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCDispatcher.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | typedef NS_ENUM(NSInteger, RTCDispatcherQueueType) { 16 | // Main dispatcher queue. 17 | RTCDispatcherTypeMain, 18 | // Used for starting/stopping AVCaptureSession, and assigning 19 | // capture session to AVCaptureVideoPreviewLayer. 20 | RTCDispatcherTypeCaptureSession, 21 | // Used for operations on AVAudioSession. 22 | RTCDispatcherTypeAudioSession, 23 | }; 24 | 25 | /** Dispatcher that asynchronously dispatches blocks to a specific 26 | * shared dispatch queue. 27 | */ 28 | RTC_EXPORT 29 | @interface RTCDispatcher : NSObject 30 | 31 | - (instancetype)init NS_UNAVAILABLE; 32 | 33 | /** Dispatch the block asynchronously on the queue for dispatchType. 34 | * @param dispatchType The queue type to dispatch on. 35 | * @param block The block to dispatch asynchronously. 36 | */ 37 | + (void)dispatchAsyncOnType:(RTCDispatcherQueueType)dispatchType 38 | block:(dispatch_block_t)block; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCEAGLVideoView.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | @class RTCEAGLVideoView; 20 | RTC_EXPORT 21 | @protocol RTCEAGLVideoViewDelegate 22 | 23 | - (void)videoView:(RTCEAGLVideoView *)videoView didChangeVideoSize:(CGSize)size; 24 | 25 | @end 26 | 27 | /** 28 | * RTCEAGLVideoView is an RTCVideoRenderer which renders video frames in its 29 | * bounds using OpenGLES 2.0. 30 | */ 31 | RTC_EXPORT 32 | @interface RTCEAGLVideoView : UIView 33 | 34 | @property(nonatomic, weak) id delegate; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCFieldTrials.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | typedef NS_OPTIONS(NSUInteger, RTCFieldTrialOptions) { 16 | RTCFieldTrialOptionsNone = 0, 17 | RTCFieldTrialOptionsSendSideBwe = 1 << 0, 18 | }; 19 | 20 | /** Must be called before any other call into WebRTC. See: 21 | * webrtc/system_wrappers/include/field_trial_default.h 22 | */ 23 | RTC_EXTERN void RTCInitFieldTrials(RTCFieldTrialOptions options); 24 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCFileLogger.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | typedef NS_ENUM(NSUInteger, RTCFileLoggerSeverity) { 16 | RTCFileLoggerSeverityVerbose, 17 | RTCFileLoggerSeverityInfo, 18 | RTCFileLoggerSeverityWarning, 19 | RTCFileLoggerSeverityError 20 | }; 21 | 22 | typedef NS_ENUM(NSUInteger, RTCFileLoggerRotationType) { 23 | RTCFileLoggerTypeCall, 24 | RTCFileLoggerTypeApp, 25 | }; 26 | 27 | NS_ASSUME_NONNULL_BEGIN 28 | 29 | // This class intercepts WebRTC logs and saves them to a file. The file size 30 | // will not exceed the given maximum bytesize. When the maximum bytesize is 31 | // reached, logs are rotated according to the rotationType specified. 32 | // For kRTCFileLoggerTypeCall, logs from the beginning and the end 33 | // are preserved while the middle section is overwritten instead. 34 | // For kRTCFileLoggerTypeApp, the oldest log is overwritten. 35 | // This class is not threadsafe. 36 | RTC_EXPORT 37 | @interface RTCFileLogger : NSObject 38 | 39 | // The severity level to capture. The default is kRTCFileLoggerSeverityInfo. 40 | @property(nonatomic, assign) RTCFileLoggerSeverity severity; 41 | 42 | // The rotation type for this file logger. The default is 43 | // kRTCFileLoggerTypeCall. 44 | @property(nonatomic, readonly) RTCFileLoggerRotationType rotationType; 45 | 46 | // Disables buffering disk writes. Should be set before |start|. Buffering 47 | // is enabled by default for performance. 48 | @property(nonatomic, assign) BOOL shouldDisableBuffering; 49 | 50 | // Default constructor provides default settings for dir path, file size and 51 | // rotation type. 52 | - (instancetype)init; 53 | 54 | // Create file logger with default rotation type. 55 | - (instancetype)initWithDirPath:(NSString *)dirPath 56 | maxFileSize:(NSUInteger)maxFileSize; 57 | 58 | - (instancetype)initWithDirPath:(NSString *)dirPath 59 | maxFileSize:(NSUInteger)maxFileSize 60 | rotationType:(RTCFileLoggerRotationType)rotationType 61 | NS_DESIGNATED_INITIALIZER; 62 | 63 | // Starts writing WebRTC logs to disk if not already started. Overwrites any 64 | // existing file(s). 65 | - (void)start; 66 | 67 | // Stops writing WebRTC logs to disk. This method is also called on dealloc. 68 | - (void)stop; 69 | 70 | // Returns the current contents of the logs, or nil if start has been called 71 | // without a stop. 72 | - (NSData *)logData; 73 | 74 | @end 75 | 76 | NS_ASSUME_NONNULL_END 77 | 78 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCIceCandidate.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXPORT 18 | @interface RTCIceCandidate : NSObject 19 | 20 | /** 21 | * If present, the identifier of the "media stream identification" for the media 22 | * component this candidate is associated with. 23 | */ 24 | @property(nonatomic, readonly, nullable) NSString *sdpMid; 25 | 26 | /** 27 | * The index (starting at zero) of the media description this candidate is 28 | * associated with in the SDP. 29 | */ 30 | @property(nonatomic, readonly) int sdpMLineIndex; 31 | 32 | /** The SDP string for this candidate. */ 33 | @property(nonatomic, readonly) NSString *sdp; 34 | 35 | - (instancetype)init NS_UNAVAILABLE; 36 | 37 | /** 38 | * Initialize an RTCIceCandidate from SDP. 39 | */ 40 | - (instancetype)initWithSdp:(NSString *)sdp 41 | sdpMLineIndex:(int)sdpMLineIndex 42 | sdpMid:(nullable NSString *)sdpMid 43 | NS_DESIGNATED_INITIALIZER; 44 | 45 | @end 46 | 47 | NS_ASSUME_NONNULL_END 48 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCIceServer.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXPORT 18 | @interface RTCIceServer : NSObject 19 | 20 | /** URI(s) for this server represented as NSStrings. */ 21 | @property(nonatomic, readonly) NSArray *urlStrings; 22 | 23 | /** Username to use if this RTCIceServer object is a TURN server. */ 24 | @property(nonatomic, readonly, nullable) NSString *username; 25 | 26 | /** Credential to use if this RTCIceServer object is a TURN server. */ 27 | @property(nonatomic, readonly, nullable) NSString *credential; 28 | 29 | - (nonnull instancetype)init NS_UNAVAILABLE; 30 | 31 | /** Convenience initializer for a server with no authentication (e.g. STUN). */ 32 | - (instancetype)initWithURLStrings:(NSArray *)urlStrings; 33 | 34 | /** 35 | * Initialize an RTCIceServer with its associated URLs, optional username, 36 | * optional credential, and credentialType. 37 | */ 38 | - (instancetype)initWithURLStrings:(NSArray *)urlStrings 39 | username:(nullable NSString *)username 40 | credential:(nullable NSString *)credential 41 | NS_DESIGNATED_INITIALIZER; 42 | 43 | @end 44 | 45 | NS_ASSUME_NONNULL_END 46 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCLogging.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | // Subset of rtc::LoggingSeverity. 16 | typedef NS_ENUM(NSInteger, RTCLoggingSeverity) { 17 | RTCLoggingSeverityVerbose, 18 | RTCLoggingSeverityInfo, 19 | RTCLoggingSeverityWarning, 20 | RTCLoggingSeverityError, 21 | }; 22 | 23 | // Wrapper for C++ LOG(sev) macros. 24 | // Logs the log string to the webrtc logstream for the given severity. 25 | RTC_EXTERN void RTCLogEx(RTCLoggingSeverity severity, NSString* log_string); 26 | 27 | // Wrapper for rtc::LogMessage::LogToDebug. 28 | // Sets the minimum severity to be logged to console. 29 | RTC_EXTERN void RTCSetMinDebugLogLevel(RTCLoggingSeverity severity); 30 | 31 | // Returns the filename with the path prefix removed. 32 | RTC_EXTERN NSString* RTCFileName(const char* filePath); 33 | 34 | // Some convenience macros. 35 | 36 | #define RTCLogString(format, ...) \ 37 | [NSString stringWithFormat:@"(%@:%d %s): " format, \ 38 | RTCFileName(__FILE__), \ 39 | __LINE__, \ 40 | __FUNCTION__, \ 41 | ##__VA_ARGS__] 42 | 43 | #define RTCLogFormat(severity, format, ...) \ 44 | do { \ 45 | NSString* log_string = RTCLogString(format, ##__VA_ARGS__); \ 46 | RTCLogEx(severity, log_string); \ 47 | } while (false) 48 | 49 | #define RTCLogVerbose(format, ...) \ 50 | RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__) \ 51 | 52 | #define RTCLogInfo(format, ...) \ 53 | RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__) \ 54 | 55 | #define RTCLogWarning(format, ...) \ 56 | RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__) \ 57 | 58 | #define RTCLogError(format, ...) \ 59 | RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__) \ 60 | 61 | #if !defined(NDEBUG) 62 | #define RTCLogDebug(format, ...) RTCLogInfo(format, ##__VA_ARGS__) 63 | #else 64 | #define RTCLogDebug(format, ...) \ 65 | do { \ 66 | } while (false) 67 | #endif 68 | 69 | #define RTCLog(format, ...) RTCLogInfo(format, ##__VA_ARGS__) 70 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCMacros.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 | #ifndef WEBRTC_BASE_OBJC_RTC_MACROS_H_ 12 | #define WEBRTC_BASE_OBJC_RTC_MACROS_H_ 13 | 14 | #define RTC_EXPORT __attribute__((visibility("default"))) 15 | 16 | #if defined(__cplusplus) 17 | #define RTC_EXTERN extern "C" RTC_EXPORT 18 | #else 19 | #define RTC_EXTERN extern RTC_EXPORT 20 | #endif 21 | 22 | #ifdef __OBJC__ 23 | #define RTC_FWD_DECL_OBJC_CLASS(classname) @class classname 24 | #else 25 | #define RTC_FWD_DECL_OBJC_CLASS(classname) typedef struct objc_object classname 26 | #endif 27 | 28 | #endif // WEBRTC_BASE_OBJC_RTC_MACROS_H_ 29 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCMediaConstraints.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXTERN NSString * const kRTCMediaConstraintsMinAspectRatio; 18 | RTC_EXTERN NSString * const kRTCMediaConstraintsMaxAspectRatio; 19 | RTC_EXTERN NSString * const kRTCMediaConstraintsMaxWidth; 20 | RTC_EXTERN NSString * const kRTCMediaConstraintsMinWidth; 21 | RTC_EXTERN NSString * const kRTCMediaConstraintsMaxHeight; 22 | RTC_EXTERN NSString * const kRTCMediaConstraintsMinHeight; 23 | RTC_EXTERN NSString * const kRTCMediaConstraintsMaxFrameRate; 24 | RTC_EXTERN NSString * const kRTCMediaConstraintsMinFrameRate; 25 | 26 | RTC_EXPORT 27 | @interface RTCMediaConstraints : NSObject 28 | 29 | - (instancetype)init NS_UNAVAILABLE; 30 | 31 | /** Initialize with mandatory and/or optional constraints. */ 32 | - (instancetype)initWithMandatoryConstraints: 33 | (nullable NSDictionary *)mandatory 34 | optionalConstraints: 35 | (nullable NSDictionary *)optional 36 | NS_DESIGNATED_INITIALIZER; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCMediaStream.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class RTCAudioTrack; 18 | @class RTCPeerConnectionFactory; 19 | @class RTCVideoTrack; 20 | 21 | RTC_EXPORT 22 | @interface RTCMediaStream : NSObject 23 | 24 | /** The audio tracks in this stream. */ 25 | @property(nonatomic, strong, readonly) NSArray *audioTracks; 26 | 27 | /** The video tracks in this stream. */ 28 | @property(nonatomic, strong, readonly) NSArray *videoTracks; 29 | 30 | /** An identifier for this media stream. */ 31 | @property(nonatomic, readonly) NSString *streamId; 32 | 33 | - (instancetype)init NS_UNAVAILABLE; 34 | 35 | /** Adds the given audio track to this media stream. */ 36 | - (void)addAudioTrack:(RTCAudioTrack *)audioTrack; 37 | 38 | /** Adds the given video track to this media stream. */ 39 | - (void)addVideoTrack:(RTCVideoTrack *)videoTrack; 40 | 41 | /** Removes the given audio track to this media stream. */ 42 | - (void)removeAudioTrack:(RTCAudioTrack *)audioTrack; 43 | 44 | /** Removes the given video track to this media stream. */ 45 | - (void)removeVideoTrack:(RTCVideoTrack *)videoTrack; 46 | 47 | @end 48 | 49 | NS_ASSUME_NONNULL_END 50 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCMediaStreamTrack.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | /** 16 | * Represents the state of the track. This exposes the same states in C++. 17 | */ 18 | typedef NS_ENUM(NSInteger, RTCMediaStreamTrackState) { 19 | RTCMediaStreamTrackStateLive, 20 | RTCMediaStreamTrackStateEnded 21 | }; 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | RTC_EXTERN NSString * const kRTCMediaStreamTrackKindAudio; 26 | RTC_EXTERN NSString * const kRTCMediaStreamTrackKindVideo; 27 | 28 | RTC_EXPORT 29 | @interface RTCMediaStreamTrack : NSObject 30 | 31 | /** 32 | * The kind of track. For example, "audio" if this track represents an audio 33 | * track and "video" if this track represents a video track. 34 | */ 35 | @property(nonatomic, readonly) NSString *kind; 36 | 37 | /** An identifier string. */ 38 | @property(nonatomic, readonly) NSString *trackId; 39 | 40 | /** The enabled state of the track. */ 41 | @property(nonatomic, assign) BOOL isEnabled; 42 | 43 | /** The state of the track. */ 44 | @property(nonatomic, readonly) RTCMediaStreamTrackState readyState; 45 | 46 | - (instancetype)init NS_UNAVAILABLE; 47 | 48 | @end 49 | 50 | NS_ASSUME_NONNULL_END 51 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCMetrics.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | #import 15 | 16 | /** 17 | * Enables gathering of metrics (which can be fetched with 18 | * RTCGetAndResetMetrics). Must be called before any other call into WebRTC. 19 | */ 20 | RTC_EXTERN void RTCEnableMetrics(); 21 | 22 | /** Gets and clears native histograms. */ 23 | RTC_EXTERN NSArray *RTCGetAndResetMetrics(); 24 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCMetricsSampleInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXPORT 18 | @interface RTCMetricsSampleInfo : NSObject 19 | 20 | /** 21 | * Example of RTCMetricsSampleInfo: 22 | * name: "WebRTC.Video.InputFramesPerSecond" 23 | * min: 1 24 | * max: 100 25 | * bucketCount: 50 26 | * samples: [29]:2 [30]:1 27 | */ 28 | 29 | /** The name of the histogram. */ 30 | @property(nonatomic, readonly) NSString *name; 31 | 32 | /** The minimum bucket value. */ 33 | @property(nonatomic, readonly) int min; 34 | 35 | /** The maximum bucket value. */ 36 | @property(nonatomic, readonly) int max; 37 | 38 | /** The number of buckets. */ 39 | @property(nonatomic, readonly) int bucketCount; 40 | 41 | /** A dictionary holding the samples . */ 42 | @property(nonatomic, readonly) NSDictionary *samples; 43 | 44 | - (instancetype)init NS_UNAVAILABLE; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCNSGLVideoView.h: -------------------------------------------------------------------------------- 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 | #if !TARGET_OS_IPHONE 12 | 13 | #import 14 | 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | @class RTCNSGLVideoView; 20 | @protocol RTCNSGLVideoViewDelegate 21 | 22 | - (void)videoView:(RTCNSGLVideoView *)videoView didChangeVideoSize:(CGSize)size; 23 | 24 | @end 25 | 26 | @interface RTCNSGLVideoView : NSOpenGLView 27 | 28 | @property(nonatomic, weak) id delegate; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCPeerConnection.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 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 RTCRtpReceiver; 24 | @class RTCRtpSender; 25 | @class RTCSessionDescription; 26 | @class RTCStatsReport; 27 | 28 | NS_ASSUME_NONNULL_BEGIN 29 | 30 | extern NSString * const kRTCPeerConnectionErrorDomain; 31 | extern int const kRTCSessionDescriptionErrorCode; 32 | 33 | /** Represents the signaling state of the peer connection. */ 34 | typedef NS_ENUM(NSInteger, RTCSignalingState) { 35 | RTCSignalingStateStable, 36 | RTCSignalingStateHaveLocalOffer, 37 | RTCSignalingStateHaveLocalPrAnswer, 38 | RTCSignalingStateHaveRemoteOffer, 39 | RTCSignalingStateHaveRemotePrAnswer, 40 | // Not an actual state, represents the total number of states. 41 | RTCSignalingStateClosed, 42 | }; 43 | 44 | /** Represents the ice connection state of the peer connection. */ 45 | typedef NS_ENUM(NSInteger, RTCIceConnectionState) { 46 | RTCIceConnectionStateNew, 47 | RTCIceConnectionStateChecking, 48 | RTCIceConnectionStateConnected, 49 | RTCIceConnectionStateCompleted, 50 | RTCIceConnectionStateFailed, 51 | RTCIceConnectionStateDisconnected, 52 | RTCIceConnectionStateClosed, 53 | RTCIceConnectionStateCount, 54 | }; 55 | 56 | /** Represents the ice gathering state of the peer connection. */ 57 | typedef NS_ENUM(NSInteger, RTCIceGatheringState) { 58 | RTCIceGatheringStateNew, 59 | RTCIceGatheringStateGathering, 60 | RTCIceGatheringStateComplete, 61 | }; 62 | 63 | /** Represents the stats output level. */ 64 | typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) { 65 | RTCStatsOutputLevelStandard, 66 | RTCStatsOutputLevelDebug, 67 | }; 68 | 69 | @class RTCPeerConnection; 70 | 71 | RTC_EXPORT 72 | @protocol RTCPeerConnectionDelegate 73 | 74 | /** Called when the SignalingState changed. */ 75 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 76 | didChangeSignalingState:(RTCSignalingState)stateChanged; 77 | 78 | /** Called when media is received on a new stream from remote peer. */ 79 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 80 | didAddStream:(RTCMediaStream *)stream; 81 | 82 | /** Called when a remote peer closes a stream. */ 83 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 84 | didRemoveStream:(RTCMediaStream *)stream; 85 | 86 | /** Called when negotiation is needed, for example ICE has restarted. */ 87 | - (void)peerConnectionShouldNegotiate:(RTCPeerConnection *)peerConnection; 88 | 89 | /** Called any time the IceConnectionState changes. */ 90 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 91 | didChangeIceConnectionState:(RTCIceConnectionState)newState; 92 | 93 | /** Called any time the IceGatheringState changes. */ 94 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 95 | didChangeIceGatheringState:(RTCIceGatheringState)newState; 96 | 97 | /** New ice candidate has been found. */ 98 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 99 | didGenerateIceCandidate:(RTCIceCandidate *)candidate; 100 | 101 | /** Called when a group of local Ice candidates have been removed. */ 102 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 103 | didRemoveIceCandidates:(NSArray *)candidates; 104 | 105 | /** New data channel has been opened. */ 106 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 107 | didOpenDataChannel:(RTCDataChannel *)dataChannel; 108 | 109 | @end 110 | 111 | RTC_EXPORT 112 | @interface RTCPeerConnection : NSObject 113 | 114 | /** The object that will be notifed about events such as state changes and 115 | * streams being added or removed. 116 | */ 117 | @property(nonatomic, weak, nullable) id delegate; 118 | @property(nonatomic, readonly) NSArray *localStreams; 119 | @property(nonatomic, readonly, nullable) 120 | RTCSessionDescription *localDescription; 121 | @property(nonatomic, readonly, nullable) 122 | RTCSessionDescription *remoteDescription; 123 | @property(nonatomic, readonly) RTCSignalingState signalingState; 124 | @property(nonatomic, readonly) RTCIceConnectionState iceConnectionState; 125 | @property(nonatomic, readonly) RTCIceGatheringState iceGatheringState; 126 | 127 | /** Gets all RTCRtpSenders associated with this peer connection. 128 | * Note: reading this property returns different instances of RTCRtpSender. 129 | * Use isEqual: instead of == to compare RTCRtpSender instances. 130 | */ 131 | @property(nonatomic, readonly) NSArray *senders; 132 | 133 | /** Gets all RTCRtpReceivers associated with this peer connection. 134 | * Note: reading this property returns different instances of RTCRtpReceiver. 135 | * Use isEqual: instead of == to compare RTCRtpReceiver instances. 136 | */ 137 | @property(nonatomic, readonly) NSArray *receivers; 138 | 139 | - (instancetype)init NS_UNAVAILABLE; 140 | 141 | /** Sets the PeerConnection's global configuration to |configuration|. 142 | * Any changes to STUN/TURN servers or ICE candidate policy will affect the 143 | * next gathering phase, and cause the next call to createOffer to generate 144 | * new ICE credentials. Note that the BUNDLE and RTCP-multiplexing policies 145 | * cannot be changed with this method. 146 | */ 147 | - (BOOL)setConfiguration:(RTCConfiguration *)configuration; 148 | 149 | /** Terminate all media and close the transport. */ 150 | - (void)close; 151 | 152 | /** Provide a remote candidate to the ICE Agent. */ 153 | - (void)addIceCandidate:(RTCIceCandidate *)candidate; 154 | 155 | /** Remove a group of remote candidates from the ICE Agent. */ 156 | - (void)removeIceCandidates:(NSArray *)candidates; 157 | 158 | /** Add a new media stream to be sent on this peer connection. */ 159 | - (void)addStream:(RTCMediaStream *)stream; 160 | 161 | /** Remove the given media stream from this peer connection. */ 162 | - (void)removeStream:(RTCMediaStream *)stream; 163 | 164 | /** Generate an SDP offer. */ 165 | - (void)offerForConstraints:(RTCMediaConstraints *)constraints 166 | completionHandler:(nullable void (^) 167 | (RTCSessionDescription * _Nullable sdp, 168 | NSError * _Nullable error))completionHandler; 169 | 170 | /** Generate an SDP answer. */ 171 | - (void)answerForConstraints:(RTCMediaConstraints *)constraints 172 | completionHandler:(nullable void (^) 173 | (RTCSessionDescription * _Nullable sdp, 174 | NSError * _Nullable error))completionHandler; 175 | 176 | /** Apply the supplied RTCSessionDescription as the local description. */ 177 | - (void)setLocalDescription:(RTCSessionDescription *)sdp 178 | completionHandler: 179 | (nullable void (^)(NSError * _Nullable error))completionHandler; 180 | 181 | /** Apply the supplied RTCSessionDescription as the remote description. */ 182 | - (void)setRemoteDescription:(RTCSessionDescription *)sdp 183 | completionHandler: 184 | (nullable void (^)(NSError * _Nullable error))completionHandler; 185 | 186 | /** Start or stop recording an Rtc EventLog. */ 187 | - (BOOL)startRtcEventLogWithFilePath:(NSString *)filePath 188 | maxSizeInBytes:(int64_t)maxSizeInBytes; 189 | - (void)stopRtcEventLog; 190 | 191 | @end 192 | 193 | @interface RTCPeerConnection (Media) 194 | 195 | /** 196 | * Create an RTCRtpSender with the specified kind and media stream ID. 197 | * See RTCMediaStreamTrack.h for available kinds. 198 | */ 199 | - (RTCRtpSender *)senderWithKind:(NSString *)kind streamId:(NSString *)streamId; 200 | 201 | @end 202 | 203 | @interface RTCPeerConnection (DataChannel) 204 | 205 | /** Create a new data channel with the given label and configuration. */ 206 | - (RTCDataChannel *)dataChannelForLabel:(NSString *)label 207 | configuration:(RTCDataChannelConfiguration *)configuration; 208 | 209 | @end 210 | 211 | @interface RTCPeerConnection (Stats) 212 | 213 | /** Gather stats for the given RTCMediaStreamTrack. If |mediaStreamTrack| is nil 214 | * statistics are gathered for all tracks. 215 | */ 216 | - (void)statsForTrack: 217 | (nullable RTCMediaStreamTrack *)mediaStreamTrack 218 | statsOutputLevel:(RTCStatsOutputLevel)statsOutputLevel 219 | completionHandler: 220 | (nullable void (^)(NSArray *stats))completionHandler; 221 | 222 | @end 223 | 224 | NS_ASSUME_NONNULL_END 225 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCPeerConnectionFactory.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class RTCAVFoundationVideoSource; 18 | @class RTCAudioTrack; 19 | @class RTCConfiguration; 20 | @class RTCMediaConstraints; 21 | @class RTCMediaStream; 22 | @class RTCPeerConnection; 23 | @class RTCVideoSource; 24 | @class RTCVideoTrack; 25 | @protocol RTCPeerConnectionDelegate; 26 | 27 | RTC_EXPORT 28 | @interface RTCPeerConnectionFactory : NSObject 29 | 30 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 31 | 32 | /** Initialize an RTCAVFoundationVideoSource with constraints. */ 33 | - (RTCAVFoundationVideoSource *)avFoundationVideoSourceWithConstraints: 34 | (nullable RTCMediaConstraints *)constraints; 35 | 36 | /** Initialize an RTCAudioTrack with an id. */ 37 | - (RTCAudioTrack *)audioTrackWithTrackId:(NSString *)trackId; 38 | 39 | /** Initialize an RTCVideoTrack with a source and an id. */ 40 | - (RTCVideoTrack *)videoTrackWithSource:(RTCVideoSource *)source 41 | trackId:(NSString *)trackId; 42 | 43 | /** Initialize an RTCMediaStream with an id. */ 44 | - (RTCMediaStream *)mediaStreamWithStreamId:(NSString *)streamId; 45 | 46 | /** Initialize an RTCPeerConnection with a configuration, constraints, and 47 | * delegate. 48 | */ 49 | - (RTCPeerConnection *)peerConnectionWithConfiguration: 50 | (RTCConfiguration *)configuration 51 | constraints: 52 | (RTCMediaConstraints *)constraints 53 | delegate: 54 | (nullable id)delegate; 55 | 56 | @end 57 | 58 | NS_ASSUME_NONNULL_END 59 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCRtpCodecParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXTERN const NSString * const kRTCRtxCodecMimeType; 18 | RTC_EXTERN const NSString * const kRTCRedCodecMimeType; 19 | RTC_EXTERN const NSString * const kRTCUlpfecCodecMimeType; 20 | RTC_EXTERN const NSString * const kRTCOpusCodecMimeType; 21 | RTC_EXTERN const NSString * const kRTCIsacCodecMimeType; 22 | RTC_EXTERN const NSString * const kRTCL16CodecMimeType; 23 | RTC_EXTERN const NSString * const kRTCG722CodecMimeType; 24 | RTC_EXTERN const NSString * const kRTCIlbcCodecMimeType; 25 | RTC_EXTERN const NSString * const kRTCPcmuCodecMimeType; 26 | RTC_EXTERN const NSString * const kRTCPcmaCodecMimeType; 27 | RTC_EXTERN const NSString * const kRTCDtmfCodecMimeType; 28 | RTC_EXTERN const NSString * const kRTCComfortNoiseCodecMimeType; 29 | RTC_EXTERN const NSString * const kRTCVp8CodecMimeType; 30 | RTC_EXTERN const NSString * const kRTCVp9CodecMimeType; 31 | RTC_EXTERN const NSString * const kRTCH264CodecMimeType; 32 | 33 | /** Defined in http://w3c.github.io/webrtc-pc/#idl-def-RTCRtpCodecParameters */ 34 | RTC_EXPORT 35 | @interface RTCRtpCodecParameters : NSObject 36 | 37 | /** The RTP payload type. */ 38 | @property(nonatomic, assign) int payloadType; 39 | 40 | /** 41 | * The codec MIME type. Valid types are listed in: 42 | * http://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-2 43 | * 44 | * Several supported types are represented by the constants above. 45 | */ 46 | @property(nonatomic, nonnull) NSString *mimeType; 47 | 48 | /** The codec clock rate expressed in Hertz. */ 49 | @property(nonatomic, assign) int clockRate; 50 | 51 | /** The number of channels (mono=1, stereo=2). */ 52 | @property(nonatomic, assign) int channels; 53 | 54 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 55 | 56 | @end 57 | 58 | NS_ASSUME_NONNULL_END 59 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCRtpEncodingParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXPORT 18 | @interface RTCRtpEncodingParameters : NSObject 19 | 20 | /** Controls whether the encoding is currently transmitted. */ 21 | @property(nonatomic, assign) BOOL isActive; 22 | 23 | /** The maximum bitrate to use for the encoding, or nil if there is no 24 | * limit. 25 | */ 26 | @property(nonatomic, copy, nullable) NSNumber *maxBitrateBps; 27 | 28 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCRtpParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | RTC_EXPORT 20 | @interface RTCRtpParameters : NSObject 21 | 22 | /** The currently active encodings in the order of preference. */ 23 | @property(nonatomic, copy) NSArray *encodings; 24 | 25 | /** The negotiated set of send codecs in order of preference. */ 26 | @property(nonatomic, copy) NSArray *codecs; 27 | 28 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCRtpReceiver.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | RTC_EXPORT 20 | @protocol RTCRtpReceiver 21 | 22 | /** A unique identifier for this receiver. */ 23 | @property(nonatomic, readonly) NSString *receiverId; 24 | 25 | /** The currently active RTCRtpParameters, as defined in 26 | * https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters. 27 | * 28 | * The WebRTC specification only defines RTCRtpParameters in terms of senders, 29 | * but this API also applies them to receivers, similar to ORTC: 30 | * http://ortc.org/wp-content/uploads/2016/03/ortc.html#rtcrtpparameters*. 31 | */ 32 | @property(nonatomic, readonly) RTCRtpParameters *parameters; 33 | 34 | /** The RTCMediaStreamTrack associated with the receiver. 35 | * Note: reading this property returns a new instance of 36 | * RTCMediaStreamTrack. Use isEqual: instead of == to compare 37 | * RTCMediaStreamTrack instances. 38 | */ 39 | @property(nonatomic, readonly) RTCMediaStreamTrack *track; 40 | 41 | @end 42 | 43 | RTC_EXPORT 44 | @interface RTCRtpReceiver : NSObject 45 | 46 | - (instancetype)init NS_UNAVAILABLE; 47 | 48 | @end 49 | 50 | NS_ASSUME_NONNULL_END 51 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCRtpSender.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | RTC_EXPORT 20 | @protocol RTCRtpSender 21 | 22 | /** A unique identifier for this sender. */ 23 | @property(nonatomic, readonly) NSString *senderId; 24 | 25 | /** The currently active RTCRtpParameters, as defined in 26 | * https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters. 27 | */ 28 | @property(nonatomic, copy) RTCRtpParameters *parameters; 29 | 30 | /** The RTCMediaStreamTrack associated with the sender. 31 | * Note: reading this property returns a new instance of 32 | * RTCMediaStreamTrack. Use isEqual: instead of == to compare 33 | * RTCMediaStreamTrack instances. 34 | */ 35 | @property(nonatomic, copy, nullable) RTCMediaStreamTrack *track; 36 | 37 | @end 38 | 39 | RTC_EXPORT 40 | @interface RTCRtpSender : NSObject 41 | 42 | - (instancetype)init NS_UNAVAILABLE; 43 | 44 | @end 45 | 46 | NS_ASSUME_NONNULL_END 47 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCSSLAdapter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | /** 16 | * Initialize and clean up the SSL library. Failure is fatal. These call the 17 | * corresponding functions in webrtc/base/ssladapter.h. 18 | */ 19 | RTC_EXTERN BOOL RTCInitializeSSL(); 20 | RTC_EXTERN BOOL RTCCleanupSSL(); 21 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCSessionDescription.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | /** 16 | * Represents the session description type. This exposes the same types that are 17 | * in C++, which doesn't include the rollback type that is in the W3C spec. 18 | */ 19 | typedef NS_ENUM(NSInteger, RTCSdpType) { 20 | RTCSdpTypeOffer, 21 | RTCSdpTypePrAnswer, 22 | RTCSdpTypeAnswer, 23 | }; 24 | 25 | NS_ASSUME_NONNULL_BEGIN 26 | 27 | RTC_EXPORT 28 | @interface RTCSessionDescription : NSObject 29 | 30 | /** The type of session description. */ 31 | @property(nonatomic, readonly) RTCSdpType type; 32 | 33 | /** The SDP string representation of this session description. */ 34 | @property(nonatomic, readonly) NSString *sdp; 35 | 36 | - (instancetype)init NS_UNAVAILABLE; 37 | 38 | /** Initialize a session description with a type and SDP string. */ 39 | - (instancetype)initWithType:(RTCSdpType)type sdp:(NSString *)sdp 40 | NS_DESIGNATED_INITIALIZER; 41 | 42 | + (NSString *)stringForType:(RTCSdpType)type; 43 | 44 | + (RTCSdpType)typeForString:(NSString *)string; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCStatsReport.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** This does not currently conform to the spec. */ 18 | RTC_EXPORT 19 | @interface RTCStatsReport : NSObject 20 | 21 | /** Time since 1970-01-01T00:00:00Z in milliseconds. */ 22 | @property(nonatomic, readonly) CFTimeInterval timestamp; 23 | 24 | /** The type of stats held by this object. */ 25 | @property(nonatomic, readonly) NSString *type; 26 | 27 | /** The identifier for this object. */ 28 | @property(nonatomic, readonly) NSString *reportId; 29 | 30 | /** A dictionary holding the actual stats. */ 31 | @property(nonatomic, readonly) NSDictionary *values; 32 | 33 | - (instancetype)init NS_UNAVAILABLE; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCTracing.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | #import 14 | 15 | RTC_EXTERN void RTCSetupInternalTracer(); 16 | /** Starts capture to specified file. Must be a valid writable path. 17 | * Returns YES if capture starts. 18 | */ 19 | RTC_EXTERN BOOL RTCStartInternalCapture(NSString *filePath); 20 | RTC_EXTERN void RTCStopInternalCapture(); 21 | RTC_EXTERN void RTCShutdownInternalTracer(); 22 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCVideoFrame.h: -------------------------------------------------------------------------------- 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 12 | #import 13 | 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | // RTCVideoFrame is an ObjectiveC version of cricket::VideoFrame. 19 | RTC_EXPORT 20 | @interface RTCVideoFrame : NSObject 21 | 22 | /** Width without rotation applied. */ 23 | @property(nonatomic, readonly) size_t width; 24 | 25 | /** Height without rotation applied. */ 26 | @property(nonatomic, readonly) size_t height; 27 | @property(nonatomic, readonly) int rotation; 28 | @property(nonatomic, readonly) size_t chromaWidth; 29 | @property(nonatomic, readonly) size_t chromaHeight; 30 | // These can return NULL if the object is not backed by a buffer. 31 | @property(nonatomic, readonly, nullable) const uint8_t *yPlane; 32 | @property(nonatomic, readonly, nullable) const uint8_t *uPlane; 33 | @property(nonatomic, readonly, nullable) const uint8_t *vPlane; 34 | @property(nonatomic, readonly) int32_t yPitch; 35 | @property(nonatomic, readonly) int32_t uPitch; 36 | @property(nonatomic, readonly) int32_t vPitch; 37 | 38 | /** Timestamp in nanoseconds. */ 39 | @property(nonatomic, readonly) int64_t timeStampNs; 40 | 41 | /** The native handle should be a pixel buffer on iOS. */ 42 | @property(nonatomic, readonly) CVPixelBufferRef nativeHandle; 43 | 44 | - (instancetype)init NS_UNAVAILABLE; 45 | 46 | /** If the frame is backed by a CVPixelBuffer, creates a backing i420 frame. 47 | * Calling the yuv plane properties will call this method if needed. 48 | */ 49 | - (void)convertBufferIfNeeded; 50 | 51 | @end 52 | 53 | NS_ASSUME_NONNULL_END 54 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCVideoRenderer.h: -------------------------------------------------------------------------------- 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 12 | #if TARGET_OS_IPHONE 13 | #import 14 | #endif 15 | 16 | #import 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @class RTCVideoFrame; 21 | 22 | RTC_EXPORT 23 | @protocol RTCVideoRenderer 24 | 25 | /** The size of the frame. */ 26 | - (void)setSize:(CGSize)size; 27 | 28 | /** The frame to be displayed. */ 29 | - (void)renderFrame:(nullable RTCVideoFrame *)frame; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCVideoSource.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | typedef NS_ENUM(NSInteger, RTCSourceState) { 16 | RTCSourceStateInitializing, 17 | RTCSourceStateLive, 18 | RTCSourceStateEnded, 19 | RTCSourceStateMuted, 20 | }; 21 | 22 | NS_ASSUME_NONNULL_BEGIN 23 | 24 | RTC_EXPORT 25 | @interface RTCVideoSource : NSObject 26 | 27 | /** The current state of the RTCVideoSource. */ 28 | @property(nonatomic, readonly) RTCSourceState state; 29 | 30 | - (instancetype)init NS_UNAVAILABLE; 31 | 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/RTCVideoTrack.h: -------------------------------------------------------------------------------- 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 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @protocol RTCVideoRenderer; 18 | @class RTCPeerConnectionFactory; 19 | @class RTCVideoSource; 20 | 21 | RTC_EXPORT 22 | @interface RTCVideoTrack : RTCMediaStreamTrack 23 | 24 | /** The video source for this video track. */ 25 | @property(nonatomic, readonly) RTCVideoSource *source; 26 | 27 | - (instancetype)init NS_UNAVAILABLE; 28 | 29 | /** Register a renderer that will render all frames received on this track. */ 30 | - (void)addRenderer:(id)renderer; 31 | 32 | /** Deregister a renderer. */ 33 | - (void)removeRenderer:(id)renderer; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/UIDevice+RTCDevice.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | 13 | typedef NS_ENUM(NSInteger, RTCDeviceType) { 14 | RTCDeviceTypeUnknown, 15 | RTCDeviceTypeIPhone1G, 16 | RTCDeviceTypeIPhone3G, 17 | RTCDeviceTypeIPhone3GS, 18 | RTCDeviceTypeIPhone4, 19 | RTCDeviceTypeIPhone4Verizon, 20 | RTCDeviceTypeIPhone4S, 21 | RTCDeviceTypeIPhone5GSM, 22 | RTCDeviceTypeIPhone5GSM_CDMA, 23 | RTCDeviceTypeIPhone5CGSM, 24 | RTCDeviceTypeIPhone5CGSM_CDMA, 25 | RTCDeviceTypeIPhone5SGSM, 26 | RTCDeviceTypeIPhone5SGSM_CDMA, 27 | RTCDeviceTypeIPhone6Plus, 28 | RTCDeviceTypeIPhone6, 29 | RTCDeviceTypeIPhone6S, 30 | RTCDeviceTypeIPhone6SPlus, 31 | RTCDeviceTypeIPodTouch1G, 32 | RTCDeviceTypeIPodTouch2G, 33 | RTCDeviceTypeIPodTouch3G, 34 | RTCDeviceTypeIPodTouch4G, 35 | RTCDeviceTypeIPodTouch5G, 36 | RTCDeviceTypeIPad, 37 | RTCDeviceTypeIPad2Wifi, 38 | RTCDeviceTypeIPad2GSM, 39 | RTCDeviceTypeIPad2CDMA, 40 | RTCDeviceTypeIPad2Wifi2, 41 | RTCDeviceTypeIPadMiniWifi, 42 | RTCDeviceTypeIPadMiniGSM, 43 | RTCDeviceTypeIPadMiniGSM_CDMA, 44 | RTCDeviceTypeIPad3Wifi, 45 | RTCDeviceTypeIPad3GSM_CDMA, 46 | RTCDeviceTypeIPad3GSM, 47 | RTCDeviceTypeIPad4Wifi, 48 | RTCDeviceTypeIPad4GSM, 49 | RTCDeviceTypeIPad4GSM_CDMA, 50 | RTCDeviceTypeIPadAirWifi, 51 | RTCDeviceTypeIPadAirCellular, 52 | RTCDeviceTypeIPadMini2GWifi, 53 | RTCDeviceTypeIPadMini2GCellular, 54 | RTCDeviceTypeSimulatori386, 55 | RTCDeviceTypeSimulatorx86_64, 56 | }; 57 | 58 | @interface UIDevice (RTCDevice) 59 | 60 | + (RTCDeviceType)deviceType; 61 | + (NSString *)stringForDeviceType:(RTCDeviceType)deviceType; 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Headers/WebRTC/WebRTC.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 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 12 | #import 13 | #import 14 | #import 15 | #import 16 | #import 17 | #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | #import 30 | #import 31 | #import 32 | #import 33 | #import 34 | #import 35 | #import 36 | #import 37 | #import 38 | #import 39 | #import 40 | #import 41 | #import 42 | #import 43 | #import 44 | #import 45 | #import 46 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 15F34 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | WebRTC 11 | CFBundleIdentifier 12 | org.webrtc.WebRTC 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | WebRTC 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | DTCompiler 26 | com.apple.compilers.llvm.clang.1_0 27 | DTSDKBuild 28 | 15E60 29 | DTSDKName 30 | macosx10.1110.11 31 | DTXcode 32 | 0731 33 | DTXcodeBuild 34 | 7D1014 35 | NSPrincipalClass 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 15F34 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | WebRTC 11 | CFBundleIdentifier 12 | org.webrtc.WebRTC 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | WebRTC 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | DTCompiler 26 | com.apple.compilers.llvm.clang.1_0 27 | DTSDKBuild 28 | 15E60 29 | DTSDKName 30 | macosx10.1110.11 31 | DTXcode 32 | 0731 33 | DTXcodeBuild 34 | 7D1014 35 | NSPrincipalClass 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Versions/A/WebRTC: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AjayChoudary/WebRTCFramework/dd266ca5231de062e0715841b63c46d196cea9f8/MAC/WebRTC.framework/Versions/A/WebRTC -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Versions/Current/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 15F34 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | WebRTC 11 | CFBundleIdentifier 12 | org.webrtc.WebRTC 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | WebRTC 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | DTCompiler 26 | com.apple.compilers.llvm.clang.1_0 27 | DTSDKBuild 28 | 15E60 29 | DTSDKName 30 | macosx10.1110.11 31 | DTXcode 32 | 0731 33 | DTXcodeBuild 34 | 7D1014 35 | NSPrincipalClass 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /MAC/WebRTC.framework/Versions/Current/WebRTC: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AjayChoudary/WebRTCFramework/dd266ca5231de062e0715841b63c46d196cea9f8/MAC/WebRTC.framework/Versions/Current/WebRTC -------------------------------------------------------------------------------- /MAC/WebRTC.framework/WebRTC: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AjayChoudary/WebRTCFramework/dd266ca5231de062e0715841b63c46d196cea9f8/MAC/WebRTC.framework/WebRTC -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | WebRTC Framework 2 | ================= 3 | 4 | 5 | * [Android](#android) 6 | * [IOS](#ios) 7 | * [OSX](#osxmac) 8 | 9 | 10 | ## Android: 11 | 12 | Fraework is generated with following command on M58 branch (Apr'2017) 13 | for armeabi-v7a, arm64-v8a, x86 & x86_64 architectures 14 | 15 | ./tools-webrtc/android/build_aar.py --arch 'armeabi-v7a' 'arm64-v8a' 'x86' 'x86_64' 16 | 17 | AndroidStudio Setup: 18 | Include the libwebrtc.aar into your AndroidStudio in the following way 19 | 20 | File -> New -> New Module -> Import .JAR/.AAR Package -> Next -> Choose the downloaded file 21 | Then compile libwebrtc in dependencies section of your aap build.gradle file. 22 | 23 | Example: 24 | dependencies { 25 | compile fileTree(include: ['*.jar'], dir: 'libs') 26 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 27 | exclude group: 'com.android.support', module: 'support-annotations' 28 | }) 29 | compile 'com.android.support:appcompat-v7:25.3.1' 30 | compile 'com.android.support.constraint:constraint-layout:1.0.2' 31 | testCompile 'junit:junit:4.12' 32 | compile project(':libwebrtc') 33 | compile files('libs/autobanh.jar') 34 | } 35 | 36 | AppRTCMobile Demo App: https://chromium.googlesource.com/external/webrtc/+/master/webrtc/examples/androidapp 37 | Note: You can build the same by following instaructions at https://webrtc.org/native-code/android/ 38 | 39 | ## IOS: 40 | 41 | WebRTC.framework is generated with following commands on M58 branch (Apr'2017) 42 | For armv7 & arm64 architectures 43 | 44 | ./tools-webrtc/ios/build_ios_libs.sh 45 | 46 | Xcode Setup: 47 | Include WebRTC.framework in Xcode Embedded Binaries 48 | Add WebRTC.framework/Headers in Header Search Paths of Build Settings 49 | 50 | AppRTCMobile Demo App: https://chromium.googlesource.com/external/webrtc/+/master/webrtc/examples/objc 51 | 52 | Note: You can build the same by following instaructions at https://webrtc.org/native-code/ios/ 53 | 54 | ## OSX/Mac: 55 | WebRTC.framework is generated in Oct'2016 for X86_64 architecture 56 | For Xcode setup follow the instructions of IOS 57 | --------------------------------------------------------------------------------