├── .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)