diff --git a/LICENSE b/LICENSE new file mode 120000 index 0000000..cd1acba --- /dev/null +++ b/LICENSE @@ -0,0 +1 @@ +WebRTC.framework/LICENSE.md \ No newline at end of file diff --git a/LICENSE.html b/LICENSE.html deleted file mode 120000 index 8cc5fe4..0000000 --- a/LICENSE.html +++ /dev/null @@ -1 +0,0 @@ -WebRTC.framework/LICENSE.html \ No newline at end of file diff --git a/WebRTC.framework/Headers/RTCAVFoundationVideoSource.h b/WebRTC.framework/Headers/RTCAVFoundationVideoSource.h index 254196d..6d369b3 100644 --- a/WebRTC.framework/Headers/RTCAVFoundationVideoSource.h +++ b/WebRTC.framework/Headers/RTCAVFoundationVideoSource.h @@ -18,6 +18,8 @@ NS_ASSUME_NONNULL_BEGIN /** + * DEPRECATED Use RTCCameraVideoCapturer instead. + * * RTCAVFoundationVideoSource is a video source that uses * webrtc::AVFoundationVideoCapturer. We do not currently provide a wrapper for * that capturer because cricket::VideoCapturer is not ref counted and we cannot diff --git a/WebRTC.framework/Headers/RTCAudioSession.h b/WebRTC.framework/Headers/RTCAudioSession.h index f99c835..354634e 100644 --- a/WebRTC.framework/Headers/RTCAudioSession.h +++ b/WebRTC.framework/Headers/RTCAudioSession.h @@ -11,7 +11,7 @@ #import #import -#import "WebRTC/RTCMacros.h" +#import NS_ASSUME_NONNULL_BEGIN diff --git a/WebRTC.framework/Headers/RTCConfiguration.h b/WebRTC.framework/Headers/RTCConfiguration.h index 17d79b2..fcb62b9 100644 --- a/WebRTC.framework/Headers/RTCConfiguration.h +++ b/WebRTC.framework/Headers/RTCConfiguration.h @@ -84,6 +84,15 @@ RTC_EXPORT @property(nonatomic, assign) RTCCandidateNetworkPolicy candidateNetworkPolicy; @property(nonatomic, assign) RTCContinualGatheringPolicy continualGatheringPolicy; + +/** By default, the PeerConnection will use a limited number of IPv6 network + * interfaces, in order to avoid too many ICE candidate pairs being created + * and delaying ICE completion. + * + * Can be set to INT_MAX to effectively disable the limit. + */ +@property(nonatomic, assign) int maxIPv6Networks; + @property(nonatomic, assign) int audioJitterBufferMaxPackets; @property(nonatomic, assign) BOOL audioJitterBufferFastAccelerate; @property(nonatomic, assign) int iceConnectionReceivingTimeout; diff --git a/WebRTC.framework/Headers/RTCIceServer.h b/WebRTC.framework/Headers/RTCIceServer.h index 1fa006f..727da8a 100644 --- a/WebRTC.framework/Headers/RTCIceServer.h +++ b/WebRTC.framework/Headers/RTCIceServer.h @@ -43,6 +43,15 @@ RTC_EXPORT */ @property(nonatomic, readonly, nullable) NSString *hostname; +/** List of protocols to be used in the TLS ALPN extension. */ +@property(nonatomic, readonly) NSArray *tlsAlpnProtocols; + +/** + List elliptic curves to be used in the TLS elliptic curves extension. + Only curve names supported by OpenSSL should be used (eg. "P-256","X25519"). + */ +@property(nonatomic, readonly) NSArray *tlsEllipticCurves; + - (nonnull instancetype)init NS_UNAVAILABLE; /** Convenience initializer for a server with no authentication (e.g. STUN). */ @@ -73,7 +82,32 @@ RTC_EXPORT username:(nullable NSString *)username credential:(nullable NSString *)credential tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy - hostname:(nullable NSString *)hostname NS_DESIGNATED_INITIALIZER; + hostname:(nullable NSString *)hostname; + +/** + * Initialize an RTCIceServer with its associated URLs, optional username, + * optional credential, TLS cert policy, hostname and ALPN protocols. + */ +- (instancetype)initWithURLStrings:(NSArray *)urlStrings + username:(nullable NSString *)username + credential:(nullable NSString *)credential + tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy + hostname:(nullable NSString *)hostname + tlsAlpnProtocols:(NSArray *)tlsAlpnProtocols; + +/** + * Initialize an RTCIceServer with its associated URLs, optional username, + * optional credential, TLS cert policy, hostname, ALPN protocols and + * elliptic curves. + */ +- (instancetype)initWithURLStrings:(NSArray *)urlStrings + username:(nullable NSString *)username + credential:(nullable NSString *)credential + tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy + hostname:(nullable NSString *)hostname + tlsAlpnProtocols:(nullable NSArray *)tlsAlpnProtocols + tlsEllipticCurves:(nullable NSArray *)tlsEllipticCurves + NS_DESIGNATED_INITIALIZER; @end diff --git a/WebRTC.framework/Headers/RTCMacros.h b/WebRTC.framework/Headers/RTCMacros.h index a989074..08cb938 100644 --- a/WebRTC.framework/Headers/RTCMacros.h +++ b/WebRTC.framework/Headers/RTCMacros.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WEBRTC_SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ -#define WEBRTC_SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ +#ifndef SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ +#define SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ #define RTC_EXPORT __attribute__((visibility("default"))) @@ -25,4 +25,4 @@ #define RTC_FWD_DECL_OBJC_CLASS(classname) typedef struct objc_object classname #endif -#endif // WEBRTC_SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ +#endif // SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ diff --git a/WebRTC.framework/Headers/RTCPeerConnection.h b/WebRTC.framework/Headers/RTCPeerConnection.h index 13617b5..7b0c449 100644 --- a/WebRTC.framework/Headers/RTCPeerConnection.h +++ b/WebRTC.framework/Headers/RTCPeerConnection.h @@ -184,6 +184,15 @@ RTC_EXPORT completionHandler: (nullable void (^)(NSError * _Nullable error))completionHandler; +/** Limits the bandwidth allocated for all RTP streams sent by this + * PeerConnection. Nil parameters will be unchanged. Setting + * |currentBitrateBps| will force the available bitrate estimate to the given + * value. Returns YES if the parameters were successfully updated. + */ +- (BOOL)setBweMinBitrateBps:(nullable NSNumber *)minBitrateBps + currentBitrateBps:(nullable NSNumber *)currentBitrateBps + maxBitrateBps:(nullable NSNumber *)maxBitrateBps; + /** Start or stop recording an Rtc EventLog. */ - (BOOL)startRtcEventLogWithFilePath:(NSString *)filePath maxSizeInBytes:(int64_t)maxSizeInBytes; @@ -193,9 +202,8 @@ RTC_EXPORT @interface RTCPeerConnection (Media) -/** - * Create an RTCRtpSender with the specified kind and media stream ID. - * See RTCMediaStreamTrack.h for available kinds. +/** Create an RTCRtpSender with the specified kind and media stream ID. + * See RTCMediaStreamTrack.h for available kinds. */ - (RTCRtpSender *)senderWithKind:(NSString *)kind streamId:(NSString *)streamId; diff --git a/WebRTC.framework/Headers/RTCPeerConnectionFactory.h b/WebRTC.framework/Headers/RTCPeerConnectionFactory.h index 3924cdd..42acbfc 100644 --- a/WebRTC.framework/Headers/RTCPeerConnectionFactory.h +++ b/WebRTC.framework/Headers/RTCPeerConnectionFactory.h @@ -24,11 +24,18 @@ NS_ASSUME_NONNULL_BEGIN @class RTCVideoSource; @class RTCVideoTrack; @protocol RTCPeerConnectionDelegate; +@protocol RTCVideoDecoderFactory; +@protocol RTCVideoEncoderFactory; RTC_EXPORT @interface RTCPeerConnectionFactory : NSObject -- (instancetype)init NS_DESIGNATED_INITIALIZER; +/* Initialize object with default H264 video encoder/decoder factories */ +- (instancetype)init; + +/* Initialize object with injectable video encoder/decoder factories */ +- (instancetype)initWithEncoderFactory:(nullable id)encoderFactory + decoderFactory:(nullable id)decoderFactory; /** Initialize an RTCAudioSource with constraints. */ - (RTCAudioSource *)audioSourceWithConstraints:(nullable RTCMediaConstraints *)constraints; diff --git a/WebRTC.framework/Headers/RTCVideoCodec.h b/WebRTC.framework/Headers/RTCVideoCodec.h new file mode 100644 index 0000000..ad56a5d --- /dev/null +++ b/WebRTC.framework/Headers/RTCVideoCodec.h @@ -0,0 +1,174 @@ +/* + * Copyright 2017 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#import + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** Represents an encoded frame's type. */ +typedef NS_ENUM(NSUInteger, RTCFrameType) { + RTCFrameTypeEmptyFrame = 0, + RTCFrameTypeAudioFrameSpeech = 1, + RTCFrameTypeAudioFrameCN = 2, + RTCFrameTypeVideoFrameKey = 3, + RTCFrameTypeVideoFrameDelta = 4, +}; + +typedef NS_ENUM(NSUInteger, RTCVideoContentType) { + RTCVideoContentTypeUnspecified, + RTCVideoContentTypeScreenshare, +}; + +/** Represents an encoded frame. Corresponds to webrtc::EncodedImage. */ +RTC_EXPORT +@interface RTCEncodedImage : NSObject + +@property(nonatomic, strong) NSData *buffer; +@property(nonatomic, assign) int32_t encodedWidth; +@property(nonatomic, assign) int32_t encodedHeight; +@property(nonatomic, assign) uint32_t timeStamp; +@property(nonatomic, assign) int64_t captureTimeMs; +@property(nonatomic, assign) int64_t ntpTimeMs; +@property(nonatomic, assign) uint8_t flags; +@property(nonatomic, assign) int64_t encodeStartMs; +@property(nonatomic, assign) int64_t encodeFinishMs; +@property(nonatomic, assign) RTCFrameType frameType; +@property(nonatomic, assign) RTCVideoRotation rotation; +@property(nonatomic, assign) BOOL completeFrame; +@property(nonatomic, strong) NSNumber *qp; +@property(nonatomic, assign) RTCVideoContentType contentType; + +@end + +/** Information for header. Corresponds to webrtc::RTPFragmentationHeader. */ +RTC_EXPORT +@interface RTCRtpFragmentationHeader : NSObject + +@property(nonatomic, strong) NSArray *fragmentationOffset; +@property(nonatomic, strong) NSArray *fragmentationLength; +@property(nonatomic, strong) NSArray *fragmentationTimeDiff; +@property(nonatomic, strong) NSArray *fragmentationPlType; + +@end + +/** Implement this protocol to pass codec specific info from the encoder. + * Corresponds to webrtc::CodecSpecificInfo. + */ +RTC_EXPORT +@protocol RTCCodecSpecificInfo + +@end + +/** Callback block for encoder. */ +typedef BOOL (^RTCVideoEncoderCallback)(RTCEncodedImage *frame, + id info, + RTCRtpFragmentationHeader *header); + +/** Callback block for decoder. */ +typedef void (^RTCVideoDecoderCallback)(RTCVideoFrame *frame); + +typedef NS_ENUM(NSUInteger, RTCVideoCodecMode) { + RTCVideoCodecModeRealtimeVideo, + RTCVideoCodecModeScreensharing, +}; + +/** Holds information to identify a codec. Corresponds to cricket::VideoCodec. */ +RTC_EXPORT +@interface RTCVideoCodecInfo : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +- (instancetype)initWithName:(NSString *)name; + +- (instancetype)initWithName:(NSString *)name + parameters:(nullable NSDictionary *)parameters + NS_DESIGNATED_INITIALIZER; + +- (BOOL)isEqualToCodecInfo:(RTCVideoCodecInfo *)info; + +@property(nonatomic, readonly) NSString *name; +@property(nonatomic, readonly) NSDictionary *parameters; + +@end + +/** Settings for encoder. Corresponds to webrtc::VideoCodec. */ +RTC_EXPORT +@interface RTCVideoEncoderSettings : NSObject + +@property(nonatomic, strong) NSString *name; + +@property(nonatomic, assign) unsigned short width; +@property(nonatomic, assign) unsigned short height; + +@property(nonatomic, assign) unsigned int startBitrate; // kilobits/sec. +@property(nonatomic, assign) unsigned int maxBitrate; +@property(nonatomic, assign) unsigned int minBitrate; +@property(nonatomic, assign) unsigned int targetBitrate; + +@property(nonatomic, assign) uint32_t maxFramerate; + +@property(nonatomic, assign) unsigned int qpMax; +@property(nonatomic, assign) RTCVideoCodecMode mode; + +@end + +/** QP thresholds for encoder. Corresponds to webrtc::VideoEncoder::QpThresholds. */ +RTC_EXPORT +@interface RTCVideoEncoderQpThresholds : NSObject + +- (instancetype)initWithThresholdsLow:(NSInteger)low high:(NSInteger)high; + +@property(nonatomic, readonly) NSInteger low; +@property(nonatomic, readonly) NSInteger high; + +@end + +/** Protocol for encoder implementations. */ +RTC_EXPORT +@protocol RTCVideoEncoder + +- (void)setCallback:(RTCVideoEncoderCallback)callback; +- (NSInteger)startEncodeWithSettings:(RTCVideoEncoderSettings *)settings + numberOfCores:(int)numberOfCores; +- (NSInteger)releaseEncoder; +- (NSInteger)encode:(RTCVideoFrame *)frame + codecSpecificInfo:(id)info + frameTypes:(NSArray *)frameTypes; +- (int)setBitrate:(uint32_t)bitrateKbit framerate:(uint32_t)framerate; +- (NSString *)implementationName; + +/** Returns QP scaling settings for encoder. The quality scaler adjusts the resolution in order to + * keep the QP from the encoded images within the given range. Returning nil from this function + * disables quality scaling. */ +- (RTCVideoEncoderQpThresholds *)scalingSettings; + +@end + +/** Protocol for decoder implementations. */ +RTC_EXPORT +@protocol RTCVideoDecoder + +- (void)setCallback:(RTCVideoDecoderCallback)callback; +- (NSInteger)startDecodeWithSettings:(RTCVideoEncoderSettings *)settings + numberOfCores:(int)numberOfCores; +- (NSInteger)releaseDecoder; +- (NSInteger)decode:(RTCEncodedImage *)encodedImage + missingFrames:(BOOL)missingFrames + fragmentationHeader:(RTCRtpFragmentationHeader *)fragmentationHeader + codecSpecificInfo:(__nullable id)info + renderTimeMs:(int64_t)renderTimeMs; +- (NSString *)implementationName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/WebRTC.framework/Headers/RTCVideoCodecFactory.h b/WebRTC.framework/Headers/RTCVideoCodecFactory.h new file mode 100644 index 0000000..aa5f746 --- /dev/null +++ b/WebRTC.framework/Headers/RTCVideoCodecFactory.h @@ -0,0 +1,36 @@ +/* + * Copyright 2017 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#import + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** RTCVideoEncoderFactory is an Objective-C version of webrtc::VideoEncoderFactory. */ +RTC_EXPORT +@protocol RTCVideoEncoderFactory + +- (id)createEncoder:(RTCVideoCodecInfo *)info; +- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? + +@end + +/** RTCVideoDecoderFactory is an Objective-C version of webrtc::VideoDecoderFactory. */ +RTC_EXPORT +@protocol RTCVideoDecoderFactory + +- (id)createDecoder:(RTCVideoCodecInfo *)info; +- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? + +@end + +NS_ASSUME_NONNULL_END diff --git a/WebRTC.framework/Headers/RTCVideoCodecH264.h b/WebRTC.framework/Headers/RTCVideoCodecH264.h new file mode 100644 index 0000000..1c307eb --- /dev/null +++ b/WebRTC.framework/Headers/RTCVideoCodecH264.h @@ -0,0 +1,50 @@ +/* + * Copyright 2017 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#import + +#import +#import + +/** Class for H264 specific config. */ +typedef NS_ENUM(NSUInteger, RTCH264PacketizationMode) { + RTCH264PacketizationModeNonInterleaved = 0, // Mode 1 - STAP-A, FU-A is allowed + RTCH264PacketizationModeSingleNalUnit // Mode 0 - only single NALU allowed +}; + +RTC_EXPORT +@interface RTCCodecSpecificInfoH264 : NSObject + +@property(nonatomic, assign) RTCH264PacketizationMode packetizationMode; + +@end + +/** Encoder. */ +RTC_EXPORT +@interface RTCVideoEncoderH264 : NSObject + +- (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo; + +@end + +/** Decoder. */ +RTC_EXPORT +@interface RTCVideoDecoderH264 : NSObject +@end + +/** Encoder factory. */ +RTC_EXPORT +@interface RTCVideoEncoderFactoryH264 : NSObject +@end + +/** Decoder factory. */ +RTC_EXPORT +@interface RTCVideoDecoderFactoryH264 : NSObject +@end diff --git a/WebRTC.framework/Headers/RTCVideoDecoderVP8.h b/WebRTC.framework/Headers/RTCVideoDecoderVP8.h new file mode 100644 index 0000000..962b631 --- /dev/null +++ b/WebRTC.framework/Headers/RTCVideoDecoderVP8.h @@ -0,0 +1,25 @@ +/* + * Copyright 2017 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#import + +#import +#import + +RTC_EXPORT +@interface RTCVideoDecoderVP8 : NSObject + +/* This returns a VP8 decoder that can be returned from a RTCVideoDecoderFactory injected into + * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be + * used independently from the RTCPeerConnectionFactory. + */ ++ (id)vp8Decoder; + +@end diff --git a/WebRTC.framework/Headers/RTCVideoDecoderVP9.h b/WebRTC.framework/Headers/RTCVideoDecoderVP9.h new file mode 100644 index 0000000..faf66ef --- /dev/null +++ b/WebRTC.framework/Headers/RTCVideoDecoderVP9.h @@ -0,0 +1,25 @@ +/* + * Copyright 2017 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#import + +#import +#import + +RTC_EXPORT +@interface RTCVideoDecoderVP9 : NSObject + +/* This returns a VP9 decoder that can be returned from a RTCVideoDecoderFactory injected into + * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be + * used independently from the RTCPeerConnectionFactory. + */ ++ (id)vp9Decoder; + +@end diff --git a/WebRTC.framework/Headers/RTCVideoEncoderVP8.h b/WebRTC.framework/Headers/RTCVideoEncoderVP8.h new file mode 100644 index 0000000..e63b24d --- /dev/null +++ b/WebRTC.framework/Headers/RTCVideoEncoderVP8.h @@ -0,0 +1,25 @@ +/* + * Copyright 2017 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#import + +#import +#import + +RTC_EXPORT +@interface RTCVideoEncoderVP8 : NSObject + +/* This returns a VP8 encoder that can be returned from a RTCVideoEncoderFactory injected into + * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be + * used independently from the RTCPeerConnectionFactory. + */ ++ (id)vp8Encoder; + +@end diff --git a/WebRTC.framework/Headers/RTCVideoEncoderVP9.h b/WebRTC.framework/Headers/RTCVideoEncoderVP9.h new file mode 100644 index 0000000..cef8c82 --- /dev/null +++ b/WebRTC.framework/Headers/RTCVideoEncoderVP9.h @@ -0,0 +1,25 @@ +/* + * Copyright 2017 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#import + +#import +#import + +RTC_EXPORT +@interface RTCVideoEncoderVP9 : NSObject + +/* This returns a VP9 encoder that can be returned from a RTCVideoEncoderFactory injected into + * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be + * used independently from the RTCPeerConnectionFactory. + */ ++ (id)vp9Encoder; + +@end diff --git a/WebRTC.framework/Headers/RTCVideoFrame.h b/WebRTC.framework/Headers/RTCVideoFrame.h index 78eee5f..dcc4c6e 100644 --- a/WebRTC.framework/Headers/RTCVideoFrame.h +++ b/WebRTC.framework/Headers/RTCVideoFrame.h @@ -34,26 +34,12 @@ RTC_EXPORT /** Height without rotation applied. */ @property(nonatomic, readonly) int height; @property(nonatomic, readonly) RTCVideoRotation rotation; -/** Accessing YUV data should only be done for I420 frames, i.e. if nativeHandle - * is null. It is always possible to get such a frame by calling - * newI420VideoFrame. - */ -@property(nonatomic, readonly, nullable) - const uint8_t *dataY DEPRECATED_MSG_ATTRIBUTE("use [buffer toI420]"); -@property(nonatomic, readonly, nullable) - const uint8_t *dataU DEPRECATED_MSG_ATTRIBUTE("use [buffer toI420]"); -@property(nonatomic, readonly, nullable) - const uint8_t *dataV DEPRECATED_MSG_ATTRIBUTE("use [buffer toI420]"); -@property(nonatomic, readonly) int strideY DEPRECATED_MSG_ATTRIBUTE("use [buffer toI420]"); -@property(nonatomic, readonly) int strideU DEPRECATED_MSG_ATTRIBUTE("use [buffer toI420]"); -@property(nonatomic, readonly) int strideV DEPRECATED_MSG_ATTRIBUTE("use [buffer toI420]"); /** Timestamp in nanoseconds. */ @property(nonatomic, readonly) int64_t timeStampNs; -/** The native handle should be a pixel buffer on iOS. */ -@property(nonatomic, readonly) - CVPixelBufferRef nativeHandle DEPRECATED_MSG_ATTRIBUTE("use buffer instead"); +/** Timestamp 90 kHz. */ +@property(nonatomic, assign) int32_t timeStamp; @property(nonatomic, readonly) id buffer; diff --git a/WebRTC.framework/Headers/RTCVideoFrameBuffer.h b/WebRTC.framework/Headers/RTCVideoFrameBuffer.h index 63505ab..ffcdf26 100644 --- a/WebRTC.framework/Headers/RTCVideoFrameBuffer.h +++ b/WebRTC.framework/Headers/RTCVideoFrameBuffer.h @@ -69,6 +69,8 @@ RTC_EXPORT @interface RTCCVPixelBuffer : NSObject @property(nonatomic, readonly) CVPixelBufferRef pixelBuffer; +@property(nonatomic, readonly) int cropX; +@property(nonatomic, readonly) int cropY; - (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer; - (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer diff --git a/WebRTC.framework/Headers/UIDevice+RTCDevice.h b/WebRTC.framework/Headers/UIDevice+RTCDevice.h index 29e4801..7e01c47 100644 --- a/WebRTC.framework/Headers/UIDevice+RTCDevice.h +++ b/WebRTC.framework/Headers/UIDevice+RTCDevice.h @@ -60,5 +60,6 @@ typedef NS_ENUM(NSInteger, RTCDeviceType) { + (RTCDeviceType)deviceType; + (NSString *)stringForDeviceType:(RTCDeviceType)deviceType; + (BOOL)isIOS9OrLater; ++ (BOOL)isIOS11OrLater; @end diff --git a/WebRTC.framework/Headers/WebRTC.h b/WebRTC.framework/Headers/WebRTC.h index 45029f5..bfd708f 100644 --- a/WebRTC.framework/Headers/WebRTC.h +++ b/WebRTC.framework/Headers/WebRTC.h @@ -9,11 +9,14 @@ */ #import +#if TARGET_OS_IPHONE #import #import +#endif #import #import #import +#import #if TARGET_OS_IPHONE #import #endif @@ -24,6 +27,7 @@ #if TARGET_OS_IPHONE #import #import +#import #endif #import #import @@ -49,6 +53,13 @@ #import #import #import +#import +#import +#import +#import +#import +#import +#import #import #import #import diff --git a/WebRTC.framework/Info.plist b/WebRTC.framework/Info.plist index 7da9349..4747817 100644 Binary files a/WebRTC.framework/Info.plist and b/WebRTC.framework/Info.plist differ diff --git a/WebRTC.framework/LICENSE.html b/WebRTC.framework/LICENSE.md similarity index 98% rename from WebRTC.framework/LICENSE.html rename to WebRTC.framework/LICENSE.md index d108b1e..fd06d5c 100644 --- a/WebRTC.framework/LICENSE.html +++ b/WebRTC.framework/LICENSE.md @@ -1,16 +1,5 @@ - - - - -Licenses - - -

webrtc

-
+# webrtc
+```
 Copyright (c) 2011, The WebRTC project authors. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -500,9 +489,10 @@
 Microsoft Windows operating system product.
 
 
-
-

boringssl

-
+```
+
+# boringssl
+```
 BoringSSL is a fork of OpenSSL. As such, large parts of it fall under OpenSSL
 licensing. Files that are completely new have a Google copyright and an ISC
 license. This license is reproduced at the bottom of this file.
@@ -696,12 +686,13 @@
 # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-
-

libsrtp

-
+```
+
+# libsrtp
+```
 /*
  *	
- * Copyright (c) 2001-2006 Cisco Systems, Inc.
+ * Copyright (c) 2001-2017 Cisco Systems, Inc.
  * All rights reserved.
  * 
  * Redistribution and use in source and binary forms, with or without
@@ -735,9 +726,10 @@
  *
  */
 
-
-

libvpx

-
+```
+
+# libvpx
+```
 Copyright (c) 2010, The WebM Project authors. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -770,9 +762,10 @@
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
-
-

libyuv

-
+```
+
+# libyuv
+```
 Copyright 2011 The LibYuv Project Authors. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -803,9 +796,10 @@
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-
-

opus

-
+```
+
+# opus
+```
 Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic,
                     Jean-Marc Valin, Timothy B. Terriberry,
                     CSIRO, Gregory Maxwell, Mark Borgerding,
@@ -851,9 +845,10 @@
 Broadcom Corporation:
 https://datatracker.ietf.org/ipr/1526/
 
-
-

protobuf

-
+```
+
+# protobuf
+```
 This license applies to all parts of Protocol Buffers except the following:
 
   - Atomicops support for generic gcc, located in
@@ -897,9 +892,10 @@
 standalone and requires a support library to be linked with it.  This
 support library is itself covered by the above license.
 
-
-

usrsctp

-
+```
+
+# usrsctp
+```
 (Copied from the COPYRIGHT file of
 https://code.google.com/p/sctp-refimpl/source/browse/trunk/COPYRIGHT)
 --------------------------------------------------------------------------------
@@ -931,6 +927,5 @@
 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 SUCH DAMAGE.
 
-
- - \ No newline at end of file +``` + diff --git a/WebRTC.framework/WebRTC b/WebRTC.framework/WebRTC index cf09162..bdff61a 100755 Binary files a/WebRTC.framework/WebRTC and b/WebRTC.framework/WebRTC differ diff --git a/WebRTC.podspec b/WebRTC.podspec index b65588f..ac447ab 100644 --- a/WebRTC.podspec +++ b/WebRTC.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "WebRTC" - s.version = "61.5.19063" + s.version = "63.11.20455" s.summary = "WebRTC SDK for iOS" s.description = <<-DESC WebRTC is a free, open project that provides browsers and mobile @@ -8,10 +8,12 @@ Pod::Spec.new do |s| APIs. DESC s.homepage = "http://webrtc.org/" - s.license = "BSD" - s.author = "Google Inc." s.source = { :git => "https://github.com/Anakros/WebRTC.git", :tag => s.version } + s.license = { :type => "BSD", :file => "LICENSE" } + s.author = "Google Inc." + s.platform = :ios, "8.0" + s.public_header_files = "WebRTC.framework/Headers/**/*.h" s.vendored_frameworks = "WebRTC.framework" end