├── .gitignore ├── Example ├── MediasoupExample.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── MediasoupExample.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── MediasoupExample │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── SceneDelegate.swift │ ├── TestData.swift │ └── ViewController.swift ├── Podfile └── Podfile.lock ├── LICENSE ├── Mediasoup-Client-Swift.podspec ├── Mediasoup.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings └── xcshareddata │ └── xcschemes │ └── Mediasoup Framework.xcscheme ├── Mediasoup ├── Consumer.swift ├── ConsumerDelegate.swift ├── DataConsumer.swift ├── DataConsumerDelegate.swift ├── Device.swift ├── ICETransportPolicy.swift ├── MediaKind.swift ├── Mediasoup.modulemap ├── MediasoupClientErrorConverter.swift ├── MediasoupError.swift ├── Producer.swift ├── ProducerDelegate.swift ├── RTPParameters.swift ├── ReceiveTransport.swift ├── ReceiveTransportDelegate.swift ├── ScalabilityMode.swift ├── SendTransport.swift ├── SendTransportDelegate.swift ├── Transport.swift ├── TransportConnectionState.swift ├── TransportDelegate.swift └── dependencies │ ├── .gitignore │ └── CMakeLists.txt ├── Mediasoup_Private ├── Consumer │ ├── ConsumerListenerAdapter.hpp │ ├── ConsumerListenerAdapter.mm │ ├── ConsumerListenerAdapterDelegate.h │ ├── ConsumerWrapper.hpp │ ├── ConsumerWrapper.mm │ └── ConsumerWrapperDelegate.h ├── DataConsumer │ ├── DataConsumerListenerAdapter.hpp │ ├── DataConsumerListenerAdapter.mm │ ├── DataConsumerListenerAdapterDelegate.h │ ├── DataConsumerWrapper.hpp │ ├── DataConsumerWrapper.mm │ └── DataConsumerWrapperDelegate.h ├── Device │ ├── DeviceWrapper.h │ └── DeviceWrapper.mm ├── MediasoupClientError │ ├── MediasoupClientError.h │ ├── MediasoupClientError.m │ ├── MediasoupClientErrorHandler.h │ └── MediasoupClientErrorHandler.mm ├── MediasoupClientMediaKind.h ├── MediasoupClientMediaKind.mm ├── MediasoupClientTransportConnectionState.h ├── MediasoupClientTransportConnectionState.mm ├── Mediasoup_Private.modulemap ├── Producer │ ├── ProducerListenerAdapter.hpp │ ├── ProducerListenerAdapter.mm │ ├── ProducerListenerAdapterDelegate.h │ ├── ProducerWrapper.hpp │ ├── ProducerWrapper.mm │ ├── ProducerWrapperDelegate.h │ ├── RTPEncodingParameters+Internal.hpp │ ├── RTPEncodingParameters+Internal.mm │ ├── RTPEncodingParameters.hpp │ ├── RTPEncodingParameters.mm │ ├── WrappedRTPParameters+Internal.hpp │ ├── WrappedRTPParameters+Internal.mm │ ├── WrappedRTPParameters.hpp │ └── WrappedRTPParameters.mm ├── ScalabilityMode.h ├── ScalabilityMode.mm └── Transport │ ├── ReceiveTransportListenerAdapter.hpp │ ├── ReceiveTransportListenerAdapter.mm │ ├── ReceiveTransportListenerAdapterDelegate.h │ ├── ReceiveTransportWrapper.hpp │ ├── ReceiveTransportWrapper.mm │ ├── ReceiveTransportWrapperDelegate.h │ ├── SendTransportListenerAdapter.hpp │ ├── SendTransportListenerAdapter.mm │ ├── SendTransportListenerAdapterDelegate.h │ ├── SendTransportWrapper.hpp │ ├── SendTransportWrapper.mm │ └── SendTransportWrapperDelegate.h ├── Package.swift ├── README.md ├── bin ├── Mediasoup.xcframework │ ├── Info.plist │ ├── ios-arm64 │ │ └── Mediasoup.framework │ │ │ ├── Headers │ │ │ └── Mediasoup-Swift.h │ │ │ ├── Info.plist │ │ │ ├── Mediasoup │ │ │ ├── Modules │ │ │ ├── Mediasoup.swiftmodule │ │ │ │ ├── Project │ │ │ │ │ └── arm64-apple-ios.swiftsourceinfo │ │ │ │ ├── arm64-apple-ios.abi.json │ │ │ │ ├── arm64-apple-ios.private.swiftinterface │ │ │ │ ├── arm64-apple-ios.swiftdoc │ │ │ │ └── arm64-apple-ios.swiftinterface │ │ │ ├── module.modulemap │ │ │ └── module.private.modulemap │ │ │ └── PrivateHeaders │ │ │ ├── ConsumerWrapper.hpp │ │ │ ├── ConsumerWrapperDelegate.h │ │ │ ├── DataConsumerWrapper.hpp │ │ │ ├── DataConsumerWrapperDelegate.h │ │ │ ├── DeviceWrapper.h │ │ │ ├── MediasoupClientError.h │ │ │ ├── MediasoupClientErrorHandler.h │ │ │ ├── MediasoupClientMediaKind.h │ │ │ ├── MediasoupClientTransportConnectionState.h │ │ │ ├── ProducerWrapper.hpp │ │ │ ├── ProducerWrapperDelegate.h │ │ │ ├── RTPEncodingParameters.hpp │ │ │ ├── ReceiveTransportListenerAdapter.hpp │ │ │ ├── ReceiveTransportWrapper.hpp │ │ │ ├── ReceiveTransportWrapperDelegate.h │ │ │ ├── ScalabilityMode.h │ │ │ ├── SendTransportListenerAdapter.hpp │ │ │ ├── SendTransportWrapper.hpp │ │ │ ├── SendTransportWrapperDelegate.h │ │ │ └── WrappedRTPParameters.hpp │ └── ios-arm64_x86_64-simulator │ │ └── Mediasoup.framework │ │ ├── Headers │ │ └── Mediasoup-Swift.h │ │ ├── Info.plist │ │ ├── Mediasoup │ │ ├── Modules │ │ ├── Mediasoup.swiftmodule │ │ │ ├── Project │ │ │ │ ├── arm64-apple-ios-simulator.swiftsourceinfo │ │ │ │ └── x86_64-apple-ios-simulator.swiftsourceinfo │ │ │ ├── arm64-apple-ios-simulator.abi.json │ │ │ ├── arm64-apple-ios-simulator.private.swiftinterface │ │ │ ├── arm64-apple-ios-simulator.swiftdoc │ │ │ ├── arm64-apple-ios-simulator.swiftinterface │ │ │ ├── x86_64-apple-ios-simulator.abi.json │ │ │ ├── x86_64-apple-ios-simulator.private.swiftinterface │ │ │ ├── x86_64-apple-ios-simulator.swiftdoc │ │ │ └── x86_64-apple-ios-simulator.swiftinterface │ │ ├── module.modulemap │ │ └── module.private.modulemap │ │ ├── PrivateHeaders │ │ ├── ConsumerWrapper.hpp │ │ ├── ConsumerWrapperDelegate.h │ │ ├── DataConsumerWrapper.hpp │ │ ├── DataConsumerWrapperDelegate.h │ │ ├── DeviceWrapper.h │ │ ├── MediasoupClientError.h │ │ ├── MediasoupClientErrorHandler.h │ │ ├── MediasoupClientMediaKind.h │ │ ├── MediasoupClientTransportConnectionState.h │ │ ├── ProducerWrapper.hpp │ │ ├── ProducerWrapperDelegate.h │ │ ├── RTPEncodingParameters.hpp │ │ ├── ReceiveTransportListenerAdapter.hpp │ │ ├── ReceiveTransportWrapper.hpp │ │ ├── ReceiveTransportWrapperDelegate.h │ │ ├── ScalabilityMode.h │ │ ├── SendTransportListenerAdapter.hpp │ │ ├── SendTransportWrapper.hpp │ │ ├── SendTransportWrapperDelegate.h │ │ └── WrappedRTPParameters.hpp │ │ └── _CodeSignature │ │ └── CodeResources ├── WebRTC.xcframework │ ├── Info.plist │ ├── ios-arm64 │ │ └── WebRTC.framework │ │ │ ├── Headers │ │ │ ├── RTCAudioDevice.h │ │ │ ├── RTCAudioSession.h │ │ │ ├── RTCAudioSessionConfiguration.h │ │ │ ├── RTCAudioSource.h │ │ │ ├── RTCAudioTrack.h │ │ │ ├── RTCCVPixelBuffer.h │ │ │ ├── RTCCallbackLogger.h │ │ │ ├── RTCCameraPreviewView.h │ │ │ ├── RTCCameraVideoCapturer.h │ │ │ ├── RTCCertificate.h │ │ │ ├── RTCCodecSpecificInfo.h │ │ │ ├── RTCCodecSpecificInfoH264.h │ │ │ ├── RTCConfiguration.h │ │ │ ├── RTCCryptoOptions.h │ │ │ ├── RTCDataChannel.h │ │ │ ├── RTCDataChannelConfiguration.h │ │ │ ├── RTCDefaultVideoDecoderFactory.h │ │ │ ├── RTCDefaultVideoEncoderFactory.h │ │ │ ├── RTCDispatcher.h │ │ │ ├── RTCDtmfSender.h │ │ │ ├── RTCEAGLVideoView.h │ │ │ ├── RTCEncodedImage.h │ │ │ ├── RTCFieldTrials.h │ │ │ ├── RTCFileLogger.h │ │ │ ├── RTCFileVideoCapturer.h │ │ │ ├── RTCH264ProfileLevelId.h │ │ │ ├── RTCI420Buffer.h │ │ │ ├── RTCIceCandidate.h │ │ │ ├── RTCIceCandidateErrorEvent.h │ │ │ ├── RTCIceServer.h │ │ │ ├── RTCLegacyStatsReport.h │ │ │ ├── RTCLogging.h │ │ │ ├── RTCMTLVideoView.h │ │ │ ├── RTCMacros.h │ │ │ ├── RTCMediaConstraints.h │ │ │ ├── RTCMediaSource.h │ │ │ ├── RTCMediaStream.h │ │ │ ├── RTCMediaStreamTrack.h │ │ │ ├── RTCMetrics.h │ │ │ ├── RTCMetricsSampleInfo.h │ │ │ ├── RTCMutableI420Buffer.h │ │ │ ├── RTCMutableYUVPlanarBuffer.h │ │ │ ├── RTCNativeI420Buffer.h │ │ │ ├── RTCNativeMutableI420Buffer.h │ │ │ ├── RTCNetworkMonitor.h │ │ │ ├── RTCPeerConnection.h │ │ │ ├── RTCPeerConnectionFactory.h │ │ │ ├── RTCPeerConnectionFactoryOptions.h │ │ │ ├── RTCRtcpParameters.h │ │ │ ├── RTCRtpCodecParameters.h │ │ │ ├── RTCRtpEncodingParameters.h │ │ │ ├── RTCRtpHeaderExtension.h │ │ │ ├── RTCRtpParameters.h │ │ │ ├── RTCRtpReceiver.h │ │ │ ├── RTCRtpSender.h │ │ │ ├── RTCRtpTransceiver.h │ │ │ ├── RTCSSLAdapter.h │ │ │ ├── RTCSSLCertificateVerifier.h │ │ │ ├── RTCSessionDescription.h │ │ │ ├── RTCStatisticsReport.h │ │ │ ├── RTCTracing.h │ │ │ ├── RTCVideoCapturer.h │ │ │ ├── RTCVideoCodecConstants.h │ │ │ ├── RTCVideoCodecInfo.h │ │ │ ├── RTCVideoDecoder.h │ │ │ ├── RTCVideoDecoderAV1.h │ │ │ ├── RTCVideoDecoderFactory.h │ │ │ ├── RTCVideoDecoderFactoryH264.h │ │ │ ├── RTCVideoDecoderH264.h │ │ │ ├── RTCVideoDecoderVP8.h │ │ │ ├── RTCVideoDecoderVP9.h │ │ │ ├── RTCVideoEncoder.h │ │ │ ├── RTCVideoEncoderAV1.h │ │ │ ├── RTCVideoEncoderFactory.h │ │ │ ├── RTCVideoEncoderFactoryH264.h │ │ │ ├── RTCVideoEncoderH264.h │ │ │ ├── RTCVideoEncoderQpThresholds.h │ │ │ ├── RTCVideoEncoderSettings.h │ │ │ ├── RTCVideoEncoderVP8.h │ │ │ ├── RTCVideoEncoderVP9.h │ │ │ ├── RTCVideoFrame.h │ │ │ ├── RTCVideoFrameBuffer.h │ │ │ ├── RTCVideoRenderer.h │ │ │ ├── RTCVideoSource.h │ │ │ ├── RTCVideoTrack.h │ │ │ ├── RTCVideoViewShading.h │ │ │ ├── RTCYUVPlanarBuffer.h │ │ │ ├── UIDevice+RTCDevice.h │ │ │ └── WebRTC.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ └── module.modulemap │ │ │ └── WebRTC │ └── ios-arm64_x86_64-simulator │ │ └── WebRTC.framework │ │ ├── Headers │ │ ├── RTCAudioDevice.h │ │ ├── RTCAudioSession.h │ │ ├── RTCAudioSessionConfiguration.h │ │ ├── RTCAudioSource.h │ │ ├── RTCAudioTrack.h │ │ ├── RTCCVPixelBuffer.h │ │ ├── RTCCallbackLogger.h │ │ ├── RTCCameraPreviewView.h │ │ ├── RTCCameraVideoCapturer.h │ │ ├── RTCCertificate.h │ │ ├── RTCCodecSpecificInfo.h │ │ ├── RTCCodecSpecificInfoH264.h │ │ ├── RTCConfiguration.h │ │ ├── RTCCryptoOptions.h │ │ ├── RTCDataChannel.h │ │ ├── RTCDataChannelConfiguration.h │ │ ├── RTCDefaultVideoDecoderFactory.h │ │ ├── RTCDefaultVideoEncoderFactory.h │ │ ├── RTCDispatcher.h │ │ ├── RTCDtmfSender.h │ │ ├── RTCEAGLVideoView.h │ │ ├── RTCEncodedImage.h │ │ ├── RTCFieldTrials.h │ │ ├── RTCFileLogger.h │ │ ├── RTCFileVideoCapturer.h │ │ ├── RTCH264ProfileLevelId.h │ │ ├── RTCI420Buffer.h │ │ ├── RTCIceCandidate.h │ │ ├── RTCIceCandidateErrorEvent.h │ │ ├── RTCIceServer.h │ │ ├── RTCLegacyStatsReport.h │ │ ├── RTCLogging.h │ │ ├── RTCMTLVideoView.h │ │ ├── RTCMacros.h │ │ ├── RTCMediaConstraints.h │ │ ├── RTCMediaSource.h │ │ ├── RTCMediaStream.h │ │ ├── RTCMediaStreamTrack.h │ │ ├── RTCMetrics.h │ │ ├── RTCMetricsSampleInfo.h │ │ ├── RTCMutableI420Buffer.h │ │ ├── RTCMutableYUVPlanarBuffer.h │ │ ├── RTCNativeI420Buffer.h │ │ ├── RTCNativeMutableI420Buffer.h │ │ ├── RTCNetworkMonitor.h │ │ ├── RTCPeerConnection.h │ │ ├── RTCPeerConnectionFactory.h │ │ ├── RTCPeerConnectionFactoryOptions.h │ │ ├── RTCRtcpParameters.h │ │ ├── RTCRtpCodecParameters.h │ │ ├── RTCRtpEncodingParameters.h │ │ ├── RTCRtpHeaderExtension.h │ │ ├── RTCRtpParameters.h │ │ ├── RTCRtpReceiver.h │ │ ├── RTCRtpSender.h │ │ ├── RTCRtpTransceiver.h │ │ ├── RTCSSLAdapter.h │ │ ├── RTCSSLCertificateVerifier.h │ │ ├── RTCSessionDescription.h │ │ ├── RTCStatisticsReport.h │ │ ├── RTCTracing.h │ │ ├── RTCVideoCapturer.h │ │ ├── RTCVideoCodecConstants.h │ │ ├── RTCVideoCodecInfo.h │ │ ├── RTCVideoDecoder.h │ │ ├── RTCVideoDecoderAV1.h │ │ ├── RTCVideoDecoderFactory.h │ │ ├── RTCVideoDecoderFactoryH264.h │ │ ├── RTCVideoDecoderH264.h │ │ ├── RTCVideoDecoderVP8.h │ │ ├── RTCVideoDecoderVP9.h │ │ ├── RTCVideoEncoder.h │ │ ├── RTCVideoEncoderAV1.h │ │ ├── RTCVideoEncoderFactory.h │ │ ├── RTCVideoEncoderFactoryH264.h │ │ ├── RTCVideoEncoderH264.h │ │ ├── RTCVideoEncoderQpThresholds.h │ │ ├── RTCVideoEncoderSettings.h │ │ ├── RTCVideoEncoderVP8.h │ │ ├── RTCVideoEncoderVP9.h │ │ ├── RTCVideoFrame.h │ │ ├── RTCVideoFrameBuffer.h │ │ ├── RTCVideoRenderer.h │ │ ├── RTCVideoSource.h │ │ ├── RTCVideoTrack.h │ │ ├── RTCVideoViewShading.h │ │ ├── RTCYUVPlanarBuffer.h │ │ ├── UIDevice+RTCDevice.h │ │ └── WebRTC.h │ │ ├── Info.plist │ │ ├── Modules │ │ └── module.modulemap │ │ └── WebRTC ├── mediasoupclient.xcframework │ ├── Info.plist │ ├── ios-arm64 │ │ └── libmediasoupclient.a │ └── ios-arm64_x86_64-simulator │ │ └── libmediasoupclient.a └── sdptransform.xcframework │ ├── Info.plist │ ├── ios-arm64 │ └── libsdptransform.a │ └── ios-arm64_x86_64-simulator │ └── libsdptransform.a ├── build.sh ├── bump.sh └── patches ├── RTCPeerConnectionFactoryBuilder.patch ├── abseil_optional.patch ├── audio_device_module_h.patch ├── audio_device_module_mm.patch ├── builtin_audio_decoder_factory.patch ├── builtin_audio_encoder_factory.patch ├── objc_video_decoder_factory_h.patch ├── objc_video_encoder_factory_h.patch ├── objc_video_encoder_factory_mm.patch ├── sdk_BUILD.patch ├── sdp_video_format_utils.patch ├── video_decoder_factory_h.patch └── video_encoder_factory_h.patch /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/ 2 | xcuserdata/ 3 | *.hmap 4 | *.ipa 5 | *.dSYM.zip 6 | *.dSYM 7 | timeline.xctimeline 8 | playground.xcworkspace 9 | .build/ 10 | build/ 11 | Pods/ 12 | -------------------------------------------------------------------------------- /Example/MediasoupExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/MediasoupExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/MediasoupExample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/MediasoupExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/MediasoupExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | 4 | @main 5 | final class AppDelegate: UIResponder, UIApplicationDelegate { 6 | func application( 7 | _ application: UIApplication, didFinishLaunchingWithOptions 8 | launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 9 | 10 | return true 11 | } 12 | 13 | func application( 14 | _ application: UIApplication, 15 | configurationForConnecting connectingSceneSession: UISceneSession, 16 | options: UIScene.ConnectionOptions) 17 | -> UISceneConfiguration { 18 | 19 | return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) 20 | } 21 | 22 | func application( 23 | _ application: UIApplication, 24 | didDiscardSceneSessions sceneSessions: Set) { 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Example/MediasoupExample/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Example/MediasoupExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/MediasoupExample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSMicrophoneUsageDescription 6 | for audio testing 7 | UIApplicationSceneManifest 8 | 9 | UIApplicationSupportsMultipleScenes 10 | 11 | UISceneConfigurations 12 | 13 | UIWindowSceneSessionRoleApplication 14 | 15 | 16 | UISceneConfigurationName 17 | Default Configuration 18 | UISceneDelegateClassName 19 | $(PRODUCT_MODULE_NAME).SceneDelegate 20 | UISceneStoryboardFile 21 | Main 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Example/MediasoupExample/SceneDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | 4 | final class SceneDelegate: UIResponder, UIWindowSceneDelegate { 5 | var window: UIWindow? 6 | 7 | func scene( 8 | _ scene: UIScene, 9 | willConnectTo session: UISceneSession, 10 | options connectionOptions: UIScene.ConnectionOptions) { 11 | 12 | guard let _ = (scene as? UIWindowScene) else { return } 13 | } 14 | 15 | func sceneDidDisconnect(_ scene: UIScene) { 16 | } 17 | 18 | func sceneDidBecomeActive(_ scene: UIScene) { 19 | } 20 | 21 | func sceneWillResignActive(_ scene: UIScene) { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '14.0' 2 | 3 | target 'MediasoupExample' do 4 | use_frameworks! 5 | pod 'Mediasoup-Client-Swift', :path => '../' 6 | end 7 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Mediasoup-Client-Swift (0.8.0) 3 | 4 | DEPENDENCIES: 5 | - Mediasoup-Client-Swift (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | Mediasoup-Client-Swift: 9 | :path: "../" 10 | 11 | SPEC CHECKSUMS: 12 | Mediasoup-Client-Swift: c6c318be2f5940a25eac32ee983840603de7a56e 13 | 14 | PODFILE CHECKSUM: d4fe3294dd9c7fc46519b6a7b26527f1f545e8d3 15 | 16 | COCOAPODS: 1.14.3 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 VLprojects 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Mediasoup-Client-Swift.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |spec| 2 | spec.summary = "Swift client for Mediasoup 3" 3 | spec.description = "Swift wrapper for libmediasoupclient" 4 | spec.homepage = "https://github.com/VLprojects/mediasoup-client-swift" 5 | spec.license = "MIT" 6 | spec.author = { 7 | "Alexander Gorbunov" => "gorbunov.a@vlprojects.pro" 8 | } 9 | 10 | spec.name = "Mediasoup-Client-Swift" 11 | spec.version = "0.8.0" 12 | spec.platform = :ios, "14.0" 13 | spec.module_name = "Mediasoup" 14 | spec.module_map = "Mediasoup/Mediasoup.modulemap" 15 | 16 | spec.source = { 17 | :git => "https://github.com/VLprojects/mediasoup-client-swift.git", 18 | :tag => spec.version.to_s 19 | } 20 | 21 | spec.frameworks = 22 | "AVFoundation", 23 | "AudioToolbox", 24 | "CoreAudio", 25 | "CoreMedia", 26 | "CoreVideo" 27 | 28 | spec.vendored_frameworks = 29 | "bin/Mediasoup.xcframework", 30 | "bin/WebRTC.xcframework" 31 | end 32 | -------------------------------------------------------------------------------- /Mediasoup.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Mediasoup.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Mediasoup.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Mediasoup/ConsumerDelegate.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | 4 | public protocol ConsumerDelegate: AnyObject { 5 | func onTransportClose(in consumer: Consumer) 6 | } 7 | -------------------------------------------------------------------------------- /Mediasoup/DataConsumerDelegate.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | 4 | public protocol DataConsumerDelegate: AnyObject { 5 | func onConnecting(consumer: DataConsumer) 6 | func onOpen(consumer: DataConsumer) 7 | func onClosing(consumer: DataConsumer) 8 | func onClose(consumer: DataConsumer) 9 | func onTransportClose(in consumer: DataConsumer) 10 | func onMessage(data: Data, from consumer: DataConsumer) 11 | } 12 | -------------------------------------------------------------------------------- /Mediasoup/ICETransportPolicy.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import WebRTC 3 | 4 | 5 | public enum ICETransportPolicy { 6 | case none 7 | case relay 8 | case noHost 9 | case all 10 | 11 | internal var rtcICETransportPolicy: RTCIceTransportPolicy { 12 | switch self { 13 | case .none: 14 | return .none 15 | case .relay: 16 | return .relay 17 | case .noHost: 18 | return .noHost 19 | case .all: 20 | return .all 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Mediasoup/MediaKind.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import Mediasoup_Private 3 | 4 | 5 | public enum MediaKind { 6 | case audio 7 | case video 8 | } 9 | 10 | internal extension MediaKind { 11 | var mediaClientValue: MediasoupClientMediaKind { 12 | switch self { 13 | case .audio: return .audio 14 | case .video: return .video 15 | } 16 | } 17 | 18 | init?(stringValue: String) { 19 | switch MediasoupClientMediaKind(rawValue: stringValue) { 20 | case .audio: 21 | self = .audio 22 | 23 | case .video: 24 | self = .video 25 | 26 | default: 27 | return nil 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Mediasoup/Mediasoup.modulemap: -------------------------------------------------------------------------------- 1 | framework module Mediasoup { 2 | export Mediasoup 3 | } 4 | -------------------------------------------------------------------------------- /Mediasoup/MediasoupClientErrorConverter.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import Mediasoup_Private 3 | 4 | 5 | private func description(_ error: MediasoupClientError) -> String { 6 | let description = error.errorUserInfo[NSLocalizedDescriptionKey] as? String 7 | return description ?? String() 8 | } 9 | 10 | internal func convertMediasoupErrors(_ throwingClosure: () throws -> T) throws -> T { 11 | do { 12 | return try throwingClosure() 13 | } catch let error as MediasoupClientError { 14 | switch error.code { 15 | case .unsupported: 16 | throw MediasoupError.unsupported(description(error)) 17 | case .invalidParameters: 18 | throw MediasoupError.invalidParameters(description(error)) 19 | case .invalidState: 20 | throw MediasoupError.invalidState(description(error)) 21 | case .unknown: 22 | if let underlyingError = error.errorUserInfo[NSUnderlyingErrorKey] as? NSError { 23 | throw MediasoupError.mediasoup(underlyingError) 24 | } else { 25 | throw MediasoupError.unknown(error) 26 | } 27 | @unknown default: 28 | throw MediasoupError.unknown(error) 29 | } 30 | } catch { 31 | throw MediasoupError.unknown(error) 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Mediasoup/MediasoupError.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | 4 | public enum MediasoupError: Error { 5 | case unsupported(String) 6 | case invalidState(String) 7 | case invalidParameters(String) 8 | case mediasoup(NSError) 9 | case unknown(Error) 10 | } 11 | -------------------------------------------------------------------------------- /Mediasoup/ProducerDelegate.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | 4 | public protocol ProducerDelegate: AnyObject { 5 | func onTransportClose(in producer: Producer) 6 | } 7 | -------------------------------------------------------------------------------- /Mediasoup/ReceiveTransportDelegate.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | 4 | public protocol ReceiveTransportDelegate: TransportDelegate { 5 | } 6 | -------------------------------------------------------------------------------- /Mediasoup/ScalabilityMode.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import Mediasoup_Private 3 | 4 | 5 | public struct ScalabilityMode { 6 | public var spatialLayers: Int 7 | public var temporalLayers: Int 8 | 9 | internal init(spatialLayers: Int, temporalLayers: Int) { 10 | self.spatialLayers = spatialLayers 11 | self.temporalLayers = temporalLayers 12 | } 13 | 14 | public static func parse(_ scalabilityModeString: String) -> ScalabilityMode { 15 | let mode = Mediasoup_Private.ScalabilityMode.parseScalabilityMode(scalabilityModeString) 16 | return ScalabilityMode( 17 | spatialLayers: Int(mode.spatialLayers), 18 | temporalLayers: Int(mode.temporalLayers) 19 | ) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Mediasoup/SendTransportDelegate.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | 4 | public protocol SendTransportDelegate: TransportDelegate { 5 | func onProduce( 6 | transport: Transport, 7 | kind: MediaKind, 8 | rtpParameters: String, 9 | appData: String, 10 | callback: @escaping (String?) -> Void 11 | ) 12 | 13 | func onProduceData( 14 | transport: Transport, 15 | sctpParameters: String, 16 | label: String, 17 | protocol dataProtocol: String, 18 | appData: String, 19 | callback: @escaping (String?) -> Void 20 | ) 21 | } 22 | -------------------------------------------------------------------------------- /Mediasoup/Transport.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | 4 | public protocol Transport: AnyObject { 5 | var id: String { get } 6 | var closed: Bool { get } 7 | var connectionState: TransportConnectionState { get } 8 | var appData: String { get } 9 | var stats: String { get } 10 | 11 | func close() 12 | func restartICE(with iceParameters: String) throws 13 | func updateICEServers(_ iceServers: String) throws 14 | } 15 | -------------------------------------------------------------------------------- /Mediasoup/TransportConnectionState.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import Mediasoup_Private 3 | 4 | 5 | public enum TransportConnectionState { 6 | case new 7 | case checking 8 | case connected 9 | case completed 10 | case failed 11 | case disconnected 12 | case closed 13 | } 14 | 15 | internal extension TransportConnectionState { 16 | var mediaClientValue: MediasoupClientTransportConnectionState { 17 | switch self { 18 | case .new: return .new 19 | case .checking: return .checking 20 | case .connected: return .connected 21 | case .completed: return .completed 22 | case .failed: return .failed 23 | case .disconnected: return .disconnected 24 | case .closed: return .closed 25 | } 26 | } 27 | 28 | init?(stringValue: String) { 29 | switch MediasoupClientTransportConnectionState(rawValue: stringValue) { 30 | case .new: self = .new 31 | case .checking: self = .checking 32 | case .connected: self = .connected 33 | case .completed: self = .completed 34 | case .failed: self = .failed 35 | case .disconnected: self = .disconnected 36 | case .closed: self = .closed 37 | default: return nil 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Mediasoup/TransportDelegate.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | 4 | public protocol TransportDelegate: AnyObject { 5 | func onConnect(transport: Transport, dtlsParameters: String) 6 | func onConnectionStateChange(transport: Transport, connectionState: TransportConnectionState) 7 | } 8 | -------------------------------------------------------------------------------- /Mediasoup/dependencies/.gitignore: -------------------------------------------------------------------------------- 1 | build_*/ 2 | depot_tools/ 3 | webrtc/ 4 | libmediasoupclient/ 5 | -------------------------------------------------------------------------------- /Mediasoup_Private/Consumer/ConsumerListenerAdapter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef ConsumerListenerAdapter_h 2 | #define ConsumerListenerAdapter_h 3 | 4 | #import 5 | #import "Consumer.hpp" 6 | 7 | 8 | @protocol ConsumerListenerAdapterDelegate; 9 | 10 | 11 | class ConsumerListenerAdapter final : public mediasoupclient::Consumer::Listener { 12 | public: 13 | __weak id delegate; 14 | 15 | ConsumerListenerAdapter(); 16 | virtual ~ConsumerListenerAdapter(); 17 | 18 | void OnTransportClose(mediasoupclient::Consumer *consumer) override; 19 | }; 20 | 21 | #endif /* ConsumerListenerAdapter_h */ 22 | -------------------------------------------------------------------------------- /Mediasoup_Private/Consumer/ConsumerListenerAdapter.mm: -------------------------------------------------------------------------------- 1 | #import "ConsumerListenerAdapter.hpp" 2 | #import "ConsumerListenerAdapterDelegate.h" 3 | 4 | 5 | ConsumerListenerAdapter::ConsumerListenerAdapter() { 6 | } 7 | 8 | ConsumerListenerAdapter::~ConsumerListenerAdapter() { 9 | this->delegate = nil; 10 | } 11 | 12 | void ConsumerListenerAdapter::OnTransportClose(mediasoupclient::Consumer* consumer) { 13 | // TODO: store __unsafe_unretained ref to Consumer and check if sender mathces? 14 | [this->delegate onTransportClose:this]; 15 | } 16 | -------------------------------------------------------------------------------- /Mediasoup_Private/Consumer/ConsumerListenerAdapterDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ConsumerListenerAdapterDelegate_h 2 | #define ConsumerListenerAdapterDelegate_h 3 | 4 | #import 5 | 6 | 7 | class ConsumerListenerAdapter; 8 | 9 | 10 | @protocol ConsumerListenerAdapterDelegate 11 | @required 12 | - (void)onTransportClose:(ConsumerListenerAdapter *_Nonnull)adapter; 13 | @end 14 | 15 | #endif /* ConsumerListenerAdapterDelegate_h */ 16 | -------------------------------------------------------------------------------- /Mediasoup_Private/Consumer/ConsumerWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ConsumerWrapperDelegate_h 2 | #define ConsumerWrapperDelegate_h 3 | 4 | #import 5 | 6 | 7 | @class ConsumerWrapper; 8 | 9 | 10 | @protocol ConsumerWrapperDelegate 11 | - (void)onTransportClose:(ConsumerWrapper *_Nonnull)consumer; 12 | @end 13 | 14 | #endif /* ConsumerWrapperDelegate_h */ 15 | -------------------------------------------------------------------------------- /Mediasoup_Private/DataConsumer/DataConsumerListenerAdapter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef DataConsumerListenerAdapter_h 2 | #define DataConsumerListenerAdapter_h 3 | 4 | #import 5 | #import "DataConsumer.hpp" 6 | 7 | 8 | @protocol DataConsumerListenerAdapterDelegate; 9 | 10 | 11 | class DataConsumerListenerAdapter final : public mediasoupclient::DataConsumer::Listener { 12 | public: 13 | __weak id delegate; 14 | 15 | DataConsumerListenerAdapter(); 16 | virtual ~DataConsumerListenerAdapter(); 17 | 18 | void OnConnecting(mediasoupclient::DataConsumer *dataConsumer) override; 19 | void OnOpen(mediasoupclient::DataConsumer *dataConsumer) override; 20 | void OnClosing(mediasoupclient::DataConsumer *dataConsumer) override; 21 | void OnClose(mediasoupclient::DataConsumer *dataConsumer) override; 22 | void OnTransportClose(mediasoupclient::DataConsumer *dataConsumer) override; 23 | 24 | void OnMessage( 25 | mediasoupclient::DataConsumer *dataConsumer, 26 | const webrtc::DataBuffer &buffer 27 | ) override; 28 | 29 | }; 30 | 31 | #endif /* DataConsumerListenerAdapter_h */ 32 | -------------------------------------------------------------------------------- /Mediasoup_Private/DataConsumer/DataConsumerListenerAdapter.mm: -------------------------------------------------------------------------------- 1 | #import "DataConsumerListenerAdapter.hpp" 2 | #import "DataConsumerListenerAdapterDelegate.h" 3 | 4 | 5 | DataConsumerListenerAdapter::DataConsumerListenerAdapter() { 6 | } 7 | 8 | DataConsumerListenerAdapter::~DataConsumerListenerAdapter() { 9 | this->delegate = nil; 10 | } 11 | 12 | void DataConsumerListenerAdapter::OnMessage( 13 | mediasoupclient::DataConsumer *dataConsumer, 14 | const webrtc::DataBuffer &buffer 15 | ) { 16 | auto data = [NSData dataWithBytes:buffer.data.data() length:buffer.size()]; 17 | [this->delegate onMessage:data from:this]; 18 | } 19 | 20 | void DataConsumerListenerAdapter::OnConnecting(mediasoupclient::DataConsumer *dataConsumer) { 21 | [this->delegate onConnecting:this]; 22 | } 23 | 24 | void DataConsumerListenerAdapter::OnOpen(mediasoupclient::DataConsumer *dataConsumer) { 25 | [this->delegate onOpen:this]; 26 | } 27 | 28 | void DataConsumerListenerAdapter::OnClosing(mediasoupclient::DataConsumer *dataConsumer) { 29 | [this->delegate onClosing:this]; 30 | } 31 | 32 | void DataConsumerListenerAdapter::OnClose(mediasoupclient::DataConsumer *dataConsumer) { 33 | [this->delegate onClose:this]; 34 | } 35 | 36 | void DataConsumerListenerAdapter::OnTransportClose(mediasoupclient::DataConsumer* dataconsumer) { 37 | // TODO: store __unsafe_unretained ref to Consumer and check if sender mathces? 38 | [this->delegate onTransportClose:this]; 39 | } 40 | -------------------------------------------------------------------------------- /Mediasoup_Private/DataConsumer/DataConsumerListenerAdapterDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef DataConsumerListenerAdapterDelegate_h 2 | #define DataConsumerListenerAdapterDelegate_h 3 | 4 | #import 5 | 6 | 7 | class DataConsumerListenerAdapter; 8 | 9 | 10 | @protocol DataConsumerListenerAdapterDelegate 11 | @required 12 | - (void)onMessage:(NSData *_Nonnull)messageData from:(DataConsumerListenerAdapter *_Nonnull)adapter; 13 | - (void)onConnecting:(DataConsumerListenerAdapter *_Nonnull)adapter; 14 | - (void)onOpen:(DataConsumerListenerAdapter *_Nonnull)adapter; 15 | - (void)onClosing:(DataConsumerListenerAdapter *_Nonnull)adapter; 16 | - (void)onClose:(DataConsumerListenerAdapter *_Nonnull)adapter; 17 | - (void)onTransportClose:(DataConsumerListenerAdapter *_Nonnull)adapter; 18 | @end 19 | 20 | #endif /* DataConsumerListenerAdapterDelegate_h */ 21 | -------------------------------------------------------------------------------- /Mediasoup_Private/DataConsumer/DataConsumerWrapper.hpp: -------------------------------------------------------------------------------- 1 | #ifndef DataConsumerWrapper_h 2 | #define DataConsumerWrapper_h 3 | 4 | #import 5 | 6 | #ifdef __cplusplus 7 | namespace mediasoupclient { 8 | class DataConsumer; 9 | } 10 | class DataConsumerListenerAdapter; 11 | #endif 12 | 13 | @protocol DataConsumerWrapperDelegate; 14 | 15 | 16 | @interface DataConsumerWrapper : NSObject 17 | 18 | @property(nonatomic, nullable, weak) id delegate; 19 | @property(nonatomic, nonnull, readonly, getter = id) NSString *id; 20 | @property(nonatomic, nonnull, readonly, getter = localId) NSString *localId; 21 | @property(nonatomic, nonnull, readonly, getter = producerId) NSString *producerId; 22 | @property(nonatomic, nonnull, readonly, getter = sctpStreamParameters) NSString *sctpStreamParameters; 23 | @property(nonatomic, readonly, getter = closed) BOOL closed; 24 | @property(nonatomic, nonnull, readonly, getter = label) NSString *label; 25 | @property(nonatomic, nonnull, readonly, getter = dataProtocol) NSString *dataProtocol; 26 | @property(nonatomic, nonnull, readonly, getter = appData) NSString *appData; 27 | 28 | #ifdef __cplusplus 29 | - (instancetype _Nullable)initWithDataConsumer:(mediasoupclient::DataConsumer *_Nonnull)consumer 30 | listenerAdapter:(DataConsumerListenerAdapter *_Nonnull)listenerAdapter; 31 | #endif 32 | 33 | - (void)close; 34 | 35 | @end 36 | 37 | #endif /* DataConsumerWrapper_h */ 38 | -------------------------------------------------------------------------------- /Mediasoup_Private/DataConsumer/DataConsumerWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef DataConsumerWrapperDelegate_h 2 | #define DataConsumerWrapperDelegate_h 3 | 4 | #import 5 | 6 | 7 | @class DataConsumerWrapper; 8 | 9 | 10 | @protocol DataConsumerWrapperDelegate 11 | - (void)onMessage:(NSData *_Nonnull)messageData consumer:(DataConsumerWrapper *_Nonnull)consumer; 12 | - (void)onConnecting:(DataConsumerWrapper *_Nonnull)consumer; 13 | - (void)onOpen:(DataConsumerWrapper *_Nonnull)consumer; 14 | - (void)onClosing:(DataConsumerWrapper *_Nonnull)consumer; 15 | - (void)onClose:(DataConsumerWrapper *_Nonnull)consumer; 16 | - (void)onTransportClose:(DataConsumerWrapper *_Nonnull)consumer; 17 | @end 18 | 19 | #endif /* DataConsumerWrapperDelegate_h */ 20 | -------------------------------------------------------------------------------- /Mediasoup_Private/MediasoupClientError/MediasoupClientError.h: -------------------------------------------------------------------------------- 1 | #ifndef MediasoupClientError_h 2 | #define MediasoupClientError_h 3 | 4 | #import 5 | 6 | 7 | extern NSErrorDomain _Nonnull const MediasoupClientErrorDomain; 8 | 9 | typedef NS_ERROR_ENUM(MediasoupClientErrorDomain, MediasoupClientErrorCode) { 10 | MediasoupClientErrorCodeUnsupported, 11 | MediasoupClientErrorCodeInvalidState, 12 | MediasoupClientErrorCodeInvalidParameters, 13 | MediasoupClientErrorCodeUnknown, 14 | }; 15 | 16 | #endif /* MediasoupClientError_h */ 17 | -------------------------------------------------------------------------------- /Mediasoup_Private/MediasoupClientError/MediasoupClientError.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | NSErrorDomain _Nonnull const MediasoupClientErrorDomain = @"MediasoupClientErrorDomain"; 5 | -------------------------------------------------------------------------------- /Mediasoup_Private/MediasoupClientMediaKind.h: -------------------------------------------------------------------------------- 1 | #ifndef MediasoupClientMediaKind_h 2 | #define MediasoupClientMediaKind_h 3 | 4 | #import 5 | 6 | typedef NSString *MediasoupClientMediaKind NS_TYPED_ENUM; 7 | extern MediasoupClientMediaKind const MediasoupClientMediaKindAudio; 8 | extern MediasoupClientMediaKind const MediasoupClientMediaKindVideo; 9 | 10 | #endif /* MediasoupClientMediaKind_h */ 11 | -------------------------------------------------------------------------------- /Mediasoup_Private/MediasoupClientMediaKind.mm: -------------------------------------------------------------------------------- 1 | #import "MediasoupClientMediaKind.h" 2 | 3 | 4 | MediasoupClientMediaKind const MediasoupClientMediaKindAudio = @"audio"; 5 | MediasoupClientMediaKind const MediasoupClientMediaKindVideo = @"video"; 6 | -------------------------------------------------------------------------------- /Mediasoup_Private/MediasoupClientTransportConnectionState.h: -------------------------------------------------------------------------------- 1 | #ifndef MediasoupClientTransportConnectionState_h 2 | #define MediasoupClientTransportConnectionState_h 3 | 4 | #import 5 | 6 | typedef NSString *MediasoupClientTransportConnectionState NS_TYPED_ENUM; 7 | 8 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateNew; 9 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateChecking; 10 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateConnected; 11 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateCompleted; 12 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateFailed; 13 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateDisconnected; 14 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateClosed; 15 | 16 | #endif /* MediasoupClientTransportConnectionState_h */ 17 | -------------------------------------------------------------------------------- /Mediasoup_Private/MediasoupClientTransportConnectionState.mm: -------------------------------------------------------------------------------- 1 | #import "MediasoupClientTransportConnectionState.h" 2 | 3 | 4 | MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateNew = @"new"; 5 | MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateChecking = @"checking"; 6 | MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateConnected = @"connected"; 7 | MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateCompleted = @"completed"; 8 | MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateFailed = @"failed"; 9 | MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateDisconnected = @"disconnected"; 10 | MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateClosed = @"closed"; 11 | -------------------------------------------------------------------------------- /Mediasoup_Private/Mediasoup_Private.modulemap: -------------------------------------------------------------------------------- 1 | module Mediasoup_Private { 2 | private header "PrivateHeaders/DeviceWrapper.h" 3 | private header "PrivateHeaders/MediasoupClientError.h" 4 | private header "PrivateHeaders/MediasoupClientMediaKind.h" 5 | private header "PrivateHeaders/MediasoupClientTransportConnectionState.h" 6 | private header "PrivateHeaders/SendTransportWrapper.hpp" 7 | private header "PrivateHeaders/SendTransportWrapperDelegate.h" 8 | private header "PrivateHeaders/WrappedRTPParameters.hpp" 9 | private header "PrivateHeaders/RTPEncodingParameters.hpp" 10 | private header "PrivateHeaders/ProducerWrapper.hpp" 11 | private header "PrivateHeaders/ProducerWrapperDelegate.h" 12 | private header "PrivateHeaders/ReceiveTransportWrapper.hpp" 13 | private header "PrivateHeaders/ReceiveTransportWrapperDelegate.h" 14 | private header "PrivateHeaders/ConsumerWrapper.hpp" 15 | private header "PrivateHeaders/ConsumerWrapperDelegate.h" 16 | private header "PrivateHeaders/DataConsumerWrapper.hpp" 17 | private header "PrivateHeaders/DataConsumerWrapperDelegate.h" 18 | private header "PrivateHeaders/ScalabilityMode.h" 19 | } 20 | -------------------------------------------------------------------------------- /Mediasoup_Private/Producer/ProducerListenerAdapter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef ProducerListenerAdapter_h 2 | #define ProducerListenerAdapter_h 3 | 4 | #import 5 | #import "Producer.hpp" 6 | 7 | 8 | @protocol ProducerListenerAdapterDelegate; 9 | 10 | 11 | class ProducerListenerAdapter final : public mediasoupclient::Producer::Listener { 12 | public: 13 | __weak id delegate; 14 | 15 | ProducerListenerAdapter(); 16 | virtual ~ProducerListenerAdapter(); 17 | 18 | void OnTransportClose(mediasoupclient::Producer *producer) override; 19 | }; 20 | 21 | 22 | #endif /* ProducerListenerAdapter_h */ 23 | -------------------------------------------------------------------------------- /Mediasoup_Private/Producer/ProducerListenerAdapter.mm: -------------------------------------------------------------------------------- 1 | #import "ProducerListenerAdapter.hpp" 2 | #import "ProducerListenerAdapterDelegate.h" 3 | 4 | 5 | ProducerListenerAdapter::ProducerListenerAdapter() { 6 | } 7 | 8 | ProducerListenerAdapter::~ProducerListenerAdapter() { 9 | this->delegate = nil; 10 | } 11 | 12 | void ProducerListenerAdapter::OnTransportClose(mediasoupclient::Producer* producer) { 13 | // TODO: store __unsafe_unretained ref to Producer and check if sender mathces? 14 | [this->delegate onTransportClose:this]; 15 | } 16 | -------------------------------------------------------------------------------- /Mediasoup_Private/Producer/ProducerListenerAdapterDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ProducerListenerAdapterDelegate_h 2 | #define ProducerListenerAdapterDelegate_h 3 | 4 | #import 5 | 6 | 7 | class ProducerListenerAdapter; 8 | 9 | 10 | @protocol ProducerListenerAdapterDelegate 11 | @required 12 | - (void)onTransportClose:(ProducerListenerAdapter *_Nonnull)adapter; 13 | @end 14 | 15 | #endif /* ProducerListenerAdapterDelegate_h */ 16 | -------------------------------------------------------------------------------- /Mediasoup_Private/Producer/ProducerWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ProducerWrapperDelegate_h 2 | #define ProducerWrapperDelegate_h 3 | 4 | #import 5 | 6 | 7 | @class ProducerWrapper; 8 | 9 | 10 | @protocol ProducerWrapperDelegate 11 | - (void)onTransportClose:(ProducerWrapper *_Nonnull)producer; 12 | @end 13 | 14 | #endif /* ProducerWrapperDelegate_h */ 15 | -------------------------------------------------------------------------------- /Mediasoup_Private/Producer/RTPEncodingParameters+Internal.hpp: -------------------------------------------------------------------------------- 1 | #ifndef RTPEncodingParameters_Internal_h 2 | #define RTPEncodingParameters_Internal_h 3 | 4 | #import "RTPEncodingParameters.hpp" 5 | 6 | namespace webrtc { 7 | struct RtpEncodingParameters; 8 | } 9 | 10 | @interface RTPEncodingParameters (Internal) 11 | - (instancetype _Nonnull)initWithValue:(webrtc::RtpEncodingParameters)value; 12 | @end 13 | 14 | 15 | #endif /* RTPEncodingParameters_Internal_h */ 16 | -------------------------------------------------------------------------------- /Mediasoup_Private/Producer/RTPEncodingParameters.hpp: -------------------------------------------------------------------------------- 1 | #ifndef RTPEncodingParameters_h 2 | #define RTPEncodingParameters_h 3 | 4 | #import 5 | 6 | 7 | @interface RTPEncodingParameters : NSObject 8 | @property (nonatomic, assign) BOOL isActive; 9 | @property (nonatomic, nullable, strong) NSNumber *minBitrateBps; 10 | @property (nonatomic, nullable, strong) NSNumber *maxBitrateBps; 11 | @property (nonatomic, nullable, strong) NSNumber *maxFramerate; 12 | @property (nonatomic, nullable, strong) NSNumber *scaleResolutionDownBy; 13 | @property (nonatomic, assign) CGSize requestedResolution; 14 | @property (nonatomic, nullable, copy) NSString *scalabilityMode; 15 | @property (nonatomic, nullable, strong) NSNumber *numTemporalLayers; 16 | @property (nonatomic, assign) double bitratePriority; 17 | @property (nonatomic, assign) BOOL adaptiveAudioPacketTime; 18 | @end 19 | 20 | #endif /* RTPEncodingParameters_h */ 21 | -------------------------------------------------------------------------------- /Mediasoup_Private/Producer/RTPEncodingParameters.mm: -------------------------------------------------------------------------------- 1 | #import "RTPEncodingParameters.hpp" 2 | 3 | 4 | @implementation RTPEncodingParameters 5 | @end 6 | -------------------------------------------------------------------------------- /Mediasoup_Private/Producer/WrappedRTPParameters+Internal.hpp: -------------------------------------------------------------------------------- 1 | #ifndef RTPParametersWrapper_Internal_h 2 | #define RTPParametersWrapper_Internal_h 3 | 4 | #import "WrappedRTPParameters.hpp" 5 | 6 | #ifdef __cplusplus 7 | 8 | #include "absl/types/optional.h" 9 | 10 | namespace webrtc { 11 | enum class DegradationPreference; 12 | struct RtpEncodingParameters; 13 | } 14 | 15 | #endif /* __cplusplus */ 16 | 17 | 18 | @interface WrappedRTPParameters (Internal) 19 | #ifdef __cplusplus 20 | - (instancetype _Nonnull)initWithEncodings:(std::vector)encodings degradationPreference:(absl::optional)degradationPreference; 21 | - (absl::optional)degradationPreference; 22 | #endif /* __cplusplus */ 23 | @end 24 | 25 | #endif /* RTPParametersWrapper_Internal_h */ 26 | -------------------------------------------------------------------------------- /Mediasoup_Private/Producer/WrappedRTPParameters.hpp: -------------------------------------------------------------------------------- 1 | #ifndef WrappedRTPParametersWrapper_h 2 | #define WrappedRTPParametersWrapper_h 3 | 4 | #import 5 | 6 | typedef NS_ENUM(NSUInteger, WrappedDegradationPreference) { 7 | WrappedDegradationPreferenceNone, 8 | WrappedDegradationPreferenceDisabled, 9 | WrappedDegradationPreferenceMaintainFramerate, 10 | WrappedDegradationPreferenceMaintainResolution, 11 | WrappedDegradationPreferenceBalanced, 12 | }; 13 | 14 | @class RTPEncodingParameters; 15 | 16 | @interface WrappedRTPParameters : NSObject 17 | @property (nonatomic, assign) WrappedDegradationPreference wrappedDegradationPreference; 18 | @property (nonatomic, nullable, copy) NSArray *wrappedEncodings; 19 | @end 20 | 21 | #endif /* WrappedRTPParametersWrapper_h */ 22 | -------------------------------------------------------------------------------- /Mediasoup_Private/Producer/WrappedRTPParameters.mm: -------------------------------------------------------------------------------- 1 | #import "WrappedRTPParameters.hpp" 2 | 3 | 4 | @implementation WrappedRTPParameters 5 | @end 6 | -------------------------------------------------------------------------------- /Mediasoup_Private/ScalabilityMode.h: -------------------------------------------------------------------------------- 1 | #ifndef ScalabilityMode_h 2 | #define ScalabilityMode_h 3 | 4 | #import 5 | 6 | 7 | @interface ScalabilityMode: NSObject 8 | @property(nonatomic, readonly) int spatialLayers; 9 | @property(nonatomic, readonly) int temporalLayers; 10 | + (instancetype _Nonnull)parseScalabilityMode:(NSString *_Nonnull)scalabilityMode; 11 | @end 12 | 13 | #endif /* ScalabilityMode_h */ 14 | -------------------------------------------------------------------------------- /Mediasoup_Private/ScalabilityMode.mm: -------------------------------------------------------------------------------- 1 | #import "ScalabilityMode.h" 2 | #import 3 | 4 | 5 | @interface ScalabilityMode () 6 | @property(nonatomic, readwrite) int spatialLayers; 7 | @property(nonatomic, readwrite) int temporalLayers; 8 | @end 9 | 10 | 11 | @implementation ScalabilityMode 12 | 13 | + (instancetype _Nonnull)parseScalabilityMode:(NSString * _Nonnull)scalabilityMode { 14 | const nlohmann::json& layers = mediasoupclient::parseScalabilityMode(scalabilityMode.UTF8String); 15 | ScalabilityMode *instance = [[ScalabilityMode alloc] init]; 16 | instance.spatialLayers = layers["spatialLayers"].get(); 17 | instance.temporalLayers = layers["temporalLayers"].get(); 18 | return instance; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Mediasoup_Private/Transport/ReceiveTransportListenerAdapter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef ReceiveTransportListenerAdapter_h 2 | #define ReceiveTransportListenerAdapter_h 3 | 4 | #import 5 | #import 6 | #import "ReceiveTransportListenerAdapterDelegate.h" 7 | 8 | 9 | class ReceiveTransportListenerAdapter final : public mediasoupclient::RecvTransport::Listener { 10 | public: 11 | __weak id delegate; 12 | 13 | ReceiveTransportListenerAdapter(); 14 | virtual ~ReceiveTransportListenerAdapter(); 15 | 16 | std::future OnConnect( 17 | mediasoupclient::Transport *nativeTransport, 18 | const nlohmann::json &dtlsParameters) override; 19 | 20 | void OnConnectionStateChange( 21 | mediasoupclient::Transport *nativeTransport, 22 | const std::string &connectionState) override; 23 | }; 24 | 25 | #endif /* ReceiveTransportListenerAdapter_h */ 26 | -------------------------------------------------------------------------------- /Mediasoup_Private/Transport/ReceiveTransportListenerAdapter.mm: -------------------------------------------------------------------------------- 1 | #import 2 | #import "ReceiveTransportListenerAdapter.hpp" 3 | 4 | 5 | ReceiveTransportListenerAdapter::ReceiveTransportListenerAdapter() { 6 | } 7 | 8 | ReceiveTransportListenerAdapter::~ReceiveTransportListenerAdapter() { 9 | this->delegate = nil; 10 | } 11 | 12 | std::future ReceiveTransportListenerAdapter::OnConnect( 13 | mediasoupclient::Transport* nativeTransport, 14 | const nlohmann::json& dtlsParameters) { 15 | 16 | auto dtlsParametersString = [NSString stringWithUTF8String:dtlsParameters.dump().c_str()]; 17 | 18 | [this->delegate onConnect:this dtlsParameters:dtlsParametersString]; 19 | 20 | std::promise promise; 21 | promise.set_value(); 22 | return promise.get_future(); 23 | }; 24 | 25 | void ReceiveTransportListenerAdapter::OnConnectionStateChange( 26 | mediasoupclient::Transport *nativeTransport, 27 | const std::string &connectionState) { 28 | 29 | auto connectionStateString = [NSString stringWithUTF8String:connectionState.c_str()]; 30 | 31 | [this->delegate onConnectionStateChange:this connectionState:connectionStateString]; 32 | }; 33 | -------------------------------------------------------------------------------- /Mediasoup_Private/Transport/ReceiveTransportListenerAdapterDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ReceiveTransportListenerAdapterDelegate_h 2 | #define ReceiveTransportListenerAdapterDelegate_h 3 | 4 | #import 5 | 6 | 7 | class ReceiveTransportListenerAdapter; 8 | 9 | 10 | @protocol ReceiveTransportListenerAdapterDelegate 11 | @required 12 | 13 | - (void)onConnect:(ReceiveTransportListenerAdapter *_Nonnull)adapter 14 | dtlsParameters:(NSString *_Nonnull)dtlsParameters; 15 | 16 | - (void)onConnectionStateChange:(ReceiveTransportListenerAdapter *_Nonnull)adapter 17 | connectionState:(NSString *_Nonnull)connectionState; 18 | 19 | @end 20 | 21 | #endif /* ReceiveTransportListenerAdapterDelegate_h */ 22 | -------------------------------------------------------------------------------- /Mediasoup_Private/Transport/ReceiveTransportWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ReceiveTransportWrapperDelegate_h 2 | #define ReceiveTransportWrapperDelegate_h 3 | 4 | #import 5 | #import "MediasoupClientTransportConnectionState.h" 6 | 7 | 8 | @class ReceiveTransportWrapper; 9 | 10 | 11 | @protocol ReceiveTransportWrapperDelegate 12 | - (void)onConnect:(ReceiveTransportWrapper *_Nonnull)transport 13 | dtlsParameters:(NSString *_Nonnull)dtlsParameters; 14 | 15 | - (void)onConnectionStateChange:(ReceiveTransportWrapper *_Nonnull)transport 16 | connectionState:(MediasoupClientTransportConnectionState _Nonnull)connectionState; 17 | 18 | @end 19 | 20 | #endif /* ReceiveTransportWrapperDelegate_h */ 21 | -------------------------------------------------------------------------------- /Mediasoup_Private/Transport/SendTransportListenerAdapter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef SendTransportListenerAdapter_h 2 | #define SendTransportListenerAdapter_h 3 | 4 | #import 5 | #import 6 | #import "SendTransportListenerAdapterDelegate.h" 7 | 8 | 9 | class SendTransportListenerAdapter final : public mediasoupclient::SendTransport::Listener { 10 | public: 11 | __weak id delegate; 12 | 13 | SendTransportListenerAdapter(); 14 | virtual ~SendTransportListenerAdapter(); 15 | 16 | std::future OnConnect( 17 | mediasoupclient::Transport *nativeTransport, 18 | const nlohmann::json &dtlsParameters) override; 19 | 20 | void OnConnectionStateChange( 21 | mediasoupclient::Transport *nativeTransport, 22 | const std::string &connectionState) override; 23 | 24 | std::future OnProduce( 25 | mediasoupclient::SendTransport *nativeTransport, 26 | const std::string &kind, 27 | nlohmann::json rtpParameters, 28 | const nlohmann::json &appData) override; 29 | 30 | std::future OnProduceData( 31 | mediasoupclient::SendTransport *nativeTransport, 32 | const nlohmann::json &sctpStreamParameters, 33 | const std::string &label, 34 | const std::string &protocol, 35 | const nlohmann::json &appData) override; 36 | 37 | }; 38 | 39 | #endif /* SendTransportListenerAdapter_h */ 40 | -------------------------------------------------------------------------------- /Mediasoup_Private/Transport/SendTransportListenerAdapterDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef SendTransportListenerAdapterDelegate_h 2 | #define SendTransportListenerAdapterDelegate_h 3 | 4 | #import 5 | 6 | 7 | class SendTransportListenerAdapter; 8 | 9 | 10 | @protocol SendTransportListenerAdapterDelegate 11 | @required 12 | 13 | - (void)onConnect:(SendTransportListenerAdapter *_Nonnull)adapter 14 | dtlsParameters:(NSString *_Nonnull)dtlsParameters; 15 | 16 | - (void)onConnectionStateChange:(SendTransportListenerAdapter *_Nonnull)adapter 17 | connectionState:(NSString *_Nonnull)connectionState; 18 | 19 | - (void)onProduce:(SendTransportListenerAdapter *_Nonnull)adapter 20 | kind:(NSString *_Nonnull)kind 21 | rtpParameters:(NSString *_Nonnull)rtpParameters 22 | appData:(NSString *_Nonnull)appData 23 | callback:(void(^_Nonnull)(NSString *_Nullable))callback; 24 | 25 | - (void)onProduceData:(SendTransportListenerAdapter *_Nonnull)adapter 26 | sctpParameters:(NSString *_Nonnull)sctpParameters 27 | label:(NSString *_Nonnull)label 28 | protocol:(NSString *_Nonnull)protocol 29 | appData:(NSString *_Nonnull)appData 30 | callback:(void(^_Nonnull)(NSString *_Nullable))callback; 31 | 32 | @end 33 | 34 | #endif /* SendTransportListenerAdapterDelegate_h */ 35 | -------------------------------------------------------------------------------- /Mediasoup_Private/Transport/SendTransportWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef SendTransportWrapperDelegate_h 2 | #define SendTransportWrapperDelegate_h 3 | 4 | #import 5 | #import "MediasoupClientTransportConnectionState.h" 6 | 7 | 8 | @class SendTransportWrapper; 9 | 10 | 11 | @protocol SendTransportWrapperDelegate 12 | - (void)onConnect:(SendTransportWrapper *_Nonnull)transport 13 | dtlsParameters:(NSString *_Nonnull)dtlsParameters; 14 | 15 | - (void)onConnectionStateChange:(SendTransportWrapper *_Nonnull)transport 16 | connectionState:(MediasoupClientTransportConnectionState _Nonnull)connectionState; 17 | 18 | - (void)onProduce:(SendTransportWrapper *_Nonnull)transport 19 | kind:(NSString *_Nonnull)kind 20 | rtpParameters:(NSString *_Nonnull)rtpParameters 21 | appData:(NSString *_Nonnull)appData 22 | callback:(void(^_Nonnull)(NSString *_Nullable))callback; 23 | 24 | - (void)onProduceData:(SendTransportWrapper *_Nonnull)transport 25 | sctpParameters:(NSString *_Nonnull)sctpParameters 26 | label:(NSString *_Nonnull)label 27 | protocol:(NSString *_Nonnull)protocol 28 | appData:(NSString *_Nonnull)appData 29 | callback:(void(^_Nonnull)(NSString *_Nullable))callback; 30 | @end 31 | 32 | #endif /* SendTransportWrapperDelegate_h */ 33 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.3 2 | import PackageDescription 3 | 4 | 5 | let version = "0.8.0" 6 | let mediasoupChecksum = "fa999ead73012cfa9385fbfcfe5a7ffc7987ec0fa9c7873d05fd0349ef38493b" 7 | let webrtcChecksum = "d6f5f751ca3aad5ba9e74896ba6e5a4869b3a50ac6def2a069357277d94ea99a" 8 | 9 | 10 | let package = Package( 11 | name: "Mediasoup-Client-Swift", 12 | platforms: [ 13 | .iOS(.v14) 14 | ], 15 | products: [ 16 | .library( 17 | name: "Mediasoup", 18 | targets: [ 19 | "Mediasoup", 20 | "WebRTC" 21 | ] 22 | ) 23 | ], 24 | dependencies: [ 25 | ], 26 | targets: [ 27 | .binaryTarget( 28 | name: "Mediasoup", 29 | url: "https://github.com/VLprojects/mediasoup-client-swift/releases/download/\(version)/Mediasoup.xcframework.zip", 30 | checksum: mediasoupChecksum 31 | ), 32 | .binaryTarget( 33 | name: "WebRTC", 34 | url: "https://github.com/VLprojects/mediasoup-client-swift/releases/download/\(version)/WebRTC.xcframework.zip", 35 | checksum: webrtcChecksum 36 | ) 37 | ] 38 | ) 39 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AvailableLibraries 6 | 7 | 8 | BinaryPath 9 | Mediasoup.framework/Mediasoup 10 | LibraryIdentifier 11 | ios-arm64 12 | LibraryPath 13 | Mediasoup.framework 14 | SupportedArchitectures 15 | 16 | arm64 17 | 18 | SupportedPlatform 19 | ios 20 | 21 | 22 | BinaryPath 23 | Mediasoup.framework/Mediasoup 24 | LibraryIdentifier 25 | ios-arm64_x86_64-simulator 26 | LibraryPath 27 | Mediasoup.framework 28 | SupportedArchitectures 29 | 30 | arm64 31 | x86_64 32 | 33 | SupportedPlatform 34 | ios 35 | SupportedPlatformVariant 36 | simulator 37 | 38 | 39 | CFBundlePackageType 40 | XFWK 41 | XCFrameworkFormatVersion 42 | 1.0 43 | 44 | 45 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/Info.plist -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/Mediasoup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/Mediasoup -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/Modules/Mediasoup.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/Modules/Mediasoup.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/Modules/Mediasoup.swiftmodule/arm64-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/Modules/Mediasoup.swiftmodule/arm64-apple-ios.swiftdoc -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Mediasoup { 2 | export Mediasoup 3 | } 4 | 5 | module Mediasoup.Swift { 6 | header "Mediasoup-Swift.h" 7 | requires objc 8 | } 9 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/Modules/module.private.modulemap: -------------------------------------------------------------------------------- 1 | module Mediasoup_Private { 2 | private header "PrivateHeaders/DeviceWrapper.h" 3 | private header "PrivateHeaders/MediasoupClientError.h" 4 | private header "PrivateHeaders/MediasoupClientMediaKind.h" 5 | private header "PrivateHeaders/MediasoupClientTransportConnectionState.h" 6 | private header "PrivateHeaders/SendTransportWrapper.hpp" 7 | private header "PrivateHeaders/SendTransportWrapperDelegate.h" 8 | private header "PrivateHeaders/WrappedRTPParameters.hpp" 9 | private header "PrivateHeaders/RTPEncodingParameters.hpp" 10 | private header "PrivateHeaders/ProducerWrapper.hpp" 11 | private header "PrivateHeaders/ProducerWrapperDelegate.h" 12 | private header "PrivateHeaders/ReceiveTransportWrapper.hpp" 13 | private header "PrivateHeaders/ReceiveTransportWrapperDelegate.h" 14 | private header "PrivateHeaders/ConsumerWrapper.hpp" 15 | private header "PrivateHeaders/ConsumerWrapperDelegate.h" 16 | private header "PrivateHeaders/DataConsumerWrapper.hpp" 17 | private header "PrivateHeaders/DataConsumerWrapperDelegate.h" 18 | private header "PrivateHeaders/ScalabilityMode.h" 19 | } 20 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/ConsumerWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ConsumerWrapperDelegate_h 2 | #define ConsumerWrapperDelegate_h 3 | 4 | #import 5 | 6 | 7 | @class ConsumerWrapper; 8 | 9 | 10 | @protocol ConsumerWrapperDelegate 11 | - (void)onTransportClose:(ConsumerWrapper *_Nonnull)consumer; 12 | @end 13 | 14 | #endif /* ConsumerWrapperDelegate_h */ 15 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/DataConsumerWrapper.hpp: -------------------------------------------------------------------------------- 1 | #ifndef DataConsumerWrapper_h 2 | #define DataConsumerWrapper_h 3 | 4 | #import 5 | 6 | #ifdef __cplusplus 7 | namespace mediasoupclient { 8 | class DataConsumer; 9 | } 10 | class DataConsumerListenerAdapter; 11 | #endif 12 | 13 | @protocol DataConsumerWrapperDelegate; 14 | 15 | 16 | @interface DataConsumerWrapper : NSObject 17 | 18 | @property(nonatomic, nullable, weak) id delegate; 19 | @property(nonatomic, nonnull, readonly, getter = id) NSString *id; 20 | @property(nonatomic, nonnull, readonly, getter = localId) NSString *localId; 21 | @property(nonatomic, nonnull, readonly, getter = producerId) NSString *producerId; 22 | @property(nonatomic, nonnull, readonly, getter = sctpStreamParameters) NSString *sctpStreamParameters; 23 | @property(nonatomic, readonly, getter = closed) BOOL closed; 24 | @property(nonatomic, nonnull, readonly, getter = label) NSString *label; 25 | @property(nonatomic, nonnull, readonly, getter = dataProtocol) NSString *dataProtocol; 26 | @property(nonatomic, nonnull, readonly, getter = appData) NSString *appData; 27 | 28 | #ifdef __cplusplus 29 | - (instancetype _Nullable)initWithDataConsumer:(mediasoupclient::DataConsumer *_Nonnull)consumer 30 | listenerAdapter:(DataConsumerListenerAdapter *_Nonnull)listenerAdapter; 31 | #endif 32 | 33 | - (void)close; 34 | 35 | @end 36 | 37 | #endif /* DataConsumerWrapper_h */ 38 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/DataConsumerWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef DataConsumerWrapperDelegate_h 2 | #define DataConsumerWrapperDelegate_h 3 | 4 | #import 5 | 6 | 7 | @class DataConsumerWrapper; 8 | 9 | 10 | @protocol DataConsumerWrapperDelegate 11 | - (void)onMessage:(NSData *_Nonnull)messageData consumer:(DataConsumerWrapper *_Nonnull)consumer; 12 | - (void)onConnecting:(DataConsumerWrapper *_Nonnull)consumer; 13 | - (void)onOpen:(DataConsumerWrapper *_Nonnull)consumer; 14 | - (void)onClosing:(DataConsumerWrapper *_Nonnull)consumer; 15 | - (void)onClose:(DataConsumerWrapper *_Nonnull)consumer; 16 | - (void)onTransportClose:(DataConsumerWrapper *_Nonnull)consumer; 17 | @end 18 | 19 | #endif /* DataConsumerWrapperDelegate_h */ 20 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/MediasoupClientError.h: -------------------------------------------------------------------------------- 1 | #ifndef MediasoupClientError_h 2 | #define MediasoupClientError_h 3 | 4 | #import 5 | 6 | 7 | extern NSErrorDomain _Nonnull const MediasoupClientErrorDomain; 8 | 9 | typedef NS_ERROR_ENUM(MediasoupClientErrorDomain, MediasoupClientErrorCode) { 10 | MediasoupClientErrorCodeUnsupported, 11 | MediasoupClientErrorCodeInvalidState, 12 | MediasoupClientErrorCodeInvalidParameters, 13 | MediasoupClientErrorCodeUnknown, 14 | }; 15 | 16 | #endif /* MediasoupClientError_h */ 17 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/MediasoupClientMediaKind.h: -------------------------------------------------------------------------------- 1 | #ifndef MediasoupClientMediaKind_h 2 | #define MediasoupClientMediaKind_h 3 | 4 | #import 5 | 6 | typedef NSString *MediasoupClientMediaKind NS_TYPED_ENUM; 7 | extern MediasoupClientMediaKind const MediasoupClientMediaKindAudio; 8 | extern MediasoupClientMediaKind const MediasoupClientMediaKindVideo; 9 | 10 | #endif /* MediasoupClientMediaKind_h */ 11 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/MediasoupClientTransportConnectionState.h: -------------------------------------------------------------------------------- 1 | #ifndef MediasoupClientTransportConnectionState_h 2 | #define MediasoupClientTransportConnectionState_h 3 | 4 | #import 5 | 6 | typedef NSString *MediasoupClientTransportConnectionState NS_TYPED_ENUM; 7 | 8 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateNew; 9 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateChecking; 10 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateConnected; 11 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateCompleted; 12 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateFailed; 13 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateDisconnected; 14 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateClosed; 15 | 16 | #endif /* MediasoupClientTransportConnectionState_h */ 17 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/ProducerWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ProducerWrapperDelegate_h 2 | #define ProducerWrapperDelegate_h 3 | 4 | #import 5 | 6 | 7 | @class ProducerWrapper; 8 | 9 | 10 | @protocol ProducerWrapperDelegate 11 | - (void)onTransportClose:(ProducerWrapper *_Nonnull)producer; 12 | @end 13 | 14 | #endif /* ProducerWrapperDelegate_h */ 15 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/RTPEncodingParameters.hpp: -------------------------------------------------------------------------------- 1 | #ifndef RTPEncodingParameters_h 2 | #define RTPEncodingParameters_h 3 | 4 | #import 5 | 6 | 7 | @interface RTPEncodingParameters : NSObject 8 | @property (nonatomic, assign) BOOL isActive; 9 | @property (nonatomic, nullable, strong) NSNumber *minBitrateBps; 10 | @property (nonatomic, nullable, strong) NSNumber *maxBitrateBps; 11 | @property (nonatomic, nullable, strong) NSNumber *maxFramerate; 12 | @property (nonatomic, nullable, strong) NSNumber *scaleResolutionDownBy; 13 | @property (nonatomic, assign) CGSize requestedResolution; 14 | @property (nonatomic, nullable, copy) NSString *scalabilityMode; 15 | @property (nonatomic, nullable, strong) NSNumber *numTemporalLayers; 16 | @property (nonatomic, assign) double bitratePriority; 17 | @property (nonatomic, assign) BOOL adaptiveAudioPacketTime; 18 | @end 19 | 20 | #endif /* RTPEncodingParameters_h */ 21 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/ReceiveTransportListenerAdapter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef ReceiveTransportListenerAdapter_h 2 | #define ReceiveTransportListenerAdapter_h 3 | 4 | #import 5 | #import 6 | #import "ReceiveTransportListenerAdapterDelegate.h" 7 | 8 | 9 | class ReceiveTransportListenerAdapter final : public mediasoupclient::RecvTransport::Listener { 10 | public: 11 | __weak id delegate; 12 | 13 | ReceiveTransportListenerAdapter(); 14 | virtual ~ReceiveTransportListenerAdapter(); 15 | 16 | std::future OnConnect( 17 | mediasoupclient::Transport *nativeTransport, 18 | const nlohmann::json &dtlsParameters) override; 19 | 20 | void OnConnectionStateChange( 21 | mediasoupclient::Transport *nativeTransport, 22 | const std::string &connectionState) override; 23 | }; 24 | 25 | #endif /* ReceiveTransportListenerAdapter_h */ 26 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/ReceiveTransportWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ReceiveTransportWrapperDelegate_h 2 | #define ReceiveTransportWrapperDelegate_h 3 | 4 | #import 5 | #import "MediasoupClientTransportConnectionState.h" 6 | 7 | 8 | @class ReceiveTransportWrapper; 9 | 10 | 11 | @protocol ReceiveTransportWrapperDelegate 12 | - (void)onConnect:(ReceiveTransportWrapper *_Nonnull)transport 13 | dtlsParameters:(NSString *_Nonnull)dtlsParameters; 14 | 15 | - (void)onConnectionStateChange:(ReceiveTransportWrapper *_Nonnull)transport 16 | connectionState:(MediasoupClientTransportConnectionState _Nonnull)connectionState; 17 | 18 | @end 19 | 20 | #endif /* ReceiveTransportWrapperDelegate_h */ 21 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/ScalabilityMode.h: -------------------------------------------------------------------------------- 1 | #ifndef ScalabilityMode_h 2 | #define ScalabilityMode_h 3 | 4 | #import 5 | 6 | 7 | @interface ScalabilityMode: NSObject 8 | @property(nonatomic, readonly) int spatialLayers; 9 | @property(nonatomic, readonly) int temporalLayers; 10 | + (instancetype _Nonnull)parseScalabilityMode:(NSString *_Nonnull)scalabilityMode; 11 | @end 12 | 13 | #endif /* ScalabilityMode_h */ 14 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/SendTransportListenerAdapter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef SendTransportListenerAdapter_h 2 | #define SendTransportListenerAdapter_h 3 | 4 | #import 5 | #import 6 | #import "SendTransportListenerAdapterDelegate.h" 7 | 8 | 9 | class SendTransportListenerAdapter final : public mediasoupclient::SendTransport::Listener { 10 | public: 11 | __weak id delegate; 12 | 13 | SendTransportListenerAdapter(); 14 | virtual ~SendTransportListenerAdapter(); 15 | 16 | std::future OnConnect( 17 | mediasoupclient::Transport *nativeTransport, 18 | const nlohmann::json &dtlsParameters) override; 19 | 20 | void OnConnectionStateChange( 21 | mediasoupclient::Transport *nativeTransport, 22 | const std::string &connectionState) override; 23 | 24 | std::future OnProduce( 25 | mediasoupclient::SendTransport *nativeTransport, 26 | const std::string &kind, 27 | nlohmann::json rtpParameters, 28 | const nlohmann::json &appData) override; 29 | 30 | std::future OnProduceData( 31 | mediasoupclient::SendTransport *nativeTransport, 32 | const nlohmann::json &sctpStreamParameters, 33 | const std::string &label, 34 | const std::string &protocol, 35 | const nlohmann::json &appData) override; 36 | 37 | }; 38 | 39 | #endif /* SendTransportListenerAdapter_h */ 40 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/SendTransportWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef SendTransportWrapperDelegate_h 2 | #define SendTransportWrapperDelegate_h 3 | 4 | #import 5 | #import "MediasoupClientTransportConnectionState.h" 6 | 7 | 8 | @class SendTransportWrapper; 9 | 10 | 11 | @protocol SendTransportWrapperDelegate 12 | - (void)onConnect:(SendTransportWrapper *_Nonnull)transport 13 | dtlsParameters:(NSString *_Nonnull)dtlsParameters; 14 | 15 | - (void)onConnectionStateChange:(SendTransportWrapper *_Nonnull)transport 16 | connectionState:(MediasoupClientTransportConnectionState _Nonnull)connectionState; 17 | 18 | - (void)onProduce:(SendTransportWrapper *_Nonnull)transport 19 | kind:(NSString *_Nonnull)kind 20 | rtpParameters:(NSString *_Nonnull)rtpParameters 21 | appData:(NSString *_Nonnull)appData 22 | callback:(void(^_Nonnull)(NSString *_Nullable))callback; 23 | 24 | - (void)onProduceData:(SendTransportWrapper *_Nonnull)transport 25 | sctpParameters:(NSString *_Nonnull)sctpParameters 26 | label:(NSString *_Nonnull)label 27 | protocol:(NSString *_Nonnull)protocol 28 | appData:(NSString *_Nonnull)appData 29 | callback:(void(^_Nonnull)(NSString *_Nullable))callback; 30 | @end 31 | 32 | #endif /* SendTransportWrapperDelegate_h */ 33 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64/Mediasoup.framework/PrivateHeaders/WrappedRTPParameters.hpp: -------------------------------------------------------------------------------- 1 | #ifndef WrappedRTPParametersWrapper_h 2 | #define WrappedRTPParametersWrapper_h 3 | 4 | #import 5 | 6 | typedef NS_ENUM(NSUInteger, WrappedDegradationPreference) { 7 | WrappedDegradationPreferenceNone, 8 | WrappedDegradationPreferenceDisabled, 9 | WrappedDegradationPreferenceMaintainFramerate, 10 | WrappedDegradationPreferenceMaintainResolution, 11 | WrappedDegradationPreferenceBalanced, 12 | }; 13 | 14 | @class RTPEncodingParameters; 15 | 16 | @interface WrappedRTPParameters : NSObject 17 | @property (nonatomic, assign) WrappedDegradationPreference wrappedDegradationPreference; 18 | @property (nonatomic, nullable, copy) NSArray *wrappedEncodings; 19 | @end 20 | 21 | #endif /* WrappedRTPParametersWrapper_h */ 22 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Info.plist -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Mediasoup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Mediasoup -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Modules/Mediasoup.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Modules/Mediasoup.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Modules/Mediasoup.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Modules/Mediasoup.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Modules/Mediasoup.swiftmodule/arm64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Modules/Mediasoup.swiftmodule/arm64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Modules/Mediasoup.swiftmodule/x86_64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Modules/Mediasoup.swiftmodule/x86_64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Mediasoup { 2 | export Mediasoup 3 | } 4 | 5 | module Mediasoup.Swift { 6 | header "Mediasoup-Swift.h" 7 | requires objc 8 | } 9 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/Modules/module.private.modulemap: -------------------------------------------------------------------------------- 1 | module Mediasoup_Private { 2 | private header "PrivateHeaders/DeviceWrapper.h" 3 | private header "PrivateHeaders/MediasoupClientError.h" 4 | private header "PrivateHeaders/MediasoupClientMediaKind.h" 5 | private header "PrivateHeaders/MediasoupClientTransportConnectionState.h" 6 | private header "PrivateHeaders/SendTransportWrapper.hpp" 7 | private header "PrivateHeaders/SendTransportWrapperDelegate.h" 8 | private header "PrivateHeaders/WrappedRTPParameters.hpp" 9 | private header "PrivateHeaders/RTPEncodingParameters.hpp" 10 | private header "PrivateHeaders/ProducerWrapper.hpp" 11 | private header "PrivateHeaders/ProducerWrapperDelegate.h" 12 | private header "PrivateHeaders/ReceiveTransportWrapper.hpp" 13 | private header "PrivateHeaders/ReceiveTransportWrapperDelegate.h" 14 | private header "PrivateHeaders/ConsumerWrapper.hpp" 15 | private header "PrivateHeaders/ConsumerWrapperDelegate.h" 16 | private header "PrivateHeaders/DataConsumerWrapper.hpp" 17 | private header "PrivateHeaders/DataConsumerWrapperDelegate.h" 18 | private header "PrivateHeaders/ScalabilityMode.h" 19 | } 20 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/ConsumerWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ConsumerWrapperDelegate_h 2 | #define ConsumerWrapperDelegate_h 3 | 4 | #import 5 | 6 | 7 | @class ConsumerWrapper; 8 | 9 | 10 | @protocol ConsumerWrapperDelegate 11 | - (void)onTransportClose:(ConsumerWrapper *_Nonnull)consumer; 12 | @end 13 | 14 | #endif /* ConsumerWrapperDelegate_h */ 15 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/DataConsumerWrapper.hpp: -------------------------------------------------------------------------------- 1 | #ifndef DataConsumerWrapper_h 2 | #define DataConsumerWrapper_h 3 | 4 | #import 5 | 6 | #ifdef __cplusplus 7 | namespace mediasoupclient { 8 | class DataConsumer; 9 | } 10 | class DataConsumerListenerAdapter; 11 | #endif 12 | 13 | @protocol DataConsumerWrapperDelegate; 14 | 15 | 16 | @interface DataConsumerWrapper : NSObject 17 | 18 | @property(nonatomic, nullable, weak) id delegate; 19 | @property(nonatomic, nonnull, readonly, getter = id) NSString *id; 20 | @property(nonatomic, nonnull, readonly, getter = localId) NSString *localId; 21 | @property(nonatomic, nonnull, readonly, getter = producerId) NSString *producerId; 22 | @property(nonatomic, nonnull, readonly, getter = sctpStreamParameters) NSString *sctpStreamParameters; 23 | @property(nonatomic, readonly, getter = closed) BOOL closed; 24 | @property(nonatomic, nonnull, readonly, getter = label) NSString *label; 25 | @property(nonatomic, nonnull, readonly, getter = dataProtocol) NSString *dataProtocol; 26 | @property(nonatomic, nonnull, readonly, getter = appData) NSString *appData; 27 | 28 | #ifdef __cplusplus 29 | - (instancetype _Nullable)initWithDataConsumer:(mediasoupclient::DataConsumer *_Nonnull)consumer 30 | listenerAdapter:(DataConsumerListenerAdapter *_Nonnull)listenerAdapter; 31 | #endif 32 | 33 | - (void)close; 34 | 35 | @end 36 | 37 | #endif /* DataConsumerWrapper_h */ 38 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/DataConsumerWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef DataConsumerWrapperDelegate_h 2 | #define DataConsumerWrapperDelegate_h 3 | 4 | #import 5 | 6 | 7 | @class DataConsumerWrapper; 8 | 9 | 10 | @protocol DataConsumerWrapperDelegate 11 | - (void)onMessage:(NSData *_Nonnull)messageData consumer:(DataConsumerWrapper *_Nonnull)consumer; 12 | - (void)onConnecting:(DataConsumerWrapper *_Nonnull)consumer; 13 | - (void)onOpen:(DataConsumerWrapper *_Nonnull)consumer; 14 | - (void)onClosing:(DataConsumerWrapper *_Nonnull)consumer; 15 | - (void)onClose:(DataConsumerWrapper *_Nonnull)consumer; 16 | - (void)onTransportClose:(DataConsumerWrapper *_Nonnull)consumer; 17 | @end 18 | 19 | #endif /* DataConsumerWrapperDelegate_h */ 20 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/MediasoupClientError.h: -------------------------------------------------------------------------------- 1 | #ifndef MediasoupClientError_h 2 | #define MediasoupClientError_h 3 | 4 | #import 5 | 6 | 7 | extern NSErrorDomain _Nonnull const MediasoupClientErrorDomain; 8 | 9 | typedef NS_ERROR_ENUM(MediasoupClientErrorDomain, MediasoupClientErrorCode) { 10 | MediasoupClientErrorCodeUnsupported, 11 | MediasoupClientErrorCodeInvalidState, 12 | MediasoupClientErrorCodeInvalidParameters, 13 | MediasoupClientErrorCodeUnknown, 14 | }; 15 | 16 | #endif /* MediasoupClientError_h */ 17 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/MediasoupClientMediaKind.h: -------------------------------------------------------------------------------- 1 | #ifndef MediasoupClientMediaKind_h 2 | #define MediasoupClientMediaKind_h 3 | 4 | #import 5 | 6 | typedef NSString *MediasoupClientMediaKind NS_TYPED_ENUM; 7 | extern MediasoupClientMediaKind const MediasoupClientMediaKindAudio; 8 | extern MediasoupClientMediaKind const MediasoupClientMediaKindVideo; 9 | 10 | #endif /* MediasoupClientMediaKind_h */ 11 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/MediasoupClientTransportConnectionState.h: -------------------------------------------------------------------------------- 1 | #ifndef MediasoupClientTransportConnectionState_h 2 | #define MediasoupClientTransportConnectionState_h 3 | 4 | #import 5 | 6 | typedef NSString *MediasoupClientTransportConnectionState NS_TYPED_ENUM; 7 | 8 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateNew; 9 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateChecking; 10 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateConnected; 11 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateCompleted; 12 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateFailed; 13 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateDisconnected; 14 | extern MediasoupClientTransportConnectionState const MediasoupClientTransportConnectionStateClosed; 15 | 16 | #endif /* MediasoupClientTransportConnectionState_h */ 17 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/ProducerWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ProducerWrapperDelegate_h 2 | #define ProducerWrapperDelegate_h 3 | 4 | #import 5 | 6 | 7 | @class ProducerWrapper; 8 | 9 | 10 | @protocol ProducerWrapperDelegate 11 | - (void)onTransportClose:(ProducerWrapper *_Nonnull)producer; 12 | @end 13 | 14 | #endif /* ProducerWrapperDelegate_h */ 15 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/RTPEncodingParameters.hpp: -------------------------------------------------------------------------------- 1 | #ifndef RTPEncodingParameters_h 2 | #define RTPEncodingParameters_h 3 | 4 | #import 5 | 6 | 7 | @interface RTPEncodingParameters : NSObject 8 | @property (nonatomic, assign) BOOL isActive; 9 | @property (nonatomic, nullable, strong) NSNumber *minBitrateBps; 10 | @property (nonatomic, nullable, strong) NSNumber *maxBitrateBps; 11 | @property (nonatomic, nullable, strong) NSNumber *maxFramerate; 12 | @property (nonatomic, nullable, strong) NSNumber *scaleResolutionDownBy; 13 | @property (nonatomic, assign) CGSize requestedResolution; 14 | @property (nonatomic, nullable, copy) NSString *scalabilityMode; 15 | @property (nonatomic, nullable, strong) NSNumber *numTemporalLayers; 16 | @property (nonatomic, assign) double bitratePriority; 17 | @property (nonatomic, assign) BOOL adaptiveAudioPacketTime; 18 | @end 19 | 20 | #endif /* RTPEncodingParameters_h */ 21 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/ReceiveTransportListenerAdapter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef ReceiveTransportListenerAdapter_h 2 | #define ReceiveTransportListenerAdapter_h 3 | 4 | #import 5 | #import 6 | #import "ReceiveTransportListenerAdapterDelegate.h" 7 | 8 | 9 | class ReceiveTransportListenerAdapter final : public mediasoupclient::RecvTransport::Listener { 10 | public: 11 | __weak id delegate; 12 | 13 | ReceiveTransportListenerAdapter(); 14 | virtual ~ReceiveTransportListenerAdapter(); 15 | 16 | std::future OnConnect( 17 | mediasoupclient::Transport *nativeTransport, 18 | const nlohmann::json &dtlsParameters) override; 19 | 20 | void OnConnectionStateChange( 21 | mediasoupclient::Transport *nativeTransport, 22 | const std::string &connectionState) override; 23 | }; 24 | 25 | #endif /* ReceiveTransportListenerAdapter_h */ 26 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/ReceiveTransportWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef ReceiveTransportWrapperDelegate_h 2 | #define ReceiveTransportWrapperDelegate_h 3 | 4 | #import 5 | #import "MediasoupClientTransportConnectionState.h" 6 | 7 | 8 | @class ReceiveTransportWrapper; 9 | 10 | 11 | @protocol ReceiveTransportWrapperDelegate 12 | - (void)onConnect:(ReceiveTransportWrapper *_Nonnull)transport 13 | dtlsParameters:(NSString *_Nonnull)dtlsParameters; 14 | 15 | - (void)onConnectionStateChange:(ReceiveTransportWrapper *_Nonnull)transport 16 | connectionState:(MediasoupClientTransportConnectionState _Nonnull)connectionState; 17 | 18 | @end 19 | 20 | #endif /* ReceiveTransportWrapperDelegate_h */ 21 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/ScalabilityMode.h: -------------------------------------------------------------------------------- 1 | #ifndef ScalabilityMode_h 2 | #define ScalabilityMode_h 3 | 4 | #import 5 | 6 | 7 | @interface ScalabilityMode: NSObject 8 | @property(nonatomic, readonly) int spatialLayers; 9 | @property(nonatomic, readonly) int temporalLayers; 10 | + (instancetype _Nonnull)parseScalabilityMode:(NSString *_Nonnull)scalabilityMode; 11 | @end 12 | 13 | #endif /* ScalabilityMode_h */ 14 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/SendTransportListenerAdapter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef SendTransportListenerAdapter_h 2 | #define SendTransportListenerAdapter_h 3 | 4 | #import 5 | #import 6 | #import "SendTransportListenerAdapterDelegate.h" 7 | 8 | 9 | class SendTransportListenerAdapter final : public mediasoupclient::SendTransport::Listener { 10 | public: 11 | __weak id delegate; 12 | 13 | SendTransportListenerAdapter(); 14 | virtual ~SendTransportListenerAdapter(); 15 | 16 | std::future OnConnect( 17 | mediasoupclient::Transport *nativeTransport, 18 | const nlohmann::json &dtlsParameters) override; 19 | 20 | void OnConnectionStateChange( 21 | mediasoupclient::Transport *nativeTransport, 22 | const std::string &connectionState) override; 23 | 24 | std::future OnProduce( 25 | mediasoupclient::SendTransport *nativeTransport, 26 | const std::string &kind, 27 | nlohmann::json rtpParameters, 28 | const nlohmann::json &appData) override; 29 | 30 | std::future OnProduceData( 31 | mediasoupclient::SendTransport *nativeTransport, 32 | const nlohmann::json &sctpStreamParameters, 33 | const std::string &label, 34 | const std::string &protocol, 35 | const nlohmann::json &appData) override; 36 | 37 | }; 38 | 39 | #endif /* SendTransportListenerAdapter_h */ 40 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/SendTransportWrapperDelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef SendTransportWrapperDelegate_h 2 | #define SendTransportWrapperDelegate_h 3 | 4 | #import 5 | #import "MediasoupClientTransportConnectionState.h" 6 | 7 | 8 | @class SendTransportWrapper; 9 | 10 | 11 | @protocol SendTransportWrapperDelegate 12 | - (void)onConnect:(SendTransportWrapper *_Nonnull)transport 13 | dtlsParameters:(NSString *_Nonnull)dtlsParameters; 14 | 15 | - (void)onConnectionStateChange:(SendTransportWrapper *_Nonnull)transport 16 | connectionState:(MediasoupClientTransportConnectionState _Nonnull)connectionState; 17 | 18 | - (void)onProduce:(SendTransportWrapper *_Nonnull)transport 19 | kind:(NSString *_Nonnull)kind 20 | rtpParameters:(NSString *_Nonnull)rtpParameters 21 | appData:(NSString *_Nonnull)appData 22 | callback:(void(^_Nonnull)(NSString *_Nullable))callback; 23 | 24 | - (void)onProduceData:(SendTransportWrapper *_Nonnull)transport 25 | sctpParameters:(NSString *_Nonnull)sctpParameters 26 | label:(NSString *_Nonnull)label 27 | protocol:(NSString *_Nonnull)protocol 28 | appData:(NSString *_Nonnull)appData 29 | callback:(void(^_Nonnull)(NSString *_Nullable))callback; 30 | @end 31 | 32 | #endif /* SendTransportWrapperDelegate_h */ 33 | -------------------------------------------------------------------------------- /bin/Mediasoup.xcframework/ios-arm64_x86_64-simulator/Mediasoup.framework/PrivateHeaders/WrappedRTPParameters.hpp: -------------------------------------------------------------------------------- 1 | #ifndef WrappedRTPParametersWrapper_h 2 | #define WrappedRTPParametersWrapper_h 3 | 4 | #import 5 | 6 | typedef NS_ENUM(NSUInteger, WrappedDegradationPreference) { 7 | WrappedDegradationPreferenceNone, 8 | WrappedDegradationPreferenceDisabled, 9 | WrappedDegradationPreferenceMaintainFramerate, 10 | WrappedDegradationPreferenceMaintainResolution, 11 | WrappedDegradationPreferenceBalanced, 12 | }; 13 | 14 | @class RTPEncodingParameters; 15 | 16 | @interface WrappedRTPParameters : NSObject 17 | @property (nonatomic, assign) WrappedDegradationPreference wrappedDegradationPreference; 18 | @property (nonatomic, nullable, copy) NSArray *wrappedEncodings; 19 | @end 20 | 21 | #endif /* WrappedRTPParametersWrapper_h */ 22 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AvailableLibraries 6 | 7 | 8 | BinaryPath 9 | WebRTC.framework/WebRTC 10 | LibraryIdentifier 11 | ios-arm64_x86_64-simulator 12 | LibraryPath 13 | WebRTC.framework 14 | SupportedArchitectures 15 | 16 | arm64 17 | x86_64 18 | 19 | SupportedPlatform 20 | ios 21 | SupportedPlatformVariant 22 | simulator 23 | 24 | 25 | BinaryPath 26 | WebRTC.framework/WebRTC 27 | LibraryIdentifier 28 | ios-arm64 29 | LibraryPath 30 | WebRTC.framework 31 | SupportedArchitectures 32 | 33 | arm64 34 | 35 | SupportedPlatform 36 | ios 37 | 38 | 39 | CFBundlePackageType 40 | XFWK 41 | XCFrameworkFormatVersion 42 | 1.0 43 | 44 | 45 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCAudioSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCAudioSource) : RTC_OBJC_TYPE(RTCMediaSource) 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | // Sets the volume for the RTCMediaSource. `volume` is a gain value in the range 24 | // [0, 10]. 25 | // Temporary fix to be able to modify volume of remote audio tracks. 26 | // TODO(kthelgason): Property stays here temporarily until a proper volume-api 27 | // is available on the surface exposed by webrtc. 28 | @property(nonatomic, assign) double volume; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCAudioTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @class RTC_OBJC_TYPE(RTCAudioSource); 17 | 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCAudioTrack) : RTC_OBJC_TYPE(RTCMediaStreamTrack) 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | /** The audio source for this audio track. */ 24 | @property(nonatomic, readonly) RTC_OBJC_TYPE(RTCAudioSource) * source; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCCameraPreviewView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | #import 15 | 16 | @class AVCaptureSession; 17 | 18 | /** RTCCameraPreviewView is a view that renders local video from an 19 | * AVCaptureSession. 20 | */ 21 | RTC_OBJC_EXPORT 22 | @interface RTC_OBJC_TYPE (RTCCameraPreviewView) : UIView 23 | 24 | /** The capture session being rendered in the view. Capture session 25 | * is assigned to AVCaptureVideoPreviewLayer async in the same 26 | * queue that the AVCaptureSession is started/stopped. 27 | */ 28 | @property(nonatomic, strong) AVCaptureSession* captureSession; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCCertificate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCCertificate) : NSObject 19 | 20 | /** Private key in PEM. */ 21 | @property(nonatomic, readonly, copy) NSString *private_key; 22 | 23 | /** Public key in an x509 cert encoded in PEM. */ 24 | @property(nonatomic, readonly, copy) NSString *certificate; 25 | 26 | /** 27 | * Initialize an RTCCertificate with PEM strings for private_key and certificate. 28 | */ 29 | - (instancetype)initWithPrivateKey:(NSString *)private_key 30 | certificate:(NSString *)certificate NS_DESIGNATED_INITIALIZER; 31 | 32 | - (instancetype)init NS_UNAVAILABLE; 33 | 34 | /** Generate a new certificate for 're' use. 35 | * 36 | * Optional dictionary of parameters. Defaults to KeyType ECDSA if none are 37 | * provided. 38 | * - name: "ECDSA" or "RSASSA-PKCS1-v1_5" 39 | */ 40 | + (nullable RTC_OBJC_TYPE(RTCCertificate) *)generateCertificateWithParams:(NSDictionary *)params; 41 | 42 | @end 43 | 44 | NS_ASSUME_NONNULL_END 45 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCCodecSpecificInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Implement this protocol to pass codec specific info from the encoder. 18 | * Corresponds to webrtc::CodecSpecificInfo. 19 | */ 20 | RTC_OBJC_EXPORT 21 | @protocol RTC_OBJC_TYPE 22 | (RTCCodecSpecificInfo) @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCCodecSpecificInfoH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | /** Class for H264 specific config. */ 17 | typedef NS_ENUM(NSUInteger, RTCH264PacketizationMode) { 18 | RTCH264PacketizationModeNonInterleaved = 0, // Mode 1 - STAP-A, FU-A is allowed 19 | RTCH264PacketizationModeSingleNalUnit // Mode 0 - only single NALU allowed 20 | }; 21 | 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCCodecSpecificInfoH264) : NSObject 24 | 25 | @property(nonatomic, assign) RTCH264PacketizationMode packetizationMode; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCDefaultVideoDecoderFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** This decoder factory include support for all codecs bundled with WebRTC. If using custom 19 | * codecs, create custom implementations of RTCVideoEncoderFactory and 20 | * RTCVideoDecoderFactory. 21 | */ 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCDefaultVideoDecoderFactory) : NSObject 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** This encoder factory include support for all codecs bundled with WebRTC. If using custom 19 | * codecs, create custom implementations of RTCVideoEncoderFactory and 20 | * RTCVideoDecoderFactory. 21 | */ 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCDefaultVideoEncoderFactory) : NSObject 24 | 25 | @property(nonatomic, retain) RTC_OBJC_TYPE(RTCVideoCodecInfo) *preferredCodec; 26 | 27 | + (NSArray *)supportedCodecs; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCFieldTrials.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | /** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */ 16 | RTC_EXTERN NSString *const kRTCFieldTrialAudioForceABWENoTWCCKey; 17 | RTC_EXTERN NSString *const kRTCFieldTrialFlexFec03AdvertisedKey; 18 | RTC_EXTERN NSString *const kRTCFieldTrialFlexFec03Key; 19 | RTC_EXTERN NSString *const kRTCFieldTrialH264HighProfileKey; 20 | RTC_EXTERN NSString *const kRTCFieldTrialMinimizeResamplingOnMobileKey; 21 | RTC_EXTERN NSString *const kRTCFieldTrialUseNWPathMonitor; 22 | 23 | /** The valid value for field trials above. */ 24 | RTC_EXTERN NSString *const kRTCFieldTrialEnabledValue; 25 | 26 | /** Initialize field trials using a dictionary mapping field trial keys to their 27 | * values. See above for valid keys and values. Must be called before any other 28 | * call into WebRTC. See: webrtc/system_wrappers/include/field_trial.h 29 | */ 30 | RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary *fieldTrials); 31 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Protocol for RTCYUVPlanarBuffers containing I420 data */ 18 | RTC_OBJC_EXPORT 19 | @protocol RTC_OBJC_TYPE 20 | (RTCI420Buffer) @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCLegacyStatsReport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** This does not currently conform to the spec. */ 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCLegacyStatsReport) : NSObject 20 | 21 | /** Time since 1970-01-01T00:00:00Z in milliseconds. */ 22 | @property(nonatomic, readonly) CFTimeInterval timestamp; 23 | 24 | /** The type of stats held by this object. */ 25 | @property(nonatomic, readonly) NSString *type; 26 | 27 | /** The identifier for this object. */ 28 | @property(nonatomic, readonly) NSString *reportId; 29 | 30 | /** A dictionary holding the actual stats. */ 31 | @property(nonatomic, readonly) NSDictionary *values; 32 | 33 | - (instancetype)init NS_UNAVAILABLE; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCMTLVideoView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** 20 | * RTCMTLVideoView is thin wrapper around MTKView. 21 | * 22 | * It has id property that renders video frames in the view's 23 | * bounds using Metal. 24 | */ 25 | NS_CLASS_AVAILABLE_IOS(9) 26 | 27 | RTC_OBJC_EXPORT 28 | @interface RTC_OBJC_TYPE (RTCMTLVideoView) : UIView 29 | 30 | @property(nonatomic, weak) id delegate; 31 | 32 | @property(nonatomic) UIViewContentMode videoContentMode; 33 | 34 | /** @abstract Enables/disables rendering. 35 | */ 36 | @property(nonatomic, getter=isEnabled) BOOL enabled; 37 | 38 | /** @abstract Wrapped RTCVideoRotation, or nil. 39 | */ 40 | @property(nonatomic, nullable) NSValue* rotationOverride; 41 | 42 | @end 43 | 44 | NS_ASSUME_NONNULL_END 45 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCMediaSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | typedef NS_ENUM(NSInteger, RTCSourceState) { 16 | RTCSourceStateInitializing, 17 | RTCSourceStateLive, 18 | RTCSourceStateEnded, 19 | RTCSourceStateMuted, 20 | }; 21 | 22 | NS_ASSUME_NONNULL_BEGIN 23 | 24 | RTC_OBJC_EXPORT 25 | @interface RTC_OBJC_TYPE (RTCMediaSource) : NSObject 26 | 27 | /** The current state of the RTCMediaSource. */ 28 | @property(nonatomic, readonly) RTCSourceState state; 29 | 30 | - (instancetype)init NS_UNAVAILABLE; 31 | 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCMetrics.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | /** 17 | * Enables gathering of metrics (which can be fetched with 18 | * RTCGetAndResetMetrics). Must be called before any other call into WebRTC. 19 | */ 20 | RTC_EXTERN void RTCEnableMetrics(void); 21 | 22 | /** Gets and clears native histograms. */ 23 | RTC_EXTERN NSArray* RTCGetAndResetMetrics(void); 24 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCMetricsSampleInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCMetricsSampleInfo) : NSObject 19 | 20 | /** 21 | * Example of RTCMetricsSampleInfo: 22 | * name: "WebRTC.Video.InputFramesPerSecond" 23 | * min: 1 24 | * max: 100 25 | * bucketCount: 50 26 | * samples: [29]:2 [30]:1 27 | */ 28 | 29 | /** The name of the histogram. */ 30 | @property(nonatomic, readonly) NSString *name; 31 | 32 | /** The minimum bucket value. */ 33 | @property(nonatomic, readonly) int min; 34 | 35 | /** The maximum bucket value. */ 36 | @property(nonatomic, readonly) int max; 37 | 38 | /** The number of buckets. */ 39 | @property(nonatomic, readonly) int bucketCount; 40 | 41 | /** A dictionary holding the samples . */ 42 | @property(nonatomic, readonly) NSDictionary *samples; 43 | 44 | - (instancetype)init NS_UNAVAILABLE; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCMutableI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** Extension of the I420 buffer with mutable data access */ 19 | RTC_OBJC_EXPORT 20 | @protocol RTC_OBJC_TYPE 21 | (RTCMutableI420Buffer) @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Extension of the YUV planar data buffer with mutable data access */ 18 | RTC_OBJC_EXPORT 19 | @protocol RTC_OBJC_TYPE 20 | (RTCMutableYUVPlanarBuffer) 21 | 22 | @property(nonatomic, readonly) uint8_t *mutableDataY; 23 | @property(nonatomic, readonly) uint8_t *mutableDataU; 24 | @property(nonatomic, readonly) uint8_t *mutableDataV; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCNativeI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** RTCI420Buffer implements the RTCI420Buffer protocol */ 19 | RTC_OBJC_EXPORT 20 | @interface RTC_OBJC_TYPE (RTCI420Buffer) : NSObject 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCNativeMutableI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** Mutable version of RTCI420Buffer */ 20 | RTC_OBJC_EXPORT 21 | @interface RTC_OBJC_TYPE (RTCMutableI420Buffer) : RTC_OBJC_TYPE(RTCI420Buffer) 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCNetworkMonitor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | /** Listens for NWPathMonitor updates and forwards the results to a C++ 16 | * observer. 17 | */ 18 | @interface RTCNetworkMonitor : NSObject 19 | 20 | - (instancetype)init NS_UNAVAILABLE; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCPeerConnectionFactoryOptions) : NSObject 19 | 20 | @property(nonatomic, assign) BOOL disableEncryption; 21 | 22 | @property(nonatomic, assign) BOOL disableNetworkMonitor; 23 | 24 | @property(nonatomic, assign) BOOL ignoreLoopbackNetworkAdapter; 25 | 26 | @property(nonatomic, assign) BOOL ignoreVPNNetworkAdapter; 27 | 28 | @property(nonatomic, assign) BOOL ignoreCellularNetworkAdapter; 29 | 30 | @property(nonatomic, assign) BOOL ignoreWiFiNetworkAdapter; 31 | 32 | @property(nonatomic, assign) BOOL ignoreEthernetNetworkAdapter; 33 | 34 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCRtcpParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCRtcpParameters) : NSObject 19 | 20 | /** The Canonical Name used by RTCP. */ 21 | @property(nonatomic, readonly, copy) NSString *cname; 22 | 23 | /** Whether reduced size RTCP is configured or compound RTCP. */ 24 | @property(nonatomic, assign) BOOL isReducedSize; 25 | 26 | - (instancetype)init; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCRtpHeaderExtension.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCRtpHeaderExtension) : NSObject 19 | 20 | /** The URI of the RTP header extension, as defined in RFC5285. */ 21 | @property(nonatomic, readonly, copy) NSString *uri; 22 | 23 | /** The value put in the RTP packet to identify the header extension. */ 24 | @property(nonatomic, readonly) int id; 25 | 26 | /** Whether the header extension is encrypted or not. */ 27 | @property(nonatomic, readonly, getter=isEncrypted) BOOL encrypted; 28 | 29 | - (instancetype)init; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCSSLAdapter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | /** 16 | * Initialize and clean up the SSL library. Failure is fatal. These call the 17 | * corresponding functions in webrtc/rtc_base/ssladapter.h. 18 | */ 19 | RTC_EXTERN BOOL RTCInitializeSSL(void); 20 | RTC_EXTERN BOOL RTCCleanupSSL(void); 21 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCSSLCertificateVerifier.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT @protocol RTC_OBJC_TYPE 18 | (RTCSSLCertificateVerifier) 19 | 20 | /** The certificate to verify */ 21 | - (BOOL)verify : (NSData *)derCertificate; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCSessionDescription.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | /** 16 | * Represents the session description type. This exposes the same types that are 17 | * in C++, which doesn't include the rollback type that is in the W3C spec. 18 | */ 19 | typedef NS_ENUM(NSInteger, RTCSdpType) { 20 | RTCSdpTypeOffer, 21 | RTCSdpTypePrAnswer, 22 | RTCSdpTypeAnswer, 23 | RTCSdpTypeRollback, 24 | }; 25 | 26 | NS_ASSUME_NONNULL_BEGIN 27 | 28 | RTC_OBJC_EXPORT 29 | @interface RTC_OBJC_TYPE (RTCSessionDescription) : NSObject 30 | 31 | /** The type of session description. */ 32 | @property(nonatomic, readonly) RTCSdpType type; 33 | 34 | /** The SDP string representation of this session description. */ 35 | @property(nonatomic, readonly) NSString *sdp; 36 | 37 | - (instancetype)init NS_UNAVAILABLE; 38 | 39 | /** Initialize a session description with a type and SDP string. */ 40 | - (instancetype)initWithType:(RTCSdpType)type sdp:(NSString *)sdp NS_DESIGNATED_INITIALIZER; 41 | 42 | + (NSString *)stringForType:(RTCSdpType)type; 43 | 44 | + (RTCSdpType)typeForString:(NSString *)string; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCTracing.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | RTC_EXTERN void RTCSetupInternalTracer(void); 16 | /** Starts capture to specified file. Must be a valid writable path. 17 | * Returns YES if capture starts. 18 | */ 19 | RTC_EXTERN BOOL RTCStartInternalCapture(NSString* filePath); 20 | RTC_EXTERN void RTCStopInternalCapture(void); 21 | RTC_EXTERN void RTCShutdownInternalTracer(void); 22 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoCapturer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class RTC_OBJC_TYPE(RTCVideoCapturer); 18 | 19 | RTC_OBJC_EXPORT 20 | @protocol RTC_OBJC_TYPE 21 | (RTCVideoCapturerDelegate) - 22 | (void)capturer : (RTC_OBJC_TYPE(RTCVideoCapturer) *)capturer didCaptureVideoFrame 23 | : (RTC_OBJC_TYPE(RTCVideoFrame) *)frame; 24 | @end 25 | 26 | RTC_OBJC_EXPORT 27 | @interface RTC_OBJC_TYPE (RTCVideoCapturer) : NSObject 28 | 29 | @property(nonatomic, weak) id delegate; 30 | 31 | - (instancetype)initWithDelegate:(id)delegate; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoCodecConstants.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | RTC_EXTERN NSString* const kRTCVideoCodecVp8Name; 16 | RTC_EXTERN NSString* const kRTCVideoCodecVp9Name; 17 | RTC_EXTERN NSString* const kRTCVideoCodecAv1Name; 18 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoCodecInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Holds information to identify a codec. Corresponds to webrtc::SdpVideoFormat. */ 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCVideoCodecInfo) : NSObject 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | - (instancetype)initWithName:(NSString *)name; 24 | 25 | - (instancetype)initWithName:(NSString *)name 26 | parameters:(nullable NSDictionary *)parameters 27 | NS_DESIGNATED_INITIALIZER; 28 | 29 | - (BOOL)isEqualToCodecInfo:(RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info; 30 | 31 | @property(nonatomic, readonly) NSString *name; 32 | @property(nonatomic, readonly) NSDictionary *parameters; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | #import 17 | #import 18 | 19 | NS_ASSUME_NONNULL_BEGIN 20 | 21 | /** Callback block for decoder. */ 22 | typedef void (^RTCVideoDecoderCallback)(RTC_OBJC_TYPE(RTCVideoFrame) * frame); 23 | 24 | /** Protocol for decoder implementations. */ 25 | RTC_OBJC_EXPORT 26 | @protocol RTC_OBJC_TYPE 27 | (RTCVideoDecoder) 28 | 29 | - (void)setCallback : (RTCVideoDecoderCallback)callback; 30 | - (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; 31 | - (NSInteger)releaseDecoder; 32 | // TODO(bugs.webrtc.org/15444): Remove obsolete missingFrames param. 33 | - (NSInteger)decode:(RTC_OBJC_TYPE(RTCEncodedImage) *)encodedImage 34 | missingFrames:(BOOL)missingFrames 35 | codecSpecificInfo:(nullable id)info 36 | renderTimeMs:(int64_t)renderTimeMs; 37 | - (NSString *)implementationName; 38 | 39 | @end 40 | 41 | NS_ASSUME_NONNULL_END 42 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoderAV1.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderAV1) : NSObject 18 | 19 | /* This returns a AV1 decoder that can be returned from a RTCVideoDecoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)av1Decoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoderFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** RTCVideoDecoderFactory is an Objective-C version of webrtc::VideoDecoderFactory. 20 | */ 21 | RTC_OBJC_EXPORT 22 | @protocol RTC_OBJC_TYPE 23 | (RTCVideoDecoderFactory) 24 | 25 | - (nullable id)createDecoder 26 | : (RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info; 27 | - (NSArray *) 28 | supportedCodecs; // TODO(andersc): "supportedFormats" instead? 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoderFactoryH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderFactoryH264) : NSObject 18 | @end 19 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoderH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderH264) : NSObject 18 | @end 19 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoderVP8.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderVP8) : NSObject 18 | 19 | /* This returns a VP8 decoder that can be returned from a RTCVideoDecoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp8Decoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoderVP9.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderVP9) : NSObject 18 | 19 | /* This returns a VP9 decoder that can be returned from a RTCVideoDecoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp9Decoder; 24 | 25 | + (bool)isSupported; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoderAV1.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderAV1) : NSObject 18 | 19 | /* This returns a AV1 encoder that can be returned from a RTCVideoEncoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)av1Encoder; 24 | 25 | + (bool)isSupported; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoderFactoryH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderFactoryH264) : NSObject 18 | @end 19 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoderH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCVideoEncoderH264) : NSObject 19 | 20 | - (instancetype)initWithCodecInfo:(RTC_OBJC_TYPE(RTCVideoCodecInfo) *)codecInfo; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoderQpThresholds.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** QP thresholds for encoder. Corresponds to webrtc::VideoEncoder::QpThresholds. */ 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCVideoEncoderQpThresholds) : NSObject 20 | 21 | - (instancetype)initWithThresholdsLow:(NSInteger)low high:(NSInteger)high; 22 | 23 | @property(nonatomic, readonly) NSInteger low; 24 | @property(nonatomic, readonly) NSInteger high; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoderSettings.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | typedef NS_ENUM(NSUInteger, RTCVideoCodecMode) { 18 | RTCVideoCodecModeRealtimeVideo, 19 | RTCVideoCodecModeScreensharing, 20 | }; 21 | 22 | /** Settings for encoder. Corresponds to webrtc::VideoCodec. */ 23 | RTC_OBJC_EXPORT 24 | @interface RTC_OBJC_TYPE (RTCVideoEncoderSettings) : NSObject 25 | 26 | @property(nonatomic, strong) NSString *name; 27 | 28 | @property(nonatomic, assign) unsigned short width; 29 | @property(nonatomic, assign) unsigned short height; 30 | 31 | @property(nonatomic, assign) unsigned int startBitrate; // kilobits/sec. 32 | @property(nonatomic, assign) unsigned int maxBitrate; 33 | @property(nonatomic, assign) unsigned int minBitrate; 34 | 35 | @property(nonatomic, assign) uint32_t maxFramerate; 36 | 37 | @property(nonatomic, assign) unsigned int qpMax; 38 | @property(nonatomic, assign) RTCVideoCodecMode mode; 39 | 40 | @end 41 | 42 | NS_ASSUME_NONNULL_END 43 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoderVP8.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderVP8) : NSObject 18 | 19 | /* This returns a VP8 encoder that can be returned from a RTCVideoEncoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp8Encoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoderVP9.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderVP9) : NSObject 18 | 19 | /* This returns a VP9 encoder that can be returned from a RTCVideoEncoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp9Encoder; 24 | 25 | + (bool)isSupported; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoFrameBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @protocol RTC_OBJC_TYPE 18 | (RTCI420Buffer); 19 | 20 | // RTCVideoFrameBuffer is an ObjectiveC version of webrtc::VideoFrameBuffer. 21 | RTC_OBJC_EXPORT 22 | @protocol RTC_OBJC_TYPE 23 | (RTCVideoFrameBuffer) 24 | 25 | @property(nonatomic, readonly) int width; 26 | @property(nonatomic, readonly) int height; 27 | 28 | - (id)toI420; 29 | 30 | @optional 31 | - (id)cropAndScaleWith:(int)offsetX 32 | offsetY:(int)offsetY 33 | cropWidth:(int)cropWidth 34 | cropHeight:(int)cropHeight 35 | scaleWidth:(int)scaleWidth 36 | scaleHeight:(int)scaleHeight; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoRenderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #if TARGET_OS_IPHONE 13 | #import 14 | #endif 15 | 16 | #import 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @class RTC_OBJC_TYPE(RTCVideoFrame); 21 | 22 | RTC_OBJC_EXPORT 23 | @protocol RTC_OBJC_TYPE 24 | (RTCVideoRenderer) 25 | 26 | /** The size of the frame. */ 27 | - (void)setSize : (CGSize)size; 28 | 29 | /** The frame to be displayed. */ 30 | - (void)renderFrame:(nullable RTC_OBJC_TYPE(RTCVideoFrame) *)frame; 31 | 32 | @end 33 | 34 | RTC_OBJC_EXPORT 35 | @protocol RTC_OBJC_TYPE 36 | (RTCVideoViewDelegate) 37 | 38 | - (void)videoView : (id)videoView didChangeVideoSize 39 | : (CGSize)size; 40 | 41 | @end 42 | 43 | NS_ASSUME_NONNULL_END 44 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | RTC_OBJC_EXPORT 20 | 21 | @interface RTC_OBJC_TYPE (RTCVideoSource) : RTC_OBJC_TYPE(RTCMediaSource) 22 | 23 | - (instancetype)init NS_UNAVAILABLE; 24 | 25 | /** 26 | * Calling this function will cause frames to be scaled down to the 27 | * requested resolution. Also, frames will be cropped to match the 28 | * requested aspect ratio, and frames will be dropped to match the 29 | * requested fps. The requested aspect ratio is orientation agnostic and 30 | * will be adjusted to maintain the input orientation, so it doesn't 31 | * matter if e.g. 1280x720 or 720x1280 is requested. 32 | */ 33 | - (void)adaptOutputFormatToWidth:(int)width height:(int)height fps:(int)fps; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @protocol RTC_OBJC_TYPE 18 | (RTCVideoRenderer); 19 | @class RTC_OBJC_TYPE(RTCPeerConnectionFactory); 20 | @class RTC_OBJC_TYPE(RTCVideoSource); 21 | 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCVideoTrack) : RTC_OBJC_TYPE(RTCMediaStreamTrack) 24 | 25 | /** The video source for this video track. */ 26 | @property(nonatomic, readonly) RTC_OBJC_TYPE(RTCVideoSource) *source; 27 | 28 | - (instancetype)init NS_UNAVAILABLE; 29 | 30 | /** Register a renderer that will render all frames received on this track. */ 31 | - (void)addRenderer:(id)renderer; 32 | 33 | /** Deregister a renderer. */ 34 | - (void)removeRenderer:(id)renderer; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoViewShading.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** 18 | * RTCVideoViewShading provides a way for apps to customize the OpenGL(ES shaders 19 | * used in rendering for the RTCEAGLVideoView/RTCNSGLVideoView. 20 | */ 21 | RTC_OBJC_EXPORT 22 | @protocol RTC_OBJC_TYPE 23 | (RTCVideoViewShading) 24 | 25 | /** Callback for I420 frames. Each plane is given as a texture. */ 26 | - (void)applyShadingForFrameWithWidth : (int)width height : (int)height rotation 27 | : (RTCVideoRotation)rotation yPlane : (GLuint)yPlane uPlane : (GLuint)uPlane vPlane 28 | : (GLuint)vPlane; 29 | 30 | /** Callback for NV12 frames. Each plane is given as a texture. */ 31 | - (void)applyShadingForFrameWithWidth:(int)width 32 | height:(int)height 33 | rotation:(RTCVideoRotation)rotation 34 | yPlane:(GLuint)yPlane 35 | uvPlane:(GLuint)uvPlane; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/UIDevice+RTCDevice.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | @interface UIDevice (RTCDevice) 14 | 15 | + (NSString *)machineName; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Info.plist -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module WebRTC { 2 | umbrella header "WebRTC.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/WebRTC: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/WebRTC.xcframework/ios-arm64/WebRTC.framework/WebRTC -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCAudioSource) : RTC_OBJC_TYPE(RTCMediaSource) 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | // Sets the volume for the RTCMediaSource. `volume` is a gain value in the range 24 | // [0, 10]. 25 | // Temporary fix to be able to modify volume of remote audio tracks. 26 | // TODO(kthelgason): Property stays here temporarily until a proper volume-api 27 | // is available on the surface exposed by webrtc. 28 | @property(nonatomic, assign) double volume; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCAudioTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @class RTC_OBJC_TYPE(RTCAudioSource); 17 | 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCAudioTrack) : RTC_OBJC_TYPE(RTCMediaStreamTrack) 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | /** The audio source for this audio track. */ 24 | @property(nonatomic, readonly) RTC_OBJC_TYPE(RTCAudioSource) * source; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCCameraPreviewView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | #import 15 | 16 | @class AVCaptureSession; 17 | 18 | /** RTCCameraPreviewView is a view that renders local video from an 19 | * AVCaptureSession. 20 | */ 21 | RTC_OBJC_EXPORT 22 | @interface RTC_OBJC_TYPE (RTCCameraPreviewView) : UIView 23 | 24 | /** The capture session being rendered in the view. Capture session 25 | * is assigned to AVCaptureVideoPreviewLayer async in the same 26 | * queue that the AVCaptureSession is started/stopped. 27 | */ 28 | @property(nonatomic, strong) AVCaptureSession* captureSession; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCCertificate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCCertificate) : NSObject 19 | 20 | /** Private key in PEM. */ 21 | @property(nonatomic, readonly, copy) NSString *private_key; 22 | 23 | /** Public key in an x509 cert encoded in PEM. */ 24 | @property(nonatomic, readonly, copy) NSString *certificate; 25 | 26 | /** 27 | * Initialize an RTCCertificate with PEM strings for private_key and certificate. 28 | */ 29 | - (instancetype)initWithPrivateKey:(NSString *)private_key 30 | certificate:(NSString *)certificate NS_DESIGNATED_INITIALIZER; 31 | 32 | - (instancetype)init NS_UNAVAILABLE; 33 | 34 | /** Generate a new certificate for 're' use. 35 | * 36 | * Optional dictionary of parameters. Defaults to KeyType ECDSA if none are 37 | * provided. 38 | * - name: "ECDSA" or "RSASSA-PKCS1-v1_5" 39 | */ 40 | + (nullable RTC_OBJC_TYPE(RTCCertificate) *)generateCertificateWithParams:(NSDictionary *)params; 41 | 42 | @end 43 | 44 | NS_ASSUME_NONNULL_END 45 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCCodecSpecificInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Implement this protocol to pass codec specific info from the encoder. 18 | * Corresponds to webrtc::CodecSpecificInfo. 19 | */ 20 | RTC_OBJC_EXPORT 21 | @protocol RTC_OBJC_TYPE 22 | (RTCCodecSpecificInfo) @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCCodecSpecificInfoH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | /** Class for H264 specific config. */ 17 | typedef NS_ENUM(NSUInteger, RTCH264PacketizationMode) { 18 | RTCH264PacketizationModeNonInterleaved = 0, // Mode 1 - STAP-A, FU-A is allowed 19 | RTCH264PacketizationModeSingleNalUnit // Mode 0 - only single NALU allowed 20 | }; 21 | 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCCodecSpecificInfoH264) : NSObject 24 | 25 | @property(nonatomic, assign) RTCH264PacketizationMode packetizationMode; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCDefaultVideoDecoderFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** This decoder factory include support for all codecs bundled with WebRTC. If using custom 19 | * codecs, create custom implementations of RTCVideoEncoderFactory and 20 | * RTCVideoDecoderFactory. 21 | */ 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCDefaultVideoDecoderFactory) : NSObject 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** This encoder factory include support for all codecs bundled with WebRTC. If using custom 19 | * codecs, create custom implementations of RTCVideoEncoderFactory and 20 | * RTCVideoDecoderFactory. 21 | */ 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCDefaultVideoEncoderFactory) : NSObject 24 | 25 | @property(nonatomic, retain) RTC_OBJC_TYPE(RTCVideoCodecInfo) *preferredCodec; 26 | 27 | + (NSArray *)supportedCodecs; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCFieldTrials.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | /** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */ 16 | RTC_EXTERN NSString *const kRTCFieldTrialAudioForceABWENoTWCCKey; 17 | RTC_EXTERN NSString *const kRTCFieldTrialFlexFec03AdvertisedKey; 18 | RTC_EXTERN NSString *const kRTCFieldTrialFlexFec03Key; 19 | RTC_EXTERN NSString *const kRTCFieldTrialH264HighProfileKey; 20 | RTC_EXTERN NSString *const kRTCFieldTrialMinimizeResamplingOnMobileKey; 21 | RTC_EXTERN NSString *const kRTCFieldTrialUseNWPathMonitor; 22 | 23 | /** The valid value for field trials above. */ 24 | RTC_EXTERN NSString *const kRTCFieldTrialEnabledValue; 25 | 26 | /** Initialize field trials using a dictionary mapping field trial keys to their 27 | * values. See above for valid keys and values. Must be called before any other 28 | * call into WebRTC. See: webrtc/system_wrappers/include/field_trial.h 29 | */ 30 | RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary *fieldTrials); 31 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Protocol for RTCYUVPlanarBuffers containing I420 data */ 18 | RTC_OBJC_EXPORT 19 | @protocol RTC_OBJC_TYPE 20 | (RTCI420Buffer) @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCLegacyStatsReport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** This does not currently conform to the spec. */ 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCLegacyStatsReport) : NSObject 20 | 21 | /** Time since 1970-01-01T00:00:00Z in milliseconds. */ 22 | @property(nonatomic, readonly) CFTimeInterval timestamp; 23 | 24 | /** The type of stats held by this object. */ 25 | @property(nonatomic, readonly) NSString *type; 26 | 27 | /** The identifier for this object. */ 28 | @property(nonatomic, readonly) NSString *reportId; 29 | 30 | /** A dictionary holding the actual stats. */ 31 | @property(nonatomic, readonly) NSDictionary *values; 32 | 33 | - (instancetype)init NS_UNAVAILABLE; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCMTLVideoView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** 20 | * RTCMTLVideoView is thin wrapper around MTKView. 21 | * 22 | * It has id property that renders video frames in the view's 23 | * bounds using Metal. 24 | */ 25 | NS_CLASS_AVAILABLE_IOS(9) 26 | 27 | RTC_OBJC_EXPORT 28 | @interface RTC_OBJC_TYPE (RTCMTLVideoView) : UIView 29 | 30 | @property(nonatomic, weak) id delegate; 31 | 32 | @property(nonatomic) UIViewContentMode videoContentMode; 33 | 34 | /** @abstract Enables/disables rendering. 35 | */ 36 | @property(nonatomic, getter=isEnabled) BOOL enabled; 37 | 38 | /** @abstract Wrapped RTCVideoRotation, or nil. 39 | */ 40 | @property(nonatomic, nullable) NSValue* rotationOverride; 41 | 42 | @end 43 | 44 | NS_ASSUME_NONNULL_END 45 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCMediaSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | typedef NS_ENUM(NSInteger, RTCSourceState) { 16 | RTCSourceStateInitializing, 17 | RTCSourceStateLive, 18 | RTCSourceStateEnded, 19 | RTCSourceStateMuted, 20 | }; 21 | 22 | NS_ASSUME_NONNULL_BEGIN 23 | 24 | RTC_OBJC_EXPORT 25 | @interface RTC_OBJC_TYPE (RTCMediaSource) : NSObject 26 | 27 | /** The current state of the RTCMediaSource. */ 28 | @property(nonatomic, readonly) RTCSourceState state; 29 | 30 | - (instancetype)init NS_UNAVAILABLE; 31 | 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCMetrics.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | /** 17 | * Enables gathering of metrics (which can be fetched with 18 | * RTCGetAndResetMetrics). Must be called before any other call into WebRTC. 19 | */ 20 | RTC_EXTERN void RTCEnableMetrics(void); 21 | 22 | /** Gets and clears native histograms. */ 23 | RTC_EXTERN NSArray* RTCGetAndResetMetrics(void); 24 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCMetricsSampleInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCMetricsSampleInfo) : NSObject 19 | 20 | /** 21 | * Example of RTCMetricsSampleInfo: 22 | * name: "WebRTC.Video.InputFramesPerSecond" 23 | * min: 1 24 | * max: 100 25 | * bucketCount: 50 26 | * samples: [29]:2 [30]:1 27 | */ 28 | 29 | /** The name of the histogram. */ 30 | @property(nonatomic, readonly) NSString *name; 31 | 32 | /** The minimum bucket value. */ 33 | @property(nonatomic, readonly) int min; 34 | 35 | /** The maximum bucket value. */ 36 | @property(nonatomic, readonly) int max; 37 | 38 | /** The number of buckets. */ 39 | @property(nonatomic, readonly) int bucketCount; 40 | 41 | /** A dictionary holding the samples . */ 42 | @property(nonatomic, readonly) NSDictionary *samples; 43 | 44 | - (instancetype)init NS_UNAVAILABLE; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCMutableI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** Extension of the I420 buffer with mutable data access */ 19 | RTC_OBJC_EXPORT 20 | @protocol RTC_OBJC_TYPE 21 | (RTCMutableI420Buffer) @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Extension of the YUV planar data buffer with mutable data access */ 18 | RTC_OBJC_EXPORT 19 | @protocol RTC_OBJC_TYPE 20 | (RTCMutableYUVPlanarBuffer) 21 | 22 | @property(nonatomic, readonly) uint8_t *mutableDataY; 23 | @property(nonatomic, readonly) uint8_t *mutableDataU; 24 | @property(nonatomic, readonly) uint8_t *mutableDataV; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCNativeI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** RTCI420Buffer implements the RTCI420Buffer protocol */ 19 | RTC_OBJC_EXPORT 20 | @interface RTC_OBJC_TYPE (RTCI420Buffer) : NSObject 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCNativeMutableI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** Mutable version of RTCI420Buffer */ 20 | RTC_OBJC_EXPORT 21 | @interface RTC_OBJC_TYPE (RTCMutableI420Buffer) : RTC_OBJC_TYPE(RTCI420Buffer) 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCNetworkMonitor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | /** Listens for NWPathMonitor updates and forwards the results to a C++ 16 | * observer. 17 | */ 18 | @interface RTCNetworkMonitor : NSObject 19 | 20 | - (instancetype)init NS_UNAVAILABLE; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCPeerConnectionFactoryOptions) : NSObject 19 | 20 | @property(nonatomic, assign) BOOL disableEncryption; 21 | 22 | @property(nonatomic, assign) BOOL disableNetworkMonitor; 23 | 24 | @property(nonatomic, assign) BOOL ignoreLoopbackNetworkAdapter; 25 | 26 | @property(nonatomic, assign) BOOL ignoreVPNNetworkAdapter; 27 | 28 | @property(nonatomic, assign) BOOL ignoreCellularNetworkAdapter; 29 | 30 | @property(nonatomic, assign) BOOL ignoreWiFiNetworkAdapter; 31 | 32 | @property(nonatomic, assign) BOOL ignoreEthernetNetworkAdapter; 33 | 34 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCRtcpParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCRtcpParameters) : NSObject 19 | 20 | /** The Canonical Name used by RTCP. */ 21 | @property(nonatomic, readonly, copy) NSString *cname; 22 | 23 | /** Whether reduced size RTCP is configured or compound RTCP. */ 24 | @property(nonatomic, assign) BOOL isReducedSize; 25 | 26 | - (instancetype)init; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCRtpHeaderExtension.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCRtpHeaderExtension) : NSObject 19 | 20 | /** The URI of the RTP header extension, as defined in RFC5285. */ 21 | @property(nonatomic, readonly, copy) NSString *uri; 22 | 23 | /** The value put in the RTP packet to identify the header extension. */ 24 | @property(nonatomic, readonly) int id; 25 | 26 | /** Whether the header extension is encrypted or not. */ 27 | @property(nonatomic, readonly, getter=isEncrypted) BOOL encrypted; 28 | 29 | - (instancetype)init; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCSSLAdapter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | /** 16 | * Initialize and clean up the SSL library. Failure is fatal. These call the 17 | * corresponding functions in webrtc/rtc_base/ssladapter.h. 18 | */ 19 | RTC_EXTERN BOOL RTCInitializeSSL(void); 20 | RTC_EXTERN BOOL RTCCleanupSSL(void); 21 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCSSLCertificateVerifier.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT @protocol RTC_OBJC_TYPE 18 | (RTCSSLCertificateVerifier) 19 | 20 | /** The certificate to verify */ 21 | - (BOOL)verify : (NSData *)derCertificate; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCSessionDescription.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | /** 16 | * Represents the session description type. This exposes the same types that are 17 | * in C++, which doesn't include the rollback type that is in the W3C spec. 18 | */ 19 | typedef NS_ENUM(NSInteger, RTCSdpType) { 20 | RTCSdpTypeOffer, 21 | RTCSdpTypePrAnswer, 22 | RTCSdpTypeAnswer, 23 | RTCSdpTypeRollback, 24 | }; 25 | 26 | NS_ASSUME_NONNULL_BEGIN 27 | 28 | RTC_OBJC_EXPORT 29 | @interface RTC_OBJC_TYPE (RTCSessionDescription) : NSObject 30 | 31 | /** The type of session description. */ 32 | @property(nonatomic, readonly) RTCSdpType type; 33 | 34 | /** The SDP string representation of this session description. */ 35 | @property(nonatomic, readonly) NSString *sdp; 36 | 37 | - (instancetype)init NS_UNAVAILABLE; 38 | 39 | /** Initialize a session description with a type and SDP string. */ 40 | - (instancetype)initWithType:(RTCSdpType)type sdp:(NSString *)sdp NS_DESIGNATED_INITIALIZER; 41 | 42 | + (NSString *)stringForType:(RTCSdpType)type; 43 | 44 | + (RTCSdpType)typeForString:(NSString *)string; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCTracing.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | RTC_EXTERN void RTCSetupInternalTracer(void); 16 | /** Starts capture to specified file. Must be a valid writable path. 17 | * Returns YES if capture starts. 18 | */ 19 | RTC_EXTERN BOOL RTCStartInternalCapture(NSString* filePath); 20 | RTC_EXTERN void RTCStopInternalCapture(void); 21 | RTC_EXTERN void RTCShutdownInternalTracer(void); 22 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCapturer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class RTC_OBJC_TYPE(RTCVideoCapturer); 18 | 19 | RTC_OBJC_EXPORT 20 | @protocol RTC_OBJC_TYPE 21 | (RTCVideoCapturerDelegate) - 22 | (void)capturer : (RTC_OBJC_TYPE(RTCVideoCapturer) *)capturer didCaptureVideoFrame 23 | : (RTC_OBJC_TYPE(RTCVideoFrame) *)frame; 24 | @end 25 | 26 | RTC_OBJC_EXPORT 27 | @interface RTC_OBJC_TYPE (RTCVideoCapturer) : NSObject 28 | 29 | @property(nonatomic, weak) id delegate; 30 | 31 | - (instancetype)initWithDelegate:(id)delegate; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecConstants.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | RTC_EXTERN NSString* const kRTCVideoCodecVp8Name; 16 | RTC_EXTERN NSString* const kRTCVideoCodecVp9Name; 17 | RTC_EXTERN NSString* const kRTCVideoCodecAv1Name; 18 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoCodecInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Holds information to identify a codec. Corresponds to webrtc::SdpVideoFormat. */ 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCVideoCodecInfo) : NSObject 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | - (instancetype)initWithName:(NSString *)name; 24 | 25 | - (instancetype)initWithName:(NSString *)name 26 | parameters:(nullable NSDictionary *)parameters 27 | NS_DESIGNATED_INITIALIZER; 28 | 29 | - (BOOL)isEqualToCodecInfo:(RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info; 30 | 31 | @property(nonatomic, readonly) NSString *name; 32 | @property(nonatomic, readonly) NSDictionary *parameters; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | #import 17 | #import 18 | 19 | NS_ASSUME_NONNULL_BEGIN 20 | 21 | /** Callback block for decoder. */ 22 | typedef void (^RTCVideoDecoderCallback)(RTC_OBJC_TYPE(RTCVideoFrame) * frame); 23 | 24 | /** Protocol for decoder implementations. */ 25 | RTC_OBJC_EXPORT 26 | @protocol RTC_OBJC_TYPE 27 | (RTCVideoDecoder) 28 | 29 | - (void)setCallback : (RTCVideoDecoderCallback)callback; 30 | - (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; 31 | - (NSInteger)releaseDecoder; 32 | // TODO(bugs.webrtc.org/15444): Remove obsolete missingFrames param. 33 | - (NSInteger)decode:(RTC_OBJC_TYPE(RTCEncodedImage) *)encodedImage 34 | missingFrames:(BOOL)missingFrames 35 | codecSpecificInfo:(nullable id)info 36 | renderTimeMs:(int64_t)renderTimeMs; 37 | - (NSString *)implementationName; 38 | 39 | @end 40 | 41 | NS_ASSUME_NONNULL_END 42 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderAV1.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderAV1) : NSObject 18 | 19 | /* This returns a AV1 decoder that can be returned from a RTCVideoDecoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)av1Decoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** RTCVideoDecoderFactory is an Objective-C version of webrtc::VideoDecoderFactory. 20 | */ 21 | RTC_OBJC_EXPORT 22 | @protocol RTC_OBJC_TYPE 23 | (RTCVideoDecoderFactory) 24 | 25 | - (nullable id)createDecoder 26 | : (RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info; 27 | - (NSArray *) 28 | supportedCodecs; // TODO(andersc): "supportedFormats" instead? 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderFactoryH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderFactoryH264) : NSObject 18 | @end 19 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderH264) : NSObject 18 | @end 19 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderVP8.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderVP8) : NSObject 18 | 19 | /* This returns a VP8 decoder that can be returned from a RTCVideoDecoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp8Decoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoderVP9.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderVP9) : NSObject 18 | 19 | /* This returns a VP9 decoder that can be returned from a RTCVideoDecoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp9Decoder; 24 | 25 | + (bool)isSupported; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderAV1.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderAV1) : NSObject 18 | 19 | /* This returns a AV1 encoder that can be returned from a RTCVideoEncoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)av1Encoder; 24 | 25 | + (bool)isSupported; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderFactoryH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderFactoryH264) : NSObject 18 | @end 19 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCVideoEncoderH264) : NSObject 19 | 20 | - (instancetype)initWithCodecInfo:(RTC_OBJC_TYPE(RTCVideoCodecInfo) *)codecInfo; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderQpThresholds.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** QP thresholds for encoder. Corresponds to webrtc::VideoEncoder::QpThresholds. */ 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCVideoEncoderQpThresholds) : NSObject 20 | 21 | - (instancetype)initWithThresholdsLow:(NSInteger)low high:(NSInteger)high; 22 | 23 | @property(nonatomic, readonly) NSInteger low; 24 | @property(nonatomic, readonly) NSInteger high; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderSettings.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | typedef NS_ENUM(NSUInteger, RTCVideoCodecMode) { 18 | RTCVideoCodecModeRealtimeVideo, 19 | RTCVideoCodecModeScreensharing, 20 | }; 21 | 22 | /** Settings for encoder. Corresponds to webrtc::VideoCodec. */ 23 | RTC_OBJC_EXPORT 24 | @interface RTC_OBJC_TYPE (RTCVideoEncoderSettings) : NSObject 25 | 26 | @property(nonatomic, strong) NSString *name; 27 | 28 | @property(nonatomic, assign) unsigned short width; 29 | @property(nonatomic, assign) unsigned short height; 30 | 31 | @property(nonatomic, assign) unsigned int startBitrate; // kilobits/sec. 32 | @property(nonatomic, assign) unsigned int maxBitrate; 33 | @property(nonatomic, assign) unsigned int minBitrate; 34 | 35 | @property(nonatomic, assign) uint32_t maxFramerate; 36 | 37 | @property(nonatomic, assign) unsigned int qpMax; 38 | @property(nonatomic, assign) RTCVideoCodecMode mode; 39 | 40 | @end 41 | 42 | NS_ASSUME_NONNULL_END 43 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderVP8.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderVP8) : NSObject 18 | 19 | /* This returns a VP8 encoder that can be returned from a RTCVideoEncoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp8Encoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoderVP9.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderVP9) : NSObject 18 | 19 | /* This returns a VP9 encoder that can be returned from a RTCVideoEncoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp9Encoder; 24 | 25 | + (bool)isSupported; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrameBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @protocol RTC_OBJC_TYPE 18 | (RTCI420Buffer); 19 | 20 | // RTCVideoFrameBuffer is an ObjectiveC version of webrtc::VideoFrameBuffer. 21 | RTC_OBJC_EXPORT 22 | @protocol RTC_OBJC_TYPE 23 | (RTCVideoFrameBuffer) 24 | 25 | @property(nonatomic, readonly) int width; 26 | @property(nonatomic, readonly) int height; 27 | 28 | - (id)toI420; 29 | 30 | @optional 31 | - (id)cropAndScaleWith:(int)offsetX 32 | offsetY:(int)offsetY 33 | cropWidth:(int)cropWidth 34 | cropHeight:(int)cropHeight 35 | scaleWidth:(int)scaleWidth 36 | scaleHeight:(int)scaleHeight; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoRenderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #if TARGET_OS_IPHONE 13 | #import 14 | #endif 15 | 16 | #import 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @class RTC_OBJC_TYPE(RTCVideoFrame); 21 | 22 | RTC_OBJC_EXPORT 23 | @protocol RTC_OBJC_TYPE 24 | (RTCVideoRenderer) 25 | 26 | /** The size of the frame. */ 27 | - (void)setSize : (CGSize)size; 28 | 29 | /** The frame to be displayed. */ 30 | - (void)renderFrame:(nullable RTC_OBJC_TYPE(RTCVideoFrame) *)frame; 31 | 32 | @end 33 | 34 | RTC_OBJC_EXPORT 35 | @protocol RTC_OBJC_TYPE 36 | (RTCVideoViewDelegate) 37 | 38 | - (void)videoView : (id)videoView didChangeVideoSize 39 | : (CGSize)size; 40 | 41 | @end 42 | 43 | NS_ASSUME_NONNULL_END 44 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | #import 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | RTC_OBJC_EXPORT 20 | 21 | @interface RTC_OBJC_TYPE (RTCVideoSource) : RTC_OBJC_TYPE(RTCMediaSource) 22 | 23 | - (instancetype)init NS_UNAVAILABLE; 24 | 25 | /** 26 | * Calling this function will cause frames to be scaled down to the 27 | * requested resolution. Also, frames will be cropped to match the 28 | * requested aspect ratio, and frames will be dropped to match the 29 | * requested fps. The requested aspect ratio is orientation agnostic and 30 | * will be adjusted to maintain the input orientation, so it doesn't 31 | * matter if e.g. 1280x720 or 720x1280 is requested. 32 | */ 33 | - (void)adaptOutputFormatToWidth:(int)width height:(int)height fps:(int)fps; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @protocol RTC_OBJC_TYPE 18 | (RTCVideoRenderer); 19 | @class RTC_OBJC_TYPE(RTCPeerConnectionFactory); 20 | @class RTC_OBJC_TYPE(RTCVideoSource); 21 | 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCVideoTrack) : RTC_OBJC_TYPE(RTCMediaStreamTrack) 24 | 25 | /** The video source for this video track. */ 26 | @property(nonatomic, readonly) RTC_OBJC_TYPE(RTCVideoSource) *source; 27 | 28 | - (instancetype)init NS_UNAVAILABLE; 29 | 30 | /** Register a renderer that will render all frames received on this track. */ 31 | - (void)addRenderer:(id)renderer; 32 | 33 | /** Deregister a renderer. */ 34 | - (void)removeRenderer:(id)renderer; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoViewShading.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** 18 | * RTCVideoViewShading provides a way for apps to customize the OpenGL(ES shaders 19 | * used in rendering for the RTCEAGLVideoView/RTCNSGLVideoView. 20 | */ 21 | RTC_OBJC_EXPORT 22 | @protocol RTC_OBJC_TYPE 23 | (RTCVideoViewShading) 24 | 25 | /** Callback for I420 frames. Each plane is given as a texture. */ 26 | - (void)applyShadingForFrameWithWidth : (int)width height : (int)height rotation 27 | : (RTCVideoRotation)rotation yPlane : (GLuint)yPlane uPlane : (GLuint)uPlane vPlane 28 | : (GLuint)vPlane; 29 | 30 | /** Callback for NV12 frames. Each plane is given as a texture. */ 31 | - (void)applyShadingForFrameWithWidth:(int)width 32 | height:(int)height 33 | rotation:(RTCVideoRotation)rotation 34 | yPlane:(GLuint)yPlane 35 | uvPlane:(GLuint)uvPlane; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/UIDevice+RTCDevice.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | @interface UIDevice (RTCDevice) 14 | 15 | + (NSString *)machineName; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Info.plist -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module WebRTC { 2 | umbrella header "WebRTC.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/WebRTC: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/WebRTC -------------------------------------------------------------------------------- /bin/mediasoupclient.xcframework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AvailableLibraries 6 | 7 | 8 | BinaryPath 9 | libmediasoupclient.a 10 | LibraryIdentifier 11 | ios-arm64 12 | LibraryPath 13 | libmediasoupclient.a 14 | SupportedArchitectures 15 | 16 | arm64 17 | 18 | SupportedPlatform 19 | ios 20 | 21 | 22 | BinaryPath 23 | libmediasoupclient.a 24 | LibraryIdentifier 25 | ios-arm64_x86_64-simulator 26 | LibraryPath 27 | libmediasoupclient.a 28 | SupportedArchitectures 29 | 30 | arm64 31 | x86_64 32 | 33 | SupportedPlatform 34 | ios 35 | SupportedPlatformVariant 36 | simulator 37 | 38 | 39 | CFBundlePackageType 40 | XFWK 41 | XCFrameworkFormatVersion 42 | 1.0 43 | 44 | 45 | -------------------------------------------------------------------------------- /bin/mediasoupclient.xcframework/ios-arm64/libmediasoupclient.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/mediasoupclient.xcframework/ios-arm64/libmediasoupclient.a -------------------------------------------------------------------------------- /bin/mediasoupclient.xcframework/ios-arm64_x86_64-simulator/libmediasoupclient.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/mediasoupclient.xcframework/ios-arm64_x86_64-simulator/libmediasoupclient.a -------------------------------------------------------------------------------- /bin/sdptransform.xcframework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AvailableLibraries 6 | 7 | 8 | BinaryPath 9 | libsdptransform.a 10 | LibraryIdentifier 11 | ios-arm64 12 | LibraryPath 13 | libsdptransform.a 14 | SupportedArchitectures 15 | 16 | arm64 17 | 18 | SupportedPlatform 19 | ios 20 | 21 | 22 | BinaryPath 23 | libsdptransform.a 24 | LibraryIdentifier 25 | ios-arm64_x86_64-simulator 26 | LibraryPath 27 | libsdptransform.a 28 | SupportedArchitectures 29 | 30 | arm64 31 | x86_64 32 | 33 | SupportedPlatform 34 | ios 35 | SupportedPlatformVariant 36 | simulator 37 | 38 | 39 | CFBundlePackageType 40 | XFWK 41 | XCFrameworkFormatVersion 42 | 1.0 43 | 44 | 45 | -------------------------------------------------------------------------------- /bin/sdptransform.xcframework/ios-arm64/libsdptransform.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/sdptransform.xcframework/ios-arm64/libsdptransform.a -------------------------------------------------------------------------------- /bin/sdptransform.xcframework/ios-arm64_x86_64-simulator/libsdptransform.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VLprojects/mediasoup-client-swift/400f77e831be088e328821d32a7b0223ff1c51da/bin/sdptransform.xcframework/ios-arm64_x86_64-simulator/libsdptransform.a -------------------------------------------------------------------------------- /bump.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | read -p "Enter version number: " VERSION 4 | 5 | sed -i '' "s/let version = \".*\"/let version = \"$VERSION\"/" Package.swift 6 | 7 | RUN_PATH=$(pwd) 8 | cd $RUN_PATH/bin 9 | rm -f $RUN_PATH/build/Mediasoup.xcframework.zip 10 | zip -r $RUN_PATH/build/Mediasoup.xcframework.zip Mediasoup.xcframework -x "*.DS_Store" 11 | rm -f $RUN_PATH/build/WebRTC.xcframework.zip 12 | zip -r $RUN_PATH/build/WebRTC.xcframework.zip WebRTC.xcframework -x "*.DS_Store" 13 | cd $RUN_PATH 14 | 15 | MEDIASOUP_CHECKSUM=$(swift package compute-checksum ./build/Mediasoup.xcframework.zip) 16 | WEBRTC_CHECKSUM=$(swift package compute-checksum ./build/WebRTC.xcframework.zip) 17 | sed -i '' "s/let mediasoupChecksum = \".*\"/let mediasoupChecksum = \"$MEDIASOUP_CHECKSUM\"/" Package.swift 18 | sed -i '' "s/let webrtcChecksum = \".*\"/let webrtcChecksum = \"$WEBRTC_CHECKSUM\"/" Package.swift 19 | sed -i '' "s/spec.version = \".*\"/spec.version = \"$VERSION\"/" Mediasoup-Client-Swift.podspec 20 | sed -i '' "s/pod 'Mediasoup-Client-Swift', '.*'/pod 'Mediasoup-Client-Swift', '$VERSION'/" README.md 21 | 22 | cd Example 23 | pod install 24 | -------------------------------------------------------------------------------- /patches/RTCPeerConnectionFactoryBuilder.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.h 2 | +++ webrtc/src/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.h 3 | @@ -25,6 +25,7 @@ class AudioProcessing; 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | +RTC_OBJC_EXPORT 8 | @interface RTCPeerConnectionFactoryBuilder : NSObject 9 | 10 | + (RTCPeerConnectionFactoryBuilder *)builder; 11 | -------------------------------------------------------------------------------- /patches/abseil_optional.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/third_party/abseil-cpp/absl/types/bad_optional_access.cc 2 | +++ webrtc/src/third_party/abseil-cpp/absl/types/bad_optional_access.cc 3 | @@ -32,6 +32,7 @@ const char* bad_optional_access::what() const noexcept { 4 | 5 | namespace optional_internal { 6 | 7 | +__attribute__((visibility("default"))) 8 | void throw_bad_optional_access() { 9 | #ifdef ABSL_HAVE_EXCEPTIONS 10 | throw bad_optional_access(); 11 | -------------------------------------------------------------------------------- /patches/audio_device_module_h.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/sdk/objc/native/api/audio_device_module.h 2 | +++ webrtc/src/sdk/objc/native/api/audio_device_module.h 3 | @@ -22,7 +22,7 @@ namespace webrtc { 4 | // Warning: Setting |bypass_voice_processing| will have unpredictable 5 | // consequences for the audio path in the device. It is not advisable to use in 6 | // most scenarios. 7 | -rtc::scoped_refptr CreateAudioDeviceModule( 8 | +RTC_EXPORT rtc::scoped_refptr CreateAudioDeviceModule( 9 | bool bypass_voice_processing = false); 10 | 11 | } // namespace webrtc 12 | -------------------------------------------------------------------------------- /patches/audio_device_module_mm.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/sdk/objc/native/api/audio_device_module.mm 2 | +++ webrtc/src/sdk/objc/native/api/audio_device_module.mm 3 | @@ -17,6 +17,7 @@ 4 | 5 | namespace webrtc { 6 | 7 | +__attribute__((visibility("default"))) 8 | rtc::scoped_refptr CreateAudioDeviceModule(bool bypass_voice_processing) { 9 | RTC_DLOG(INFO) << __FUNCTION__; 10 | #if defined(WEBRTC_IOS) 11 | -------------------------------------------------------------------------------- /patches/builtin_audio_decoder_factory.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/api/audio_codecs/builtin_audio_decoder_factory.h 2 | +++ webrtc/src/api/audio_codecs/builtin_audio_decoder_factory.h 3 | @@ -21,7 +21,7 @@ namespace webrtc { 4 | // only need a subset of the codecs, consider using 5 | // CreateAudioDecoderFactory<...codecs listed here...>() or 6 | // CreateOpusAudioDecoderFactory() instead. 7 | -rtc::scoped_refptr CreateBuiltinAudioDecoderFactory(); 8 | +RTC_EXPORT rtc::scoped_refptr CreateBuiltinAudioDecoderFactory(); 9 | 10 | } // namespace webrtc 11 | 12 | -------------------------------------------------------------------------------- /patches/builtin_audio_encoder_factory.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/api/audio_codecs/builtin_audio_encoder_factory.h 2 | +++ webrtc/src/api/audio_codecs/builtin_audio_encoder_factory.h 3 | @@ -21,7 +21,7 @@ namespace webrtc { 4 | // only need a subset of the codecs, consider using 5 | // CreateAudioEncoderFactory<...codecs listed here...>() or 6 | // CreateOpusAudioEncoderFactory() instead. 7 | -rtc::scoped_refptr CreateBuiltinAudioEncoderFactory(); 8 | +RTC_EXPORT rtc::scoped_refptr CreateBuiltinAudioEncoderFactory(); 9 | 10 | } // namespace webrtc 11 | 12 | -------------------------------------------------------------------------------- /patches/objc_video_decoder_factory_h.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/sdk/objc/native/src/objc_video_decoder_factory.h 2 | +++ webrtc/src/sdk/objc/native/src/objc_video_decoder_factory.h 3 | @@ -23,7 +23,7 @@ namespace webrtc { 4 | 5 | class ObjCVideoDecoderFactory : public VideoDecoderFactory { 6 | public: 7 | - explicit ObjCVideoDecoderFactory(id); 8 | + RTC_EXPORT explicit ObjCVideoDecoderFactory(id); 9 | ~ObjCVideoDecoderFactory() override; 10 | 11 | id wrapped_decoder_factory() const; 12 | -------------------------------------------------------------------------------- /patches/objc_video_encoder_factory_h.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/sdk/objc/native/src/objc_video_encoder_factory.h 2 | +++ webrtc/src/sdk/objc/native/src/objc_video_encoder_factory.h 3 | @@ -24,7 +24,7 @@ namespace webrtc { 4 | 5 | class ObjCVideoEncoderFactory : public VideoEncoderFactory { 6 | public: 7 | - explicit ObjCVideoEncoderFactory(id); 8 | + RTC_EXPORT explicit ObjCVideoEncoderFactory(id); 9 | ~ObjCVideoEncoderFactory() override; 10 | 11 | id wrapped_encoder_factory() const; 12 | -------------------------------------------------------------------------------- /patches/sdp_video_format_utils.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/media/base/sdp_video_format_utils.h 2 | +++ webrtc/src/media/base/sdp_video_format_utils.h 3 | @@ -31,7 +31,7 @@ namespace webrtc { 4 | // and |remote_offered_params| must be equal before calling this function. The 5 | // parameters that are used when negotiating are the level part of 6 | // profile-level-id and level-asymmetry-allowed. 7 | -void H264GenerateProfileLevelIdForAnswer( 8 | +RTC_EXPORT void H264GenerateProfileLevelIdForAnswer( 9 | const SdpVideoFormat::Parameters& local_supported_params, 10 | const SdpVideoFormat::Parameters& remote_offered_params, 11 | SdpVideoFormat::Parameters* answer_params); 12 | -------------------------------------------------------------------------------- /patches/video_decoder_factory_h.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/sdk/objc/native/api/video_decoder_factory.h 2 | +++ webrtc/src/sdk/objc/native/api/video_decoder_factory.h 3 | @@ -19,7 +19,7 @@ 4 | 5 | namespace webrtc { 6 | 7 | -std::unique_ptr ObjCToNativeVideoDecoderFactory( 8 | +RTC_EXPORT std::unique_ptr ObjCToNativeVideoDecoderFactory( 9 | id objc_video_decoder_factory); 10 | 11 | } // namespace webrtc 12 | -------------------------------------------------------------------------------- /patches/video_encoder_factory_h.patch: -------------------------------------------------------------------------------- 1 | --- webrtc/src/sdk/objc/native/api/video_encoder_factory.h 2 | +++ webrtc/src/sdk/objc/native/api/video_encoder_factory.h 3 | @@ -19,7 +19,7 @@ 4 | 5 | namespace webrtc { 6 | 7 | -std::unique_ptr ObjCToNativeVideoEncoderFactory( 8 | +RTC_EXPORT std::unique_ptr ObjCToNativeVideoEncoderFactory( 9 | id objc_video_encoder_factory); 10 | 11 | } // namespace webrtc 12 | --------------------------------------------------------------------------------