Removal dependency on OpenSSL using SwiftPM and replaced OpenSSL and WebRTC frameworks dependency with custom dependency update script #siskinim-256
parent
611890393b
commit
39025c3624
@ -0,0 +1 @@
|
||||
|
@ -1,258 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <AVFoundation/AVFoundation.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
extern NSString *const kRTCAudioSessionErrorDomain;
|
||||
/** Method that requires lock was called without lock. */
|
||||
extern NSInteger const kRTCAudioSessionErrorLockRequired;
|
||||
/** Unknown configuration error occurred. */
|
||||
extern NSInteger const kRTCAudioSessionErrorConfiguration;
|
||||
|
||||
@class RTCAudioSession;
|
||||
@class RTCAudioSessionConfiguration;
|
||||
|
||||
// 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_OBJC_EXPORT
|
||||
@protocol RTCAudioSessionDelegate <NSObject>
|
||||
|
||||
@optional
|
||||
/** Called on a system notification thread when AVAudioSession starts an
|
||||
* interruption event.
|
||||
*/
|
||||
- (void)audioSessionDidBeginInterruption:(RTCAudioSession *)session;
|
||||
|
||||
/** Called on a system notification thread when AVAudioSession ends an
|
||||
* interruption event.
|
||||
*/
|
||||
- (void)audioSessionDidEndInterruption:(RTCAudioSession *)session
|
||||
shouldResumeSession:(BOOL)shouldResumeSession;
|
||||
|
||||
/** Called on a system notification thread when AVAudioSession changes the
|
||||
* route.
|
||||
*/
|
||||
- (void)audioSessionDidChangeRoute:(RTCAudioSession *)session
|
||||
reason:(AVAudioSessionRouteChangeReason)reason
|
||||
previousRoute:(AVAudioSessionRouteDescription *)previousRoute;
|
||||
|
||||
/** Called on a system notification thread when AVAudioSession media server
|
||||
* terminates.
|
||||
*/
|
||||
- (void)audioSessionMediaServerTerminated:(RTCAudioSession *)session;
|
||||
|
||||
/** Called on a system notification thread when AVAudioSession media server
|
||||
* restarts.
|
||||
*/
|
||||
- (void)audioSessionMediaServerReset:(RTCAudioSession *)session;
|
||||
|
||||
// TODO(tkchin): Maybe handle SilenceSecondaryAudioHintNotification.
|
||||
|
||||
- (void)audioSession:(RTCAudioSession *)session didChangeCanPlayOrRecord:(BOOL)canPlayOrRecord;
|
||||
|
||||
/** Called on a WebRTC thread when the audio device is notified to begin
|
||||
* playback or recording.
|
||||
*/
|
||||
- (void)audioSessionDidStartPlayOrRecord:(RTCAudioSession *)session;
|
||||
|
||||
/** Called on a WebRTC thread when the audio device is notified to stop
|
||||
* playback or recording.
|
||||
*/
|
||||
- (void)audioSessionDidStopPlayOrRecord:(RTCAudioSession *)session;
|
||||
|
||||
/** Called when the AVAudioSession output volume value changes. */
|
||||
- (void)audioSession:(RTCAudioSession *)audioSession didChangeOutputVolume:(float)outputVolume;
|
||||
|
||||
/** Called when the audio device detects a playout glitch. The argument is the
|
||||
* number of glitches detected so far in the current audio playout session.
|
||||
*/
|
||||
- (void)audioSession:(RTCAudioSession *)audioSession
|
||||
didDetectPlayoutGlitch:(int64_t)totalNumberOfGlitches;
|
||||
|
||||
/** Called when the audio session is about to change the active state.
|
||||
*/
|
||||
- (void)audioSession:(RTCAudioSession *)audioSession willSetActive:(BOOL)active;
|
||||
|
||||
/** Called after the audio session sucessfully changed the active state.
|
||||
*/
|
||||
- (void)audioSession:(RTCAudioSession *)audioSession didSetActive:(BOOL)active;
|
||||
|
||||
/** Called after the audio session failed to change the active state.
|
||||
*/
|
||||
- (void)audioSession:(RTCAudioSession *)audioSession
|
||||
failedToSetActive:(BOOL)active
|
||||
error:(NSError *)error;
|
||||
|
||||
@end
|
||||
|
||||
/** This is a protocol used to inform RTCAudioSession when the audio session
|
||||
* 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_OBJC_EXPORT
|
||||
@protocol RTCAudioSessionActivationDelegate <NSObject>
|
||||
|
||||
/** Called when the audio session is activated outside of the app by iOS. */
|
||||
- (void)audioSessionDidActivate:(AVAudioSession *)session;
|
||||
|
||||
/** Called when the audio session is deactivated outside of the app by iOS. */
|
||||
- (void)audioSessionDidDeactivate:(AVAudioSession *)session;
|
||||
|
||||
@end
|
||||
|
||||
/** Proxy class for AVAudioSession that adds a locking mechanism similar to
|
||||
* AVCaptureDevice. This is used to that interleaving configurations between
|
||||
* WebRTC and the application layer are avoided.
|
||||
*
|
||||
* RTCAudioSession also coordinates activation so that the audio session is
|
||||
* activated only once. See |setActive:error:|.
|
||||
*/
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCAudioSession : NSObject <RTCAudioSessionActivationDelegate>
|
||||
|
||||
/** Convenience property to access the AVAudioSession singleton. Callers should
|
||||
* not call setters on AVAudioSession directly, but other method invocations
|
||||
* are fine.
|
||||
*/
|
||||
@property(nonatomic, readonly) AVAudioSession *session;
|
||||
|
||||
/** Our best guess at whether the session is active based on results of calls to
|
||||
* AVAudioSession.
|
||||
*/
|
||||
@property(nonatomic, readonly) BOOL isActive;
|
||||
/** Whether RTCAudioSession is currently locked for configuration. */
|
||||
@property(nonatomic, readonly) BOOL isLocked;
|
||||
|
||||
/** If YES, WebRTC will not initialize the audio unit automatically when an
|
||||
* audio track is ready for playout or recording. Instead, applications should
|
||||
* call setIsAudioEnabled. If NO, WebRTC will initialize the audio unit
|
||||
* as soon as an audio track is ready for playout or recording.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL useManualAudio;
|
||||
|
||||
/** This property is only effective if useManualAudio is YES.
|
||||
* Represents permission for WebRTC to initialize the VoIP audio unit.
|
||||
* When set to NO, if the VoIP audio unit used by WebRTC is active, it will be
|
||||
* stopped and uninitialized. This will stop incoming and outgoing audio.
|
||||
* When set to YES, WebRTC will initialize and start the audio unit when it is
|
||||
* needed (e.g. due to establishing an audio connection).
|
||||
* This property was introduced to work around an issue where if an AVPlayer is
|
||||
* playing audio while the VoIP audio unit is initialized, its audio would be
|
||||
* either cut off completely or played at a reduced volume. By preventing
|
||||
* the audio unit from being initialized until after the audio has completed,
|
||||
* we are able to prevent the abrupt cutoff.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL isAudioEnabled;
|
||||
|
||||
// Proxy properties.
|
||||
@property(readonly) NSString *category;
|
||||
@property(readonly) AVAudioSessionCategoryOptions categoryOptions;
|
||||
@property(readonly) NSString *mode;
|
||||
@property(readonly) BOOL secondaryAudioShouldBeSilencedHint;
|
||||
@property(readonly) AVAudioSessionRouteDescription *currentRoute;
|
||||
@property(readonly) NSInteger maximumInputNumberOfChannels;
|
||||
@property(readonly) NSInteger maximumOutputNumberOfChannels;
|
||||
@property(readonly) float inputGain;
|
||||
@property(readonly) BOOL inputGainSettable;
|
||||
@property(readonly) BOOL inputAvailable;
|
||||
@property(readonly, nullable) NSArray<AVAudioSessionDataSourceDescription *> *inputDataSources;
|
||||
@property(readonly, nullable) AVAudioSessionDataSourceDescription *inputDataSource;
|
||||
@property(readonly, nullable) NSArray<AVAudioSessionDataSourceDescription *> *outputDataSources;
|
||||
@property(readonly, nullable) AVAudioSessionDataSourceDescription *outputDataSource;
|
||||
@property(readonly) double sampleRate;
|
||||
@property(readonly) double preferredSampleRate;
|
||||
@property(readonly) NSInteger inputNumberOfChannels;
|
||||
@property(readonly) NSInteger outputNumberOfChannels;
|
||||
@property(readonly) float outputVolume;
|
||||
@property(readonly) NSTimeInterval inputLatency;
|
||||
@property(readonly) NSTimeInterval outputLatency;
|
||||
@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;
|
||||
|
||||
/** Adds a delegate, which is held weakly. */
|
||||
- (void)addDelegate:(id<RTCAudioSessionDelegate>)delegate;
|
||||
/** Removes an added delegate. */
|
||||
- (void)removeDelegate:(id<RTCAudioSessionDelegate>)delegate;
|
||||
|
||||
/** Request exclusive access to the audio session for configuration. This call
|
||||
* will block if the lock is held by another object.
|
||||
*/
|
||||
- (void)lockForConfiguration;
|
||||
/** Relinquishes exclusive access to the audio session. */
|
||||
- (void)unlockForConfiguration;
|
||||
|
||||
/** If |active|, activates the audio session if it isn't already active.
|
||||
* Successful calls must be balanced with a setActive:NO when activation is no
|
||||
* longer required. If not |active|, deactivates the audio session if one is
|
||||
* active and this is the last balanced call. When deactivating, the
|
||||
* AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation option is passed to
|
||||
* AVAudioSession.
|
||||
*/
|
||||
- (BOOL)setActive:(BOOL)active error:(NSError **)outError;
|
||||
|
||||
// The following methods are proxies for the associated methods on
|
||||
// AVAudioSession. |lockForConfiguration| must be called before using them
|
||||
// otherwise they will fail with kRTCAudioSessionErrorLockRequired.
|
||||
|
||||
- (BOOL)setCategory:(NSString *)category
|
||||
withOptions:(AVAudioSessionCategoryOptions)options
|
||||
error:(NSError **)outError;
|
||||
- (BOOL)setMode:(NSString *)mode error:(NSError **)outError;
|
||||
- (BOOL)setInputGain:(float)gain error:(NSError **)outError;
|
||||
- (BOOL)setPreferredSampleRate:(double)sampleRate error:(NSError **)outError;
|
||||
- (BOOL)setPreferredIOBufferDuration:(NSTimeInterval)duration error:(NSError **)outError;
|
||||
- (BOOL)setPreferredInputNumberOfChannels:(NSInteger)count error:(NSError **)outError;
|
||||
- (BOOL)setPreferredOutputNumberOfChannels:(NSInteger)count error:(NSError **)outError;
|
||||
- (BOOL)overrideOutputAudioPort:(AVAudioSessionPortOverride)portOverride error:(NSError **)outError;
|
||||
- (BOOL)setPreferredInput:(AVAudioSessionPortDescription *)inPort error:(NSError **)outError;
|
||||
- (BOOL)setInputDataSource:(AVAudioSessionDataSourceDescription *)dataSource
|
||||
error:(NSError **)outError;
|
||||
- (BOOL)setOutputDataSource:(AVAudioSessionDataSourceDescription *)dataSource
|
||||
error:(NSError **)outError;
|
||||
@end
|
||||
|
||||
@interface RTCAudioSession (Configuration)
|
||||
|
||||
/** Applies the configuration to the current session. Attempts to set all
|
||||
* properties even if previous ones fail. Only the last error will be
|
||||
* returned.
|
||||
* |lockForConfiguration| must be called first.
|
||||
*/
|
||||
- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration error:(NSError **)outError;
|
||||
|
||||
/** Convenience method that calls both setConfiguration and setActive.
|
||||
* |lockForConfiguration| must be called first.
|
||||
*/
|
||||
- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
|
||||
active:(BOOL)active
|
||||
error:(NSError **)outError;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <AVFoundation/AVFoundation.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
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_OBJC_EXPORT
|
||||
@interface RTCAudioSessionConfiguration : NSObject
|
||||
|
||||
@property(nonatomic, strong) NSString *category;
|
||||
@property(nonatomic, assign) AVAudioSessionCategoryOptions categoryOptions;
|
||||
@property(nonatomic, strong) NSString *mode;
|
||||
@property(nonatomic, assign) double sampleRate;
|
||||
@property(nonatomic, assign) NSTimeInterval ioBufferDuration;
|
||||
@property(nonatomic, assign) NSInteger inputNumberOfChannels;
|
||||
@property(nonatomic, assign) NSInteger outputNumberOfChannels;
|
||||
|
||||
/** Initializes configuration to defaults. */
|
||||
- (instancetype)init NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
/** Returns the current configuration of the audio session. */
|
||||
+ (instancetype)currentConfiguration;
|
||||
/** Returns the configuration that WebRTC needs. */
|
||||
+ (instancetype)webRTCConfiguration;
|
||||
/** Provide a way to override the default configuration. */
|
||||
+ (void)setWebRTCConfiguration:(RTCAudioSessionConfiguration *)configuration;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,32 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCMediaSource.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCAudioSource : RTCMediaSource
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
// Sets the volume for the RTCMediaSource. |volume| is a gain value in the range
|
||||
// [0, 10].
|
||||
// Temporary fix to be able to modify volume of remote audio tracks.
|
||||
// TODO(kthelgason): Property stays here temporarily until a proper volume-api
|
||||
// is available on the surface exposed by webrtc.
|
||||
@property(nonatomic, assign) double volume;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 "RTCMacros.h"
|
||||
#import "RTCMediaStreamTrack.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class RTCAudioSource;
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCAudioTrack : RTCMediaStreamTrack
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/** The audio source for this audio track. */
|
||||
@property(nonatomic, readonly) RTCAudioSource *source;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,52 +0,0 @@
|
||||
/*
|
||||
* 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 <AVFoundation/AVFoundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoFrameBuffer.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** RTCVideoFrameBuffer containing a CVPixelBufferRef */
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCCVPixelBuffer : NSObject <RTCVideoFrameBuffer>
|
||||
|
||||
@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<NSNumber *> *)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
|
@ -1,41 +0,0 @@
|
||||
/*
|
||||
* 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 <Foundation/Foundation.h>
|
||||
|
||||
#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_OBJC_EXPORT
|
||||
@interface RTCCallbackLogger : NSObject
|
||||
|
||||
// The severity level to capture. The default is kRTCLoggingSeverityInfo.
|
||||
@property(nonatomic, assign) RTCLoggingSeverity severity;
|
||||
|
||||
// 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;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,30 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
@class AVCaptureSession;
|
||||
|
||||
/** RTCCameraPreviewView is a view that renders local video from an
|
||||
* AVCaptureSession.
|
||||
*/
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCCameraPreviewView : UIView
|
||||
|
||||
/** The capture session being rendered in the view. Capture session
|
||||
* is assigned to AVCaptureVideoPreviewLayer async in the same
|
||||
* queue that the AVCaptureSession is started/stopped.
|
||||
*/
|
||||
@property(nonatomic, strong) AVCaptureSession* captureSession;
|
||||
|
||||
@end
|
@ -1,56 +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 <AVFoundation/AVFoundation.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoCapturer.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
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.")
|
||||
@interface RTCCameraVideoCapturer : RTCVideoCapturer
|
||||
|
||||
// Capture session that is used for capturing. Valid from initialization to dealloc.
|
||||
@property(readonly, nonatomic) AVCaptureSession *captureSession;
|
||||
|
||||
// Returns list of available capture devices that support video capture.
|
||||
+ (NSArray<AVCaptureDevice *> *)captureDevices;
|
||||
// Returns list of formats that are supported by this class for this device.
|
||||
+ (NSArray<AVCaptureDeviceFormat *> *)supportedFormatsForDevice:(AVCaptureDevice *)device;
|
||||
|
||||
// Returns the most efficient supported output pixel format for this capturer.
|
||||
- (FourCharCode)preferredOutputPixelFormat;
|
||||
|
||||
// Starts the capture session asynchronously and notifies callback on completion.
|
||||
// The device will capture video in the format given in the `format` parameter. If the pixel format
|
||||
// in `format` is supported by the WebRTC pipeline, the same pixel format will be used for the
|
||||
// output. Otherwise, the format returned by `preferredOutputPixelFormat` will be used.
|
||||
- (void)startCaptureWithDevice:(AVCaptureDevice *)device
|
||||
format:(AVCaptureDeviceFormat *)format
|
||||
fps:(NSInteger)fps
|
||||
completionHandler:(nullable void (^)(NSError *))completionHandler;
|
||||
// Stops the capture session asynchronously and notifies callback on completion.
|
||||
- (void)stopCaptureWithCompletionHandler:(nullable void (^)(void))completionHandler;
|
||||
|
||||
// Starts the capture session asynchronously.
|
||||
- (void)startCaptureWithDevice:(AVCaptureDevice *)device
|
||||
format:(AVCaptureDeviceFormat *)format
|
||||
fps:(NSInteger)fps;
|
||||
// Stops the capture session asynchronously.
|
||||
- (void)stopCapture;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
* 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCCertificate : NSObject <NSCopying>
|
||||
|
||||
/** 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
|
@ -1,24 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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 <NSObject>
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,27 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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 <RTCCodecSpecificInfo>
|
||||
|
||||
@property(nonatomic, assign) RTCH264PacketizationMode packetizationMode;
|
||||
|
||||
@end
|
@ -1,230 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCCertificate.h"
|
||||
#import "RTCCryptoOptions.h"
|
||||
#import "RTCMacros.h"
|
||||
|
||||
@class RTCIceServer;
|
||||
@class RTCIntervalRange;
|
||||
|
||||
/**
|
||||
* Represents the ice transport policy. This exposes the same states in C++,
|
||||
* which include one more state than what exists in the W3C spec.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RTCIceTransportPolicy) {
|
||||
RTCIceTransportPolicyNone,
|
||||
RTCIceTransportPolicyRelay,
|
||||
RTCIceTransportPolicyNoHost,
|
||||
RTCIceTransportPolicyAll
|
||||
};
|
||||
|
||||
/** Represents the bundle policy. */
|
||||
typedef NS_ENUM(NSInteger, RTCBundlePolicy) {
|
||||
RTCBundlePolicyBalanced,
|
||||
RTCBundlePolicyMaxCompat,
|
||||
RTCBundlePolicyMaxBundle
|
||||
};
|
||||
|
||||
/** Represents the rtcp mux policy. */
|
||||
typedef NS_ENUM(NSInteger, RTCRtcpMuxPolicy) { RTCRtcpMuxPolicyNegotiate, RTCRtcpMuxPolicyRequire };
|
||||
|
||||
/** Represents the tcp candidate policy. */
|
||||
typedef NS_ENUM(NSInteger, RTCTcpCandidatePolicy) {
|
||||
RTCTcpCandidatePolicyEnabled,
|
||||
RTCTcpCandidatePolicyDisabled
|
||||
};
|
||||
|
||||
/** Represents the candidate network policy. */
|
||||
typedef NS_ENUM(NSInteger, RTCCandidateNetworkPolicy) {
|
||||
RTCCandidateNetworkPolicyAll,
|
||||
RTCCandidateNetworkPolicyLowCost
|
||||
};
|
||||
|
||||
/** Represents the continual gathering policy. */
|
||||
typedef NS_ENUM(NSInteger, RTCContinualGatheringPolicy) {
|
||||
RTCContinualGatheringPolicyGatherOnce,
|
||||
RTCContinualGatheringPolicyGatherContinually
|
||||
};
|
||||
|
||||
/** Represents the encryption key type. */
|
||||
typedef NS_ENUM(NSInteger, RTCEncryptionKeyType) {
|
||||
RTCEncryptionKeyTypeRSA,
|
||||
RTCEncryptionKeyTypeECDSA,
|
||||
};
|
||||
|
||||
/** Represents the chosen SDP semantics for the RTCPeerConnection. */
|
||||
typedef NS_ENUM(NSInteger, RTCSdpSemantics) {
|
||||
RTCSdpSemanticsPlanB,
|
||||
RTCSdpSemanticsUnifiedPlan,
|
||||
};
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCConfiguration : NSObject
|
||||
|
||||
/** An array of Ice Servers available to be used by ICE. */
|
||||
@property(nonatomic, copy) NSArray<RTCIceServer *> *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;
|
||||
|
||||
/** The media-bundling policy to use when gathering ICE candidates. */
|
||||
@property(nonatomic, assign) RTCBundlePolicy bundlePolicy;
|
||||
|
||||
/** The rtcp-mux policy to use when gathering ICE candidates. */
|
||||
@property(nonatomic, assign) RTCRtcpMuxPolicy rtcpMuxPolicy;
|
||||
@property(nonatomic, assign) RTCTcpCandidatePolicy tcpCandidatePolicy;
|
||||
@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.
|
||||
*
|
||||
* Can be set to INT_MAX to effectively disable the limit.
|
||||
*/
|
||||
@property(nonatomic, assign) int maxIPv6Networks;
|
||||
|
||||
/** Exclude link-local network interfaces
|
||||
* from considertaion for gathering ICE candidates.
|
||||
* Defaults to NO.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL disableLinkLocalNetworks;
|
||||
|
||||
@property(nonatomic, assign) int audioJitterBufferMaxPackets;
|
||||
@property(nonatomic, assign) BOOL audioJitterBufferFastAccelerate;
|
||||
@property(nonatomic, assign) int iceConnectionReceivingTimeout;
|
||||
@property(nonatomic, assign) int iceBackupCandidatePairPingInterval;
|
||||
|
||||
/** Key type used to generate SSL identity. Default is ECDSA. */
|
||||
@property(nonatomic, assign) RTCEncryptionKeyType keyType;
|
||||
|
||||
/** ICE candidate pool size as defined in JSEP. Default is 0. */
|
||||
@property(nonatomic, assign) int iceCandidatePoolSize;
|
||||
|
||||
/** Prune turn ports on the same network to the same turn server.
|
||||
* Default is NO.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL shouldPruneTurnPorts;
|
||||
|
||||
/** If set to YES, this means the ICE transport should presume TURN-to-TURN
|
||||
* candidate pairs will succeed, even before a binding response is received.
|
||||
*/
|
||||
@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.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSNumber *iceCheckMinInterval;
|
||||
|
||||
/** ICE Periodic Regathering
|
||||
* If set, WebRTC will periodically create and propose candidates without
|
||||
* starting a new ICE generation. The regathering happens continuously with
|
||||
* interval specified in milliseconds by the uniform distribution [a, b].
|
||||
*/
|
||||
@property(nonatomic, strong, nullable) RTCIntervalRange *iceRegatherIntervalRange;
|
||||
|
||||
/** Configure the SDP semantics used by this PeerConnection. Note that the
|
||||
* WebRTC 1.0 specification requires UnifiedPlan semantics. The
|
||||
* RTCRtpTransceiver API is only available with UnifiedPlan semantics.
|
||||
*
|
||||
* PlanB will cause RTCPeerConnection to create offers and answers with at
|
||||
* most one audio and one video m= section with multiple RTCRtpSenders and
|
||||
* RTCRtpReceivers specified as multiple a=ssrc lines within the section. This
|
||||
* will also cause RTCPeerConnection to ignore all but the first m= section of
|
||||
* the same media type.
|
||||
*
|
||||
* UnifiedPlan will cause RTCPeerConnection to create offers and answers with
|
||||
* multiple m= sections where each m= section maps to one RTCRtpSender and one
|
||||
* RTCRtpReceiver (an RTCRtpTransceiver), either both audio or both video. This
|
||||
* will also cause RTCPeerConnection to ignore all but the first a=ssrc lines
|
||||
* that form a Plan B stream.
|
||||
*
|
||||
* For users who wish to send multiple audio/video streams and need to stay
|
||||
* interoperable with legacy WebRTC implementations or use legacy APIs,
|
||||
* specify PlanB.
|
||||
*
|
||||
* For all other users, specify UnifiedPlan.
|
||||
*/
|
||||
@property(nonatomic, assign) RTCSdpSemantics sdpSemantics;
|
||||
|
||||
/** Actively reset the SRTP parameters when the DTLS transports underneath are
|
||||
* changed after offer/answer negotiation. This is only intended to be a
|
||||
* workaround for crbug.com/835958
|
||||
*/
|
||||
@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
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,63 +0,0 @@
|
||||
/*
|
||||
* 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 <Foundation/Foundation.h>
|
||||
|
||||
#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
|
@ -1,130 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <AvailabilityMacros.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCDataBuffer : NSObject
|
||||
|
||||
/** NSData representation of the underlying buffer. */
|
||||
@property(nonatomic, readonly) NSData *data;
|
||||
|
||||
/** Indicates whether |data| contains UTF-8 or binary data. */
|
||||
@property(nonatomic, readonly) BOOL isBinary;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/**
|
||||
* Initialize an RTCDataBuffer from NSData. |isBinary| indicates whether |data|
|
||||
* contains UTF-8 or binary data.
|
||||
*/
|
||||
- (instancetype)initWithData:(NSData *)data isBinary:(BOOL)isBinary;
|
||||
|
||||
@end
|
||||
|
||||
@class RTCDataChannel;
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCDataChannelDelegate <NSObject>
|
||||
|
||||
/** The data channel state changed. */
|
||||
- (void)dataChannelDidChangeState:(RTCDataChannel *)dataChannel;
|
||||
|
||||
/** The data channel successfully received a data buffer. */
|
||||
- (void)dataChannel:(RTCDataChannel *)dataChannel
|
||||
didReceiveMessageWithBuffer:(RTCDataBuffer *)buffer;
|
||||
|
||||
@optional
|
||||
/** The data channel's |bufferedAmount| changed. */
|
||||
- (void)dataChannel:(RTCDataChannel *)dataChannel didChangeBufferedAmount:(uint64_t)amount;
|
||||
|
||||
@end
|
||||
|
||||
/** Represents the state of the data channel. */
|
||||
typedef NS_ENUM(NSInteger, RTCDataChannelState) {
|
||||
RTCDataChannelStateConnecting,
|
||||
RTCDataChannelStateOpen,
|
||||
RTCDataChannelStateClosing,
|
||||
RTCDataChannelStateClosed,
|
||||
};
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCDataChannel : NSObject
|
||||
|
||||
/**
|
||||
* A label that can be used to distinguish this data channel from other data
|
||||
* channel objects.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSString *label;
|
||||
|
||||
/** Whether the data channel can send messages in unreliable mode. */
|
||||
@property(nonatomic, readonly) BOOL isReliable DEPRECATED_ATTRIBUTE;
|
||||
|
||||
/** Returns whether this data channel is ordered or not. */
|
||||
@property(nonatomic, readonly) BOOL isOrdered;
|
||||
|
||||
/** Deprecated. Use maxPacketLifeTime. */
|
||||
@property(nonatomic, readonly) NSUInteger maxRetransmitTime DEPRECATED_ATTRIBUTE;
|
||||
|
||||
/**
|
||||
* The length of the time window (in milliseconds) during which transmissions
|
||||
* and retransmissions may occur in unreliable mode.
|
||||
*/
|
||||
@property(nonatomic, readonly) uint16_t maxPacketLifeTime;
|
||||
|
||||
/**
|
||||
* The maximum number of retransmissions that are attempted in unreliable mode.
|
||||
*/
|
||||
@property(nonatomic, readonly) uint16_t maxRetransmits;
|
||||
|
||||
/**
|
||||
* The name of the sub-protocol used with this data channel, if any. Otherwise
|
||||
* this returns an empty string.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSString *protocol;
|
||||
|
||||
/**
|
||||
* Returns whether this data channel was negotiated by the application or not.
|
||||
*/
|
||||
@property(nonatomic, readonly) BOOL isNegotiated;
|
||||
|
||||
/** Deprecated. Use channelId. */
|
||||
@property(nonatomic, readonly) NSInteger streamId DEPRECATED_ATTRIBUTE;
|
||||
|
||||
/** The identifier for this data channel. */
|
||||
@property(nonatomic, readonly) int channelId;
|
||||
|
||||
/** The state of the data channel. */
|
||||
@property(nonatomic, readonly) RTCDataChannelState readyState;
|
||||
|
||||
/**
|
||||
* The number of bytes of application data that have been queued using
|
||||
* |sendData:| but that have not yet been transmitted to the network.
|
||||
*/
|
||||
@property(nonatomic, readonly) uint64_t bufferedAmount;
|
||||
|
||||
/** The delegate for this data channel. */
|
||||
@property(nonatomic, weak) id<RTCDataChannelDelegate> delegate;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/** Closes the data channel. */
|
||||
- (void)close;
|
||||
|
||||
/** Attempt to send |data| on this data channel's underlying data transport. */
|
||||
- (BOOL)sendData:(RTCDataBuffer *)data;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,52 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <AvailabilityMacros.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCDataChannelConfiguration : NSObject
|
||||
|
||||
/** Set to YES if ordered delivery is required. */
|
||||
@property(nonatomic, assign) BOOL isOrdered;
|
||||
|
||||
/** Deprecated. Use maxPacketLifeTime. */
|
||||
@property(nonatomic, assign) NSInteger maxRetransmitTimeMs DEPRECATED_ATTRIBUTE;
|
||||
|
||||
/**
|
||||
* Max period in milliseconds in which retransmissions will be sent. After this
|
||||
* time, no more retransmissions will be sent. -1 if unset.
|
||||
*/
|
||||
@property(nonatomic, assign) int maxPacketLifeTime;
|
||||
|
||||
/** The max number of retransmissions. -1 if unset. */
|
||||
@property(nonatomic, assign) int maxRetransmits;
|
||||
|
||||
/** Set to YES if the channel has been externally negotiated and we do not send
|
||||
* an in-band signalling in the form of an "open" message.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL isNegotiated;
|
||||
|
||||
/** Deprecated. Use channelId. */
|
||||
@property(nonatomic, assign) int streamId DEPRECATED_ATTRIBUTE;
|
||||
|
||||
/** The id of the data channel. */
|
||||
@property(nonatomic, assign) int channelId;
|
||||
|
||||
/** Set by the application and opaque to the WebRTC implementation. */
|
||||
@property(nonatomic) NSString* protocol;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,25 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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 <RTCVideoDecoderFactory>
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,30 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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 <RTCVideoEncoderFactory>
|
||||
|
||||
@property(nonatomic, retain) RTCVideoCodecInfo *preferredCodec;
|
||||
|
||||
+ (NSArray<RTCVideoCodecInfo *> *)supportedCodecs;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
typedef NS_ENUM(NSInteger, RTCDispatcherQueueType) {
|
||||
// Main dispatcher queue.
|
||||
RTCDispatcherTypeMain,
|
||||
// Used for starting/stopping AVCaptureSession, and assigning
|
||||
// capture session to AVCaptureVideoPreviewLayer.
|
||||
RTCDispatcherTypeCaptureSession,
|
||||
// Used for operations on AVAudioSession.
|
||||
RTCDispatcherTypeAudioSession,
|
||||
};
|
||||
|
||||
/** Dispatcher that asynchronously dispatches blocks to a specific
|
||||
* shared dispatch queue.
|
||||
*/
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCDispatcher : NSObject
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/** Dispatch the block asynchronously on the queue for dispatchType.
|
||||
* @param dispatchType The queue type to dispatch on.
|
||||
* @param block The block to dispatch asynchronously.
|
||||
*/
|
||||
+ (void)dispatchAsyncOnType:(RTCDispatcherQueueType)dispatchType block:(dispatch_block_t)block;
|
||||
|
||||
/** Returns YES if run on queue for the dispatchType otherwise NO.
|
||||
* Useful for asserting that a method is run on a correct queue.
|
||||
*/
|
||||
+ (BOOL)isOnQueueForType:(RTCDispatcherQueueType)dispatchType;
|
||||
|
||||
@end
|
@ -1,70 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCDtmfSender <NSObject>
|
||||
|
||||
/**
|
||||
* Returns true if this RTCDtmfSender is capable of sending DTMF. Otherwise
|
||||
* returns false. To be able to send DTMF, the associated RTCRtpSender must be
|
||||
* able to send packets, and a "telephone-event" codec must be negotiated.
|
||||
*/
|
||||
@property(nonatomic, readonly) BOOL canInsertDtmf;
|
||||
|
||||
/**
|
||||
* Queues a task that sends the DTMF tones. The tones parameter is treated
|
||||
* as a series of characters. The characters 0 through 9, A through D, #, and *
|
||||
* generate the associated DTMF tones. The characters a to d are equivalent
|
||||
* to A to D. The character ',' indicates a delay of 2 seconds before
|
||||
* processing the next character in the tones parameter.
|
||||
*
|
||||
* Unrecognized characters are ignored.
|
||||
*
|
||||
* @param duration The parameter indicates the duration to use for each
|
||||
* character passed in the tones parameter. The duration cannot be more
|
||||
* than 6000 or less than 70 ms.
|
||||
*
|
||||
* @param interToneGap The parameter indicates the gap between tones.
|
||||
* This parameter must be at least 50 ms but should be as short as
|
||||
* possible.
|
||||
*
|
||||
* If InsertDtmf is called on the same object while an existing task for this
|
||||
* object to generate DTMF is still running, the previous task is canceled.
|
||||
* Returns true on success and false on failure.
|
||||
*/
|
||||
- (BOOL)insertDtmf:(nonnull NSString *)tones
|
||||
duration:(NSTimeInterval)duration
|
||||
interToneGap:(NSTimeInterval)interToneGap;
|
||||
|
||||
/** The tones remaining to be played out */
|
||||
- (nonnull NSString *)remainingTones;
|
||||
|
||||
/**
|
||||
* The current tone duration value. This value will be the value last set via the
|
||||
* insertDtmf method, or the default value of 100 ms if insertDtmf was never called.
|
||||
*/
|
||||
- (NSTimeInterval)duration;
|
||||
|
||||
/**
|
||||
* The current value of the between-tone gap. This value will be the value last set
|
||||
* via the insertDtmf() method, or the default value of 50 ms if insertDtmf() was never
|
||||
* called.
|
||||
*/
|
||||
- (NSTimeInterval)interToneGap;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoRenderer.h"
|
||||
#import "RTCVideoViewShading.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class RTCEAGLVideoView;
|
||||
|
||||
/**
|
||||
* RTCEAGLVideoView is an RTCVideoRenderer which renders video frames in its
|
||||
* bounds using OpenGLES 2.0 or OpenGLES 3.0.
|
||||
*/
|
||||
RTC_OBJC_EXPORT
|
||||
NS_EXTENSION_UNAVAILABLE_IOS("Rendering not available in app extensions.")
|
||||
@interface RTCEAGLVideoView : UIView <RTCVideoRenderer>
|
||||
|
||||
@property(nonatomic, weak) id<RTCVideoViewDelegate> delegate;
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
shader:(id<RTCVideoViewShading>)shader NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
||||
shader:(id<RTCVideoViewShading>)shader NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,53 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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
|
@ -1,32 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
/** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */
|
||||
RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweKey;
|
||||
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 kRTCFieldTrialH264HighProfileKey;
|
||||
RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey;
|
||||
|
||||
/** The valid value for field trials above. */
|
||||
RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue;
|
||||
|
||||
/** 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<NSString *, NSString *> *fieldTrials);
|
@ -1,74 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RTCFileLoggerSeverity) {
|
||||
RTCFileLoggerSeverityVerbose,
|
||||
RTCFileLoggerSeverityInfo,
|
||||
RTCFileLoggerSeverityWarning,
|
||||
RTCFileLoggerSeverityError
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RTCFileLoggerRotationType) {
|
||||
RTCFileLoggerTypeCall,
|
||||
RTCFileLoggerTypeApp,
|
||||
};
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
// This class intercepts WebRTC logs and saves them to a file. The file size
|
||||
// will not exceed the given maximum bytesize. When the maximum bytesize is
|
||||
// reached, logs are rotated according to the rotationType specified.
|
||||
// For kRTCFileLoggerTypeCall, logs from the beginning and the end
|
||||
// are preserved while the middle section is overwritten instead.
|
||||
// For kRTCFileLoggerTypeApp, the oldest log is overwritten.
|
||||
// This class is not threadsafe.
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCFileLogger : NSObject
|
||||
|
||||
// The severity level to capture. The default is kRTCFileLoggerSeverityInfo.
|
||||
@property(nonatomic, assign) RTCFileLoggerSeverity severity;
|
||||
|
||||
// The rotation type for this file logger. The default is
|
||||
// kRTCFileLoggerTypeCall.
|
||||
@property(nonatomic, readonly) RTCFileLoggerRotationType rotationType;
|
||||
|
||||
// Disables buffering disk writes. Should be set before |start|. Buffering
|
||||
// is enabled by default for performance.
|
||||
@property(nonatomic, assign) BOOL shouldDisableBuffering;
|
||||
|
||||
// Default constructor provides default settings for dir path, file size and
|
||||
// rotation type.
|
||||
- (instancetype)init;
|
||||
|
||||
// Create file logger with default rotation type.
|
||||
- (instancetype)initWithDirPath:(NSString *)dirPath maxFileSize:(NSUInteger)maxFileSize;
|
||||
|
||||
- (instancetype)initWithDirPath:(NSString *)dirPath
|
||||
maxFileSize:(NSUInteger)maxFileSize
|
||||
rotationType:(RTCFileLoggerRotationType)rotationType NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
// Starts writing WebRTC logs to disk if not already started. Overwrites any
|
||||
// existing file(s).
|
||||
- (void)start;
|
||||
|
||||
// Stops writing WebRTC logs to disk. This method is also called on dealloc.
|
||||
- (void)stop;
|
||||
|
||||
// Returns the current contents of the logs, or nil if start has been called
|
||||
// without a stop.
|
||||
- (nullable NSData *)logData;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,51 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCVideoCapturer.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* Error passing block.
|
||||
*/
|
||||
typedef void (^RTCFileVideoCapturerErrorBlock)(NSError *error);
|
||||
|
||||
/**
|
||||
* Captures buffers from bundled video file.
|
||||
*
|
||||
* See @c RTCVideoCapturer for more info on capturers.
|
||||
*/
|
||||
RTC_OBJC_EXPORT
|
||||
|
||||
NS_CLASS_AVAILABLE_IOS(10)
|
||||
@interface RTCFileVideoCapturer : RTCVideoCapturer
|
||||
|
||||
/**
|
||||
* Starts asynchronous capture of frames from video file.
|
||||
*
|
||||
* Capturing is not started if error occurs. Underlying error will be
|
||||
* relayed in the errorBlock if one is provided.
|
||||
* Successfully captured video frames will be passed to the delegate.
|
||||
*
|
||||
* @param nameOfFile The name of the bundled video file to be read.
|
||||
* @errorBlock block to be executed upon error.
|
||||
*/
|
||||
- (void)startCapturingFromFileNamed:(NSString *)nameOfFile
|
||||
onError:(__nullable RTCFileVideoCapturerErrorBlock)errorBlock;
|
||||
|
||||
/**
|
||||
* Immediately stops capture.
|
||||
*/
|
||||
- (void)stopCapture;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,60 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
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) {
|
||||
RTCH264ProfileConstrainedBaseline,
|
||||
RTCH264ProfileBaseline,
|
||||
RTCH264ProfileMain,
|
||||
RTCH264ProfileConstrainedHigh,
|
||||
RTCH264ProfileHigh,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RTCH264Level) {
|
||||
RTCH264Level1_b = 0,
|
||||
RTCH264Level1 = 10,
|
||||
RTCH264Level1_1 = 11,
|
||||
RTCH264Level1_2 = 12,
|
||||
RTCH264Level1_3 = 13,
|
||||
RTCH264Level2 = 20,
|
||||
RTCH264Level2_1 = 21,
|
||||
RTCH264Level2_2 = 22,
|
||||
RTCH264Level3 = 30,
|
||||
RTCH264Level3_1 = 31,
|
||||
RTCH264Level3_2 = 32,
|
||||
RTCH264Level4 = 40,
|
||||
RTCH264Level4_1 = 41,
|
||||
RTCH264Level4_2 = 42,
|
||||
RTCH264Level5 = 50,
|
||||
RTCH264Level5_1 = 51,
|
||||
RTCH264Level5_2 = 52
|
||||
};
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCH264ProfileLevelId : NSObject
|
||||
|
||||
@property(nonatomic, readonly) RTCH264Profile profile;
|
||||
@property(nonatomic, readonly) RTCH264Level level;
|
||||
@property(nonatomic, readonly) NSString *hexString;
|
||||
|
||||
- (instancetype)initWithHexString:(NSString *)hexString;
|
||||
- (instancetype)initWithProfile:(RTCH264Profile)profile level:(RTCH264Level)level;
|
||||
|
||||
@end
|
@ -1,22 +0,0 @@
|
||||
/*
|
||||
* 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 <AVFoundation/AVFoundation.h>
|
||||
|
||||
#import "RTCYUVPlanarBuffer.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Protocol for RTCYUVPlanarBuffers containing I420 data */
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCI420Buffer <RTCYUVPlanarBuffer>
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,49 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCIceCandidate : NSObject
|
||||
|
||||
/**
|
||||
* If present, the identifier of the "media stream identification" for the media
|
||||
* component this candidate is associated with.
|
||||
*/
|
||||
@property(nonatomic, readonly, nullable) NSString *sdpMid;
|
||||
|
||||
/**
|
||||
* The index (starting at zero) of the media description this candidate is
|
||||
* associated with in the SDP.
|
||||
*/
|
||||
@property(nonatomic, readonly) int sdpMLineIndex;
|
||||
|
||||
/** The SDP string for this candidate. */
|
||||
@property(nonatomic, readonly) NSString *sdp;
|
||||
|
||||
/** The URL of the ICE server which this candidate is gathered from. */
|
||||
@property(nonatomic, readonly, nullable) NSString *serverUrl;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/**
|
||||
* Initialize an RTCIceCandidate from SDP.
|
||||
*/
|
||||
- (instancetype)initWithSdp:(NSString *)sdp
|
||||
sdpMLineIndex:(int)sdpMLineIndex
|
||||
sdpMid:(nullable NSString *)sdpMid NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,114 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RTCTlsCertPolicy) {
|
||||
RTCTlsCertPolicySecure,
|
||||
RTCTlsCertPolicyInsecureNoCheck
|
||||
};
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCIceServer : NSObject
|
||||
|
||||
/** URI(s) for this server represented as NSStrings. */
|
||||
@property(nonatomic, readonly) NSArray<NSString *> *urlStrings;
|
||||
|
||||
/** Username to use if this RTCIceServer object is a TURN server. */
|
||||
@property(nonatomic, readonly, nullable) NSString *username;
|
||||
|
||||
/** Credential to use if this RTCIceServer object is a TURN server. */
|
||||
@property(nonatomic, readonly, nullable) NSString *credential;
|
||||
|
||||
/**
|
||||
* TLS certificate policy to use if this RTCIceServer object is a TURN server.
|
||||
*/
|
||||
@property(nonatomic, readonly) RTCTlsCertPolicy tlsCertPolicy;
|
||||
|
||||
/**
|
||||
If the URIs in |urls| only contain IP addresses, this field can be used
|
||||
to indicate the hostname, which may be necessary for TLS (using the SNI
|
||||
extension). If |urls| itself contains the hostname, this isn't necessary.
|
||||
*/
|
||||
@property(nonatomic, readonly, nullable) NSString *hostname;
|
||||
|
||||
/** List of protocols to be used in the TLS ALPN extension. */
|
||||
@property(nonatomic, readonly) NSArray<NSString *> *tlsAlpnProtocols;
|
||||
|
||||
/**
|
||||
List elliptic curves to be used in the TLS elliptic curves extension.
|
||||
Only curve names supported by OpenSSL should be used (eg. "P-256","X25519").
|
||||
*/
|
||||
@property(nonatomic, readonly) NSArray<NSString *> *tlsEllipticCurves;
|
||||
|
||||
- (nonnull instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/** Convenience initializer for a server with no authentication (e.g. STUN). */
|
||||
- (instancetype)initWithURLStrings:(NSArray<NSString *> *)urlStrings;
|
||||
|
||||
/**
|
||||
* Initialize an RTCIceServer with its associated URLs, optional username,
|
||||
* optional credential, and credentialType.
|
||||
*/
|
||||
- (instancetype)initWithURLStrings:(NSArray<NSString *> *)urlStrings
|
||||
username:(nullable NSString *)username
|
||||
credential:(nullable NSString *)credential;
|
||||
|
||||
/**
|
||||
* Initialize an RTCIceServer with its associated URLs, optional username,
|
||||
* optional credential, and TLS cert policy.
|
||||
*/
|
||||
- (instancetype)initWithURLStrings:(NSArray<NSString *> *)urlStrings
|
||||
username:(nullable NSString *)username
|
||||
credential:(nullable NSString *)credential
|
||||
tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy;
|
||||
|
||||
/**
|
||||
* Initialize an RTCIceServer with its associated URLs, optional username,
|
||||
* optional credential, TLS cert policy and hostname.
|
||||
*/
|
||||
- (instancetype)initWithURLStrings:(NSArray<NSString *> *)urlStrings
|
||||
username:(nullable NSString *)username
|
||||
credential:(nullable NSString *)credential
|
||||
tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy
|
||||
hostname:(nullable NSString *)hostname;
|
||||
|
||||
/**
|
||||
* Initialize an RTCIceServer with its associated URLs, optional username,
|
||||
* optional credential, TLS cert policy, hostname and ALPN protocols.
|
||||
*/
|
||||
- (instancetype)initWithURLStrings:(NSArray<NSString *> *)urlStrings
|
||||
username:(nullable NSString *)username
|
||||
credential:(nullable NSString *)credential
|
||||
tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy
|
||||
hostname:(nullable NSString *)hostname
|
||||
tlsAlpnProtocols:(NSArray<NSString *> *)tlsAlpnProtocols;
|
||||
|
||||
/**
|
||||
* Initialize an RTCIceServer with its associated URLs, optional username,
|
||||
* optional credential, TLS cert policy, hostname, ALPN protocols and
|
||||
* elliptic curves.
|
||||
*/
|
||||
- (instancetype)initWithURLStrings:(NSArray<NSString *> *)urlStrings
|
||||
username:(nullable NSString *)username
|
||||
credential:(nullable NSString *)credential
|
||||
tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy
|
||||
hostname:(nullable NSString *)hostname
|
||||
tlsAlpnProtocols:(nullable NSArray<NSString *> *)tlsAlpnProtocols
|
||||
tlsEllipticCurves:(nullable NSArray<NSString *> *)tlsEllipticCurves
|
||||
NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,25 +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 <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RTCIntervalRange : NSObject
|
||||
|
||||
@property(nonatomic, readonly) NSInteger min;
|
||||
@property(nonatomic, readonly) NSInteger max;
|
||||
|
||||
- (instancetype)init;
|
||||
- (instancetype)initWithMin:(NSInteger)min max:(NSInteger)max NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,37 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** This does not currently conform to the spec. */
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCLegacyStatsReport : NSObject
|
||||
|
||||
/** Time since 1970-01-01T00:00:00Z in milliseconds. */
|
||||
@property(nonatomic, readonly) CFTimeInterval timestamp;
|
||||
|
||||
/** The type of stats held by this object. */
|
||||
@property(nonatomic, readonly) NSString *type;
|
||||
|
||||
/** The identifier for this object. */
|
||||
@property(nonatomic, readonly) NSString *reportId;
|
||||
|
||||
/** A dictionary holding the actual stats. */
|
||||
@property(nonatomic, readonly) NSDictionary<NSString *, NSString *> *values;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,67 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
// Subset of rtc::LoggingSeverity.
|
||||
typedef NS_ENUM(NSInteger, RTCLoggingSeverity) {
|
||||
RTCLoggingSeverityVerbose,
|
||||
RTCLoggingSeverityInfo,
|
||||
RTCLoggingSeverityWarning,
|
||||
RTCLoggingSeverityError,
|
||||
RTCLoggingSeverityNone,
|
||||
};
|
||||
|
||||
// Wrapper for C++ RTC_LOG(sev) macros.
|
||||
// Logs the log string to the webrtc logstream for the given severity.
|
||||
RTC_EXTERN void RTCLogEx(RTCLoggingSeverity severity, NSString* log_string);
|
||||
|
||||
// Wrapper for rtc::LogMessage::LogToDebug.
|
||||
// Sets the minimum severity to be logged to console.
|
||||
RTC_EXTERN void RTCSetMinDebugLogLevel(RTCLoggingSeverity severity);
|
||||
|
||||
// Returns the filename with the path prefix removed.
|
||||
RTC_EXTERN NSString* RTCFileName(const char* filePath);
|
||||
|
||||
// Some convenience macros.
|
||||
|
||||
#define RTCLogString(format, ...) \
|
||||
[NSString stringWithFormat:@"(%@:%d %s): " format, RTCFileName(__FILE__), \
|
||||
__LINE__, __FUNCTION__, ##__VA_ARGS__]
|
||||
|
||||
#define RTCLogFormat(severity, format, ...) \
|
||||
do { \
|
||||
NSString* log_string = RTCLogString(format, ##__VA_ARGS__); \
|
||||
RTCLogEx(severity, log_string); \
|
||||
} while (false)
|
||||
|
||||
#define RTCLogVerbose(format, ...) \
|
||||
RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__)
|
||||
|
||||
#define RTCLogInfo(format, ...) \
|
||||
RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__)
|
||||
|
||||
#define RTCLogWarning(format, ...) \
|
||||
RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__)
|
||||
|
||||
#define RTCLogError(format, ...) \
|
||||
RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__)
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
#define RTCLogDebug(format, ...) RTCLogInfo(format, ##__VA_ARGS__)
|
||||
#else
|
||||
#define RTCLogDebug(format, ...) \
|
||||
do { \
|
||||
} while (false)
|
||||
#endif
|
||||
|
||||
#define RTCLog(format, ...) RTCLogInfo(format, ##__VA_ARGS__)
|
@ -1,46 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoFrame.h"
|
||||
#import "RTCVideoRenderer.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* RTCMTLVideoView is thin wrapper around MTKView.
|
||||
*
|
||||
* It has id<RTCVideoRenderer> property that renders video frames in the view's
|
||||
* bounds using Metal.
|
||||
* NOTE: always check if metal is available on the running device via
|
||||
* RTC_SUPPORTS_METAL macro before initializing this class.
|
||||
*/
|
||||
NS_CLASS_AVAILABLE_IOS(9)
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCMTLVideoView : UIView<RTCVideoRenderer>
|
||||
|
||||
@property(nonatomic, weak) id<RTCVideoViewDelegate> delegate;
|
||||
|
||||
@property(nonatomic) UIViewContentMode videoContentMode;
|
||||
|
||||
/** @abstract Enables/disables rendering.
|
||||
*/
|
||||
@property(nonatomic, getter=isEnabled) BOOL enabled;
|
||||
|
||||
/** @abstract Wrapped RTCVideoRotation, or nil.
|
||||
*/
|
||||
@property(nonatomic, nullable) NSValue* rotationOverride;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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.
|
||||
*/
|
||||
|
||||
#ifndef SDK_OBJC_BASE_RTCMACROS_H_
|
||||
#define SDK_OBJC_BASE_RTCMACROS_H_
|
||||
|
||||
#define RTC_OBJC_EXPORT __attribute__((visibility("default")))
|
||||
|
||||
#if defined(__cplusplus)
|
||||
#define RTC_EXTERN extern "C" RTC_OBJC_EXPORT
|
||||
#else
|
||||
#define RTC_EXTERN extern RTC_OBJC_EXPORT
|
||||
#endif
|
||||
|
||||
#ifdef __OBJC__
|
||||
#define RTC_FWD_DECL_OBJC_CLASS(classname) @class classname
|
||||
#else
|
||||
#define RTC_FWD_DECL_OBJC_CLASS(classname) typedef struct objc_object classname
|
||||
#endif
|
||||
|
||||
#endif // SDK_OBJC_BASE_RTCMACROS_H_
|
@ -1,46 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Constraint keys for media sources. */
|
||||
/** The value for this key should be a base64 encoded string containing
|
||||
* the data from the serialized configuration proto.
|
||||
*/
|
||||
RTC_EXTERN NSString *const kRTCMediaConstraintsAudioNetworkAdaptorConfig;
|
||||
|
||||
/** Constraint keys for generating offers and answers. */
|
||||
RTC_EXTERN NSString *const kRTCMediaConstraintsIceRestart;
|
||||
RTC_EXTERN NSString *const kRTCMediaConstraintsOfferToReceiveAudio;
|
||||
RTC_EXTERN NSString *const kRTCMediaConstraintsOfferToReceiveVideo;
|
||||
RTC_EXTERN NSString *const kRTCMediaConstraintsVoiceActivityDetection;
|
||||
|
||||
/** Constraint values for Boolean parameters. */
|
||||
RTC_EXTERN NSString *const kRTCMediaConstraintsValueTrue;
|
||||
RTC_EXTERN NSString *const kRTCMediaConstraintsValueFalse;
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCMediaConstraints : NSObject
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/** Initialize with mandatory and/or optional constraints. */
|
||||
- (instancetype)
|
||||
initWithMandatoryConstraints:(nullable NSDictionary<NSString *, NSString *> *)mandatory
|
||||
optionalConstraints:(nullable NSDictionary<NSString *, NSString *> *)optional
|
||||
NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
typedef NS_ENUM(NSInteger, RTCSourceState) {
|
||||
RTCSourceStateInitializing,
|
||||
RTCSourceStateLive,
|
||||
RTCSourceStateEnded,
|
||||
RTCSourceStateMuted,
|
||||
};
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCMediaSource : NSObject
|
||||
|
||||
/** The current state of the RTCMediaSource. */
|
||||
@property(nonatomic, readonly) RTCSourceState state;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,49 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class RTCAudioTrack;
|
||||
@class RTCPeerConnectionFactory;
|
||||
@class RTCVideoTrack;
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCMediaStream : NSObject
|
||||
|
||||
/** The audio tracks in this stream. */
|
||||
@property(nonatomic, strong, readonly) NSArray<RTCAudioTrack *> *audioTracks;
|
||||
|
||||
/** The video tracks in this stream. */
|
||||
@property(nonatomic, strong, readonly) NSArray<RTCVideoTrack *> *videoTracks;
|
||||
|
||||
/** An identifier for this media stream. */
|
||||
@property(nonatomic, readonly) NSString *streamId;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/** Adds the given audio track to this media stream. */
|
||||
- (void)addAudioTrack:(RTCAudioTrack *)audioTrack;
|
||||
|
||||
/** Adds the given video track to this media stream. */
|
||||
- (void)addVideoTrack:(RTCVideoTrack *)videoTrack;
|
||||
|
||||
/** Removes the given audio track to this media stream. */
|
||||
- (void)removeAudioTrack:(RTCAudioTrack *)audioTrack;
|
||||
|
||||
/** Removes the given video track to this media stream. */
|
||||
- (void)removeVideoTrack:(RTCVideoTrack *)videoTrack;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,50 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
/**
|
||||
* Represents the state of the track. This exposes the same states in C++.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RTCMediaStreamTrackState) {
|
||||
RTCMediaStreamTrackStateLive,
|
||||
RTCMediaStreamTrackStateEnded
|
||||
};
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_EXTERN NSString *const kRTCMediaStreamTrackKindAudio;
|
||||
RTC_EXTERN NSString *const kRTCMediaStreamTrackKindVideo;
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCMediaStreamTrack : NSObject
|
||||
|
||||
/**
|
||||
* The kind of track. For example, "audio" if this track represents an audio
|
||||
* track and "video" if this track represents a video track.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSString *kind;
|
||||
|
||||
/** An identifier string. */
|
||||
@property(nonatomic, readonly) NSString *trackId;
|
||||
|
||||
/** The enabled state of the track. */
|
||||
@property(nonatomic, assign) BOOL isEnabled;
|
||||
|
||||
/** The state of the track. */
|
||||
@property(nonatomic, readonly) RTCMediaStreamTrackState readyState;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCMetricsSampleInfo.h"
|
||||
|
||||
/**
|
||||
* Enables gathering of metrics (which can be fetched with
|
||||
* RTCGetAndResetMetrics). Must be called before any other call into WebRTC.
|
||||
*/
|
||||
RTC_EXTERN void RTCEnableMetrics(void);
|
||||
|
||||
/** Gets and clears native histograms. */
|
||||
RTC_EXTERN NSArray<RTCMetricsSampleInfo*>* RTCGetAndResetMetrics(void);
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCMetricsSampleInfo : NSObject
|
||||
|
||||
/**
|
||||
* Example of RTCMetricsSampleInfo:
|
||||
* name: "WebRTC.Video.InputFramesPerSecond"
|
||||
* min: 1
|
||||
* max: 100
|
||||
* bucketCount: 50
|
||||
* samples: [29]:2 [30]:1
|
||||
*/
|
||||
|
||||
/** The name of the histogram. */
|
||||
@property(nonatomic, readonly) NSString *name;
|
||||
|
||||
/** The minimum bucket value. */
|
||||
@property(nonatomic, readonly) int min;
|
||||
|
||||
/** The maximum bucket value. */
|
||||
@property(nonatomic, readonly) int max;
|
||||
|
||||
/** The number of buckets. */
|
||||
@property(nonatomic, readonly) int bucketCount;
|
||||
|
||||
/** A dictionary holding the samples <value, # of events>. */
|
||||
@property(nonatomic, readonly) NSDictionary<NSNumber *, NSNumber *> *samples;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
* 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 <AVFoundation/AVFoundation.h>
|
||||
|
||||
#import "RTCI420Buffer.h"
|
||||
#import "RTCMutableYUVPlanarBuffer.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Extension of the I420 buffer with mutable data access */
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCMutableI420Buffer <RTCI420Buffer, RTCMutableYUVPlanarBuffer>
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* 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 <AVFoundation/AVFoundation.h>
|
||||
|
||||
#import "RTCYUVPlanarBuffer.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Extension of the YUV planar data buffer with mutable data access */
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCMutableYUVPlanarBuffer <RTCYUVPlanarBuffer>
|
||||
|
||||
@property(nonatomic, readonly) uint8_t *mutableDataY;
|
||||
@property(nonatomic, readonly) uint8_t *mutableDataU;
|
||||
@property(nonatomic, readonly) uint8_t *mutableDataV;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
* 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 <AVFoundation/AVFoundation.h>
|
||||
|
||||
#import "RTCI420Buffer.h"
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** RTCI420Buffer implements the RTCI420Buffer protocol */
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCI420Buffer : NSObject<RTCI420Buffer>
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,24 +0,0 @@
|
||||
/*
|
||||
* 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 <AVFoundation/AVFoundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCMutableI420Buffer.h"
|
||||
#import "RTCNativeI420Buffer.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Mutable version of RTCI420Buffer */
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCMutableI420Buffer : RTCI420Buffer<RTCMutableI420Buffer>
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,360 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
@class RTCConfiguration;
|
||||
@class RTCDataChannel;
|
||||
@class RTCDataChannelConfiguration;
|
||||
@class RTCIceCandidate;
|
||||
@class RTCMediaConstraints;
|
||||
@class RTCMediaStream;
|
||||
@class RTCMediaStreamTrack;
|
||||
@class RTCPeerConnectionFactory;
|
||||
@class RTCRtpReceiver;
|
||||
@class RTCRtpSender;
|
||||
@class RTCRtpTransceiver;
|
||||
@class RTCRtpTransceiverInit;
|
||||
@class RTCSessionDescription;
|
||||
@class RTCStatisticsReport;
|
||||
@class RTCLegacyStatsReport;
|
||||
|
||||
typedef NS_ENUM(NSInteger, RTCRtpMediaType);
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
extern NSString *const kRTCPeerConnectionErrorDomain;
|
||||
extern int const kRTCSessionDescriptionErrorCode;
|
||||
|
||||
/** Represents the signaling state of the peer connection. */
|
||||
typedef NS_ENUM(NSInteger, RTCSignalingState) {
|
||||
RTCSignalingStateStable,
|
||||
RTCSignalingStateHaveLocalOffer,
|
||||
RTCSignalingStateHaveLocalPrAnswer,
|
||||
RTCSignalingStateHaveRemoteOffer,
|
||||
RTCSignalingStateHaveRemotePrAnswer,
|
||||
// Not an actual state, represents the total number of states.
|
||||
RTCSignalingStateClosed,
|
||||
};
|
||||
|
||||
/** Represents the ice connection state of the peer connection. */
|
||||
typedef NS_ENUM(NSInteger, RTCIceConnectionState) {
|
||||
RTCIceConnectionStateNew,
|
||||
RTCIceConnectionStateChecking,
|
||||
RTCIceConnectionStateConnected,
|
||||
RTCIceConnectionStateCompleted,
|
||||
RTCIceConnectionStateFailed,
|
||||
RTCIceConnectionStateDisconnected,
|
||||
RTCIceConnectionStateClosed,
|
||||
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,
|
||||
RTCIceGatheringStateGathering,
|
||||
RTCIceGatheringStateComplete,
|
||||
};
|
||||
|
||||
/** Represents the stats output level. */
|
||||
typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) {
|
||||
RTCStatsOutputLevelStandard,
|
||||
RTCStatsOutputLevelDebug,
|
||||
};
|
||||
|
||||
@class RTCPeerConnection;
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCPeerConnectionDelegate <NSObject>
|
||||
|
||||
/** Called when the SignalingState changed. */
|
||||
- (void)peerConnection:(RTCPeerConnection *)peerConnection
|
||||
didChangeSignalingState:(RTCSignalingState)stateChanged;
|
||||
|
||||
/** Called when media is received on a new stream from remote peer. */
|
||||
- (void)peerConnection:(RTCPeerConnection *)peerConnection didAddStream:(RTCMediaStream *)stream;
|
||||
|
||||
/** Called when a remote peer closes a stream.
|
||||
* This is not called when RTCSdpSemanticsUnifiedPlan is specified.
|
||||
*/
|
||||
- (void)peerConnection:(RTCPeerConnection *)peerConnection didRemoveStream:(RTCMediaStream *)stream;
|
||||
|
||||
/** Called when negotiation is needed, for example ICE has restarted. */
|
||||
- (void)peerConnectionShouldNegotiate:(RTCPeerConnection *)peerConnection;
|
||||
|
||||
/** Called any time the IceConnectionState changes. */
|
||||
- (void)peerConnection:(RTCPeerConnection *)peerConnection
|
||||
didChangeIceConnectionState:(RTCIceConnectionState)newState;
|
||||
|
||||
/** Called any time the IceGatheringState changes. */
|
||||
- (void)peerConnection:(RTCPeerConnection *)peerConnection
|
||||
didChangeIceGatheringState:(RTCIceGatheringState)newState;
|
||||
|
||||
/** New ice candidate has been found. */
|
||||
- (void)peerConnection:(RTCPeerConnection *)peerConnection
|
||||
didGenerateIceCandidate:(RTCIceCandidate *)candidate;
|
||||
|
||||
/** Called when a group of local Ice candidates have been removed. */
|
||||
- (void)peerConnection:(RTCPeerConnection *)peerConnection
|
||||
didRemoveIceCandidates:(NSArray<RTCIceCandidate *> *)candidates;
|
||||
|
||||
/** New data channel has been opened. */
|
||||
- (void)peerConnection:(RTCPeerConnection *)peerConnection
|
||||
didOpenDataChannel:(RTCDataChannel *)dataChannel;
|
||||
|
||||
/** Called when signaling indicates a transceiver will be receiving media from
|
||||
* the remote endpoint.
|
||||
* 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. */
|
||||
- (void)peerConnection:(RTCPeerConnection *)peerConnection
|
||||
didAddReceiver:(RTCRtpReceiver *)rtpReceiver
|
||||
streams:(NSArray<RTCMediaStream *> *)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_OBJC_EXPORT
|
||||
@interface RTCPeerConnection : NSObject
|
||||
|
||||
/** The object that will be notifed about events such as state changes and
|
||||
* streams being added or removed.
|
||||
*/
|
||||
@property(nonatomic, weak, nullable) id<RTCPeerConnectionDelegate> delegate;
|
||||
/** This property is not available with RTCSdpSemanticsUnifiedPlan. Please use
|
||||
* |senders| instead.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSArray<RTCMediaStream *> *localStreams;
|
||||
@property(nonatomic, readonly, nullable) RTCSessionDescription *localDescription;
|
||||
@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;
|
||||
|
||||
/** Gets all RTCRtpSenders associated with this peer connection.
|
||||
* Note: reading this property returns different instances of RTCRtpSender.
|
||||
* Use isEqual: instead of == to compare RTCRtpSender instances.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSArray<RTCRtpSender *> *senders;
|
||||
|
||||
/** Gets all RTCRtpReceivers associated with this peer connection.
|
||||
* Note: reading this property returns different instances of RTCRtpReceiver.
|
||||
* Use isEqual: instead of == to compare RTCRtpReceiver instances.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSArray<RTCRtpReceiver *> *receivers;
|
||||
|
||||
/** Gets all RTCRtpTransceivers associated with this peer connection.
|
||||
* Note: reading this property returns different instances of
|
||||
* RTCRtpTransceiver. Use isEqual: instead of == to compare RTCRtpTransceiver
|
||||
* instances.
|
||||
* This is only available with RTCSdpSemanticsUnifiedPlan specified.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSArray<RTCRtpTransceiver *> *transceivers;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/** Sets the PeerConnection's global configuration to |configuration|.
|
||||
* Any changes to STUN/TURN servers or ICE candidate policy will affect the
|
||||
* next gathering phase, and cause the next call to createOffer to generate
|
||||
* new ICE credentials. Note that the BUNDLE and RTCP-multiplexing policies
|
||||
* cannot be changed with this method.
|
||||
*/
|
||||
- (BOOL)setConfiguration:(RTCConfiguration *)configuration;
|
||||
|
||||
/** Terminate all media and close the transport. */
|
||||
- (void)close;
|
||||
|
||||
/** Provide a remote candidate to the ICE Agent. */
|
||||
- (void)addIceCandidate:(RTCIceCandidate *)candidate;
|
||||
|
||||
/** Remove a group of remote candidates from the ICE Agent. */
|
||||
- (void)removeIceCandidates:(NSArray<RTCIceCandidate *> *)candidates;
|
||||
|
||||
/** Add a new media stream to be sent on this peer connection.
|
||||
* This method is not supported with RTCSdpSemanticsUnifiedPlan. Please use
|
||||
* addTrack instead.
|
||||
*/
|
||||
- (void)addStream:(RTCMediaStream *)stream;
|
||||
|
||||
/** Remove the given media stream from this peer connection.
|
||||
* This method is not supported with RTCSdpSemanticsUnifiedPlan. Please use
|
||||
* removeTrack instead.
|
||||
*/
|
||||
- (void)removeStream:(RTCMediaStream *)stream;
|
||||
|
||||
/** Add a new media stream track to be sent on this peer connection, and return
|
||||
* the newly created RTCRtpSender. The RTCRtpSender will be associated with
|
||||
* the streams specified in the |streamIds| list.
|
||||
*
|
||||
* Errors: If an error occurs, returns nil. An error can occur if:
|
||||
* - A sender already exists for the track.
|
||||
* - The peer connection is closed.
|
||||
*/
|
||||
- (RTCRtpSender *)addTrack:(RTCMediaStreamTrack *)track streamIds:(NSArray<NSString *> *)streamIds;
|
||||
|
||||
/** With PlanB semantics, removes an RTCRtpSender from this peer connection.
|
||||
*
|
||||
* With UnifiedPlan semantics, sets sender's track to null and removes the
|
||||
* send component from the associated RTCRtpTransceiver's direction.
|
||||
*
|
||||
* Returns YES on success.
|
||||
*/
|
||||
- (BOOL)removeTrack:(RTCRtpSender *)sender;
|
||||
|
||||
/** addTransceiver creates a new RTCRtpTransceiver and adds it to the set of
|
||||
* transceivers. Adding a transceiver will cause future calls to CreateOffer
|
||||
* to add a media description for the corresponding transceiver.
|
||||
*
|
||||
* The initial value of |mid| in the returned transceiver is nil. Setting a
|
||||
* new session description may change it to a non-nil value.
|
||||
*
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtransceiver
|
||||
*
|
||||
* Optionally, an RtpTransceiverInit structure can be specified to configure
|
||||
* the transceiver from construction. If not specified, the transceiver will
|
||||
* default to having a direction of kSendRecv and not be part of any streams.
|
||||
*
|
||||
* These methods are only available when Unified Plan is enabled (see
|
||||
* RTCConfiguration).
|
||||
*/
|
||||
|
||||
/** Adds a transceiver with a sender set to transmit the given track. The kind
|
||||
* of the transceiver (and sender/receiver) will be derived from the kind of
|
||||
* the track.
|
||||
*/
|
||||
- (RTCRtpTransceiver *)addTransceiverWithTrack:(RTCMediaStreamTrack *)track;
|
||||
- (RTCRtpTransceiver *)addTransceiverWithTrack:(RTCMediaStreamTrack *)track
|
||||
init:(RTCRtpTransceiverInit *)init;
|
||||
|
||||
/** Adds a transceiver with the given kind. Can either be RTCRtpMediaTypeAudio
|
||||
* or RTCRtpMediaTypeVideo.
|
||||
*/
|
||||
- (RTCRtpTransceiver *)addTransceiverOfType:(RTCRtpMediaType)mediaType;
|
||||
- (RTCRtpTransceiver *)addTransceiverOfType:(RTCRtpMediaType)mediaType
|
||||
init:(RTCRtpTransceiverInit *)init;
|
||||
|
||||
/** Generate an SDP offer. */
|
||||
- (void)offerForConstraints:(RTCMediaConstraints *)constraints
|
||||
completionHandler:(nullable void (^)(RTCSessionDescription *_Nullable sdp,
|
||||
NSError *_Nullable error))completionHandler;
|
||||
|
||||
/** Generate an SDP answer. */
|
||||
- (void)answerForConstraints:(RTCMediaConstraints *)constraints
|
||||
completionHandler:(nullable void (^)(RTCSessionDescription *_Nullable sdp,
|
||||
NSError *_Nullable error))completionHandler;
|
||||
|
||||
/** Apply the supplied RTCSessionDescription as the local description. */
|
||||
- (void)setLocalDescription:(RTCSessionDescription *)sdp
|
||||
completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler;
|
||||
|
||||
/** Apply the supplied RTCSessionDescription as the remote description. */
|
||||
- (void)setRemoteDescription:(RTCSessionDescription *)sdp
|
||||
completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler;
|
||||
|
||||
/** Limits the bandwidth allocated for all RTP streams sent by this
|
||||
* PeerConnection. Nil parameters will be unchanged. Setting
|
||||
* |currentBitrateBps| will force the available bitrate estimate to the given
|
||||
* value. Returns YES if the parameters were successfully updated.
|
||||
*/
|
||||
- (BOOL)setBweMinBitrateBps:(nullable NSNumber *)minBitrateBps
|
||||
currentBitrateBps:(nullable NSNumber *)currentBitrateBps
|
||||
maxBitrateBps:(nullable NSNumber *)maxBitrateBps;
|
||||
|
||||
/** Start or stop recording an Rtc EventLog. */
|
||||
- (BOOL)startRtcEventLogWithFilePath:(NSString *)filePath maxSizeInBytes:(int64_t)maxSizeInBytes;
|
||||
- (void)stopRtcEventLog;
|
||||
|
||||
@end
|
||||
|
||||
@interface RTCPeerConnection (Media)
|
||||
|
||||
/** Create an RTCRtpSender with the specified kind and media stream ID.
|
||||
* See RTCMediaStreamTrack.h for available kinds.
|
||||
* This method is not supported with RTCSdpSemanticsUnifiedPlan. Please use
|
||||
* addTransceiver instead.
|
||||
*/
|
||||
- (RTCRtpSender *)senderWithKind:(NSString *)kind streamId:(NSString *)streamId;
|
||||
|
||||
@end
|
||||
|
||||
@interface RTCPeerConnection (DataChannel)
|
||||
|
||||
/** Create a new data channel with the given label and configuration. */
|
||||
- (nullable RTCDataChannel *)dataChannelForLabel:(NSString *)label
|
||||
configuration:(RTCDataChannelConfiguration *)configuration;
|
||||
|
||||
@end
|
||||
|
||||
typedef void (^RTCStatisticsCompletionHandler)(RTCStatisticsReport *);
|
||||
|
||||
@interface RTCPeerConnection (Stats)
|
||||
|
||||
/** Gather stats for the given RTCMediaStreamTrack. If |mediaStreamTrack| is nil
|
||||
* statistics are gathered for all tracks.
|
||||
*/
|
||||
- (void)statsForTrack:(nullable RTCMediaStreamTrack *)mediaStreamTrack
|
||||
statsOutputLevel:(RTCStatsOutputLevel)statsOutputLevel
|
||||
completionHandler:(nullable void (^)(NSArray<RTCLegacyStatsReport *> *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
|
@ -1,81 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class RTCAudioSource;
|
||||
@class RTCAudioTrack;
|
||||
@class RTCConfiguration;
|
||||
@class RTCMediaConstraints;
|
||||
@class RTCMediaStream;
|
||||
@class RTCPeerConnection;
|
||||
@class RTCVideoSource;
|
||||
@class RTCVideoTrack;
|
||||
@class RTCPeerConnectionFactoryOptions;
|
||||
@protocol RTCPeerConnectionDelegate;
|
||||
@protocol RTCVideoDecoderFactory;
|
||||
@protocol RTCVideoEncoderFactory;
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCPeerConnectionFactory : NSObject
|
||||
|
||||
/* Initialize object with default H264 video encoder/decoder factories */
|
||||
- (instancetype)init;
|
||||
|
||||
/* Initialize object with injectable video encoder/decoder factories */
|
||||
- (instancetype)initWithEncoderFactory:(nullable id<RTCVideoEncoderFactory>)encoderFactory
|
||||
decoderFactory:(nullable id<RTCVideoDecoderFactory>)decoderFactory;
|
||||
|
||||
/** Initialize an RTCAudioSource with constraints. */
|
||||
- (RTCAudioSource *)audioSourceWithConstraints:(nullable RTCMediaConstraints *)constraints;
|
||||
|
||||
/** Initialize an RTCAudioTrack with an id. Convenience ctor to use an audio source with no
|
||||
* constraints.
|
||||
*/
|
||||
- (RTCAudioTrack *)audioTrackWithTrackId:(NSString *)trackId;
|
||||
|
||||
/** Initialize an RTCAudioTrack with a source and an id. */
|
||||
- (RTCAudioTrack *)audioTrackWithSource:(RTCAudioSource *)source trackId:(NSString *)trackId;
|
||||
|
||||
/** Initialize a generic RTCVideoSource. The RTCVideoSource should be passed to a RTCVideoCapturer
|
||||
* implementation, e.g. RTCCameraVideoCapturer, in order to produce frames.
|
||||
*/
|
||||
- (RTCVideoSource *)videoSource;
|
||||
|
||||
/** Initialize an RTCVideoTrack with a source and an id. */
|
||||
- (RTCVideoTrack *)videoTrackWithSource:(RTCVideoSource *)source trackId:(NSString *)trackId;
|
||||
|
||||
/** Initialize an RTCMediaStream with an id. */
|
||||
- (RTCMediaStream *)mediaStreamWithStreamId:(NSString *)streamId;
|
||||
|
||||
/** Initialize an RTCPeerConnection with a configuration, constraints, and
|
||||
* delegate.
|
||||
*/
|
||||
- (RTCPeerConnection *)peerConnectionWithConfiguration:(RTCConfiguration *)configuration
|
||||
constraints:(RTCMediaConstraints *)constraints
|
||||
delegate:
|
||||
(nullable id<RTCPeerConnectionDelegate>)delegate;
|
||||
|
||||
/** Set the options to be used for subsequently created RTCPeerConnections */
|
||||
- (void)setOptions:(nonnull RTCPeerConnectionFactoryOptions *)options;
|
||||
|
||||
/** Start an AecDump recording. This API call will likely change in the future. */
|
||||
- (BOOL)startAecDumpWithFilePath:(NSString *)filePath maxSizeInBytes:(int64_t)maxSizeInBytes;
|
||||
|
||||
/* Stop an active AecDump recording */
|
||||
- (void)stopAecDump;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,38 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCPeerConnectionFactoryOptions : NSObject
|
||||
|
||||
@property(nonatomic, assign) BOOL disableEncryption;
|
||||
|
||||
@property(nonatomic, assign) BOOL disableNetworkMonitor;
|
||||
|
||||
@property(nonatomic, assign) BOOL ignoreLoopbackNetworkAdapter;
|
||||
|
||||
@property(nonatomic, assign) BOOL ignoreVPNNetworkAdapter;
|
||||
|
||||
@property(nonatomic, assign) BOOL ignoreCellularNetworkAdapter;
|
||||
|
||||
@property(nonatomic, assign) BOOL ignoreWiFiNetworkAdapter;
|
||||
|
||||
@property(nonatomic, assign) BOOL ignoreEthernetNetworkAdapter;
|
||||
|
||||
- (instancetype)init NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,30 +0,0 @@
|
||||
/*
|
||||
* 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCRtcpParameters : NSObject
|
||||
|
||||
/** The Canonical Name used by RTCP. */
|
||||
@property(nonatomic, readonly, copy) NSString *cname;
|
||||
|
||||
/** Whether reduced size RTCP is configured or compound RTCP. */
|
||||
@property(nonatomic, assign) BOOL isReducedSize;
|
||||
|
||||
- (instancetype)init NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,73 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_EXTERN const NSString *const kRTCRtxCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCRedCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCUlpfecCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCFlexfecCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCOpusCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCIsacCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCL16CodecName;
|
||||
RTC_EXTERN const NSString *const kRTCG722CodecName;
|
||||
RTC_EXTERN const NSString *const kRTCIlbcCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCPcmuCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCPcmaCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCDtmfCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCComfortNoiseCodecName;
|
||||
RTC_EXTERN const NSString *const kRTCVp8CodecName;
|
||||
RTC_EXTERN const NSString *const kRTCVp9CodecName;
|
||||
RTC_EXTERN const NSString *const kRTCH264CodecName;
|
||||
|
||||
/** Defined in http://w3c.github.io/webrtc-pc/#idl-def-RTCRtpCodecParameters */
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCRtpCodecParameters : NSObject
|
||||
|
||||
/** The RTP payload type. */
|
||||
@property(nonatomic, assign) int payloadType;
|
||||
|
||||
/**
|
||||
* The codec MIME subtype. Valid types are listed in:
|
||||
* http://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-2
|
||||
*
|
||||
* Several supported types are represented by the constants above.
|
||||
*/
|
||||
@property(nonatomic, readonly, nonnull) NSString *name;
|
||||
|
||||
/**
|
||||
* The media type of this codec. Equivalent to MIME top-level type.
|
||||
*
|
||||
* Valid values are kRTCMediaStreamTrackKindAudio and
|
||||
* kRTCMediaStreamTrackKindVideo.
|
||||
*/
|
||||
@property(nonatomic, readonly, nonnull) NSString *kind;
|
||||
|
||||
/** The codec clock rate expressed in Hertz. */
|
||||
@property(nonatomic, readonly, nullable) NSNumber *clockRate;
|
||||
|
||||
/**
|
||||
* The number of channels (mono=1, stereo=2).
|
||||
* Set to null for video codecs.
|
||||
**/
|
||||
@property(nonatomic, readonly, nullable) NSNumber *numChannels;
|
||||
|
||||
/** The "format specific parameters" field from the "a=fmtp" line in the SDP */
|
||||
@property(nonatomic, readonly, nonnull) NSDictionary *parameters;
|
||||
|
||||
- (instancetype)init NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,61 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
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;
|
||||
|
||||
/** The maximum bitrate to use for the encoding, or nil if there is no
|
||||
* limit.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSNumber *maxBitrateBps;
|
||||
|
||||
/** The minimum bitrate to use for the encoding, or nil if there is no
|
||||
* limit.
|
||||
*/
|
||||
@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
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,28 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Information for header. Corresponds to webrtc::RTPFragmentationHeader. */
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCRtpFragmentationHeader : NSObject
|
||||
|
||||
@property(nonatomic, strong) NSArray<NSNumber *> *fragmentationOffset;
|
||||
@property(nonatomic, strong) NSArray<NSNumber *> *fragmentationLength;
|
||||
@property(nonatomic, strong) NSArray<NSNumber *> *fragmentationTimeDiff;
|
||||
@property(nonatomic, strong) NSArray<NSNumber *> *fragmentationPlType;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,33 +0,0 @@
|
||||
/*
|
||||
* 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCRtpHeaderExtension : NSObject
|
||||
|
||||
/** The URI of the RTP header extension, as defined in RFC5285. */
|
||||
@property(nonatomic, readonly, copy) NSString *uri;
|
||||
|
||||
/** The value put in the RTP packet to identify the header extension. */
|
||||
@property(nonatomic, readonly) int id;
|
||||
|
||||
/** Whether the header extension is encrypted or not. */
|
||||
@property(nonatomic, readonly, getter=isEncrypted) BOOL encrypted;
|
||||
|
||||
- (instancetype)init NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,43 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCRtcpParameters.h"
|
||||
#import "RTCRtpCodecParameters.h"
|
||||
#import "RTCRtpEncodingParameters.h"
|
||||
#import "RTCRtpHeaderExtension.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCRtpParameters : NSObject
|
||||
|
||||
/** A unique identifier for the last set of parameters applied. */
|
||||
@property(nonatomic, copy) NSString *transactionId;
|
||||
|
||||
/** Parameters used for RTCP. */
|
||||
@property(nonatomic, readonly, copy) RTCRtcpParameters *rtcp;
|
||||
|
||||
/** An array containing parameters for RTP header extensions. */
|
||||
@property(nonatomic, readonly, copy) NSArray<RTCRtpHeaderExtension *> *headerExtensions;
|
||||
|
||||
/** The currently active encodings in the order of preference. */
|
||||
@property(nonatomic, copy) NSArray<RTCRtpEncodingParameters *> *encodings;
|
||||
|
||||
/** The negotiated set of send codecs in order of preference. */
|
||||
@property(nonatomic, copy) NSArray<RTCRtpCodecParameters *> *codecs;
|
||||
|
||||
- (instancetype)init NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,82 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCMediaStreamTrack.h"
|
||||
#import "RTCRtpParameters.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Represents the media type of the RtpReceiver. */
|
||||
typedef NS_ENUM(NSInteger, RTCRtpMediaType) {
|
||||
RTCRtpMediaTypeAudio,
|
||||
RTCRtpMediaTypeVideo,
|
||||
RTCRtpMediaTypeData,
|
||||
};
|
||||
|
||||
@class RTCRtpReceiver;
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCRtpReceiverDelegate <NSObject>
|
||||
|
||||
/** Called when the first RTP packet is received.
|
||||
*
|
||||
* Note: Currently if there are multiple RtpReceivers of the same media type,
|
||||
* they will all call OnFirstPacketReceived at once.
|
||||
*
|
||||
* For example, if we create three audio receivers, A/B/C, they will listen to
|
||||
* the same signal from the underneath network layer. Whenever the first audio packet
|
||||
* is received, the underneath signal will be fired. All the receivers A/B/C will be
|
||||
* notified and the callback of the receiver's delegate will be called.
|
||||
*
|
||||
* The process is the same for video receivers.
|
||||
*/
|
||||
- (void)rtpReceiver:(RTCRtpReceiver *)rtpReceiver
|
||||
didReceiveFirstPacketForMediaType:(RTCRtpMediaType)mediaType;
|
||||
|
||||
@end
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCRtpReceiver <NSObject>
|
||||
|
||||
/** A unique identifier for this receiver. */
|
||||
@property(nonatomic, readonly) NSString *receiverId;
|
||||
|
||||
/** The currently active RTCRtpParameters, as defined in
|
||||
* https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters.
|
||||
*
|
||||
* The WebRTC specification only defines RTCRtpParameters in terms of senders,
|
||||
* but this API also applies them to receivers, similar to ORTC:
|
||||
* http://ortc.org/wp-content/uploads/2016/03/ortc.html#rtcrtpparameters*.
|
||||
*/
|
||||
@property(nonatomic, readonly) RTCRtpParameters *parameters;
|
||||
|
||||
/** The RTCMediaStreamTrack associated with the receiver.
|
||||
* Note: reading this property returns a new instance of
|
||||
* RTCMediaStreamTrack. Use isEqual: instead of == to compare
|
||||
* RTCMediaStreamTrack instances.
|
||||
*/
|
||||
@property(nonatomic, readonly, nullable) RTCMediaStreamTrack *track;
|
||||
|
||||
/** The delegate for this RtpReceiver. */
|
||||
@property(nonatomic, weak) id<RTCRtpReceiverDelegate> delegate;
|
||||
|
||||
@end
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCRtpReceiver : NSObject <RTCRtpReceiver>
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,53 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCDtmfSender.h"
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCMediaStreamTrack.h"
|
||||
#import "RTCRtpParameters.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCRtpSender <NSObject>
|
||||
|
||||
/** A unique identifier for this sender. */
|
||||
@property(nonatomic, readonly) NSString *senderId;
|
||||
|
||||
/** The currently active RTCRtpParameters, as defined in
|
||||
* https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters.
|
||||
*/
|
||||
@property(nonatomic, copy) RTCRtpParameters *parameters;
|
||||
|
||||
/** The RTCMediaStreamTrack associated with the sender.
|
||||
* Note: reading this property returns a new instance of
|
||||
* RTCMediaStreamTrack. Use isEqual: instead of == to compare
|
||||
* RTCMediaStreamTrack instances.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) RTCMediaStreamTrack *track;
|
||||
|
||||
/** IDs of streams associated with the RTP sender */
|
||||
@property(nonatomic, copy) NSArray<NSString *> *streamIds;
|
||||
|
||||
/** The RTCDtmfSender accociated with the RTP sender. */
|
||||
@property(nonatomic, readonly, nullable) id<RTCDtmfSender> dtmfSender;
|
||||
|
||||
@end
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCRtpSender : NSObject <RTCRtpSender>
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,129 +0,0 @@
|
||||
/*
|
||||
* 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCRtpReceiver.h"
|
||||
#import "RTCRtpSender.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiverdirection */
|
||||
typedef NS_ENUM(NSInteger, RTCRtpTransceiverDirection) {
|
||||
RTCRtpTransceiverDirectionSendRecv,
|
||||
RTCRtpTransceiverDirectionSendOnly,
|
||||
RTCRtpTransceiverDirectionRecvOnly,
|
||||
RTCRtpTransceiverDirectionInactive,
|
||||
};
|
||||
|
||||
/** Structure for initializing an RTCRtpTransceiver in a call to
|
||||
* RTCPeerConnection.addTransceiver.
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiverinit
|
||||
*/
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCRtpTransceiverInit : NSObject
|
||||
|
||||
/** Direction of the RTCRtpTransceiver. See RTCRtpTransceiver.direction. */
|
||||
@property(nonatomic) RTCRtpTransceiverDirection direction;
|
||||
|
||||
/** The added RTCRtpTransceiver will be added to these streams. */
|
||||
@property(nonatomic) NSArray<NSString *> *streamIds;
|
||||
|
||||
/** TODO(bugs.webrtc.org/7600): Not implemented. */
|
||||
@property(nonatomic) NSArray<RTCRtpEncodingParameters *> *sendEncodings;
|
||||
|
||||
@end
|
||||
|
||||
@class RTCRtpTransceiver;
|
||||
|
||||
/** The RTCRtpTransceiver maps to the RTCRtpTransceiver defined by the WebRTC
|
||||
* specification. A transceiver represents a combination of an RTCRtpSender
|
||||
* and an RTCRtpReceiver that share a common mid. As defined in JSEP, an
|
||||
* RTCRtpTransceiver is said to be associated with a media description if its
|
||||
* mid property is non-nil; otherwise, it is said to be disassociated.
|
||||
* JSEP: https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24
|
||||
*
|
||||
* Note that RTCRtpTransceivers are only supported when using
|
||||
* RTCPeerConnection with Unified Plan SDP.
|
||||
*
|
||||
* WebRTC specification for RTCRtpTransceiver, the JavaScript analog:
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver
|
||||
*/
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCRtpTransceiver <NSObject>
|
||||
|
||||
/** Media type of the transceiver. The sender and receiver will also have this
|
||||
* type.
|
||||
*/
|
||||
@property(nonatomic, readonly) RTCRtpMediaType mediaType;
|
||||
|
||||
/** The mid attribute is the mid negotiated and present in the local and
|
||||
* remote descriptions. Before negotiation is complete, the mid value may be
|
||||
* nil. After rollbacks, the value may change from a non-nil value to nil.
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-mid
|
||||
*/
|
||||
@property(nonatomic, readonly) NSString *mid;
|
||||
|
||||
/** The sender attribute exposes the RTCRtpSender corresponding to the RTP
|
||||
* media that may be sent with the transceiver's mid. The sender is always
|
||||
* present, regardless of the direction of media.
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-sender
|
||||
*/
|
||||
@property(nonatomic, readonly) RTCRtpSender *sender;
|
||||
|
||||
/** The receiver attribute exposes the RTCRtpReceiver corresponding to the RTP
|
||||
* media that may be received with the transceiver's mid. The receiver is
|
||||
* always present, regardless of the direction of media.
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-receiver
|
||||
*/
|
||||
@property(nonatomic, readonly) RTCRtpReceiver *receiver;
|
||||
|
||||
/** The isStopped attribute indicates that the sender of this transceiver will
|
||||
* no longer send, and that the receiver will no longer receive. It is true if
|
||||
* either stop has been called or if setting the local or remote description
|
||||
* has caused the RTCRtpTransceiver to be stopped.
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-stopped
|
||||
*/
|
||||
@property(nonatomic, readonly) BOOL isStopped;
|
||||
|
||||
/** The direction attribute indicates the preferred direction of this
|
||||
* transceiver, which will be used in calls to createOffer and createAnswer.
|
||||
* An update of directionality does not take effect immediately. Instead,
|
||||
* future calls to createOffer and createAnswer mark the corresponding media
|
||||
* descriptions as sendrecv, sendonly, recvonly, or inactive.
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-direction
|
||||
*/
|
||||
@property(nonatomic) RTCRtpTransceiverDirection direction;
|
||||
|
||||
/** The currentDirection attribute indicates the current direction negotiated
|
||||
* for this transceiver. If this transceiver has never been represented in an
|
||||
* offer/answer exchange, or if the transceiver is stopped, the value is not
|
||||
* present and this method returns NO.
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-currentdirection
|
||||
*/
|
||||
- (BOOL)currentDirection:(RTCRtpTransceiverDirection *)currentDirectionOut;
|
||||
|
||||
/** The stop method irreversibly stops the RTCRtpTransceiver. The sender of
|
||||
* this transceiver will no longer send, the receiver will no longer receive.
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-stop
|
||||
*/
|
||||
- (void)stop;
|
||||
|
||||
@end
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCRtpTransceiver : NSObject <RTCRtpTransceiver>
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,20 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
/**
|
||||
* Initialize and clean up the SSL library. Failure is fatal. These call the
|
||||
* corresponding functions in webrtc/rtc_base/ssladapter.h.
|
||||
*/
|
||||
RTC_EXTERN BOOL RTCInitializeSSL(void);
|
||||
RTC_EXTERN BOOL RTCCleanupSSL(void);
|
@ -1,47 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
/**
|
||||
* Represents the session description type. This exposes the same types that are
|
||||
* in C++, which doesn't include the rollback type that is in the W3C spec.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RTCSdpType) {
|
||||
RTCSdpTypeOffer,
|
||||
RTCSdpTypePrAnswer,
|
||||
RTCSdpTypeAnswer,
|
||||
};
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCSessionDescription : NSObject
|
||||
|
||||
/** The type of session description. */
|
||||
@property(nonatomic, readonly) RTCSdpType type;
|
||||
|
||||
/** The SDP string representation of this session description. */
|
||||
@property(nonatomic, readonly) NSString *sdp;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/** Initialize a session description with a type and SDP string. */
|
||||
- (instancetype)initWithType:(RTCSdpType)type sdp:(NSString *)sdp NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
+ (NSString *)stringForType:(RTCSdpType)type;
|
||||
|
||||
+ (RTCSdpType)typeForString:(NSString *)string;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,21 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
RTC_EXTERN void RTCSetupInternalTracer(void);
|
||||
/** Starts capture to specified file. Must be a valid writable path.
|
||||
* Returns YES if capture starts.
|
||||
*/
|
||||
RTC_EXTERN BOOL RTCStartInternalCapture(NSString* filePath);
|
||||
RTC_EXTERN void RTCStopInternalCapture(void);
|
||||
RTC_EXTERN void RTCShutdownInternalTracer(void);
|
@ -1,33 +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 "RTCVideoFrame.h"
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class RTCVideoCapturer;
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCVideoCapturerDelegate <NSObject>
|
||||
- (void)capturer:(RTCVideoCapturer *)capturer didCaptureVideoFrame:(RTCVideoFrame *)frame;
|
||||
@end
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoCapturer : NSObject
|
||||
|
||||
@property(nonatomic, weak) id<RTCVideoCapturerDelegate> delegate;
|
||||
|
||||
- (instancetype)initWithDelegate:(id<RTCVideoCapturerDelegate>)delegate;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,16 +0,0 @@
|
||||
/*
|
||||
* 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
RTC_OBJC_EXPORT extern NSString* const kRTCVideoCodecVp8Name;
|
||||
RTC_OBJC_EXPORT extern NSString* const kRTCVideoCodecVp9Name;
|
@ -1,36 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Holds information to identify a codec. Corresponds to webrtc::SdpVideoFormat. */
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoCodecInfo : NSObject <NSCoding>
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
- (instancetype)initWithName:(NSString *)name;
|
||||
|
||||
- (instancetype)initWithName:(NSString *)name
|
||||
parameters:(nullable NSDictionary<NSString *, NSString *> *)parameters
|
||||
NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
- (BOOL)isEqualToCodecInfo:(RTCVideoCodecInfo *)info;
|
||||
|
||||
@property(nonatomic, readonly) NSString *name;
|
||||
@property(nonatomic, readonly) NSDictionary<NSString *, NSString *> *parameters;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,39 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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 <NSObject>
|
||||
|
||||
- (void)setCallback:(RTCVideoDecoderCallback)callback;
|
||||
- (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores;
|
||||
- (NSInteger)releaseDecoder;
|
||||
- (NSInteger)decode:(RTCEncodedImage *)encodedImage
|
||||
missingFrames:(BOOL)missingFrames
|
||||
codecSpecificInfo:(nullable id<RTCCodecSpecificInfo>)info
|
||||
renderTimeMs:(int64_t)renderTimeMs;
|
||||
- (NSString *)implementationName;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,28 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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 <NSObject>
|
||||
|
||||
- (nullable id<RTCVideoDecoder>)createDecoder:(RTCVideoCodecInfo *)info;
|
||||
- (NSArray<RTCVideoCodecInfo *> *)supportedCodecs; // TODO(andersc): "supportedFormats" instead?
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,18 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoDecoderFactory.h"
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoDecoderFactoryH264 : NSObject <RTCVideoDecoderFactory>
|
||||
@end
|
@ -1,18 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoDecoder.h"
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoDecoderH264 : NSObject <RTCVideoDecoder>
|
||||
@end
|
@ -1,25 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoDecoder.h"
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoDecoderVP8 : NSObject
|
||||
|
||||
/* This returns a VP8 decoder that can be returned from a RTCVideoDecoderFactory injected into
|
||||
* RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be
|
||||
* used independently from the RTCPeerConnectionFactory.
|
||||
*/
|
||||
+ (id<RTCVideoDecoder>)vp8Decoder;
|
||||
|
||||
@end
|
@ -1,25 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoDecoder.h"
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoDecoderVP9 : NSObject
|
||||
|
||||
/* This returns a VP9 decoder that can be returned from a RTCVideoDecoderFactory injected into
|
||||
* RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be
|
||||
* used independently from the RTCPeerConnectionFactory.
|
||||
*/
|
||||
+ (id<RTCVideoDecoder>)vp9Decoder;
|
||||
|
||||
@end
|
@ -1,49 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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<RTCCodecSpecificInfo> info,
|
||||
RTCRtpFragmentationHeader *header);
|
||||
|
||||
/** Protocol for encoder implementations. */
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCVideoEncoder <NSObject>
|
||||
|
||||
- (void)setCallback:(RTCVideoEncoderCallback)callback;
|
||||
- (NSInteger)startEncodeWithSettings:(RTCVideoEncoderSettings *)settings
|
||||
numberOfCores:(int)numberOfCores;
|
||||
- (NSInteger)releaseEncoder;
|
||||
- (NSInteger)encode:(RTCVideoFrame *)frame
|
||||
codecSpecificInfo:(nullable id<RTCCodecSpecificInfo>)info
|
||||
frameTypes:(NSArray<NSNumber *> *)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
|
@ -1,31 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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 <NSObject>
|
||||
|
||||
- (nullable id<RTCVideoEncoder>)createEncoder:(RTCVideoCodecInfo *)info;
|
||||
- (NSArray<RTCVideoCodecInfo *> *)supportedCodecs; // TODO(andersc): "supportedFormats" instead?
|
||||
|
||||
@optional
|
||||
- (NSArray<RTCVideoCodecInfo *> *)implementations;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,18 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoEncoderFactory.h"
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoEncoderFactoryH264 : NSObject <RTCVideoEncoderFactory>
|
||||
@end
|
@ -1,22 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoCodecInfo.h"
|
||||
#import "RTCVideoEncoder.h"
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoEncoderH264 : NSObject <RTCVideoEncoder>
|
||||
|
||||
- (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo;
|
||||
|
||||
@end
|
@ -1,28 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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
|
@ -1,42 +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 <Foundation/Foundation.h>
|
||||
|
||||
#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
|
@ -1,25 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoEncoder.h"
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoEncoderVP8 : NSObject
|
||||
|
||||
/* This returns a VP8 encoder that can be returned from a RTCVideoEncoderFactory injected into
|
||||
* RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be
|
||||
* used independently from the RTCPeerConnectionFactory.
|
||||
*/
|
||||
+ (id<RTCVideoEncoder>)vp8Encoder;
|
||||
|
||||
@end
|
@ -1,25 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoEncoder.h"
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoEncoderVP9 : NSObject
|
||||
|
||||
/* This returns a VP9 encoder that can be returned from a RTCVideoEncoderFactory injected into
|
||||
* RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be
|
||||
* used independently from the RTCPeerConnectionFactory.
|
||||
*/
|
||||
+ (id<RTCVideoEncoder>)vp9Encoder;
|
||||
|
||||
@end
|
@ -1,85 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <AVFoundation/AVFoundation.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef NS_ENUM(NSInteger, RTCVideoRotation) {
|
||||
RTCVideoRotation_0 = 0,
|
||||
RTCVideoRotation_90 = 90,
|
||||
RTCVideoRotation_180 = 180,
|
||||
RTCVideoRotation_270 = 270,
|
||||
};
|
||||
|
||||
@protocol RTCVideoFrameBuffer;
|
||||
|
||||
// RTCVideoFrame is an ObjectiveC version of webrtc::VideoFrame.
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoFrame : NSObject
|
||||
|
||||
/** Width without rotation applied. */
|
||||
@property(nonatomic, readonly) int width;
|
||||
|
||||
/** Height without rotation applied. */
|
||||
@property(nonatomic, readonly) int height;
|
||||
@property(nonatomic, readonly) RTCVideoRotation rotation;
|
||||
|
||||
/** Timestamp in nanoseconds. */
|
||||
@property(nonatomic, readonly) int64_t timeStampNs;
|
||||
|
||||
/** Timestamp 90 kHz. */
|
||||
@property(nonatomic, assign) int32_t timeStamp;
|
||||
|
||||
@property(nonatomic, readonly) id<RTCVideoFrameBuffer> buffer;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
- (instancetype) new NS_UNAVAILABLE;
|
||||
|
||||
/** Initialize an RTCVideoFrame from a pixel buffer, rotation, and timestamp.
|
||||
* Deprecated - initialize with a RTCCVPixelBuffer instead
|
||||
*/
|
||||
- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer
|
||||
rotation:(RTCVideoRotation)rotation
|
||||
timeStampNs:(int64_t)timeStampNs
|
||||
DEPRECATED_MSG_ATTRIBUTE("use initWithBuffer instead");
|
||||
|
||||
/** Initialize an RTCVideoFrame from a pixel buffer combined with cropping and
|
||||
* scaling. Cropping will be applied first on the pixel buffer, followed by
|
||||
* scaling to the final resolution of scaledWidth x scaledHeight.
|
||||
*/
|
||||
- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer
|
||||
scaledWidth:(int)scaledWidth
|
||||
scaledHeight:(int)scaledHeight
|
||||
cropWidth:(int)cropWidth
|
||||
cropHeight:(int)cropHeight
|
||||
cropX:(int)cropX
|
||||
cropY:(int)cropY
|
||||
rotation:(RTCVideoRotation)rotation
|
||||
timeStampNs:(int64_t)timeStampNs
|
||||
DEPRECATED_MSG_ATTRIBUTE("use initWithBuffer instead");
|
||||
|
||||
/** Initialize an RTCVideoFrame from a frame buffer, rotation, and timestamp.
|
||||
*/
|
||||
- (instancetype)initWithBuffer:(id<RTCVideoFrameBuffer>)frameBuffer
|
||||
rotation:(RTCVideoRotation)rotation
|
||||
timeStampNs:(int64_t)timeStampNs;
|
||||
|
||||
/** Return a frame that is guaranteed to be I420, i.e. it is possible to access
|
||||
* the YUV data on it.
|
||||
*/
|
||||
- (RTCVideoFrame *)newI420VideoFrame;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,30 +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 <AVFoundation/AVFoundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol RTCI420Buffer;
|
||||
|
||||
// RTCVideoFrameBuffer is an ObjectiveC version of webrtc::VideoFrameBuffer.
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCVideoFrameBuffer <NSObject>
|
||||
|
||||
@property(nonatomic, readonly) int width;
|
||||
@property(nonatomic, readonly) int height;
|
||||
|
||||
- (id<RTCI420Buffer>)toI420;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
#if TARGET_OS_IPHONE
|
||||
#import <UIKit/UIKit.h>
|
||||
#endif
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class RTCVideoFrame;
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCVideoRenderer <NSObject>
|
||||
|
||||
/** The size of the frame. */
|
||||
- (void)setSize:(CGSize)size;
|
||||
|
||||
/** The frame to be displayed. */
|
||||
- (void)renderFrame:(nullable RTCVideoFrame *)frame;
|
||||
|
||||
@end
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCVideoViewDelegate
|
||||
|
||||
- (void)videoView:(id<RTCVideoRenderer>)videoView didChangeVideoSize:(CGSize)size;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,37 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCMediaSource.h"
|
||||
#import "RTCVideoCapturer.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
|
||||
@interface RTCVideoSource : RTCMediaSource <RTCVideoCapturerDelegate>
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/**
|
||||
* Calling this function will cause frames to be scaled down to the
|
||||
* requested resolution. Also, frames will be cropped to match the
|
||||
* requested aspect ratio, and frames will be dropped to match the
|
||||
* requested fps. The requested aspect ratio is orientation agnostic and
|
||||
* will be adjusted to maintain the input orientation, so it doesn't
|
||||
* matter if e.g. 1280x720 or 720x1280 is requested.
|
||||
*/
|
||||
- (void)adaptOutputFormatToWidth:(int)width height:(int)height fps:(int)fps;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,37 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 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 "RTCMediaStreamTrack.h"
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol RTCVideoRenderer;
|
||||
@class RTCPeerConnectionFactory;
|
||||
@class RTCVideoSource;
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTCVideoTrack : RTCMediaStreamTrack
|
||||
|
||||
/** The video source for this video track. */
|
||||
@property(nonatomic, readonly) RTCVideoSource *source;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/** Register a renderer that will render all frames received on this track. */
|
||||
- (void)addRenderer:(id<RTCVideoRenderer>)renderer;
|
||||
|
||||
/** Deregister a renderer. */
|
||||
- (void)removeRenderer:(id<RTCVideoRenderer>)renderer;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,41 +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 <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCVideoFrame.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* RTCVideoViewShading provides a way for apps to customize the OpenGL(ES) shaders used in
|
||||
* rendering for the RTCEAGLVideoView/RTCNSGLVideoView.
|
||||
*/
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCVideoViewShading <NSObject>
|
||||
|
||||
/** Callback for I420 frames. Each plane is given as a texture. */
|
||||
- (void)applyShadingForFrameWithWidth:(int)width
|
||||
height:(int)height
|
||||
rotation:(RTCVideoRotation)rotation
|
||||
yPlane:(GLuint)yPlane
|
||||
uPlane:(GLuint)uPlane
|
||||
vPlane:(GLuint)vPlane;
|
||||
|
||||
/** Callback for NV12 frames. Each plane is given as a texture. */
|
||||
- (void)applyShadingForFrameWithWidth:(int)width
|
||||
height:(int)height
|
||||
rotation:(RTCVideoRotation)rotation
|
||||
yPlane:(GLuint)yPlane
|
||||
uvPlane:(GLuint)uvPlane;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -1,45 +0,0 @@
|
||||
/*
|
||||
* 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 <AVFoundation/AVFoundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
#import "RTCVideoFrameBuffer.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Protocol for RTCVideoFrameBuffers containing YUV planar data. */
|
||||
RTC_OBJC_EXPORT
|
||||
@protocol RTCYUVPlanarBuffer <RTCVideoFrameBuffer>
|
||||
|
||||
@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
|
@ -1,84 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 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 <UIKit/UIKit.h>
|
||||
|
||||
typedef NS_ENUM(NSInteger, RTCDeviceType) {
|
||||
RTCDeviceTypeUnknown,
|
||||
RTCDeviceTypeIPhone1G,
|
||||
RTCDeviceTypeIPhone3G,
|
||||
RTCDeviceTypeIPhone3GS,
|
||||
RTCDeviceTypeIPhone4,
|
||||
RTCDeviceTypeIPhone4Verizon,
|
||||
RTCDeviceTypeIPhone4S,
|
||||
RTCDeviceTypeIPhone5GSM,
|
||||
RTCDeviceTypeIPhone5GSM_CDMA,
|
||||
RTCDeviceTypeIPhone5CGSM,
|
||||
RTCDeviceTypeIPhone5CGSM_CDMA,
|
||||
RTCDeviceTypeIPhone5SGSM,
|
||||
RTCDeviceTypeIPhone5SGSM_CDMA,
|
||||
RTCDeviceTypeIPhone6Plus,
|
||||
RTCDeviceTypeIPhone6,
|
||||
RTCDeviceTypeIPhone6S,
|
||||
RTCDeviceTypeIPhone6SPlus,
|
||||
RTCDeviceTypeIPhone7,
|
||||
RTCDeviceTypeIPhone7Plus,
|
||||
RTCDeviceTypeIPhoneSE,
|
||||
RTCDeviceTypeIPhone8,
|
||||
RTCDeviceTypeIPhone8Plus,
|
||||
RTCDeviceTypeIPhoneX,
|
||||
RTCDeviceTypeIPhoneXS,
|
||||
RTCDeviceTypeIPhoneXSMax,
|
||||
RTCDeviceTypeIPhoneXR,
|
||||
RTCDeviceTypeIPodTouch1G,
|
||||
RTCDeviceTypeIPodTouch2G,
|
||||
RTCDeviceTypeIPodTouch3G,
|
||||
RTCDeviceTypeIPodTouch4G,
|
||||
RTCDeviceTypeIPodTouch5G,
|
||||
RTCDeviceTypeIPodTouch6G,
|
||||
RTCDeviceTypeIPad,
|
||||
RTCDeviceTypeIPad2Wifi,
|
||||
RTCDeviceTypeIPad2GSM,
|
||||
RTCDeviceTypeIPad2CDMA,
|
||||
RTCDeviceTypeIPad2Wifi2,
|
||||
RTCDeviceTypeIPadMiniWifi,
|
||||
RTCDeviceTypeIPadMiniGSM,
|
||||
RTCDeviceTypeIPadMiniGSM_CDMA,
|
||||
RTCDeviceTypeIPad3Wifi,
|
||||
RTCDeviceTypeIPad3GSM_CDMA,
|
||||
RTCDeviceTypeIPad3GSM,
|
||||
RTCDeviceTypeIPad4Wifi,
|
||||
RTCDeviceTypeIPad4GSM,
|
||||
RTCDeviceTypeIPad4GSM_CDMA,
|
||||
RTCDeviceTypeIPad5,
|
||||
RTCDeviceTypeIPad6,
|
||||
RTCDeviceTypeIPadAirWifi,
|
||||
RTCDeviceTypeIPadAirCellular,
|
||||
RTCDeviceTypeIPadAirWifiCellular,
|
||||
RTCDeviceTypeIPadAir2,
|
||||
RTCDeviceTypeIPadMini2GWifi,
|
||||
RTCDeviceTypeIPadMini2GCellular,
|
||||
RTCDeviceTypeIPadMini2GWifiCellular,
|
||||
RTCDeviceTypeIPadMini3,
|
||||
RTCDeviceTypeIPadMini4,
|
||||
RTCDeviceTypeIPadPro9Inch,
|
||||
RTCDeviceTypeIPadPro12Inch,
|
||||
RTCDeviceTypeIPadPro12Inch2,
|
||||
RTCDeviceTypeIPadPro10Inch,
|
||||
RTCDeviceTypeSimulatori386,
|
||||
RTCDeviceTypeSimulatorx86_64,
|
||||
};
|
||||
|
||||
@interface UIDevice (RTCDevice)
|
||||
|
||||
+ (RTCDeviceType)deviceType;
|
||||
+ (BOOL)isIOS11OrLater;
|
||||
|
||||
@end
|
@ -1,93 +0,0 @@
|
||||
/*
|
||||
* 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 <WebRTC/RTCCodecSpecificInfo.h>
|
||||
#import <WebRTC/RTCEncodedImage.h>
|
||||
#import <WebRTC/RTCI420Buffer.h>
|
||||
#import <WebRTC/RTCLogging.h>
|
||||
#import <WebRTC/RTCMacros.h>
|
||||
#import <WebRTC/RTCMutableI420Buffer.h>
|
||||
#import <WebRTC/RTCMutableYUVPlanarBuffer.h>
|
||||
#import <WebRTC/RTCRtpFragmentationHeader.h>
|
||||
#import <WebRTC/RTCVideoCapturer.h>
|
||||
#import <WebRTC/RTCVideoCodecInfo.h>
|
||||
#import <WebRTC/RTCVideoDecoder.h>
|
||||
#import <WebRTC/RTCVideoDecoderFactory.h>
|
||||
#import <WebRTC/RTCVideoEncoder.h>
|
||||
#import <WebRTC/RTCVideoEncoderFactory.h>
|
||||
#import <WebRTC/RTCVideoEncoderQpThresholds.h>
|
||||
#import <WebRTC/RTCVideoEncoderSettings.h>
|
||||
#import <WebRTC/RTCVideoFrame.h>
|
||||
#import <WebRTC/RTCVideoFrameBuffer.h>
|
||||
#import <WebRTC/RTCVideoRenderer.h>
|
||||
#import <WebRTC/RTCYUVPlanarBuffer.h>
|
||||
#import <WebRTC/RTCAudioSession.h>
|
||||
#import <WebRTC/RTCAudioSessionConfiguration.h>
|
||||
#import <WebRTC/RTCCameraVideoCapturer.h>
|
||||
#import <WebRTC/RTCFileVideoCapturer.h>
|
||||
#import <WebRTC/RTCMTLVideoView.h>
|
||||
#import <WebRTC/RTCEAGLVideoView.h>
|
||||
#import <WebRTC/RTCVideoViewShading.h>
|
||||
#import <WebRTC/RTCCodecSpecificInfoH264.h>
|
||||
#import <WebRTC/RTCDefaultVideoDecoderFactory.h>
|
||||
#import <WebRTC/RTCDefaultVideoEncoderFactory.h>
|
||||
#import <WebRTC/RTCH264ProfileLevelId.h>
|
||||
#import <WebRTC/RTCVideoDecoderFactoryH264.h>
|
||||
#import <WebRTC/RTCVideoDecoderH264.h>
|
||||
#import <WebRTC/RTCVideoEncoderFactoryH264.h>
|
||||
#import <WebRTC/RTCVideoEncoderH264.h>
|
||||
#import <WebRTC/RTCCVPixelBuffer.h>
|
||||
#import <WebRTC/RTCCameraPreviewView.h>
|
||||
#import <WebRTC/RTCDispatcher.h>
|
||||
#import <WebRTC/UIDevice+RTCDevice.h>
|
||||
#import <WebRTC/RTCAudioSource.h>
|
||||
#import <WebRTC/RTCAudioTrack.h>
|
||||
#import <WebRTC/RTCConfiguration.h>
|
||||
#import <WebRTC/RTCDataChannel.h>
|
||||
#import <WebRTC/RTCDataChannelConfiguration.h>
|
||||
#import <WebRTC/RTCFieldTrials.h>
|
||||
#import <WebRTC/RTCIceCandidate.h>
|
||||
#import <WebRTC/RTCIceServer.h>
|
||||
#import <WebRTC/RTCIntervalRange.h>
|
||||
#import <WebRTC/RTCLegacyStatsReport.h>
|
||||
#import <WebRTC/RTCMediaConstraints.h>
|
||||
#import <WebRTC/RTCMediaSource.h>
|
||||
#import <WebRTC/RTCMediaStream.h>
|
||||
#import <WebRTC/RTCMediaStreamTrack.h>
|
||||
#import <WebRTC/RTCMetrics.h>
|
||||
#import <WebRTC/RTCMetricsSampleInfo.h>
|
||||
#import <WebRTC/RTCPeerConnection.h>
|
||||
#import <WebRTC/RTCPeerConnectionFactory.h>
|
||||
#import <WebRTC/RTCPeerConnectionFactoryOptions.h>
|
||||
#import <WebRTC/RTCRtcpParameters.h>
|
||||
#import <WebRTC/RTCRtpCodecParameters.h>
|
||||
#import <WebRTC/RTCRtpEncodingParameters.h>
|
||||
#import <WebRTC/RTCRtpHeaderExtension.h>
|
||||
#import <WebRTC/RTCRtpParameters.h>
|
||||
#import <WebRTC/RTCRtpReceiver.h>
|
||||
#import <WebRTC/RTCRtpSender.h>
|
||||
#import <WebRTC/RTCRtpTransceiver.h>
|
||||
#import <WebRTC/RTCDtmfSender.h>
|
||||
#import <WebRTC/RTCSSLAdapter.h>
|
||||
#import <WebRTC/RTCSessionDescription.h>
|
||||
#import <WebRTC/RTCTracing.h>
|
||||
#import <WebRTC/RTCCertificate.h>
|
||||
#import <WebRTC/RTCCryptoOptions.h>
|
||||
#import <WebRTC/RTCVideoSource.h>
|
||||
#import <WebRTC/RTCVideoTrack.h>
|
||||
#import <WebRTC/RTCVideoCodecConstants.h>
|
||||
#import <WebRTC/RTCVideoDecoderVP8.h>
|
||||
#import <WebRTC/RTCVideoDecoderVP9.h>
|
||||
#import <WebRTC/RTCVideoEncoderVP8.h>
|
||||
#import <WebRTC/RTCVideoEncoderVP9.h>
|
||||
#import <WebRTC/RTCNativeI420Buffer.h>
|
||||
#import <WebRTC/RTCNativeMutableI420Buffer.h>
|
||||
#import <WebRTC/RTCCallbackLogger.h>
|
||||
#import <WebRTC/RTCFileLogger.h>
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -1,6 +0,0 @@
|
||||
framework module WebRTC {
|
||||
umbrella header "WebRTC.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
Binary file not shown.
@ -0,0 +1,66 @@
|
||||
OPENSSL_FRAMEWORK="OpenSSL.xcframework"
|
||||
OPENSSL_VERSION="1.1.171"
|
||||
OPENSSL_CHECKSUM="da438351ed35625802c369a65476b21c7d49bf4a30cce4f91285f925f42bf5b9"
|
||||
OPENSSL_REPO="tigase/openssl-swiftpm"
|
||||
|
||||
WEBRTC_FRAMEWORK="WebRTC.framework"
|
||||
WEBRTC_VERSION="M79-iOS"
|
||||
WEBRTC_CHECKSUM="0bfdde8f8b7271b18ac73027c7e5f6bea838688b37c8399048b565968223ffeb"
|
||||
WEBRTC_REPO="tigase/webrtc-swiftpm"
|
||||
|
||||
testChecksum () {
|
||||
retval=0
|
||||
local CHECKSUM=($(shasum -a 256 "$1.zip"))
|
||||
if [ "$2" != "$CHECKSUM" ]; then
|
||||
echo "Checksum of $1 does not match, removing file"
|
||||
retval=1
|
||||
fi
|
||||
return "$retval"
|
||||
}
|
||||
|
||||
downloadFile () {
|
||||
echo "Downloading file $1..."
|
||||
curl -L "https://github.com/$2/releases/download/$3/$1.zip" -o "$1.zip"
|
||||
retval=$?
|
||||
return "$retval"
|
||||
}
|
||||
|
||||
downloadIfNeeded () {
|
||||
testChecksum $1 $2
|
||||
result=$?
|
||||
if [ "$result" != "0" ]; then
|
||||
rm -rf "$1"
|
||||
rm "$1.zip"
|
||||
downloadFile $1 $3 $4
|
||||
result=$?
|
||||
if [ "$result" = "0" ]; then
|
||||
testChecksum $1 $2
|
||||
result=$?
|
||||
if [ "$result" != "0" ]; then
|
||||
rm "$1"
|
||||
echo "Invalid checksum of downloaded file $1"
|
||||
exit $result
|
||||
fi
|
||||
unzip -q "$1.zip"
|
||||
else
|
||||
echo "Could not download file $1"
|
||||
exit $result
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
cd Frameworks
|
||||
|
||||
downloadIfNeeded $OPENSSL_FRAMEWORK $OPENSSL_CHECKSUM $OPENSSL_REPO $OPENSSL_VERSION
|
||||
result=$?
|
||||
if [ "$result" != "0" ]; then
|
||||
echo "Could not update $OPENSSL_FRAMEWORK";
|
||||
exit $result;
|
||||
fi
|
||||
|
||||
downloadIfNeeded $WEBRTC_FRAMEWORK $WEBRTC_CHECKSUM $WEBRTC_REPO $WEBRTC_VERSION
|
||||
result=$?
|
||||
if [ "$result" != "0" ]; then
|
||||
echo "Could not update $WEBRTC_FRAMEWORK";
|
||||
exit $result;
|
||||
fi
|
Loading…
Reference in new issue