diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d63c28e..385885ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +#### Version 7.0.0 +* Update to WebRTC.framework M79 +* Update to WebRTC.framework M75 + #### Version 6.0.19 * fix MediaStreamRenderer doesn't call PluginMediaStreamTrack.unregisterRender = stuck reference. #649 * fix ios not build after cordova-plugin-iosrtc #642 @@ -36,6 +40,7 @@ * fix: refactor pluginMediaTracks lifecyle in PluginRTCPeerConnection * feat: add canvas drawImage SHIM for VideoElement * feat: add (MediaStream|MediaStreamTrack).prototype.clone +>>>>>>> master #### Version 6.0.14 * Move dist/cordova-plugin-iosrtc.js to www/cordova-plugin-iosrtc.js to match other cordova plugins practice. diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSession.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSession.h index 15b63d39..b5bba2f2 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSession.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSession.h @@ -11,7 +11,7 @@ #import #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -27,7 +27,7 @@ extern NSInteger const kRTCAudioSessionErrorConfiguration; // Surfaces AVAudioSession events. WebRTC will listen directly for notifications // from AVAudioSession and handle them before calling these delegate methods, // at which point applications can perform additional processing if required. -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCAudioSessionDelegate @optional @@ -102,7 +102,7 @@ RTC_EXPORT * activation state has changed outside of RTCAudioSession. The current known use * case of this is when CallKit activates the audio session for the application */ -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCAudioSessionActivationDelegate /** Called when the audio session is activated outside of the app by iOS. */ @@ -120,7 +120,7 @@ RTC_EXPORT * RTCAudioSession also coordinates activation so that the audio session is * activated only once. See |setActive:error:|. */ -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCAudioSession : NSObject /** Convenience property to access the AVAudioSession singleton. Callers should @@ -182,6 +182,15 @@ RTC_EXPORT @property(readonly) NSTimeInterval IOBufferDuration; @property(readonly) NSTimeInterval preferredIOBufferDuration; +/** + When YES, calls to -setConfiguration:error: and -setConfiguration:active:error: ignore errors in + configuring the audio session's "preferred" attributes (e.g. preferredInputNumberOfChannels). + Typically, configurations to preferred attributes are optimizations, and ignoring this type of + configuration error allows code flow to continue along the happy path when these optimization are + not available. The default value of this property is NO. + */ +@property(nonatomic) BOOL ignoresPreferredAttributeConfigurationErrors; + /** Default constructor. */ + (instancetype)sharedInstance; - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h index 6a02751d..9f3765da 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h @@ -11,18 +11,18 @@ #import #import -#import "WebRTC/RTCMacros.h" +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -extern const int kRTCAudioSessionPreferredNumberOfChannels; -extern const double kRTCAudioSessionHighPerformanceSampleRate; -extern const double kRTCAudioSessionLowComplexitySampleRate; -extern const double kRTCAudioSessionHighPerformanceIOBufferDuration; -extern const double kRTCAudioSessionLowComplexityIOBufferDuration; +RTC_EXTERN const int kRTCAudioSessionPreferredNumberOfChannels; +RTC_EXTERN const double kRTCAudioSessionHighPerformanceSampleRate; +RTC_EXTERN const double kRTCAudioSessionLowComplexitySampleRate; +RTC_EXTERN const double kRTCAudioSessionHighPerformanceIOBufferDuration; +RTC_EXTERN const double kRTCAudioSessionLowComplexityIOBufferDuration; // Struct to hold configuration values. -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCAudioSessionConfiguration : NSObject @property(nonatomic, strong) NSString *category; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSource.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSource.h index 3db31573..d1030e3f 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSource.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioSource.h @@ -10,12 +10,12 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCMediaSource.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCAudioSource : RTCMediaSource - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioTrack.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioTrack.h index b83eede5..501ef92e 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioTrack.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCAudioTrack.h @@ -8,14 +8,14 @@ * be found in the AUTHORS file in the root of the source tree. */ -#import -#import +#import "RTCMacros.h" +#import "RTCMediaStreamTrack.h" NS_ASSUME_NONNULL_BEGIN @class RTCAudioSource; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCAudioTrack : RTCMediaStreamTrack - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCVPixelBuffer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCVPixelBuffer.h new file mode 100644 index 00000000..432a3825 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCVPixelBuffer.h @@ -0,0 +1,52 @@ +/* + * Copyright 2018 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 "RTCMacros.h" +#import "RTCVideoFrameBuffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** RTCVideoFrameBuffer containing a CVPixelBufferRef */ +RTC_OBJC_EXPORT +@interface RTCCVPixelBuffer : NSObject + +@property(nonatomic, readonly) CVPixelBufferRef pixelBuffer; +@property(nonatomic, readonly) int cropX; +@property(nonatomic, readonly) int cropY; +@property(nonatomic, readonly) int cropWidth; +@property(nonatomic, readonly) int cropHeight; + ++ (NSSet *)supportedPixelFormats; + +- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer; +- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer + adaptedWidth:(int)adaptedWidth + adaptedHeight:(int)adaptedHeight + cropWidth:(int)cropWidth + cropHeight:(int)cropHeight + cropX:(int)cropX + cropY:(int)cropY; + +- (BOOL)requiresCropping; +- (BOOL)requiresScalingToWidth:(int)width height:(int)height; +- (int)bufferSizeForCroppingAndScalingToWidth:(int)width height:(int)height; + +/** The minimum size of the |tmpBuffer| must be the number of bytes returned from the + * bufferSizeForCroppingAndScalingToWidth:height: method. + * If that size is 0, the |tmpBuffer| may be nil. + */ +- (BOOL)cropAndScaleTo:(CVPixelBufferRef)outputPixelBuffer + withTempBuffer:(nullable uint8_t *)tmpBuffer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCallbackLogger.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCallbackLogger.h index cdfe17f6..2bce03fe 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCallbackLogger.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCallbackLogger.h @@ -10,23 +10,29 @@ #import -#import -#import +#import "RTCLogging.h" +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN +typedef void (^RTCCallbackLoggerMessageHandler)(NSString *message); +typedef void (^RTCCallbackLoggerMessageAndSeverityHandler)(NSString *message, + RTCLoggingSeverity severity); + // This class intercepts WebRTC logs and forwards them to a registered block. // This class is not threadsafe. -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCCallbackLogger : NSObject // The severity level to capture. The default is kRTCLoggingSeverityInfo. @property(nonatomic, assign) RTCLoggingSeverity severity; -// The callback will be called on the same thread that does the logging, so -// if the logging callback can be slow it may be a good idea to implement -// dispatching to some other queue. -- (void)start:(nullable void (^)(NSString*))callback; +// The callback handler will be called on the same thread that does the +// logging, so if the logging callback can be slow it may be a good idea +// to implement dispatching to some other queue. +- (void)start:(nullable RTCCallbackLoggerMessageHandler)handler; +- (void)startWithMessageAndSeverityHandler: + (nullable RTCCallbackLoggerMessageAndSeverityHandler)handler; - (void)stop; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCameraPreviewView.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCameraPreviewView.h index 2995c9c3..17f8d33d 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCameraPreviewView.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCameraPreviewView.h @@ -11,14 +11,14 @@ #import #import -#import +#import "RTCMacros.h" @class AVCaptureSession; /** RTCCameraPreviewView is a view that renders local video from an * AVCaptureSession. */ -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCCameraPreviewView : UIView /** The capture session being rendered in the view. Capture session diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCameraVideoCapturer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCameraVideoCapturer.h index 61868c54..2b5e56f4 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCameraVideoCapturer.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCameraVideoCapturer.h @@ -11,12 +11,12 @@ #import #import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoCapturer.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT // Camera capture that implements RTCVideoCapturer. Delivers frames to a RTCVideoCapturerDelegate // (usually RTCVideoSource). NS_EXTENSION_UNAVAILABLE_IOS("Camera not available in app extensions.") diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCertificate.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCertificate.h new file mode 100644 index 00000000..50c1ca55 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCertificate.h @@ -0,0 +1,44 @@ +/* + * Copyright 2018 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +RTC_OBJC_EXPORT +@interface RTCCertificate : NSObject + +/** Private key in PEM. */ +@property(nonatomic, readonly, copy) NSString *private_key; + +/** Public key in an x509 cert encoded in PEM. */ +@property(nonatomic, readonly, copy) NSString *certificate; + +/** + * Initialize an RTCCertificate with PEM strings for private_key and certificate. + */ +- (instancetype)initWithPrivateKey:(NSString *)private_key + certificate:(NSString *)certificate NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; + +/** Generate a new certificate for 're' use. + * + * Optional dictionary of parameters. Defaults to KeyType ECDSA if none are + * provided. + * - name: "ECDSA" or "RSASSA-PKCS1-v1_5" + */ ++ (nullable RTCCertificate *)generateCertificateWithParams:(NSDictionary *)params; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCodecSpecificInfo.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCodecSpecificInfo.h new file mode 100644 index 00000000..e2ae4caf --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCodecSpecificInfo.h @@ -0,0 +1,24 @@ +/* + * 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Implement this protocol to pass codec specific info from the encoder. + * Corresponds to webrtc::CodecSpecificInfo. + */ +RTC_OBJC_EXPORT +@protocol RTCCodecSpecificInfo +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCodecSpecificInfoH264.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCodecSpecificInfoH264.h new file mode 100644 index 00000000..ece9570a --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCodecSpecificInfoH264.h @@ -0,0 +1,27 @@ +/* + * 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 "RTCCodecSpecificInfo.h" +#import "RTCMacros.h" + +/** 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_OBJC_EXPORT +@interface RTCCodecSpecificInfoH264 : NSObject + +@property(nonatomic, assign) RTCH264PacketizationMode packetizationMode; + +@end diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCConfiguration.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCConfiguration.h index d274530a..2c32311d 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCConfiguration.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCConfiguration.h @@ -10,7 +10,9 @@ #import -#import +#import "RTCCertificate.h" +#import "RTCCryptoOptions.h" +#import "RTCMacros.h" @class RTCIceServer; @class RTCIntervalRange; @@ -68,12 +70,15 @@ typedef NS_ENUM(NSInteger, RTCSdpSemantics) { NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCConfiguration : NSObject /** An array of Ice Servers available to be used by ICE. */ @property(nonatomic, copy) NSArray *iceServers; +/** An RTCCertificate for 're' use. */ +@property(nonatomic, nullable) RTCCertificate *certificate; + /** Which candidates the ICE agent is allowed to use. The W3C calls it * |iceTransportPolicy|, while in C++ it is called |type|. */ @property(nonatomic, assign) RTCIceTransportPolicy iceTransportPolicy; @@ -87,6 +92,19 @@ RTC_EXPORT @property(nonatomic, assign) RTCCandidateNetworkPolicy candidateNetworkPolicy; @property(nonatomic, assign) RTCContinualGatheringPolicy continualGatheringPolicy; +/** If set to YES, don't gather IPv6 ICE candidates. + * Default is NO. + */ +@property(nonatomic, assign) BOOL disableIPV6; + +/** If set to YES, don't gather IPv6 ICE candidates on Wi-Fi. + * Only intended to be used on specific devices. Certain phones disable IPv6 + * when the screen is turned off and it would be better to just disable the + * IPv6 ICE candidates on Wi-Fi in those cases. + * Default is NO. + */ +@property(nonatomic, assign) BOOL disableIPV6OnWiFi; + /** 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. @@ -122,6 +140,18 @@ RTC_EXPORT */ @property(nonatomic, assign) BOOL shouldPresumeWritableWhenFullyRelayed; +/* This flag is only effective when |continualGatheringPolicy| is + * RTCContinualGatheringPolicyGatherContinually. + * + * If YES, after the ICE transport type is changed such that new types of + * ICE candidates are allowed by the new transport type, e.g. from + * RTCIceTransportPolicyRelay to RTCIceTransportPolicyAll, candidates that + * have been gathered by the ICE transport but not matching the previous + * transport type and as a result not observed by PeerConnectionDelegateAdapter, + * will be surfaced to the delegate. + */ +@property(nonatomic, assign) BOOL shouldSurfaceIceCandidatesOnIceTransportTypeChanged; + /** If set to non-nil, controls the minimal interval between consecutive ICE * check packets. */ @@ -164,6 +194,35 @@ RTC_EXPORT */ @property(nonatomic, assign) BOOL activeResetSrtpParams; +/** + * If MediaTransportFactory is provided in PeerConnectionFactory, this flag informs PeerConnection + * that it should use the MediaTransportInterface. + */ +@property(nonatomic, assign) BOOL useMediaTransport; + +/** + * If MediaTransportFactory is provided in PeerConnectionFactory, this flag informs PeerConnection + * that it should use the MediaTransportInterface for data channels. + */ +@property(nonatomic, assign) BOOL useMediaTransportForDataChannels; + +/** + * Defines advanced optional cryptographic settings related to SRTP and + * frame encryption for native WebRTC. Setting this will overwrite any + * options set through the PeerConnectionFactory (which is deprecated). + */ +@property(nonatomic, nullable) RTCCryptoOptions *cryptoOptions; + +/** + * Time interval between audio RTCP reports. + */ +@property(nonatomic, assign) int rtcpAudioReportIntervalMs; + +/** + * Time interval between video RTCP reports. + */ +@property(nonatomic, assign) int rtcpVideoReportIntervalMs; + - (instancetype)init; @end diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCryptoOptions.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCryptoOptions.h new file mode 100644 index 00000000..b465bb5a --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCCryptoOptions.h @@ -0,0 +1,63 @@ +/* + * Copyright 2018 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Objective-C bindings for webrtc::CryptoOptions. This API had to be flattened + * as Objective-C doesn't support nested structures. + */ +RTC_OBJC_EXPORT +@interface RTCCryptoOptions : NSObject + +/** + * Enable GCM crypto suites from RFC 7714 for SRTP. GCM will only be used + * if both sides enable it + */ +@property(nonatomic, assign) BOOL srtpEnableGcmCryptoSuites; +/** + * If set to true, the (potentially insecure) crypto cipher + * SRTP_AES128_CM_SHA1_32 will be included in the list of supported ciphers + * during negotiation. It will only be used if both peers support it and no + * other ciphers get preferred. + */ +@property(nonatomic, assign) BOOL srtpEnableAes128Sha1_32CryptoCipher; +/** + * If set to true, encrypted RTP header extensions as defined in RFC 6904 + * will be negotiated. They will only be used if both peers support them. + */ +@property(nonatomic, assign) BOOL srtpEnableEncryptedRtpHeaderExtensions; + +/** + * If set all RtpSenders must have an FrameEncryptor attached to them before + * they are allowed to send packets. All RtpReceivers must have a + * FrameDecryptor attached to them before they are able to receive packets. + */ +@property(nonatomic, assign) BOOL sframeRequireFrameEncryption; + +/** + * Initializes CryptoOptions with all possible options set explicitly. This + * is done when converting from a native RTCConfiguration.crypto_options. + */ +- (instancetype)initWithSrtpEnableGcmCryptoSuites:(BOOL)srtpEnableGcmCryptoSuites + srtpEnableAes128Sha1_32CryptoCipher:(BOOL)srtpEnableAes128Sha1_32CryptoCipher + srtpEnableEncryptedRtpHeaderExtensions:(BOOL)srtpEnableEncryptedRtpHeaderExtensions + sframeRequireFrameEncryption:(BOOL)sframeRequireFrameEncryption + NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDataChannel.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDataChannel.h index 4859e04b..0cc2de87 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDataChannel.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDataChannel.h @@ -11,11 +11,11 @@ #import #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCDataBuffer : NSObject /** NSData representation of the underlying buffer. */ @@ -35,7 +35,7 @@ RTC_EXPORT @end @class RTCDataChannel; -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCDataChannelDelegate /** The data channel state changed. */ @@ -59,7 +59,7 @@ typedef NS_ENUM(NSInteger, RTCDataChannelState) { RTCDataChannelStateClosed, }; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCDataChannel : NSObject /** diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDataChannelConfiguration.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDataChannelConfiguration.h index 65ca8f8d..96d33f4d 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDataChannelConfiguration.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDataChannelConfiguration.h @@ -11,11 +11,11 @@ #import #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCDataChannelConfiguration : NSObject /** Set to YES if ordered delivery is required. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDefaultVideoDecoderFactory.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDefaultVideoDecoderFactory.h new file mode 100644 index 00000000..7ca9463a --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDefaultVideoDecoderFactory.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 "RTCMacros.h" +#import "RTCVideoDecoderFactory.h" + +NS_ASSUME_NONNULL_BEGIN + +/** This decoder factory include support for all codecs bundled with WebRTC. If using custom + * codecs, create custom implementations of RTCVideoEncoderFactory and RTCVideoDecoderFactory. + */ +RTC_OBJC_EXPORT +@interface RTCDefaultVideoDecoderFactory : NSObject +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h new file mode 100644 index 00000000..c45e5436 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h @@ -0,0 +1,30 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoEncoderFactory.h" + +NS_ASSUME_NONNULL_BEGIN + +/** This encoder factory include support for all codecs bundled with WebRTC. If using custom + * codecs, create custom implementations of RTCVideoEncoderFactory and RTCVideoDecoderFactory. + */ +RTC_OBJC_EXPORT +@interface RTCDefaultVideoEncoderFactory : NSObject + +@property(nonatomic, retain) RTCVideoCodecInfo *preferredCodec; + ++ (NSArray *)supportedCodecs; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDispatcher.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDispatcher.h index 03387471..4f8359b3 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDispatcher.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDispatcher.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" typedef NS_ENUM(NSInteger, RTCDispatcherQueueType) { // Main dispatcher queue. @@ -25,7 +25,7 @@ typedef NS_ENUM(NSInteger, RTCDispatcherQueueType) { /** Dispatcher that asynchronously dispatches blocks to a specific * shared dispatch queue. */ -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCDispatcher : NSObject - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDtmfSender.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDtmfSender.h index c69af026..5d86d018 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDtmfSender.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCDtmfSender.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCDtmfSender /** diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCEAGLVideoView.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCEAGLVideoView.h index 8fdd3c3c..30764b54 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCEAGLVideoView.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCEAGLVideoView.h @@ -11,23 +11,19 @@ #import #import -#import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoRenderer.h" +#import "RTCVideoViewShading.h" NS_ASSUME_NONNULL_BEGIN @class RTCEAGLVideoView; -RTC_EXPORT -@protocol RTCEAGLVideoViewDelegate -@end - /** * RTCEAGLVideoView is an RTCVideoRenderer which renders video frames in its * bounds using OpenGLES 2.0 or OpenGLES 3.0. */ -RTC_EXPORT +RTC_OBJC_EXPORT NS_EXTENSION_UNAVAILABLE_IOS("Rendering not available in app extensions.") @interface RTCEAGLVideoView : UIView diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCEncodedImage.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCEncodedImage.h new file mode 100644 index 00000000..670c7276 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCEncodedImage.h @@ -0,0 +1,53 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoFrame.h" + +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_OBJC_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 + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFieldTrials.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFieldTrials.h index 3ce94ba9..61443e8b 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFieldTrials.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFieldTrials.h @@ -10,37 +10,23 @@ #import -#import +#import "RTCMacros.h" /** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */ RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweKey; -RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweForVideoKey; RTC_EXTERN NSString * const kRTCFieldTrialAudioForceNoTWCCKey; RTC_EXTERN NSString * const kRTCFieldTrialAudioForceABWENoTWCCKey; RTC_EXTERN NSString * const kRTCFieldTrialSendSideBweWithOverheadKey; RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey; RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key; -RTC_EXTERN NSString * const kRTCFieldTrialImprovedBitrateEstimateKey; RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey; RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey; /** The valid value for field trials above. */ RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue; -/** Use a string returned by RTCFieldTrialMedianSlopeFilterValue as the value. */ -RTC_EXTERN NSString * const kRTCFieldTrialMedianSlopeFilterKey; -RTC_EXTERN NSString *RTCFieldTrialMedianSlopeFilterValue( - size_t windowSize, double thresholdGain); - -/** Use a string returned by RTCFieldTrialTrendlineFilterValue as the value. */ -RTC_EXTERN NSString * const kRTCFieldTrialTrendlineFilterKey; -/** Returns a valid value for kRTCFieldTrialTrendlineFilterKey. */ -RTC_EXTERN NSString *RTCFieldTrialTrendlineFilterValue( - size_t windowSize, double smoothingCoeff, double thresholdGain); - -/** Initialize field trials using a dictionary mapping field trial keys to their values. See above - * for valid keys and values. - * Must be called before any other call into WebRTC. See: - * webrtc/system_wrappers/include/field_trial_default.h +/** Initialize field trials using a dictionary mapping field trial keys to their + * values. See above for valid keys and values. Must be called before any other + * call into WebRTC. See: webrtc/system_wrappers/include/field_trial.h */ RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary *fieldTrials); diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFileLogger.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFileLogger.h index ac8a9104..cd5c1c46 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFileLogger.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFileLogger.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" typedef NS_ENUM(NSUInteger, RTCFileLoggerSeverity) { RTCFileLoggerSeverityVerbose, @@ -33,7 +33,7 @@ NS_ASSUME_NONNULL_BEGIN // are preserved while the middle section is overwritten instead. // For kRTCFileLoggerTypeApp, the oldest log is overwritten. // This class is not threadsafe. -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCFileLogger : NSObject // The severity level to capture. The default is kRTCFileLoggerSeverityInfo. diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFileVideoCapturer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFileVideoCapturer.h index 7b898e49..0782588d 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFileVideoCapturer.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCFileVideoCapturer.h @@ -9,7 +9,8 @@ */ #import -#import + +#import "RTCVideoCapturer.h" NS_ASSUME_NONNULL_BEGIN @@ -23,7 +24,7 @@ typedef void (^RTCFileVideoCapturerErrorBlock)(NSError *error); * * See @c RTCVideoCapturer for more info on capturers. */ -RTC_EXPORT +RTC_OBJC_EXPORT NS_CLASS_AVAILABLE_IOS(10) @interface RTCFileVideoCapturer : RTCVideoCapturer diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecH264.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCH264ProfileLevelId.h similarity index 59% rename from lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecH264.h rename to lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCH264ProfileLevelId.h index d4dbf88f..56b35321 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecH264.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCH264ProfileLevelId.h @@ -10,21 +10,13 @@ #import -#import -#import +#import "RTCMacros.h" -/** 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 +RTC_OBJC_EXPORT extern NSString *const kRTCVideoCodecH264Name; +RTC_OBJC_EXPORT extern NSString *const kRTCLevel31ConstrainedHigh; +RTC_OBJC_EXPORT extern NSString *const kRTCLevel31ConstrainedBaseline; +RTC_OBJC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedHigh; +RTC_OBJC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedBaseline; /** H264 Profiles and levels. */ typedef NS_ENUM(NSUInteger, RTCH264Profile) { @@ -55,7 +47,7 @@ typedef NS_ENUM(NSUInteger, RTCH264Level) { RTCH264Level5_2 = 52 }; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCH264ProfileLevelId : NSObject @property(nonatomic, readonly) RTCH264Profile profile; @@ -66,26 +58,3 @@ RTC_EXPORT - (instancetype)initWithProfile:(RTCH264Profile)profile level:(RTCH264Level)level; @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/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCI420Buffer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCI420Buffer.h new file mode 100644 index 00000000..a6c7e41b --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCI420Buffer.h @@ -0,0 +1,22 @@ +/* + * Copyright 2018 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 "RTCYUVPlanarBuffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Protocol for RTCYUVPlanarBuffers containing I420 data */ +RTC_OBJC_EXPORT +@protocol RTCI420Buffer +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCIceCandidate.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCIceCandidate.h index fb5064e5..3e305cc4 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCIceCandidate.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCIceCandidate.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCIceCandidate : NSObject /** diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCIceServer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCIceServer.h index 727da8ac..ab5fc4a9 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCIceServer.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCIceServer.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" typedef NS_ENUM(NSUInteger, RTCTlsCertPolicy) { RTCTlsCertPolicySecure, @@ -19,7 +19,7 @@ typedef NS_ENUM(NSUInteger, RTCTlsCertPolicy) { NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCIceServer : NSObject /** URI(s) for this server represented as NSStrings. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCLegacyStatsReport.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCLegacyStatsReport.h index 14d996c1..85f2b8fb 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCLegacyStatsReport.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCLegacyStatsReport.h @@ -10,12 +10,12 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN /** This does not currently conform to the spec. */ -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCLegacyStatsReport : NSObject /** Time since 1970-01-01T00:00:00Z in milliseconds. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCLogging.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCLogging.h index b7587851..754945c8 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCLogging.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCLogging.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" // Subset of rtc::LoggingSeverity. typedef NS_ENUM(NSInteger, RTCLoggingSeverity) { @@ -18,6 +18,7 @@ typedef NS_ENUM(NSInteger, RTCLoggingSeverity) { RTCLoggingSeverityInfo, RTCLoggingSeverityWarning, RTCLoggingSeverityError, + RTCLoggingSeverityNone, }; // Wrapper for C++ RTC_LOG(sev) macros. diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMTLVideoView.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMTLVideoView.h index 06154950..36cb144a 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMTLVideoView.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMTLVideoView.h @@ -10,14 +10,9 @@ #import -#import "WebRTC/RTCVideoFrame.h" -#import "WebRTC/RTCVideoRenderer.h" - -// Check if metal is supported in WebRTC. -// NOTE: Currently arm64 == Metal. -#if defined(__aarch64__) -#define RTC_SUPPORTS_METAL -#endif +#import "RTCMacros.h" +#import "RTCVideoFrame.h" +#import "RTCVideoRenderer.h" NS_ASSUME_NONNULL_BEGIN @@ -31,7 +26,7 @@ NS_ASSUME_NONNULL_BEGIN */ NS_CLASS_AVAILABLE_IOS(9) -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMTLVideoView : UIView @property(nonatomic, weak) id delegate; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMacros.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMacros.h index 08cb9382..7f7e64cb 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMacros.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMacros.h @@ -8,15 +8,15 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ -#define SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ +#ifndef SDK_OBJC_BASE_RTCMACROS_H_ +#define SDK_OBJC_BASE_RTCMACROS_H_ -#define RTC_EXPORT __attribute__((visibility("default"))) +#define RTC_OBJC_EXPORT __attribute__((visibility("default"))) #if defined(__cplusplus) -#define RTC_EXTERN extern "C" RTC_EXPORT +#define RTC_EXTERN extern "C" RTC_OBJC_EXPORT #else -#define RTC_EXTERN extern RTC_EXPORT +#define RTC_EXTERN extern RTC_OBJC_EXPORT #endif #ifdef __OBJC__ @@ -25,4 +25,4 @@ #define RTC_FWD_DECL_OBJC_CLASS(classname) typedef struct objc_object classname #endif -#endif // SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ +#endif // SDK_OBJC_BASE_RTCMACROS_H_ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaConstraints.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaConstraints.h index fce08212..5c1a12e3 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaConstraints.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaConstraints.h @@ -10,19 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN /** Constraint keys for media sources. */ -RTC_EXTERN NSString *const kRTCMediaConstraintsMinAspectRatio; -RTC_EXTERN NSString *const kRTCMediaConstraintsMaxAspectRatio; -RTC_EXTERN NSString *const kRTCMediaConstraintsMaxWidth; -RTC_EXTERN NSString *const kRTCMediaConstraintsMinWidth; -RTC_EXTERN NSString *const kRTCMediaConstraintsMaxHeight; -RTC_EXTERN NSString *const kRTCMediaConstraintsMinHeight; -RTC_EXTERN NSString *const kRTCMediaConstraintsMaxFrameRate; -RTC_EXTERN NSString *const kRTCMediaConstraintsMinFrameRate; /** The value for this key should be a base64 encoded string containing * the data from the serialized configuration proto. */ @@ -38,7 +30,7 @@ RTC_EXTERN NSString *const kRTCMediaConstraintsVoiceActivityDetection; RTC_EXTERN NSString *const kRTCMediaConstraintsValueTrue; RTC_EXTERN NSString *const kRTCMediaConstraintsValueFalse; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMediaConstraints : NSObject - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaSource.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaSource.h index 6cfcb7d2..838c7832 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaSource.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaSource.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" typedef NS_ENUM(NSInteger, RTCSourceState) { RTCSourceStateInitializing, @@ -21,7 +21,7 @@ typedef NS_ENUM(NSInteger, RTCSourceState) { NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMediaSource : NSObject /** The current state of the RTCMediaSource. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaStream.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaStream.h index b97960d4..bb9bec69 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaStream.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaStream.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN @class RTCPeerConnectionFactory; @class RTCVideoTrack; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMediaStream : NSObject /** The audio tracks in this stream. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaStreamTrack.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaStreamTrack.h index aee9bdd0..d1ea0f28 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaStreamTrack.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMediaStreamTrack.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" /** * Represents the state of the track. This exposes the same states in C++. @@ -25,7 +25,7 @@ NS_ASSUME_NONNULL_BEGIN RTC_EXTERN NSString *const kRTCMediaStreamTrackKindAudio; RTC_EXTERN NSString *const kRTCMediaStreamTrackKindVideo; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMediaStreamTrack : NSObject /** diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMetrics.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMetrics.h index cc898882..6629fdac 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMetrics.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMetrics.h @@ -10,8 +10,8 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCMetricsSampleInfo.h" /** * Enables gathering of metrics (which can be fetched with diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMetricsSampleInfo.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMetricsSampleInfo.h index f01bea9b..cd38ab9a 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMetricsSampleInfo.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMetricsSampleInfo.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMetricsSampleInfo : NSObject /** diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMutableI420Buffer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMutableI420Buffer.h new file mode 100644 index 00000000..098fb9a6 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMutableI420Buffer.h @@ -0,0 +1,23 @@ +/* + * Copyright 2018 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 "RTCI420Buffer.h" +#import "RTCMutableYUVPlanarBuffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Extension of the I420 buffer with mutable data access */ +RTC_OBJC_EXPORT +@protocol RTCMutableI420Buffer +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h new file mode 100644 index 00000000..00dfcd94 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h @@ -0,0 +1,27 @@ +/* + * Copyright 2018 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 "RTCYUVPlanarBuffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Extension of the YUV planar data buffer with mutable data access */ +RTC_OBJC_EXPORT +@protocol RTCMutableYUVPlanarBuffer + +@property(nonatomic, readonly) uint8_t *mutableDataY; +@property(nonatomic, readonly) uint8_t *mutableDataU; +@property(nonatomic, readonly) uint8_t *mutableDataV; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCNativeI420Buffer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCNativeI420Buffer.h new file mode 100644 index 00000000..9a904f53 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCNativeI420Buffer.h @@ -0,0 +1,23 @@ +/* + * Copyright 2018 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 "RTCI420Buffer.h" +#import "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** RTCI420Buffer implements the RTCI420Buffer protocol */ +RTC_OBJC_EXPORT +@interface RTCI420Buffer : NSObject +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCNativeMutableI420Buffer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCNativeMutableI420Buffer.h new file mode 100644 index 00000000..6cd51104 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCNativeMutableI420Buffer.h @@ -0,0 +1,24 @@ +/* + * Copyright 2018 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 "RTCMacros.h" +#import "RTCMutableI420Buffer.h" +#import "RTCNativeI420Buffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Mutable version of RTCI420Buffer */ +RTC_OBJC_EXPORT +@interface RTCMutableI420Buffer : RTCI420Buffer +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnection.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnection.h index 94036cc7..012295c2 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnection.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnection.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" @class RTCConfiguration; @class RTCDataChannel; @@ -25,6 +25,7 @@ @class RTCRtpTransceiver; @class RTCRtpTransceiverInit; @class RTCSessionDescription; +@class RTCStatisticsReport; @class RTCLegacyStatsReport; typedef NS_ENUM(NSInteger, RTCRtpMediaType); @@ -57,6 +58,16 @@ typedef NS_ENUM(NSInteger, RTCIceConnectionState) { RTCIceConnectionStateCount, }; +/** Represents the combined ice+dtls connection state of the peer connection. */ +typedef NS_ENUM(NSInteger, RTCPeerConnectionState) { + RTCPeerConnectionStateNew, + RTCPeerConnectionStateConnecting, + RTCPeerConnectionStateConnected, + RTCPeerConnectionStateDisconnected, + RTCPeerConnectionStateFailed, + RTCPeerConnectionStateClosed, +}; + /** Represents the ice gathering state of the peer connection. */ typedef NS_ENUM(NSInteger, RTCIceGatheringState) { RTCIceGatheringStateNew, @@ -72,7 +83,7 @@ typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) { @class RTCPeerConnection; -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCPeerConnectionDelegate /** Called when the SignalingState changed. */ @@ -115,18 +126,37 @@ RTC_EXPORT * This is only called with RTCSdpSemanticsUnifiedPlan specified. */ @optional +/** Called any time the IceConnectionState changes following standardized + * transition. */ +- (void)peerConnection:(RTCPeerConnection *)peerConnection + didChangeStandardizedIceConnectionState:(RTCIceConnectionState)newState; + +/** Called any time the PeerConnectionState changes. */ +- (void)peerConnection:(RTCPeerConnection *)peerConnection + didChangeConnectionState:(RTCPeerConnectionState)newState; + - (void)peerConnection:(RTCPeerConnection *)peerConnection didStartReceivingOnTransceiver:(RTCRtpTransceiver *)transceiver; /** Called when a receiver and its track are created. */ -@optional - (void)peerConnection:(RTCPeerConnection *)peerConnection didAddReceiver:(RTCRtpReceiver *)rtpReceiver streams:(NSArray *)mediaStreams; +/** Called when the receiver and its track are removed. */ +- (void)peerConnection:(RTCPeerConnection *)peerConnection + didRemoveReceiver:(RTCRtpReceiver *)rtpReceiver; + +/** Called when the selected ICE candidate pair is changed. */ +- (void)peerConnection:(RTCPeerConnection *)peerConnection + didChangeLocalCandidate:(RTCIceCandidate *)local + remoteCandidate:(RTCIceCandidate *)remote + lastReceivedMs:(int)lastDataReceivedMs + changeReason:(NSString *)reason; + @end -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCPeerConnection : NSObject /** The object that will be notifed about events such as state changes and @@ -141,6 +171,7 @@ RTC_EXPORT @property(nonatomic, readonly, nullable) RTCSessionDescription *remoteDescription; @property(nonatomic, readonly) RTCSignalingState signalingState; @property(nonatomic, readonly) RTCIceConnectionState iceConnectionState; +@property(nonatomic, readonly) RTCPeerConnectionState connectionState; @property(nonatomic, readonly) RTCIceGatheringState iceGatheringState; @property(nonatomic, readonly, copy) RTCConfiguration *configuration; @@ -298,6 +329,8 @@ RTC_EXPORT @end +typedef void (^RTCStatisticsCompletionHandler)(RTCStatisticsReport *); + @interface RTCPeerConnection (Stats) /** Gather stats for the given RTCMediaStreamTrack. If |mediaStreamTrack| is nil @@ -307,6 +340,21 @@ RTC_EXPORT statsOutputLevel:(RTCStatsOutputLevel)statsOutputLevel completionHandler:(nullable void (^)(NSArray *stats))completionHandler; +/** Gather statistic through the v2 statistics API. */ +- (void)statisticsWithCompletionHandler:(RTCStatisticsCompletionHandler)completionHandler; + +/** Spec-compliant getStats() performing the stats selection algorithm with the + * sender. + */ +- (void)statisticsForSender:(RTCRtpSender *)sender + completionHandler:(RTCStatisticsCompletionHandler)completionHandler; + +/** Spec-compliant getStats() performing the stats selection algorithm with the + * receiver. + */ +- (void)statisticsForReceiver:(RTCRtpReceiver *)receiver + completionHandler:(RTCStatisticsCompletionHandler)completionHandler; + @end NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnectionFactory.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnectionFactory.h index 7f7b7e6c..c808218b 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnectionFactory.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnectionFactory.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN @protocol RTCVideoDecoderFactory; @protocol RTCVideoEncoderFactory; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCPeerConnectionFactory : NSObject /* Initialize object with default H264 video encoder/decoder factories */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h index 33faa1e6..4bec8695 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCPeerConnectionFactoryOptions : NSObject @property(nonatomic, assign) BOOL disableEncryption; @@ -31,8 +31,6 @@ RTC_EXPORT @property(nonatomic, assign) BOOL ignoreEthernetNetworkAdapter; -@property(nonatomic, assign) BOOL enableAes128Sha1_32CryptoCipher; - - (instancetype)init NS_DESIGNATED_INITIALIZER; @end diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtcpParameters.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtcpParameters.h index 54b254c3..5c265806 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtcpParameters.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtcpParameters.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtcpParameters : NSObject /** The Canonical Name used by RTCP. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpCodecParameters.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpCodecParameters.h index bb9aa905..5d3cac5c 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpCodecParameters.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpCodecParameters.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -32,7 +32,7 @@ RTC_EXTERN const NSString *const kRTCVp9CodecName; RTC_EXTERN const NSString *const kRTCH264CodecName; /** Defined in http://w3c.github.io/webrtc-pc/#idl-def-RTCRtpCodecParameters */ -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpCodecParameters : NSObject /** The RTP payload type. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpEncodingParameters.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpEncodingParameters.h index 5ba01764..16eabf9b 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpEncodingParameters.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpEncodingParameters.h @@ -10,13 +10,16 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpEncodingParameters : NSObject +/** The idenfifier for the encoding layer. This is used in simulcast. */ +@property(nonatomic, copy, nullable) NSString *rid; + /** Controls whether the encoding is currently transmitted. */ @property(nonatomic, assign) BOOL isActive; @@ -27,14 +30,30 @@ RTC_EXPORT /** The minimum bitrate to use for the encoding, or nil if there is no * limit. - * - * Not implemented. */ @property(nonatomic, copy, nullable) NSNumber *minBitrateBps; +/** The maximum framerate to use for the encoding, or nil if there is no + * limit. + */ +@property(nonatomic, copy, nullable) NSNumber *maxFramerate; + +/** The requested number of temporal layers to use for the encoding, or nil + * if the default should be used. + */ +@property(nonatomic, copy, nullable) NSNumber *numTemporalLayers; + +/** Scale the width and height down by this factor for video. If nil, + * implementation default scaling factor will be used. + */ +@property(nonatomic, copy, nullable) NSNumber *scaleResolutionDownBy; + /** The SSRC being used by this encoding. */ @property(nonatomic, readonly, nullable) NSNumber *ssrc; +/** The relative DiffServ Code Point priority. */ +@property(nonatomic, assign) double networkPriority; + - (instancetype)init NS_DESIGNATED_INITIALIZER; @end diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpFragmentationHeader.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpFragmentationHeader.h new file mode 100644 index 00000000..2e26b08b --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpFragmentationHeader.h @@ -0,0 +1,28 @@ +/* + * 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Information for header. Corresponds to webrtc::RTPFragmentationHeader. */ +RTC_OBJC_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 + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpHeaderExtension.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpHeaderExtension.h index b89eb063..32114499 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpHeaderExtension.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpHeaderExtension.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpHeaderExtension : NSObject /** The URI of the RTP header extension, as defined in RFC5285. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpParameters.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpParameters.h index 8f099348..c1f2d5ce 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpParameters.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpParameters.h @@ -10,15 +10,15 @@ #import -#import -#import -#import -#import -#import +#import "RTCMacros.h" +#import "RTCRtcpParameters.h" +#import "RTCRtpCodecParameters.h" +#import "RTCRtpEncodingParameters.h" +#import "RTCRtpHeaderExtension.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpParameters : NSObject /** A unique identifier for the last set of parameters applied. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpReceiver.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpReceiver.h index 6156db9f..7a7dacea 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpReceiver.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpReceiver.h @@ -10,9 +10,9 @@ #import -#import -#import -#import +#import "RTCMacros.h" +#import "RTCMediaStreamTrack.h" +#import "RTCRtpParameters.h" NS_ASSUME_NONNULL_BEGIN @@ -25,7 +25,7 @@ typedef NS_ENUM(NSInteger, RTCRtpMediaType) { @class RTCRtpReceiver; -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCRtpReceiverDelegate /** Called when the first RTP packet is received. @@ -45,7 +45,7 @@ RTC_EXPORT @end -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCRtpReceiver /** A unique identifier for this receiver. */ @@ -72,7 +72,7 @@ RTC_EXPORT @end -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpReceiver : NSObject - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpSender.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpSender.h index f6e91250..c03b4cc8 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpSender.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpSender.h @@ -10,14 +10,14 @@ #import -#import -#import -#import -#import +#import "RTCDtmfSender.h" +#import "RTCMacros.h" +#import "RTCMediaStreamTrack.h" +#import "RTCRtpParameters.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCRtpSender /** A unique identifier for this sender. */ @@ -35,12 +35,15 @@ RTC_EXPORT */ @property(nonatomic, copy, nullable) RTCMediaStreamTrack *track; +/** IDs of streams associated with the RTP sender */ +@property(nonatomic, copy) NSArray *streamIds; + /** The RTCDtmfSender accociated with the RTP sender. */ @property(nonatomic, readonly, nullable) id dtmfSender; @end -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpSender : NSObject - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpTransceiver.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpTransceiver.h index db0fd1c6..8ef3fc1d 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpTransceiver.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCRtpTransceiver.h @@ -10,9 +10,9 @@ #import -#import -#import -#import +#import "RTCMacros.h" +#import "RTCRtpReceiver.h" +#import "RTCRtpSender.h" NS_ASSUME_NONNULL_BEGIN @@ -28,6 +28,7 @@ typedef NS_ENUM(NSInteger, RTCRtpTransceiverDirection) { * RTCPeerConnection.addTransceiver. * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiverinit */ +RTC_OBJC_EXPORT @interface RTCRtpTransceiverInit : NSObject /** Direction of the RTCRtpTransceiver. See RTCRtpTransceiver.direction. */ @@ -56,7 +57,7 @@ typedef NS_ENUM(NSInteger, RTCRtpTransceiverDirection) { * WebRTC specification for RTCRtpTransceiver, the JavaScript analog: * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver */ -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCRtpTransceiver /** Media type of the transceiver. The sender and receiver will also have this @@ -118,7 +119,7 @@ RTC_EXPORT @end -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpTransceiver : NSObject - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCSSLAdapter.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCSSLAdapter.h index a0da827c..f68bc5e9 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCSSLAdapter.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCSSLAdapter.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" /** * Initialize and clean up the SSL library. Failure is fatal. These call the diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCSessionDescription.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCSessionDescription.h index 7db53da8..b9bcab1a 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCSessionDescription.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCSessionDescription.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" /** * Represents the session description type. This exposes the same types that are @@ -24,7 +24,7 @@ typedef NS_ENUM(NSInteger, RTCSdpType) { NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCSessionDescription : NSObject /** The type of session description. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCTracing.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCTracing.h index 899a5700..5c66e5a6 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCTracing.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCTracing.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" RTC_EXTERN void RTCSetupInternalTracer(void); /** Starts capture to specified file. Must be a valid writable path. diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCapturer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCapturer.h index f0a2eaa1..52126276 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCapturer.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCapturer.h @@ -8,18 +8,20 @@ * be found in the AUTHORS file in the root of the source tree. */ -#import +#import "RTCVideoFrame.h" + +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @class RTCVideoCapturer; -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCVideoCapturerDelegate - (void)capturer:(RTCVideoCapturer *)capturer didCaptureVideoFrame:(RTCVideoFrame *)frame; @end -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoCapturer : NSObject @property(nonatomic, weak) id delegate; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodec.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodec.h deleted file mode 100644 index 5bc6d66d..00000000 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodec.h +++ /dev/null @@ -1,186 +0,0 @@ -/* - * 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 - -RTC_EXPORT extern NSString *const kRTCVideoCodecVp8Name; -RTC_EXPORT extern NSString *const kRTCVideoCodecVp9Name; -RTC_EXPORT extern NSString *const kRTCVideoCodecH264Name; -RTC_EXPORT extern NSString *const kRTCLevel31ConstrainedHigh; -RTC_EXPORT extern NSString *const kRTCLevel31ConstrainedBaseline; -RTC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedHigh; -RTC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedBaseline; - -/** 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 webrtc::SdpVideoFormat. */ -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:(nullable 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 - DEPRECATED_MSG_ATTRIBUTE("use startDecodeWithNumberOfCores: instead"); -- (NSInteger)releaseDecoder; -- (NSInteger)decode:(RTCEncodedImage *)encodedImage - missingFrames:(BOOL)missingFrames - codecSpecificInfo:(nullable id)info - renderTimeMs:(int64_t)renderTimeMs; -- (NSString *)implementationName; - -// TODO(andersc): Make non-optional when `startDecodeWithSettings:numberOfCores:` is removed. -@optional -- (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; - -@end - -NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecConstants.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecConstants.h new file mode 100644 index 00000000..03f36e22 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecConstants.h @@ -0,0 +1,16 @@ +/* + * Copyright 2018 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 "RTCMacros.h" + +RTC_OBJC_EXPORT extern NSString* const kRTCVideoCodecVp8Name; +RTC_OBJC_EXPORT extern NSString* const kRTCVideoCodecVp9Name; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecFactory.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecFactory.h deleted file mode 100644 index 0ef2c8a6..00000000 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecFactory.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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 - -- (nullable id)createEncoder:(RTCVideoCodecInfo *)info; -- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? - -@end - -/** RTCVideoDecoderFactory is an Objective-C version of webrtc::VideoDecoderFactory. */ -RTC_EXPORT -@protocol RTCVideoDecoderFactory - -- (nullable id)createDecoder:(RTCVideoCodecInfo *)info; -- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? - -@end - -#pragma mark - Default factories - -/** These codec factories include support for all codecs bundled with WebRTC. If using custom - * codecs, create custom implementations of RTCVideoEncoderFactory and RTCVideoDecoderFactory. - */ -RTC_EXPORT -@interface RTCDefaultVideoEncoderFactory : NSObject - -@property(nonatomic, retain) RTCVideoCodecInfo *preferredCodec; - -+ (NSArray *)supportedCodecs; - -@end - -RTC_EXPORT -@interface RTCDefaultVideoDecoderFactory : NSObject -@end - -NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecInfo.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecInfo.h new file mode 100644 index 00000000..2162caaa --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoCodecInfo.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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Holds information to identify a codec. Corresponds to webrtc::SdpVideoFormat. */ +RTC_OBJC_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 + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoder.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoder.h new file mode 100644 index 00000000..8077c698 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoder.h @@ -0,0 +1,39 @@ +/* + * 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 "RTCCodecSpecificInfo.h" +#import "RTCEncodedImage.h" +#import "RTCMacros.h" +#import "RTCVideoEncoderSettings.h" +#import "RTCVideoFrame.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Callback block for decoder. */ +typedef void (^RTCVideoDecoderCallback)(RTCVideoFrame *frame); + +/** Protocol for decoder implementations. */ +RTC_OBJC_EXPORT +@protocol RTCVideoDecoder + +- (void)setCallback:(RTCVideoDecoderCallback)callback; +- (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; +- (NSInteger)releaseDecoder; +- (NSInteger)decode:(RTCEncodedImage *)encodedImage + missingFrames:(BOOL)missingFrames + codecSpecificInfo:(nullable id)info + renderTimeMs:(int64_t)renderTimeMs; +- (NSString *)implementationName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderFactory.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderFactory.h new file mode 100644 index 00000000..3e24153b --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderFactory.h @@ -0,0 +1,28 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoCodecInfo.h" +#import "RTCVideoDecoder.h" + +NS_ASSUME_NONNULL_BEGIN + +/** RTCVideoDecoderFactory is an Objective-C version of webrtc::VideoDecoderFactory. */ +RTC_OBJC_EXPORT +@protocol RTCVideoDecoderFactory + +- (nullable id)createDecoder:(RTCVideoCodecInfo *)info; +- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderFactoryH264.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderFactoryH264.h new file mode 100644 index 00000000..4fcff1df --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderFactoryH264.h @@ -0,0 +1,18 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoDecoderFactory.h" + +RTC_OBJC_EXPORT +@interface RTCVideoDecoderFactoryH264 : NSObject +@end diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderH264.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderH264.h new file mode 100644 index 00000000..b8602762 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderH264.h @@ -0,0 +1,18 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoDecoder.h" + +RTC_OBJC_EXPORT +@interface RTCVideoDecoderH264 : NSObject +@end diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderVP8.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderVP8.h index 962b6312..00786dc5 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderVP8.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderVP8.h @@ -10,10 +10,10 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoDecoder.h" -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoDecoderVP8 : NSObject /* This returns a VP8 decoder that can be returned from a RTCVideoDecoderFactory injected into diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderVP9.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderVP9.h index faf66ef0..b74c1ef9 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderVP9.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoDecoderVP9.h @@ -10,10 +10,10 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoDecoder.h" -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoDecoderVP9 : NSObject /* This returns a VP9 decoder that can be returned from a RTCVideoDecoderFactory injected into diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoder.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoder.h new file mode 100644 index 00000000..c5257674 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoder.h @@ -0,0 +1,49 @@ +/* + * 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 "RTCCodecSpecificInfo.h" +#import "RTCEncodedImage.h" +#import "RTCMacros.h" +#import "RTCRtpFragmentationHeader.h" +#import "RTCVideoEncoderQpThresholds.h" +#import "RTCVideoEncoderSettings.h" +#import "RTCVideoFrame.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Callback block for encoder. */ +typedef BOOL (^RTCVideoEncoderCallback)(RTCEncodedImage *frame, + id info, + RTCRtpFragmentationHeader *header); + +/** Protocol for encoder implementations. */ +RTC_OBJC_EXPORT +@protocol RTCVideoEncoder + +- (void)setCallback:(RTCVideoEncoderCallback)callback; +- (NSInteger)startEncodeWithSettings:(RTCVideoEncoderSettings *)settings + numberOfCores:(int)numberOfCores; +- (NSInteger)releaseEncoder; +- (NSInteger)encode:(RTCVideoFrame *)frame + codecSpecificInfo:(nullable 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. */ +- (nullable RTCVideoEncoderQpThresholds *)scalingSettings; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderFactory.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderFactory.h new file mode 100644 index 00000000..3291797d --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderFactory.h @@ -0,0 +1,31 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoCodecInfo.h" +#import "RTCVideoEncoder.h" + +NS_ASSUME_NONNULL_BEGIN + +/** RTCVideoEncoderFactory is an Objective-C version of webrtc::VideoEncoderFactory. */ +RTC_OBJC_EXPORT +@protocol RTCVideoEncoderFactory + +- (nullable id)createEncoder:(RTCVideoCodecInfo *)info; +- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? + +@optional +- (NSArray *)implementations; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderFactoryH264.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderFactoryH264.h new file mode 100644 index 00000000..c64405e4 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderFactoryH264.h @@ -0,0 +1,18 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoEncoderFactory.h" + +RTC_OBJC_EXPORT +@interface RTCVideoEncoderFactoryH264 : NSObject +@end diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderH264.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderH264.h new file mode 100644 index 00000000..a9c05580 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderH264.h @@ -0,0 +1,22 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoCodecInfo.h" +#import "RTCVideoEncoder.h" + +RTC_OBJC_EXPORT +@interface RTCVideoEncoderH264 : NSObject + +- (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo; + +@end diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderQpThresholds.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderQpThresholds.h new file mode 100644 index 00000000..2b48f45c --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderQpThresholds.h @@ -0,0 +1,28 @@ +/* + * 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** QP thresholds for encoder. Corresponds to webrtc::VideoEncoder::QpThresholds. */ +RTC_OBJC_EXPORT +@interface RTCVideoEncoderQpThresholds : NSObject + +- (instancetype)initWithThresholdsLow:(NSInteger)low high:(NSInteger)high; + +@property(nonatomic, readonly) NSInteger low; +@property(nonatomic, readonly) NSInteger high; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderSettings.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderSettings.h new file mode 100644 index 00000000..a9403f8d --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderSettings.h @@ -0,0 +1,42 @@ +/* + * 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, RTCVideoCodecMode) { + RTCVideoCodecModeRealtimeVideo, + RTCVideoCodecModeScreensharing, +}; + +/** Settings for encoder. Corresponds to webrtc::VideoCodec. */ +RTC_OBJC_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) uint32_t maxFramerate; + +@property(nonatomic, assign) unsigned int qpMax; +@property(nonatomic, assign) RTCVideoCodecMode mode; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderVP8.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderVP8.h index e63b24dd..8d87a898 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderVP8.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderVP8.h @@ -10,10 +10,10 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoEncoder.h" -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoEncoderVP8 : NSObject /* This returns a VP8 encoder that can be returned from a RTCVideoEncoderFactory injected into diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderVP9.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderVP9.h index cef8c82e..9efea4be 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderVP9.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoEncoderVP9.h @@ -10,10 +10,10 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoEncoder.h" -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoEncoderVP9 : NSObject /* This returns a VP9 encoder that can be returned from a RTCVideoEncoderFactory injected into diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoFrame.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoFrame.h index cfccfa9e..9aca7433 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoFrame.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoFrame.h @@ -11,7 +11,7 @@ #import #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -25,7 +25,7 @@ typedef NS_ENUM(NSInteger, RTCVideoRotation) { @protocol RTCVideoFrameBuffer; // RTCVideoFrame is an ObjectiveC version of webrtc::VideoFrame. -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoFrame : NSObject /** Width without rotation applied. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoFrameBuffer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoFrameBuffer.h index d590a5f7..bb9e6fba 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoFrameBuffer.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoFrameBuffer.h @@ -9,14 +9,15 @@ */ #import -#import + +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @protocol RTCI420Buffer; // RTCVideoFrameBuffer is an ObjectiveC version of webrtc::VideoFrameBuffer. -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCVideoFrameBuffer @property(nonatomic, readonly) int width; @@ -26,91 +27,4 @@ RTC_EXPORT @end -/** Protocol for RTCVideoFrameBuffers containing YUV planar data. */ -@protocol RTCYUVPlanarBuffer - -@property(nonatomic, readonly) int chromaWidth; -@property(nonatomic, readonly) int chromaHeight; -@property(nonatomic, readonly) const uint8_t *dataY; -@property(nonatomic, readonly) const uint8_t *dataU; -@property(nonatomic, readonly) const uint8_t *dataV; -@property(nonatomic, readonly) int strideY; -@property(nonatomic, readonly) int strideU; -@property(nonatomic, readonly) int strideV; - -- (instancetype)initWithWidth:(int)width - height:(int)height - dataY:(const uint8_t *)dataY - dataU:(const uint8_t *)dataU - dataV:(const uint8_t *)dataV; -- (instancetype)initWithWidth:(int)width height:(int)height; -- (instancetype)initWithWidth:(int)width - height:(int)height - strideY:(int)strideY - strideU:(int)strideU - strideV:(int)strideV; - -@end - -/** Extension of the YUV planar data buffer with mutable data access */ -@protocol RTCMutableYUVPlanarBuffer - -@property(nonatomic, readonly) uint8_t *mutableDataY; -@property(nonatomic, readonly) uint8_t *mutableDataU; -@property(nonatomic, readonly) uint8_t *mutableDataV; - -@end - -/** Protocol for RTCYUVPlanarBuffers containing I420 data */ -@protocol RTCI420Buffer -@end - -/** Extension of the I420 buffer with mutable data access */ -@protocol RTCMutableI420Buffer -@end - -/** RTCVideoFrameBuffer containing a CVPixelBufferRef */ -RTC_EXPORT -@interface RTCCVPixelBuffer : NSObject - -@property(nonatomic, readonly) CVPixelBufferRef pixelBuffer; -@property(nonatomic, readonly) int cropX; -@property(nonatomic, readonly) int cropY; -@property(nonatomic, readonly) int cropWidth; -@property(nonatomic, readonly) int cropHeight; - -+ (NSSet *)supportedPixelFormats; - -- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer; -- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer - adaptedWidth:(int)adaptedWidth - adaptedHeight:(int)adaptedHeight - cropWidth:(int)cropWidth - cropHeight:(int)cropHeight - cropX:(int)cropX - cropY:(int)cropY; - -- (BOOL)requiresCropping; -- (BOOL)requiresScalingToWidth:(int)width height:(int)height; -- (int)bufferSizeForCroppingAndScalingToWidth:(int)width height:(int)height; - -/** The minimum size of the |tmpBuffer| must be the number of bytes returned from the - * bufferSizeForCroppingAndScalingToWidth:height: method. - * If that size is 0, the |tmpBuffer| may be nil. - */ -- (BOOL)cropAndScaleTo:(CVPixelBufferRef)outputPixelBuffer - withTempBuffer:(nullable uint8_t *)tmpBuffer; - -@end - -/** RTCI420Buffer implements the RTCI420Buffer protocol */ -RTC_EXPORT -@interface RTCI420Buffer : NSObject -@end - -/** Mutable version of RTCI420Buffer */ -RTC_EXPORT -@interface RTCMutableI420Buffer : RTCI420Buffer -@end - NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoRenderer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoRenderer.h index 7d91f2f1..7b359a35 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoRenderer.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoRenderer.h @@ -13,13 +13,13 @@ #import #endif -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @class RTCVideoFrame; -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCVideoRenderer /** The size of the frame. */ @@ -30,7 +30,7 @@ RTC_EXPORT @end -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCVideoViewDelegate - (void)videoView:(id)videoView didChangeVideoSize:(CGSize)size; diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoSource.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoSource.h index a9ebc06c..ec8a45c1 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoSource.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoSource.h @@ -10,13 +10,13 @@ #import -#import -#import -#import +#import "RTCMacros.h" +#import "RTCMediaSource.h" +#import "RTCVideoCapturer.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoSource : RTCMediaSource diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoTrack.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoTrack.h index 899d7c34..b946889e 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoTrack.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoTrack.h @@ -8,9 +8,9 @@ * be found in the AUTHORS file in the root of the source tree. */ -#import +#import "RTCMediaStreamTrack.h" -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN @class RTCPeerConnectionFactory; @class RTCVideoSource; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoTrack : RTCMediaStreamTrack /** The video source for this video track. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoViewShading.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoViewShading.h index 6f3ece94..6876cc3a 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoViewShading.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCVideoViewShading.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCVideoFrame.h" NS_ASSUME_NONNULL_BEGIN @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN * RTCVideoViewShading provides a way for apps to customize the OpenGL(ES) shaders used in * rendering for the RTCEAGLVideoView/RTCNSGLVideoView. */ -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCVideoViewShading /** Callback for I420 frames. Each plane is given as a texture. */ diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCYUVPlanarBuffer.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCYUVPlanarBuffer.h new file mode 100644 index 00000000..8ceb66c9 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/RTCYUVPlanarBuffer.h @@ -0,0 +1,45 @@ +/* + * Copyright 2018 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 "RTCMacros.h" +#import "RTCVideoFrameBuffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Protocol for RTCVideoFrameBuffers containing YUV planar data. */ +RTC_OBJC_EXPORT +@protocol RTCYUVPlanarBuffer + +@property(nonatomic, readonly) int chromaWidth; +@property(nonatomic, readonly) int chromaHeight; +@property(nonatomic, readonly) const uint8_t *dataY; +@property(nonatomic, readonly) const uint8_t *dataU; +@property(nonatomic, readonly) const uint8_t *dataV; +@property(nonatomic, readonly) int strideY; +@property(nonatomic, readonly) int strideU; +@property(nonatomic, readonly) int strideV; + +- (instancetype)initWithWidth:(int)width + height:(int)height + dataY:(const uint8_t *)dataY + dataU:(const uint8_t *)dataU + dataV:(const uint8_t *)dataV; +- (instancetype)initWithWidth:(int)width height:(int)height; +- (instancetype)initWithWidth:(int)width + height:(int)height + strideY:(int)strideY + strideU:(int)strideU + strideV:(int)strideV; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/UIDevice+RTCDevice.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/UIDevice+RTCDevice.h index eb39ea9c..73623758 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/UIDevice+RTCDevice.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/UIDevice+RTCDevice.h @@ -34,6 +34,9 @@ typedef NS_ENUM(NSInteger, RTCDeviceType) { RTCDeviceTypeIPhone8, RTCDeviceTypeIPhone8Plus, RTCDeviceTypeIPhoneX, + RTCDeviceTypeIPhoneXS, + RTCDeviceTypeIPhoneXSMax, + RTCDeviceTypeIPhoneXR, RTCDeviceTypeIPodTouch1G, RTCDeviceTypeIPodTouch2G, RTCDeviceTypeIPodTouch3G, diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/WebRTC.h b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/WebRTC.h index 71079fee..bab2ae06 100644 --- a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/WebRTC.h +++ b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/Headers/WebRTC.h @@ -1,34 +1,62 @@ /* - * Copyright 2020 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. - */ + * Copyright 2020 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 +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import #import -#import -#import #import -#import -#import #import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import #import +#import +#import +#import +#import #import #import #import -#import -#import #import -#import #import #import #import #import -#import -#import #import #import #import @@ -50,19 +78,16 @@ #import #import #import -#import -#import -#import -#import -#import +#import +#import #import #import -#import -#import +#import #import #import #import #import +#import +#import #import #import -#import diff --git a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/WebRTC b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/WebRTC index f9c44b65..33217b76 100755 Binary files a/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/WebRTC and b/lib/WebRTC.xcframework/ios-arm64_armv7/WebRTC.framework/WebRTC differ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSession.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSession.h index 15b63d39..b5bba2f2 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSession.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSession.h @@ -11,7 +11,7 @@ #import #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -27,7 +27,7 @@ extern NSInteger const kRTCAudioSessionErrorConfiguration; // Surfaces AVAudioSession events. WebRTC will listen directly for notifications // from AVAudioSession and handle them before calling these delegate methods, // at which point applications can perform additional processing if required. -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCAudioSessionDelegate @optional @@ -102,7 +102,7 @@ RTC_EXPORT * activation state has changed outside of RTCAudioSession. The current known use * case of this is when CallKit activates the audio session for the application */ -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCAudioSessionActivationDelegate /** Called when the audio session is activated outside of the app by iOS. */ @@ -120,7 +120,7 @@ RTC_EXPORT * RTCAudioSession also coordinates activation so that the audio session is * activated only once. See |setActive:error:|. */ -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCAudioSession : NSObject /** Convenience property to access the AVAudioSession singleton. Callers should @@ -182,6 +182,15 @@ RTC_EXPORT @property(readonly) NSTimeInterval IOBufferDuration; @property(readonly) NSTimeInterval preferredIOBufferDuration; +/** + When YES, calls to -setConfiguration:error: and -setConfiguration:active:error: ignore errors in + configuring the audio session's "preferred" attributes (e.g. preferredInputNumberOfChannels). + Typically, configurations to preferred attributes are optimizations, and ignoring this type of + configuration error allows code flow to continue along the happy path when these optimization are + not available. The default value of this property is NO. + */ +@property(nonatomic) BOOL ignoresPreferredAttributeConfigurationErrors; + /** Default constructor. */ + (instancetype)sharedInstance; - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h index 6a02751d..9f3765da 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h @@ -11,18 +11,18 @@ #import #import -#import "WebRTC/RTCMacros.h" +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -extern const int kRTCAudioSessionPreferredNumberOfChannels; -extern const double kRTCAudioSessionHighPerformanceSampleRate; -extern const double kRTCAudioSessionLowComplexitySampleRate; -extern const double kRTCAudioSessionHighPerformanceIOBufferDuration; -extern const double kRTCAudioSessionLowComplexityIOBufferDuration; +RTC_EXTERN const int kRTCAudioSessionPreferredNumberOfChannels; +RTC_EXTERN const double kRTCAudioSessionHighPerformanceSampleRate; +RTC_EXTERN const double kRTCAudioSessionLowComplexitySampleRate; +RTC_EXTERN const double kRTCAudioSessionHighPerformanceIOBufferDuration; +RTC_EXTERN const double kRTCAudioSessionLowComplexityIOBufferDuration; // Struct to hold configuration values. -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCAudioSessionConfiguration : NSObject @property(nonatomic, strong) NSString *category; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSource.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSource.h index 3db31573..d1030e3f 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSource.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSource.h @@ -10,12 +10,12 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCMediaSource.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCAudioSource : RTCMediaSource - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioTrack.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioTrack.h index b83eede5..501ef92e 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioTrack.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCAudioTrack.h @@ -8,14 +8,14 @@ * be found in the AUTHORS file in the root of the source tree. */ -#import -#import +#import "RTCMacros.h" +#import "RTCMediaStreamTrack.h" NS_ASSUME_NONNULL_BEGIN @class RTCAudioSource; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCAudioTrack : RTCMediaStreamTrack - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCVPixelBuffer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCVPixelBuffer.h new file mode 100644 index 00000000..432a3825 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCVPixelBuffer.h @@ -0,0 +1,52 @@ +/* + * Copyright 2018 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 "RTCMacros.h" +#import "RTCVideoFrameBuffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** RTCVideoFrameBuffer containing a CVPixelBufferRef */ +RTC_OBJC_EXPORT +@interface RTCCVPixelBuffer : NSObject + +@property(nonatomic, readonly) CVPixelBufferRef pixelBuffer; +@property(nonatomic, readonly) int cropX; +@property(nonatomic, readonly) int cropY; +@property(nonatomic, readonly) int cropWidth; +@property(nonatomic, readonly) int cropHeight; + ++ (NSSet *)supportedPixelFormats; + +- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer; +- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer + adaptedWidth:(int)adaptedWidth + adaptedHeight:(int)adaptedHeight + cropWidth:(int)cropWidth + cropHeight:(int)cropHeight + cropX:(int)cropX + cropY:(int)cropY; + +- (BOOL)requiresCropping; +- (BOOL)requiresScalingToWidth:(int)width height:(int)height; +- (int)bufferSizeForCroppingAndScalingToWidth:(int)width height:(int)height; + +/** The minimum size of the |tmpBuffer| must be the number of bytes returned from the + * bufferSizeForCroppingAndScalingToWidth:height: method. + * If that size is 0, the |tmpBuffer| may be nil. + */ +- (BOOL)cropAndScaleTo:(CVPixelBufferRef)outputPixelBuffer + withTempBuffer:(nullable uint8_t *)tmpBuffer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCallbackLogger.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCallbackLogger.h index cdfe17f6..2bce03fe 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCallbackLogger.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCallbackLogger.h @@ -10,23 +10,29 @@ #import -#import -#import +#import "RTCLogging.h" +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN +typedef void (^RTCCallbackLoggerMessageHandler)(NSString *message); +typedef void (^RTCCallbackLoggerMessageAndSeverityHandler)(NSString *message, + RTCLoggingSeverity severity); + // This class intercepts WebRTC logs and forwards them to a registered block. // This class is not threadsafe. -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCCallbackLogger : NSObject // The severity level to capture. The default is kRTCLoggingSeverityInfo. @property(nonatomic, assign) RTCLoggingSeverity severity; -// The callback will be called on the same thread that does the logging, so -// if the logging callback can be slow it may be a good idea to implement -// dispatching to some other queue. -- (void)start:(nullable void (^)(NSString*))callback; +// The callback handler will be called on the same thread that does the +// logging, so if the logging callback can be slow it may be a good idea +// to implement dispatching to some other queue. +- (void)start:(nullable RTCCallbackLoggerMessageHandler)handler; +- (void)startWithMessageAndSeverityHandler: + (nullable RTCCallbackLoggerMessageAndSeverityHandler)handler; - (void)stop; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCameraPreviewView.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCameraPreviewView.h index 2995c9c3..17f8d33d 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCameraPreviewView.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCameraPreviewView.h @@ -11,14 +11,14 @@ #import #import -#import +#import "RTCMacros.h" @class AVCaptureSession; /** RTCCameraPreviewView is a view that renders local video from an * AVCaptureSession. */ -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCCameraPreviewView : UIView /** The capture session being rendered in the view. Capture session diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCameraVideoCapturer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCameraVideoCapturer.h index 61868c54..2b5e56f4 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCameraVideoCapturer.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCameraVideoCapturer.h @@ -11,12 +11,12 @@ #import #import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoCapturer.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT // Camera capture that implements RTCVideoCapturer. Delivers frames to a RTCVideoCapturerDelegate // (usually RTCVideoSource). NS_EXTENSION_UNAVAILABLE_IOS("Camera not available in app extensions.") diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCertificate.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCertificate.h new file mode 100644 index 00000000..50c1ca55 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCertificate.h @@ -0,0 +1,44 @@ +/* + * Copyright 2018 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +RTC_OBJC_EXPORT +@interface RTCCertificate : NSObject + +/** Private key in PEM. */ +@property(nonatomic, readonly, copy) NSString *private_key; + +/** Public key in an x509 cert encoded in PEM. */ +@property(nonatomic, readonly, copy) NSString *certificate; + +/** + * Initialize an RTCCertificate with PEM strings for private_key and certificate. + */ +- (instancetype)initWithPrivateKey:(NSString *)private_key + certificate:(NSString *)certificate NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; + +/** Generate a new certificate for 're' use. + * + * Optional dictionary of parameters. Defaults to KeyType ECDSA if none are + * provided. + * - name: "ECDSA" or "RSASSA-PKCS1-v1_5" + */ ++ (nullable RTCCertificate *)generateCertificateWithParams:(NSDictionary *)params; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCodecSpecificInfo.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCodecSpecificInfo.h new file mode 100644 index 00000000..e2ae4caf --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCodecSpecificInfo.h @@ -0,0 +1,24 @@ +/* + * 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Implement this protocol to pass codec specific info from the encoder. + * Corresponds to webrtc::CodecSpecificInfo. + */ +RTC_OBJC_EXPORT +@protocol RTCCodecSpecificInfo +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCodecSpecificInfoH264.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCodecSpecificInfoH264.h new file mode 100644 index 00000000..ece9570a --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCodecSpecificInfoH264.h @@ -0,0 +1,27 @@ +/* + * 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 "RTCCodecSpecificInfo.h" +#import "RTCMacros.h" + +/** 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_OBJC_EXPORT +@interface RTCCodecSpecificInfoH264 : NSObject + +@property(nonatomic, assign) RTCH264PacketizationMode packetizationMode; + +@end diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCConfiguration.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCConfiguration.h index d274530a..2c32311d 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCConfiguration.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCConfiguration.h @@ -10,7 +10,9 @@ #import -#import +#import "RTCCertificate.h" +#import "RTCCryptoOptions.h" +#import "RTCMacros.h" @class RTCIceServer; @class RTCIntervalRange; @@ -68,12 +70,15 @@ typedef NS_ENUM(NSInteger, RTCSdpSemantics) { NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCConfiguration : NSObject /** An array of Ice Servers available to be used by ICE. */ @property(nonatomic, copy) NSArray *iceServers; +/** An RTCCertificate for 're' use. */ +@property(nonatomic, nullable) RTCCertificate *certificate; + /** Which candidates the ICE agent is allowed to use. The W3C calls it * |iceTransportPolicy|, while in C++ it is called |type|. */ @property(nonatomic, assign) RTCIceTransportPolicy iceTransportPolicy; @@ -87,6 +92,19 @@ RTC_EXPORT @property(nonatomic, assign) RTCCandidateNetworkPolicy candidateNetworkPolicy; @property(nonatomic, assign) RTCContinualGatheringPolicy continualGatheringPolicy; +/** If set to YES, don't gather IPv6 ICE candidates. + * Default is NO. + */ +@property(nonatomic, assign) BOOL disableIPV6; + +/** If set to YES, don't gather IPv6 ICE candidates on Wi-Fi. + * Only intended to be used on specific devices. Certain phones disable IPv6 + * when the screen is turned off and it would be better to just disable the + * IPv6 ICE candidates on Wi-Fi in those cases. + * Default is NO. + */ +@property(nonatomic, assign) BOOL disableIPV6OnWiFi; + /** 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. @@ -122,6 +140,18 @@ RTC_EXPORT */ @property(nonatomic, assign) BOOL shouldPresumeWritableWhenFullyRelayed; +/* This flag is only effective when |continualGatheringPolicy| is + * RTCContinualGatheringPolicyGatherContinually. + * + * If YES, after the ICE transport type is changed such that new types of + * ICE candidates are allowed by the new transport type, e.g. from + * RTCIceTransportPolicyRelay to RTCIceTransportPolicyAll, candidates that + * have been gathered by the ICE transport but not matching the previous + * transport type and as a result not observed by PeerConnectionDelegateAdapter, + * will be surfaced to the delegate. + */ +@property(nonatomic, assign) BOOL shouldSurfaceIceCandidatesOnIceTransportTypeChanged; + /** If set to non-nil, controls the minimal interval between consecutive ICE * check packets. */ @@ -164,6 +194,35 @@ RTC_EXPORT */ @property(nonatomic, assign) BOOL activeResetSrtpParams; +/** + * If MediaTransportFactory is provided in PeerConnectionFactory, this flag informs PeerConnection + * that it should use the MediaTransportInterface. + */ +@property(nonatomic, assign) BOOL useMediaTransport; + +/** + * If MediaTransportFactory is provided in PeerConnectionFactory, this flag informs PeerConnection + * that it should use the MediaTransportInterface for data channels. + */ +@property(nonatomic, assign) BOOL useMediaTransportForDataChannels; + +/** + * Defines advanced optional cryptographic settings related to SRTP and + * frame encryption for native WebRTC. Setting this will overwrite any + * options set through the PeerConnectionFactory (which is deprecated). + */ +@property(nonatomic, nullable) RTCCryptoOptions *cryptoOptions; + +/** + * Time interval between audio RTCP reports. + */ +@property(nonatomic, assign) int rtcpAudioReportIntervalMs; + +/** + * Time interval between video RTCP reports. + */ +@property(nonatomic, assign) int rtcpVideoReportIntervalMs; + - (instancetype)init; @end diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCryptoOptions.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCryptoOptions.h new file mode 100644 index 00000000..b465bb5a --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCCryptoOptions.h @@ -0,0 +1,63 @@ +/* + * Copyright 2018 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Objective-C bindings for webrtc::CryptoOptions. This API had to be flattened + * as Objective-C doesn't support nested structures. + */ +RTC_OBJC_EXPORT +@interface RTCCryptoOptions : NSObject + +/** + * Enable GCM crypto suites from RFC 7714 for SRTP. GCM will only be used + * if both sides enable it + */ +@property(nonatomic, assign) BOOL srtpEnableGcmCryptoSuites; +/** + * If set to true, the (potentially insecure) crypto cipher + * SRTP_AES128_CM_SHA1_32 will be included in the list of supported ciphers + * during negotiation. It will only be used if both peers support it and no + * other ciphers get preferred. + */ +@property(nonatomic, assign) BOOL srtpEnableAes128Sha1_32CryptoCipher; +/** + * If set to true, encrypted RTP header extensions as defined in RFC 6904 + * will be negotiated. They will only be used if both peers support them. + */ +@property(nonatomic, assign) BOOL srtpEnableEncryptedRtpHeaderExtensions; + +/** + * If set all RtpSenders must have an FrameEncryptor attached to them before + * they are allowed to send packets. All RtpReceivers must have a + * FrameDecryptor attached to them before they are able to receive packets. + */ +@property(nonatomic, assign) BOOL sframeRequireFrameEncryption; + +/** + * Initializes CryptoOptions with all possible options set explicitly. This + * is done when converting from a native RTCConfiguration.crypto_options. + */ +- (instancetype)initWithSrtpEnableGcmCryptoSuites:(BOOL)srtpEnableGcmCryptoSuites + srtpEnableAes128Sha1_32CryptoCipher:(BOOL)srtpEnableAes128Sha1_32CryptoCipher + srtpEnableEncryptedRtpHeaderExtensions:(BOOL)srtpEnableEncryptedRtpHeaderExtensions + sframeRequireFrameEncryption:(BOOL)sframeRequireFrameEncryption + NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDataChannel.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDataChannel.h index 4859e04b..0cc2de87 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDataChannel.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDataChannel.h @@ -11,11 +11,11 @@ #import #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCDataBuffer : NSObject /** NSData representation of the underlying buffer. */ @@ -35,7 +35,7 @@ RTC_EXPORT @end @class RTCDataChannel; -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCDataChannelDelegate /** The data channel state changed. */ @@ -59,7 +59,7 @@ typedef NS_ENUM(NSInteger, RTCDataChannelState) { RTCDataChannelStateClosed, }; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCDataChannel : NSObject /** diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDataChannelConfiguration.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDataChannelConfiguration.h index 65ca8f8d..96d33f4d 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDataChannelConfiguration.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDataChannelConfiguration.h @@ -11,11 +11,11 @@ #import #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCDataChannelConfiguration : NSObject /** Set to YES if ordered delivery is required. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDefaultVideoDecoderFactory.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDefaultVideoDecoderFactory.h new file mode 100644 index 00000000..7ca9463a --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDefaultVideoDecoderFactory.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 "RTCMacros.h" +#import "RTCVideoDecoderFactory.h" + +NS_ASSUME_NONNULL_BEGIN + +/** This decoder factory include support for all codecs bundled with WebRTC. If using custom + * codecs, create custom implementations of RTCVideoEncoderFactory and RTCVideoDecoderFactory. + */ +RTC_OBJC_EXPORT +@interface RTCDefaultVideoDecoderFactory : NSObject +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h new file mode 100644 index 00000000..c45e5436 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h @@ -0,0 +1,30 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoEncoderFactory.h" + +NS_ASSUME_NONNULL_BEGIN + +/** This encoder factory include support for all codecs bundled with WebRTC. If using custom + * codecs, create custom implementations of RTCVideoEncoderFactory and RTCVideoDecoderFactory. + */ +RTC_OBJC_EXPORT +@interface RTCDefaultVideoEncoderFactory : NSObject + +@property(nonatomic, retain) RTCVideoCodecInfo *preferredCodec; + ++ (NSArray *)supportedCodecs; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDispatcher.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDispatcher.h index 03387471..4f8359b3 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDispatcher.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDispatcher.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" typedef NS_ENUM(NSInteger, RTCDispatcherQueueType) { // Main dispatcher queue. @@ -25,7 +25,7 @@ typedef NS_ENUM(NSInteger, RTCDispatcherQueueType) { /** Dispatcher that asynchronously dispatches blocks to a specific * shared dispatch queue. */ -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCDispatcher : NSObject - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDtmfSender.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDtmfSender.h index c69af026..5d86d018 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDtmfSender.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCDtmfSender.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCDtmfSender /** diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCEAGLVideoView.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCEAGLVideoView.h index 8fdd3c3c..30764b54 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCEAGLVideoView.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCEAGLVideoView.h @@ -11,23 +11,19 @@ #import #import -#import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoRenderer.h" +#import "RTCVideoViewShading.h" NS_ASSUME_NONNULL_BEGIN @class RTCEAGLVideoView; -RTC_EXPORT -@protocol RTCEAGLVideoViewDelegate -@end - /** * RTCEAGLVideoView is an RTCVideoRenderer which renders video frames in its * bounds using OpenGLES 2.0 or OpenGLES 3.0. */ -RTC_EXPORT +RTC_OBJC_EXPORT NS_EXTENSION_UNAVAILABLE_IOS("Rendering not available in app extensions.") @interface RTCEAGLVideoView : UIView diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCEncodedImage.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCEncodedImage.h new file mode 100644 index 00000000..670c7276 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCEncodedImage.h @@ -0,0 +1,53 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoFrame.h" + +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_OBJC_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 + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFieldTrials.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFieldTrials.h index 3ce94ba9..61443e8b 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFieldTrials.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFieldTrials.h @@ -10,37 +10,23 @@ #import -#import +#import "RTCMacros.h" /** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */ RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweKey; -RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweForVideoKey; RTC_EXTERN NSString * const kRTCFieldTrialAudioForceNoTWCCKey; RTC_EXTERN NSString * const kRTCFieldTrialAudioForceABWENoTWCCKey; RTC_EXTERN NSString * const kRTCFieldTrialSendSideBweWithOverheadKey; RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey; RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key; -RTC_EXTERN NSString * const kRTCFieldTrialImprovedBitrateEstimateKey; RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey; RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey; /** The valid value for field trials above. */ RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue; -/** Use a string returned by RTCFieldTrialMedianSlopeFilterValue as the value. */ -RTC_EXTERN NSString * const kRTCFieldTrialMedianSlopeFilterKey; -RTC_EXTERN NSString *RTCFieldTrialMedianSlopeFilterValue( - size_t windowSize, double thresholdGain); - -/** Use a string returned by RTCFieldTrialTrendlineFilterValue as the value. */ -RTC_EXTERN NSString * const kRTCFieldTrialTrendlineFilterKey; -/** Returns a valid value for kRTCFieldTrialTrendlineFilterKey. */ -RTC_EXTERN NSString *RTCFieldTrialTrendlineFilterValue( - size_t windowSize, double smoothingCoeff, double thresholdGain); - -/** Initialize field trials using a dictionary mapping field trial keys to their values. See above - * for valid keys and values. - * Must be called before any other call into WebRTC. See: - * webrtc/system_wrappers/include/field_trial_default.h +/** Initialize field trials using a dictionary mapping field trial keys to their + * values. See above for valid keys and values. Must be called before any other + * call into WebRTC. See: webrtc/system_wrappers/include/field_trial.h */ RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary *fieldTrials); diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFileLogger.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFileLogger.h index ac8a9104..cd5c1c46 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFileLogger.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFileLogger.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" typedef NS_ENUM(NSUInteger, RTCFileLoggerSeverity) { RTCFileLoggerSeverityVerbose, @@ -33,7 +33,7 @@ NS_ASSUME_NONNULL_BEGIN // are preserved while the middle section is overwritten instead. // For kRTCFileLoggerTypeApp, the oldest log is overwritten. // This class is not threadsafe. -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCFileLogger : NSObject // The severity level to capture. The default is kRTCFileLoggerSeverityInfo. diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFileVideoCapturer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFileVideoCapturer.h index 7b898e49..0782588d 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFileVideoCapturer.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCFileVideoCapturer.h @@ -9,7 +9,8 @@ */ #import -#import + +#import "RTCVideoCapturer.h" NS_ASSUME_NONNULL_BEGIN @@ -23,7 +24,7 @@ typedef void (^RTCFileVideoCapturerErrorBlock)(NSError *error); * * See @c RTCVideoCapturer for more info on capturers. */ -RTC_EXPORT +RTC_OBJC_EXPORT NS_CLASS_AVAILABLE_IOS(10) @interface RTCFileVideoCapturer : RTCVideoCapturer diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecH264.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCH264ProfileLevelId.h similarity index 59% rename from lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecH264.h rename to lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCH264ProfileLevelId.h index d4dbf88f..56b35321 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecH264.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCH264ProfileLevelId.h @@ -10,21 +10,13 @@ #import -#import -#import +#import "RTCMacros.h" -/** 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 +RTC_OBJC_EXPORT extern NSString *const kRTCVideoCodecH264Name; +RTC_OBJC_EXPORT extern NSString *const kRTCLevel31ConstrainedHigh; +RTC_OBJC_EXPORT extern NSString *const kRTCLevel31ConstrainedBaseline; +RTC_OBJC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedHigh; +RTC_OBJC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedBaseline; /** H264 Profiles and levels. */ typedef NS_ENUM(NSUInteger, RTCH264Profile) { @@ -55,7 +47,7 @@ typedef NS_ENUM(NSUInteger, RTCH264Level) { RTCH264Level5_2 = 52 }; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCH264ProfileLevelId : NSObject @property(nonatomic, readonly) RTCH264Profile profile; @@ -66,26 +58,3 @@ RTC_EXPORT - (instancetype)initWithProfile:(RTCH264Profile)profile level:(RTCH264Level)level; @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/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCI420Buffer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCI420Buffer.h new file mode 100644 index 00000000..a6c7e41b --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCI420Buffer.h @@ -0,0 +1,22 @@ +/* + * Copyright 2018 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 "RTCYUVPlanarBuffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Protocol for RTCYUVPlanarBuffers containing I420 data */ +RTC_OBJC_EXPORT +@protocol RTCI420Buffer +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCIceCandidate.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCIceCandidate.h index fb5064e5..3e305cc4 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCIceCandidate.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCIceCandidate.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCIceCandidate : NSObject /** diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCIceServer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCIceServer.h index 727da8ac..ab5fc4a9 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCIceServer.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCIceServer.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" typedef NS_ENUM(NSUInteger, RTCTlsCertPolicy) { RTCTlsCertPolicySecure, @@ -19,7 +19,7 @@ typedef NS_ENUM(NSUInteger, RTCTlsCertPolicy) { NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCIceServer : NSObject /** URI(s) for this server represented as NSStrings. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCLegacyStatsReport.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCLegacyStatsReport.h index 14d996c1..85f2b8fb 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCLegacyStatsReport.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCLegacyStatsReport.h @@ -10,12 +10,12 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN /** This does not currently conform to the spec. */ -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCLegacyStatsReport : NSObject /** Time since 1970-01-01T00:00:00Z in milliseconds. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCLogging.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCLogging.h index b7587851..754945c8 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCLogging.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCLogging.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" // Subset of rtc::LoggingSeverity. typedef NS_ENUM(NSInteger, RTCLoggingSeverity) { @@ -18,6 +18,7 @@ typedef NS_ENUM(NSInteger, RTCLoggingSeverity) { RTCLoggingSeverityInfo, RTCLoggingSeverityWarning, RTCLoggingSeverityError, + RTCLoggingSeverityNone, }; // Wrapper for C++ RTC_LOG(sev) macros. diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMTLVideoView.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMTLVideoView.h index 06154950..36cb144a 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMTLVideoView.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMTLVideoView.h @@ -10,14 +10,9 @@ #import -#import "WebRTC/RTCVideoFrame.h" -#import "WebRTC/RTCVideoRenderer.h" - -// Check if metal is supported in WebRTC. -// NOTE: Currently arm64 == Metal. -#if defined(__aarch64__) -#define RTC_SUPPORTS_METAL -#endif +#import "RTCMacros.h" +#import "RTCVideoFrame.h" +#import "RTCVideoRenderer.h" NS_ASSUME_NONNULL_BEGIN @@ -31,7 +26,7 @@ NS_ASSUME_NONNULL_BEGIN */ NS_CLASS_AVAILABLE_IOS(9) -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMTLVideoView : UIView @property(nonatomic, weak) id delegate; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMacros.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMacros.h index 08cb9382..7f7e64cb 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMacros.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMacros.h @@ -8,15 +8,15 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ -#define SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ +#ifndef SDK_OBJC_BASE_RTCMACROS_H_ +#define SDK_OBJC_BASE_RTCMACROS_H_ -#define RTC_EXPORT __attribute__((visibility("default"))) +#define RTC_OBJC_EXPORT __attribute__((visibility("default"))) #if defined(__cplusplus) -#define RTC_EXTERN extern "C" RTC_EXPORT +#define RTC_EXTERN extern "C" RTC_OBJC_EXPORT #else -#define RTC_EXTERN extern RTC_EXPORT +#define RTC_EXTERN extern RTC_OBJC_EXPORT #endif #ifdef __OBJC__ @@ -25,4 +25,4 @@ #define RTC_FWD_DECL_OBJC_CLASS(classname) typedef struct objc_object classname #endif -#endif // SDK_OBJC_FRAMEWORK_HEADERS_WEBRTC_RTCMACROS_H_ +#endif // SDK_OBJC_BASE_RTCMACROS_H_ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaConstraints.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaConstraints.h index fce08212..5c1a12e3 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaConstraints.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaConstraints.h @@ -10,19 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN /** Constraint keys for media sources. */ -RTC_EXTERN NSString *const kRTCMediaConstraintsMinAspectRatio; -RTC_EXTERN NSString *const kRTCMediaConstraintsMaxAspectRatio; -RTC_EXTERN NSString *const kRTCMediaConstraintsMaxWidth; -RTC_EXTERN NSString *const kRTCMediaConstraintsMinWidth; -RTC_EXTERN NSString *const kRTCMediaConstraintsMaxHeight; -RTC_EXTERN NSString *const kRTCMediaConstraintsMinHeight; -RTC_EXTERN NSString *const kRTCMediaConstraintsMaxFrameRate; -RTC_EXTERN NSString *const kRTCMediaConstraintsMinFrameRate; /** The value for this key should be a base64 encoded string containing * the data from the serialized configuration proto. */ @@ -38,7 +30,7 @@ RTC_EXTERN NSString *const kRTCMediaConstraintsVoiceActivityDetection; RTC_EXTERN NSString *const kRTCMediaConstraintsValueTrue; RTC_EXTERN NSString *const kRTCMediaConstraintsValueFalse; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMediaConstraints : NSObject - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaSource.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaSource.h index 6cfcb7d2..838c7832 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaSource.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaSource.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" typedef NS_ENUM(NSInteger, RTCSourceState) { RTCSourceStateInitializing, @@ -21,7 +21,7 @@ typedef NS_ENUM(NSInteger, RTCSourceState) { NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMediaSource : NSObject /** The current state of the RTCMediaSource. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaStream.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaStream.h index b97960d4..bb9bec69 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaStream.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaStream.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN @class RTCPeerConnectionFactory; @class RTCVideoTrack; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMediaStream : NSObject /** The audio tracks in this stream. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaStreamTrack.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaStreamTrack.h index aee9bdd0..d1ea0f28 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaStreamTrack.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMediaStreamTrack.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" /** * Represents the state of the track. This exposes the same states in C++. @@ -25,7 +25,7 @@ NS_ASSUME_NONNULL_BEGIN RTC_EXTERN NSString *const kRTCMediaStreamTrackKindAudio; RTC_EXTERN NSString *const kRTCMediaStreamTrackKindVideo; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMediaStreamTrack : NSObject /** diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMetrics.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMetrics.h index cc898882..6629fdac 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMetrics.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMetrics.h @@ -10,8 +10,8 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCMetricsSampleInfo.h" /** * Enables gathering of metrics (which can be fetched with diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMetricsSampleInfo.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMetricsSampleInfo.h index f01bea9b..cd38ab9a 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMetricsSampleInfo.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMetricsSampleInfo.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCMetricsSampleInfo : NSObject /** diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMutableI420Buffer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMutableI420Buffer.h new file mode 100644 index 00000000..098fb9a6 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMutableI420Buffer.h @@ -0,0 +1,23 @@ +/* + * Copyright 2018 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 "RTCI420Buffer.h" +#import "RTCMutableYUVPlanarBuffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Extension of the I420 buffer with mutable data access */ +RTC_OBJC_EXPORT +@protocol RTCMutableI420Buffer +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h new file mode 100644 index 00000000..00dfcd94 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h @@ -0,0 +1,27 @@ +/* + * Copyright 2018 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 "RTCYUVPlanarBuffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Extension of the YUV planar data buffer with mutable data access */ +RTC_OBJC_EXPORT +@protocol RTCMutableYUVPlanarBuffer + +@property(nonatomic, readonly) uint8_t *mutableDataY; +@property(nonatomic, readonly) uint8_t *mutableDataU; +@property(nonatomic, readonly) uint8_t *mutableDataV; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCNativeI420Buffer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCNativeI420Buffer.h new file mode 100644 index 00000000..9a904f53 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCNativeI420Buffer.h @@ -0,0 +1,23 @@ +/* + * Copyright 2018 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 "RTCI420Buffer.h" +#import "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** RTCI420Buffer implements the RTCI420Buffer protocol */ +RTC_OBJC_EXPORT +@interface RTCI420Buffer : NSObject +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCNativeMutableI420Buffer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCNativeMutableI420Buffer.h new file mode 100644 index 00000000..6cd51104 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCNativeMutableI420Buffer.h @@ -0,0 +1,24 @@ +/* + * Copyright 2018 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 "RTCMacros.h" +#import "RTCMutableI420Buffer.h" +#import "RTCNativeI420Buffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Mutable version of RTCI420Buffer */ +RTC_OBJC_EXPORT +@interface RTCMutableI420Buffer : RTCI420Buffer +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnection.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnection.h index 94036cc7..012295c2 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnection.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnection.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" @class RTCConfiguration; @class RTCDataChannel; @@ -25,6 +25,7 @@ @class RTCRtpTransceiver; @class RTCRtpTransceiverInit; @class RTCSessionDescription; +@class RTCStatisticsReport; @class RTCLegacyStatsReport; typedef NS_ENUM(NSInteger, RTCRtpMediaType); @@ -57,6 +58,16 @@ typedef NS_ENUM(NSInteger, RTCIceConnectionState) { RTCIceConnectionStateCount, }; +/** Represents the combined ice+dtls connection state of the peer connection. */ +typedef NS_ENUM(NSInteger, RTCPeerConnectionState) { + RTCPeerConnectionStateNew, + RTCPeerConnectionStateConnecting, + RTCPeerConnectionStateConnected, + RTCPeerConnectionStateDisconnected, + RTCPeerConnectionStateFailed, + RTCPeerConnectionStateClosed, +}; + /** Represents the ice gathering state of the peer connection. */ typedef NS_ENUM(NSInteger, RTCIceGatheringState) { RTCIceGatheringStateNew, @@ -72,7 +83,7 @@ typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) { @class RTCPeerConnection; -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCPeerConnectionDelegate /** Called when the SignalingState changed. */ @@ -115,18 +126,37 @@ RTC_EXPORT * This is only called with RTCSdpSemanticsUnifiedPlan specified. */ @optional +/** Called any time the IceConnectionState changes following standardized + * transition. */ +- (void)peerConnection:(RTCPeerConnection *)peerConnection + didChangeStandardizedIceConnectionState:(RTCIceConnectionState)newState; + +/** Called any time the PeerConnectionState changes. */ +- (void)peerConnection:(RTCPeerConnection *)peerConnection + didChangeConnectionState:(RTCPeerConnectionState)newState; + - (void)peerConnection:(RTCPeerConnection *)peerConnection didStartReceivingOnTransceiver:(RTCRtpTransceiver *)transceiver; /** Called when a receiver and its track are created. */ -@optional - (void)peerConnection:(RTCPeerConnection *)peerConnection didAddReceiver:(RTCRtpReceiver *)rtpReceiver streams:(NSArray *)mediaStreams; +/** Called when the receiver and its track are removed. */ +- (void)peerConnection:(RTCPeerConnection *)peerConnection + didRemoveReceiver:(RTCRtpReceiver *)rtpReceiver; + +/** Called when the selected ICE candidate pair is changed. */ +- (void)peerConnection:(RTCPeerConnection *)peerConnection + didChangeLocalCandidate:(RTCIceCandidate *)local + remoteCandidate:(RTCIceCandidate *)remote + lastReceivedMs:(int)lastDataReceivedMs + changeReason:(NSString *)reason; + @end -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCPeerConnection : NSObject /** The object that will be notifed about events such as state changes and @@ -141,6 +171,7 @@ RTC_EXPORT @property(nonatomic, readonly, nullable) RTCSessionDescription *remoteDescription; @property(nonatomic, readonly) RTCSignalingState signalingState; @property(nonatomic, readonly) RTCIceConnectionState iceConnectionState; +@property(nonatomic, readonly) RTCPeerConnectionState connectionState; @property(nonatomic, readonly) RTCIceGatheringState iceGatheringState; @property(nonatomic, readonly, copy) RTCConfiguration *configuration; @@ -298,6 +329,8 @@ RTC_EXPORT @end +typedef void (^RTCStatisticsCompletionHandler)(RTCStatisticsReport *); + @interface RTCPeerConnection (Stats) /** Gather stats for the given RTCMediaStreamTrack. If |mediaStreamTrack| is nil @@ -307,6 +340,21 @@ RTC_EXPORT statsOutputLevel:(RTCStatsOutputLevel)statsOutputLevel completionHandler:(nullable void (^)(NSArray *stats))completionHandler; +/** Gather statistic through the v2 statistics API. */ +- (void)statisticsWithCompletionHandler:(RTCStatisticsCompletionHandler)completionHandler; + +/** Spec-compliant getStats() performing the stats selection algorithm with the + * sender. + */ +- (void)statisticsForSender:(RTCRtpSender *)sender + completionHandler:(RTCStatisticsCompletionHandler)completionHandler; + +/** Spec-compliant getStats() performing the stats selection algorithm with the + * receiver. + */ +- (void)statisticsForReceiver:(RTCRtpReceiver *)receiver + completionHandler:(RTCStatisticsCompletionHandler)completionHandler; + @end NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnectionFactory.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnectionFactory.h index 7f7b7e6c..c808218b 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnectionFactory.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnectionFactory.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN @protocol RTCVideoDecoderFactory; @protocol RTCVideoEncoderFactory; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCPeerConnectionFactory : NSObject /* Initialize object with default H264 video encoder/decoder factories */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h index 33faa1e6..4bec8695 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCPeerConnectionFactoryOptions : NSObject @property(nonatomic, assign) BOOL disableEncryption; @@ -31,8 +31,6 @@ RTC_EXPORT @property(nonatomic, assign) BOOL ignoreEthernetNetworkAdapter; -@property(nonatomic, assign) BOOL enableAes128Sha1_32CryptoCipher; - - (instancetype)init NS_DESIGNATED_INITIALIZER; @end diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtcpParameters.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtcpParameters.h index 54b254c3..5c265806 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtcpParameters.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtcpParameters.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtcpParameters : NSObject /** The Canonical Name used by RTCP. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpCodecParameters.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpCodecParameters.h index bb9aa905..5d3cac5c 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpCodecParameters.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpCodecParameters.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -32,7 +32,7 @@ RTC_EXTERN const NSString *const kRTCVp9CodecName; RTC_EXTERN const NSString *const kRTCH264CodecName; /** Defined in http://w3c.github.io/webrtc-pc/#idl-def-RTCRtpCodecParameters */ -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpCodecParameters : NSObject /** The RTP payload type. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpEncodingParameters.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpEncodingParameters.h index 5ba01764..16eabf9b 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpEncodingParameters.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpEncodingParameters.h @@ -10,13 +10,16 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpEncodingParameters : NSObject +/** The idenfifier for the encoding layer. This is used in simulcast. */ +@property(nonatomic, copy, nullable) NSString *rid; + /** Controls whether the encoding is currently transmitted. */ @property(nonatomic, assign) BOOL isActive; @@ -27,14 +30,30 @@ RTC_EXPORT /** The minimum bitrate to use for the encoding, or nil if there is no * limit. - * - * Not implemented. */ @property(nonatomic, copy, nullable) NSNumber *minBitrateBps; +/** The maximum framerate to use for the encoding, or nil if there is no + * limit. + */ +@property(nonatomic, copy, nullable) NSNumber *maxFramerate; + +/** The requested number of temporal layers to use for the encoding, or nil + * if the default should be used. + */ +@property(nonatomic, copy, nullable) NSNumber *numTemporalLayers; + +/** Scale the width and height down by this factor for video. If nil, + * implementation default scaling factor will be used. + */ +@property(nonatomic, copy, nullable) NSNumber *scaleResolutionDownBy; + /** The SSRC being used by this encoding. */ @property(nonatomic, readonly, nullable) NSNumber *ssrc; +/** The relative DiffServ Code Point priority. */ +@property(nonatomic, assign) double networkPriority; + - (instancetype)init NS_DESIGNATED_INITIALIZER; @end diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpFragmentationHeader.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpFragmentationHeader.h new file mode 100644 index 00000000..2e26b08b --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpFragmentationHeader.h @@ -0,0 +1,28 @@ +/* + * 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Information for header. Corresponds to webrtc::RTPFragmentationHeader. */ +RTC_OBJC_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 + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpHeaderExtension.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpHeaderExtension.h index b89eb063..32114499 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpHeaderExtension.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpHeaderExtension.h @@ -10,11 +10,11 @@ #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpHeaderExtension : NSObject /** The URI of the RTP header extension, as defined in RFC5285. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpParameters.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpParameters.h index 8f099348..c1f2d5ce 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpParameters.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpParameters.h @@ -10,15 +10,15 @@ #import -#import -#import -#import -#import -#import +#import "RTCMacros.h" +#import "RTCRtcpParameters.h" +#import "RTCRtpCodecParameters.h" +#import "RTCRtpEncodingParameters.h" +#import "RTCRtpHeaderExtension.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpParameters : NSObject /** A unique identifier for the last set of parameters applied. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpReceiver.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpReceiver.h index 6156db9f..7a7dacea 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpReceiver.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpReceiver.h @@ -10,9 +10,9 @@ #import -#import -#import -#import +#import "RTCMacros.h" +#import "RTCMediaStreamTrack.h" +#import "RTCRtpParameters.h" NS_ASSUME_NONNULL_BEGIN @@ -25,7 +25,7 @@ typedef NS_ENUM(NSInteger, RTCRtpMediaType) { @class RTCRtpReceiver; -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCRtpReceiverDelegate /** Called when the first RTP packet is received. @@ -45,7 +45,7 @@ RTC_EXPORT @end -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCRtpReceiver /** A unique identifier for this receiver. */ @@ -72,7 +72,7 @@ RTC_EXPORT @end -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpReceiver : NSObject - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpSender.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpSender.h index f6e91250..c03b4cc8 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpSender.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpSender.h @@ -10,14 +10,14 @@ #import -#import -#import -#import -#import +#import "RTCDtmfSender.h" +#import "RTCMacros.h" +#import "RTCMediaStreamTrack.h" +#import "RTCRtpParameters.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCRtpSender /** A unique identifier for this sender. */ @@ -35,12 +35,15 @@ RTC_EXPORT */ @property(nonatomic, copy, nullable) RTCMediaStreamTrack *track; +/** IDs of streams associated with the RTP sender */ +@property(nonatomic, copy) NSArray *streamIds; + /** The RTCDtmfSender accociated with the RTP sender. */ @property(nonatomic, readonly, nullable) id dtmfSender; @end -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpSender : NSObject - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpTransceiver.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpTransceiver.h index db0fd1c6..8ef3fc1d 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpTransceiver.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCRtpTransceiver.h @@ -10,9 +10,9 @@ #import -#import -#import -#import +#import "RTCMacros.h" +#import "RTCRtpReceiver.h" +#import "RTCRtpSender.h" NS_ASSUME_NONNULL_BEGIN @@ -28,6 +28,7 @@ typedef NS_ENUM(NSInteger, RTCRtpTransceiverDirection) { * RTCPeerConnection.addTransceiver. * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiverinit */ +RTC_OBJC_EXPORT @interface RTCRtpTransceiverInit : NSObject /** Direction of the RTCRtpTransceiver. See RTCRtpTransceiver.direction. */ @@ -56,7 +57,7 @@ typedef NS_ENUM(NSInteger, RTCRtpTransceiverDirection) { * WebRTC specification for RTCRtpTransceiver, the JavaScript analog: * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver */ -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCRtpTransceiver /** Media type of the transceiver. The sender and receiver will also have this @@ -118,7 +119,7 @@ RTC_EXPORT @end -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCRtpTransceiver : NSObject - (instancetype)init NS_UNAVAILABLE; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCSSLAdapter.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCSSLAdapter.h index a0da827c..f68bc5e9 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCSSLAdapter.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCSSLAdapter.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" /** * Initialize and clean up the SSL library. Failure is fatal. These call the diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCSessionDescription.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCSessionDescription.h index 7db53da8..b9bcab1a 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCSessionDescription.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCSessionDescription.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" /** * Represents the session description type. This exposes the same types that are @@ -24,7 +24,7 @@ typedef NS_ENUM(NSInteger, RTCSdpType) { NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCSessionDescription : NSObject /** The type of session description. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCTracing.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCTracing.h index 899a5700..5c66e5a6 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCTracing.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCTracing.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCMacros.h" RTC_EXTERN void RTCSetupInternalTracer(void); /** Starts capture to specified file. Must be a valid writable path. diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCapturer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCapturer.h index f0a2eaa1..52126276 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCapturer.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCapturer.h @@ -8,18 +8,20 @@ * be found in the AUTHORS file in the root of the source tree. */ -#import +#import "RTCVideoFrame.h" + +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @class RTCVideoCapturer; -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCVideoCapturerDelegate - (void)capturer:(RTCVideoCapturer *)capturer didCaptureVideoFrame:(RTCVideoFrame *)frame; @end -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoCapturer : NSObject @property(nonatomic, weak) id delegate; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodec.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodec.h deleted file mode 100644 index 5bc6d66d..00000000 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodec.h +++ /dev/null @@ -1,186 +0,0 @@ -/* - * 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 - -RTC_EXPORT extern NSString *const kRTCVideoCodecVp8Name; -RTC_EXPORT extern NSString *const kRTCVideoCodecVp9Name; -RTC_EXPORT extern NSString *const kRTCVideoCodecH264Name; -RTC_EXPORT extern NSString *const kRTCLevel31ConstrainedHigh; -RTC_EXPORT extern NSString *const kRTCLevel31ConstrainedBaseline; -RTC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedHigh; -RTC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedBaseline; - -/** 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 webrtc::SdpVideoFormat. */ -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:(nullable 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 - DEPRECATED_MSG_ATTRIBUTE("use startDecodeWithNumberOfCores: instead"); -- (NSInteger)releaseDecoder; -- (NSInteger)decode:(RTCEncodedImage *)encodedImage - missingFrames:(BOOL)missingFrames - codecSpecificInfo:(nullable id)info - renderTimeMs:(int64_t)renderTimeMs; -- (NSString *)implementationName; - -// TODO(andersc): Make non-optional when `startDecodeWithSettings:numberOfCores:` is removed. -@optional -- (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; - -@end - -NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecConstants.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecConstants.h new file mode 100644 index 00000000..03f36e22 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecConstants.h @@ -0,0 +1,16 @@ +/* + * Copyright 2018 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 "RTCMacros.h" + +RTC_OBJC_EXPORT extern NSString* const kRTCVideoCodecVp8Name; +RTC_OBJC_EXPORT extern NSString* const kRTCVideoCodecVp9Name; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecFactory.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecFactory.h deleted file mode 100644 index 0ef2c8a6..00000000 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecFactory.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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 - -- (nullable id)createEncoder:(RTCVideoCodecInfo *)info; -- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? - -@end - -/** RTCVideoDecoderFactory is an Objective-C version of webrtc::VideoDecoderFactory. */ -RTC_EXPORT -@protocol RTCVideoDecoderFactory - -- (nullable id)createDecoder:(RTCVideoCodecInfo *)info; -- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? - -@end - -#pragma mark - Default factories - -/** These codec factories include support for all codecs bundled with WebRTC. If using custom - * codecs, create custom implementations of RTCVideoEncoderFactory and RTCVideoDecoderFactory. - */ -RTC_EXPORT -@interface RTCDefaultVideoEncoderFactory : NSObject - -@property(nonatomic, retain) RTCVideoCodecInfo *preferredCodec; - -+ (NSArray *)supportedCodecs; - -@end - -RTC_EXPORT -@interface RTCDefaultVideoDecoderFactory : NSObject -@end - -NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecInfo.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecInfo.h new file mode 100644 index 00000000..2162caaa --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecInfo.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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Holds information to identify a codec. Corresponds to webrtc::SdpVideoFormat. */ +RTC_OBJC_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 + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoder.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoder.h new file mode 100644 index 00000000..8077c698 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoder.h @@ -0,0 +1,39 @@ +/* + * 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 "RTCCodecSpecificInfo.h" +#import "RTCEncodedImage.h" +#import "RTCMacros.h" +#import "RTCVideoEncoderSettings.h" +#import "RTCVideoFrame.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Callback block for decoder. */ +typedef void (^RTCVideoDecoderCallback)(RTCVideoFrame *frame); + +/** Protocol for decoder implementations. */ +RTC_OBJC_EXPORT +@protocol RTCVideoDecoder + +- (void)setCallback:(RTCVideoDecoderCallback)callback; +- (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; +- (NSInteger)releaseDecoder; +- (NSInteger)decode:(RTCEncodedImage *)encodedImage + missingFrames:(BOOL)missingFrames + codecSpecificInfo:(nullable id)info + renderTimeMs:(int64_t)renderTimeMs; +- (NSString *)implementationName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderFactory.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderFactory.h new file mode 100644 index 00000000..3e24153b --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderFactory.h @@ -0,0 +1,28 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoCodecInfo.h" +#import "RTCVideoDecoder.h" + +NS_ASSUME_NONNULL_BEGIN + +/** RTCVideoDecoderFactory is an Objective-C version of webrtc::VideoDecoderFactory. */ +RTC_OBJC_EXPORT +@protocol RTCVideoDecoderFactory + +- (nullable id)createDecoder:(RTCVideoCodecInfo *)info; +- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderFactoryH264.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderFactoryH264.h new file mode 100644 index 00000000..4fcff1df --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderFactoryH264.h @@ -0,0 +1,18 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoDecoderFactory.h" + +RTC_OBJC_EXPORT +@interface RTCVideoDecoderFactoryH264 : NSObject +@end diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderH264.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderH264.h new file mode 100644 index 00000000..b8602762 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderH264.h @@ -0,0 +1,18 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoDecoder.h" + +RTC_OBJC_EXPORT +@interface RTCVideoDecoderH264 : NSObject +@end diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderVP8.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderVP8.h index 962b6312..00786dc5 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderVP8.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderVP8.h @@ -10,10 +10,10 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoDecoder.h" -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoDecoderVP8 : NSObject /* This returns a VP8 decoder that can be returned from a RTCVideoDecoderFactory injected into diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderVP9.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderVP9.h index faf66ef0..b74c1ef9 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderVP9.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderVP9.h @@ -10,10 +10,10 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoDecoder.h" -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoDecoderVP9 : NSObject /* This returns a VP9 decoder that can be returned from a RTCVideoDecoderFactory injected into diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoder.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoder.h new file mode 100644 index 00000000..c5257674 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoder.h @@ -0,0 +1,49 @@ +/* + * 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 "RTCCodecSpecificInfo.h" +#import "RTCEncodedImage.h" +#import "RTCMacros.h" +#import "RTCRtpFragmentationHeader.h" +#import "RTCVideoEncoderQpThresholds.h" +#import "RTCVideoEncoderSettings.h" +#import "RTCVideoFrame.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Callback block for encoder. */ +typedef BOOL (^RTCVideoEncoderCallback)(RTCEncodedImage *frame, + id info, + RTCRtpFragmentationHeader *header); + +/** Protocol for encoder implementations. */ +RTC_OBJC_EXPORT +@protocol RTCVideoEncoder + +- (void)setCallback:(RTCVideoEncoderCallback)callback; +- (NSInteger)startEncodeWithSettings:(RTCVideoEncoderSettings *)settings + numberOfCores:(int)numberOfCores; +- (NSInteger)releaseEncoder; +- (NSInteger)encode:(RTCVideoFrame *)frame + codecSpecificInfo:(nullable 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. */ +- (nullable RTCVideoEncoderQpThresholds *)scalingSettings; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderFactory.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderFactory.h new file mode 100644 index 00000000..3291797d --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderFactory.h @@ -0,0 +1,31 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoCodecInfo.h" +#import "RTCVideoEncoder.h" + +NS_ASSUME_NONNULL_BEGIN + +/** RTCVideoEncoderFactory is an Objective-C version of webrtc::VideoEncoderFactory. */ +RTC_OBJC_EXPORT +@protocol RTCVideoEncoderFactory + +- (nullable id)createEncoder:(RTCVideoCodecInfo *)info; +- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? + +@optional +- (NSArray *)implementations; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderFactoryH264.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderFactoryH264.h new file mode 100644 index 00000000..c64405e4 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderFactoryH264.h @@ -0,0 +1,18 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoEncoderFactory.h" + +RTC_OBJC_EXPORT +@interface RTCVideoEncoderFactoryH264 : NSObject +@end diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderH264.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderH264.h new file mode 100644 index 00000000..a9c05580 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderH264.h @@ -0,0 +1,22 @@ +/* + * 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 "RTCMacros.h" +#import "RTCVideoCodecInfo.h" +#import "RTCVideoEncoder.h" + +RTC_OBJC_EXPORT +@interface RTCVideoEncoderH264 : NSObject + +- (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo; + +@end diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderQpThresholds.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderQpThresholds.h new file mode 100644 index 00000000..2b48f45c --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderQpThresholds.h @@ -0,0 +1,28 @@ +/* + * 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** QP thresholds for encoder. Corresponds to webrtc::VideoEncoder::QpThresholds. */ +RTC_OBJC_EXPORT +@interface RTCVideoEncoderQpThresholds : NSObject + +- (instancetype)initWithThresholdsLow:(NSInteger)low high:(NSInteger)high; + +@property(nonatomic, readonly) NSInteger low; +@property(nonatomic, readonly) NSInteger high; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderSettings.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderSettings.h new file mode 100644 index 00000000..a9403f8d --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderSettings.h @@ -0,0 +1,42 @@ +/* + * 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 "RTCMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, RTCVideoCodecMode) { + RTCVideoCodecModeRealtimeVideo, + RTCVideoCodecModeScreensharing, +}; + +/** Settings for encoder. Corresponds to webrtc::VideoCodec. */ +RTC_OBJC_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) uint32_t maxFramerate; + +@property(nonatomic, assign) unsigned int qpMax; +@property(nonatomic, assign) RTCVideoCodecMode mode; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderVP8.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderVP8.h index e63b24dd..8d87a898 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderVP8.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderVP8.h @@ -10,10 +10,10 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoEncoder.h" -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoEncoderVP8 : NSObject /* This returns a VP8 encoder that can be returned from a RTCVideoEncoderFactory injected into diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderVP9.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderVP9.h index cef8c82e..9efea4be 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderVP9.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderVP9.h @@ -10,10 +10,10 @@ #import -#import -#import +#import "RTCMacros.h" +#import "RTCVideoEncoder.h" -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoEncoderVP9 : NSObject /* This returns a VP9 encoder that can be returned from a RTCVideoEncoderFactory injected into diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrame.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrame.h index cfccfa9e..9aca7433 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrame.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrame.h @@ -11,7 +11,7 @@ #import #import -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -25,7 +25,7 @@ typedef NS_ENUM(NSInteger, RTCVideoRotation) { @protocol RTCVideoFrameBuffer; // RTCVideoFrame is an ObjectiveC version of webrtc::VideoFrame. -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoFrame : NSObject /** Width without rotation applied. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrameBuffer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrameBuffer.h index d590a5f7..bb9e6fba 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrameBuffer.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrameBuffer.h @@ -9,14 +9,15 @@ */ #import -#import + +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @protocol RTCI420Buffer; // RTCVideoFrameBuffer is an ObjectiveC version of webrtc::VideoFrameBuffer. -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCVideoFrameBuffer @property(nonatomic, readonly) int width; @@ -26,91 +27,4 @@ RTC_EXPORT @end -/** Protocol for RTCVideoFrameBuffers containing YUV planar data. */ -@protocol RTCYUVPlanarBuffer - -@property(nonatomic, readonly) int chromaWidth; -@property(nonatomic, readonly) int chromaHeight; -@property(nonatomic, readonly) const uint8_t *dataY; -@property(nonatomic, readonly) const uint8_t *dataU; -@property(nonatomic, readonly) const uint8_t *dataV; -@property(nonatomic, readonly) int strideY; -@property(nonatomic, readonly) int strideU; -@property(nonatomic, readonly) int strideV; - -- (instancetype)initWithWidth:(int)width - height:(int)height - dataY:(const uint8_t *)dataY - dataU:(const uint8_t *)dataU - dataV:(const uint8_t *)dataV; -- (instancetype)initWithWidth:(int)width height:(int)height; -- (instancetype)initWithWidth:(int)width - height:(int)height - strideY:(int)strideY - strideU:(int)strideU - strideV:(int)strideV; - -@end - -/** Extension of the YUV planar data buffer with mutable data access */ -@protocol RTCMutableYUVPlanarBuffer - -@property(nonatomic, readonly) uint8_t *mutableDataY; -@property(nonatomic, readonly) uint8_t *mutableDataU; -@property(nonatomic, readonly) uint8_t *mutableDataV; - -@end - -/** Protocol for RTCYUVPlanarBuffers containing I420 data */ -@protocol RTCI420Buffer -@end - -/** Extension of the I420 buffer with mutable data access */ -@protocol RTCMutableI420Buffer -@end - -/** RTCVideoFrameBuffer containing a CVPixelBufferRef */ -RTC_EXPORT -@interface RTCCVPixelBuffer : NSObject - -@property(nonatomic, readonly) CVPixelBufferRef pixelBuffer; -@property(nonatomic, readonly) int cropX; -@property(nonatomic, readonly) int cropY; -@property(nonatomic, readonly) int cropWidth; -@property(nonatomic, readonly) int cropHeight; - -+ (NSSet *)supportedPixelFormats; - -- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer; -- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer - adaptedWidth:(int)adaptedWidth - adaptedHeight:(int)adaptedHeight - cropWidth:(int)cropWidth - cropHeight:(int)cropHeight - cropX:(int)cropX - cropY:(int)cropY; - -- (BOOL)requiresCropping; -- (BOOL)requiresScalingToWidth:(int)width height:(int)height; -- (int)bufferSizeForCroppingAndScalingToWidth:(int)width height:(int)height; - -/** The minimum size of the |tmpBuffer| must be the number of bytes returned from the - * bufferSizeForCroppingAndScalingToWidth:height: method. - * If that size is 0, the |tmpBuffer| may be nil. - */ -- (BOOL)cropAndScaleTo:(CVPixelBufferRef)outputPixelBuffer - withTempBuffer:(nullable uint8_t *)tmpBuffer; - -@end - -/** RTCI420Buffer implements the RTCI420Buffer protocol */ -RTC_EXPORT -@interface RTCI420Buffer : NSObject -@end - -/** Mutable version of RTCI420Buffer */ -RTC_EXPORT -@interface RTCMutableI420Buffer : RTCI420Buffer -@end - NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoRenderer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoRenderer.h index 7d91f2f1..7b359a35 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoRenderer.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoRenderer.h @@ -13,13 +13,13 @@ #import #endif -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @class RTCVideoFrame; -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCVideoRenderer /** The size of the frame. */ @@ -30,7 +30,7 @@ RTC_EXPORT @end -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCVideoViewDelegate - (void)videoView:(id)videoView didChangeVideoSize:(CGSize)size; diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoSource.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoSource.h index a9ebc06c..ec8a45c1 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoSource.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoSource.h @@ -10,13 +10,13 @@ #import -#import -#import -#import +#import "RTCMacros.h" +#import "RTCMediaSource.h" +#import "RTCVideoCapturer.h" NS_ASSUME_NONNULL_BEGIN -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoSource : RTCMediaSource diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoTrack.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoTrack.h index 899d7c34..b946889e 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoTrack.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoTrack.h @@ -8,9 +8,9 @@ * be found in the AUTHORS file in the root of the source tree. */ -#import +#import "RTCMediaStreamTrack.h" -#import +#import "RTCMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN @class RTCPeerConnectionFactory; @class RTCVideoSource; -RTC_EXPORT +RTC_OBJC_EXPORT @interface RTCVideoTrack : RTCMediaStreamTrack /** The video source for this video track. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoViewShading.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoViewShading.h index 6f3ece94..6876cc3a 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoViewShading.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCVideoViewShading.h @@ -10,7 +10,7 @@ #import -#import +#import "RTCVideoFrame.h" NS_ASSUME_NONNULL_BEGIN @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN * RTCVideoViewShading provides a way for apps to customize the OpenGL(ES) shaders used in * rendering for the RTCEAGLVideoView/RTCNSGLVideoView. */ -RTC_EXPORT +RTC_OBJC_EXPORT @protocol RTCVideoViewShading /** Callback for I420 frames. Each plane is given as a texture. */ diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCYUVPlanarBuffer.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCYUVPlanarBuffer.h new file mode 100644 index 00000000..8ceb66c9 --- /dev/null +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/RTCYUVPlanarBuffer.h @@ -0,0 +1,45 @@ +/* + * Copyright 2018 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 "RTCMacros.h" +#import "RTCVideoFrameBuffer.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Protocol for RTCVideoFrameBuffers containing YUV planar data. */ +RTC_OBJC_EXPORT +@protocol RTCYUVPlanarBuffer + +@property(nonatomic, readonly) int chromaWidth; +@property(nonatomic, readonly) int chromaHeight; +@property(nonatomic, readonly) const uint8_t *dataY; +@property(nonatomic, readonly) const uint8_t *dataU; +@property(nonatomic, readonly) const uint8_t *dataV; +@property(nonatomic, readonly) int strideY; +@property(nonatomic, readonly) int strideU; +@property(nonatomic, readonly) int strideV; + +- (instancetype)initWithWidth:(int)width + height:(int)height + dataY:(const uint8_t *)dataY + dataU:(const uint8_t *)dataU + dataV:(const uint8_t *)dataV; +- (instancetype)initWithWidth:(int)width height:(int)height; +- (instancetype)initWithWidth:(int)width + height:(int)height + strideY:(int)strideY + strideU:(int)strideU + strideV:(int)strideV; + +@end + +NS_ASSUME_NONNULL_END diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/UIDevice+RTCDevice.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/UIDevice+RTCDevice.h index eb39ea9c..73623758 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/UIDevice+RTCDevice.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/UIDevice+RTCDevice.h @@ -34,6 +34,9 @@ typedef NS_ENUM(NSInteger, RTCDeviceType) { RTCDeviceTypeIPhone8, RTCDeviceTypeIPhone8Plus, RTCDeviceTypeIPhoneX, + RTCDeviceTypeIPhoneXS, + RTCDeviceTypeIPhoneXSMax, + RTCDeviceTypeIPhoneXR, RTCDeviceTypeIPodTouch1G, RTCDeviceTypeIPodTouch2G, RTCDeviceTypeIPodTouch3G, diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/WebRTC.h b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/WebRTC.h index 71079fee..bab2ae06 100644 --- a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/WebRTC.h +++ b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/Headers/WebRTC.h @@ -1,34 +1,62 @@ /* - * Copyright 2020 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. - */ + * Copyright 2020 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 +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import #import -#import -#import #import -#import -#import #import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import #import +#import +#import +#import +#import #import #import #import -#import -#import #import -#import #import #import #import #import -#import -#import #import #import #import @@ -50,19 +78,16 @@ #import #import #import -#import -#import -#import -#import -#import +#import +#import #import #import -#import -#import +#import #import #import #import #import +#import +#import #import #import -#import diff --git a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/WebRTC b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/WebRTC index 620dbf03..d6f9a089 100755 Binary files a/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/WebRTC and b/lib/WebRTC.xcframework/ios-i386_x86_64-simulator/WebRTC.framework/WebRTC differ diff --git a/package-lock.json b/package-lock.json index 05092019..09774512 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cordova-plugin-iosrtc", - "version": "6.0.19", + "version": "7.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 0161ac66..37b49067 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cordova-plugin-iosrtc", - "version": "6.0.19", + "version": "7.0.0", "description": "Cordova iOS plugin exposing the full WebRTC W3C JavaScript APIs", "author": "IƱaki Baz Castillo (https://inakibaz.me)", "contributors": [ diff --git a/plugin.xml b/plugin.xml index cdeb3294..fe3b73b9 100644 --- a/plugin.xml +++ b/plugin.xml @@ -1,7 +1,7 @@ + version="7.0.0"> iosrtc Cordova iOS plugin exposing the full WebRTC W3C JavaScript APIs diff --git a/src/cordova-plugin-iosrtc-Bridging-Header.h b/src/cordova-plugin-iosrtc-Bridging-Header.h index 559e2bf9..433722db 100644 --- a/src/cordova-plugin-iosrtc-Bridging-Header.h +++ b/src/cordova-plugin-iosrtc-Bridging-Header.h @@ -23,3 +23,8 @@ #import #import #import + +// Expose RTCEAGLVideoViewDelegate to Swift +RTC_OBJC_EXPORT +@protocol RTCEAGLVideoViewDelegate +@end diff --git a/www/cordova-plugin-iosrtc.js b/www/cordova-plugin-iosrtc.js index 71edc817..08d0f03d 100644 --- a/www/cordova-plugin-iosrtc.js +++ b/www/cordova-plugin-iosrtc.js @@ -1,5 +1,5 @@ /* - * cordova-plugin-iosrtc v6.0.19 + * cordova-plugin-iosrtc v7.0.0 * Cordova iOS plugin exposing the full WebRTC W3C JavaScript APIs * Copyright 2015-2017 eFace2Face, Inc. (https://eface2face.com) * Copyright 2015-2019 BasqueVoIPMafia (https://github.com/BasqueVoIPMafia)