@sbhjt-gr/react-native-webrtc 124.0.3 → 124.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.clang-format +11 -11
- package/.eslintignore +6 -6
- package/.nvmrc +1 -1
- package/ISSUE_TEMPLATE.md +40 -40
- package/LICENSE +22 -22
- package/README.md +103 -103
- package/android/build.gradle +37 -37
- package/android/consumer-rules.pro +3 -3
- package/android/src/main/AndroidManifest.xml +11 -11
- package/android/src/main/java/com/oney/WebRTCModule/AbstractVideoCaptureController.java +113 -113
- package/android/src/main/java/com/oney/WebRTCModule/CameraCaptureController.java +338 -338
- package/android/src/main/java/com/oney/WebRTCModule/CameraEventsHandler.java +49 -49
- package/android/src/main/java/com/oney/WebRTCModule/DataChannelWrapper.java +99 -99
- package/android/src/main/java/com/oney/WebRTCModule/DataPacketCryptorManager.java +62 -62
- package/android/src/main/java/com/oney/WebRTCModule/DisplayUtils.java +16 -16
- package/android/src/main/java/com/oney/WebRTCModule/EglUtils.java +66 -66
- package/android/src/main/java/com/oney/WebRTCModule/GetUserMediaImpl.java +539 -539
- package/android/src/main/java/com/oney/WebRTCModule/LibraryLoader.java +21 -21
- package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionNotification.java +70 -70
- package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionService.java +82 -82
- package/android/src/main/java/com/oney/WebRTCModule/PeerConnectionObserver.java +588 -588
- package/android/src/main/java/com/oney/WebRTCModule/RTCCryptoManager.java +493 -493
- package/android/src/main/java/com/oney/WebRTCModule/RTCVideoViewManager.java +98 -98
- package/android/src/main/java/com/oney/WebRTCModule/ReactBridgeUtil.java +35 -35
- package/android/src/main/java/com/oney/WebRTCModule/ScreenCaptureController.java +94 -94
- package/android/src/main/java/com/oney/WebRTCModule/SerializeUtils.java +342 -342
- package/android/src/main/java/com/oney/WebRTCModule/StringUtils.java +100 -100
- package/android/src/main/java/com/oney/WebRTCModule/ThreadUtils.java +41 -41
- package/android/src/main/java/com/oney/WebRTCModule/TrackCapturerEventsEmitter.java +34 -34
- package/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java +137 -137
- package/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java +1649 -1643
- package/android/src/main/java/com/oney/WebRTCModule/WebRTCModuleOptions.java +33 -33
- package/android/src/main/java/com/oney/WebRTCModule/WebRTCModulePackage.java +21 -21
- package/android/src/main/java/com/oney/WebRTCModule/WebRTCView.java +583 -583
- package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraClient.java +529 -501
- package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraConfig.java +17 -17
- package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraListener.java +7 -7
- package/android/src/main/java/com/oney/WebRTCModule/videoEffects/ProcessorProvider.java +38 -38
- package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoEffectProcessor.java +59 -59
- package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessor.java +19 -19
- package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessorFactoryInterface.java +12 -12
- package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoDecoderFactory.java +73 -73
- package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoEncoderFactory.java +73 -73
- package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoDecoderFactoryProxy.java +36 -36
- package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoEncoderFactoryProxy.java +36 -36
- package/android/src/main/java/org/webrtc/Camera1Helper.java +54 -54
- package/android/src/main/java/org/webrtc/Camera2Helper.java +52 -52
- package/android/src/main/res/values/strings.xml +5 -5
- package/android/src/main/res/values/styles.xml +8 -8
- package/ios/RCTWebRTC/CaptureController.h +18 -18
- package/ios/RCTWebRTC/CaptureController.m +28 -28
- package/ios/RCTWebRTC/CapturerEventsDelegate.h +12 -12
- package/ios/RCTWebRTC/DataChannelWrapper.h +27 -27
- package/ios/RCTWebRTC/DataChannelWrapper.m +42 -42
- package/ios/RCTWebRTC/I420Converter.h +22 -22
- package/ios/RCTWebRTC/I420Converter.m +164 -164
- package/ios/RCTWebRTC/PIPController.h +24 -24
- package/ios/RCTWebRTC/PIPController.m +234 -234
- package/ios/RCTWebRTC/PalabraAudioSink.h +13 -13
- package/ios/RCTWebRTC/PalabraAudioSink.m +18 -18
- package/ios/RCTWebRTC/PalabraClient.h +42 -36
- package/ios/RCTWebRTC/PalabraClient.m +680 -644
- package/ios/RCTWebRTC/RCTConvert+WebRTC.h +16 -16
- package/ios/RCTWebRTC/RCTConvert+WebRTC.m +206 -206
- package/ios/RCTWebRTC/RTCMediaStreamTrack+React.h +10 -10
- package/ios/RCTWebRTC/RTCMediaStreamTrack+React.m +16 -16
- package/ios/RCTWebRTC/RTCVideoViewManager.h +29 -29
- package/ios/RCTWebRTC/RTCVideoViewManager.m +411 -411
- package/ios/RCTWebRTC/SampleBufferVideoCallView.h +12 -12
- package/ios/RCTWebRTC/SampleBufferVideoCallView.m +178 -178
- package/ios/RCTWebRTC/ScreenCaptureController.h +20 -20
- package/ios/RCTWebRTC/ScreenCaptureController.m +82 -82
- package/ios/RCTWebRTC/ScreenCapturePickerViewManager.h +7 -7
- package/ios/RCTWebRTC/ScreenCapturePickerViewManager.m +59 -59
- package/ios/RCTWebRTC/ScreenCapturer.h +19 -19
- package/ios/RCTWebRTC/ScreenCapturer.m +263 -263
- package/ios/RCTWebRTC/SerializeUtils.h +28 -28
- package/ios/RCTWebRTC/SerializeUtils.m +314 -314
- package/ios/RCTWebRTC/SocketConnection.h +13 -13
- package/ios/RCTWebRTC/SocketConnection.m +137 -137
- package/ios/RCTWebRTC/TrackCapturerEventsEmitter.h +14 -14
- package/ios/RCTWebRTC/TrackCapturerEventsEmitter.m +36 -36
- package/ios/RCTWebRTC/VideoCaptureController.h +21 -21
- package/ios/RCTWebRTC/VideoCaptureController.m +328 -328
- package/ios/RCTWebRTC/WLVAudioDevice.h +12 -12
- package/ios/RCTWebRTC/WLVAudioDevice.m +137 -137
- package/ios/RCTWebRTC/WebRTCModule+Palabra.h +4 -4
- package/ios/RCTWebRTC/WebRTCModule+Palabra.m +92 -83
- package/ios/RCTWebRTC/WebRTCModule+Permissions.m +75 -75
- package/ios/RCTWebRTC/WebRTCModule+RTCAudioSession.m +20 -20
- package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.h +14 -14
- package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.m +165 -165
- package/ios/RCTWebRTC/WebRTCModule+RTCFrameCryptor.m +611 -611
- package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.h +13 -13
- package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m +728 -728
- package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.h +24 -24
- package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.m +1004 -1004
- package/ios/RCTWebRTC/WebRTCModule+Transceivers.m +267 -267
- package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.h +12 -12
- package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.m +166 -166
- package/ios/RCTWebRTC/WebRTCModule.h +58 -58
- package/ios/RCTWebRTC/WebRTCModule.m +169 -169
- package/ios/RCTWebRTC/WebRTCModuleOptions.h +24 -24
- package/ios/RCTWebRTC/WebRTCModuleOptions.m +31 -31
- package/ios/RCTWebRTC/videoEffects/ProcessorProvider.h +9 -9
- package/ios/RCTWebRTC/videoEffects/ProcessorProvider.m +23 -23
- package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.h +13 -13
- package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.m +23 -23
- package/ios/RCTWebRTC/videoEffects/VideoFrameProcessor.h +8 -8
- package/ios/RCTWebRTC.xcodeproj/project.pbxproj +404 -404
- package/ios/RCTWebRTC.xcworkspace/contents.xcworkspacedata +10 -10
- package/lib/commonjs/Constraints.js.map +1 -1
- package/lib/commonjs/EventEmitter.js.map +1 -1
- package/lib/commonjs/Logger.js.map +1 -1
- package/lib/commonjs/MediaDevices.js +17 -17
- package/lib/commonjs/MediaDevices.js.map +1 -1
- package/lib/commonjs/MediaStream.js +19 -19
- package/lib/commonjs/MediaStream.js.map +1 -1
- package/lib/commonjs/MediaStreamError.js.map +1 -1
- package/lib/commonjs/MediaStreamErrorEvent.js.map +1 -1
- package/lib/commonjs/MediaStreamTrack.js +28 -28
- package/lib/commonjs/MediaStreamTrack.js.map +1 -1
- package/lib/commonjs/MediaStreamTrackEvent.js +6 -6
- package/lib/commonjs/MediaStreamTrackEvent.js.map +1 -1
- package/lib/commonjs/MessageEvent.js +7 -7
- package/lib/commonjs/MessageEvent.js.map +1 -1
- package/lib/commonjs/Permissions.js +28 -28
- package/lib/commonjs/Permissions.js.map +1 -1
- package/lib/commonjs/RTCAudioSession.js +4 -4
- package/lib/commonjs/RTCAudioSession.js.map +1 -1
- package/lib/commonjs/RTCDataChannel.js +2 -2
- package/lib/commonjs/RTCDataChannel.js.map +1 -1
- package/lib/commonjs/RTCDataChannelEvent.js +6 -6
- package/lib/commonjs/RTCDataChannelEvent.js.map +1 -1
- package/lib/commonjs/RTCDataPacketCryptor.js.map +1 -1
- package/lib/commonjs/RTCDataPacketCryptorFactory.js.map +1 -1
- package/lib/commonjs/RTCErrorEvent.js +3 -3
- package/lib/commonjs/RTCErrorEvent.js.map +1 -1
- package/lib/commonjs/RTCFrameCryptor.js +8 -8
- package/lib/commonjs/RTCFrameCryptor.js.map +1 -1
- package/lib/commonjs/RTCFrameCryptorFactory.js.map +1 -1
- package/lib/commonjs/RTCIceCandidate.js.map +1 -1
- package/lib/commonjs/RTCIceCandidateEvent.js +7 -7
- package/lib/commonjs/RTCIceCandidateEvent.js.map +1 -1
- package/lib/commonjs/RTCKeyProvider.js.map +1 -1
- package/lib/commonjs/RTCPIPView.js +2 -2
- package/lib/commonjs/RTCPIPView.js.map +1 -1
- package/lib/commonjs/RTCPIPView.web.js.map +1 -1
- package/lib/commonjs/RTCPeerConnection.js +36 -36
- package/lib/commonjs/RTCPeerConnection.js.map +1 -1
- package/lib/commonjs/RTCRtcpParameters.js.map +1 -1
- package/lib/commonjs/RTCRtpCapabilities.js +2 -2
- package/lib/commonjs/RTCRtpCapabilities.js.map +1 -1
- package/lib/commonjs/RTCRtpCodecCapability.js.map +1 -1
- package/lib/commonjs/RTCRtpCodecParameters.js.map +1 -1
- package/lib/commonjs/RTCRtpEncodingParameters.js.map +1 -1
- package/lib/commonjs/RTCRtpHeaderExtension.js.map +1 -1
- package/lib/commonjs/RTCRtpParameters.js.map +1 -1
- package/lib/commonjs/RTCRtpReceiveParameters.js.map +1 -1
- package/lib/commonjs/RTCRtpReceiver.js +7 -7
- package/lib/commonjs/RTCRtpReceiver.js.map +1 -1
- package/lib/commonjs/RTCRtpSendParameters.js +3 -3
- package/lib/commonjs/RTCRtpSendParameters.js.map +1 -1
- package/lib/commonjs/RTCRtpSender.js +7 -7
- package/lib/commonjs/RTCRtpSender.js.map +1 -1
- package/lib/commonjs/RTCRtpTransceiver.js.map +1 -1
- package/lib/commonjs/RTCSessionDescription.js.map +1 -1
- package/lib/commonjs/RTCTrackEvent.js +6 -6
- package/lib/commonjs/RTCTrackEvent.js.map +1 -1
- package/lib/commonjs/RTCUtil.js +28 -28
- package/lib/commonjs/RTCUtil.js.map +1 -1
- package/lib/commonjs/RTCView.js +5 -5
- package/lib/commonjs/RTCView.js.map +1 -1
- package/lib/commonjs/RTCView.web.js.map +1 -1
- package/lib/commonjs/ScreenCapturePickerView.js.map +1 -1
- package/lib/commonjs/ScreenCapturePickerView.web.js.map +1 -1
- package/lib/commonjs/getDisplayMedia.js.map +1 -1
- package/lib/commonjs/getUserMedia.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/webStream.js.map +1 -1
- package/lib/module/Constraints.js.map +1 -1
- package/lib/module/EventEmitter.js.map +1 -1
- package/lib/module/Logger.js.map +1 -1
- package/lib/module/MediaDevices.js +17 -17
- package/lib/module/MediaDevices.js.map +1 -1
- package/lib/module/MediaStream.js +19 -19
- package/lib/module/MediaStream.js.map +1 -1
- package/lib/module/MediaStreamError.js.map +1 -1
- package/lib/module/MediaStreamErrorEvent.js.map +1 -1
- package/lib/module/MediaStreamTrack.js +28 -28
- package/lib/module/MediaStreamTrack.js.map +1 -1
- package/lib/module/MediaStreamTrackEvent.js +6 -6
- package/lib/module/MediaStreamTrackEvent.js.map +1 -1
- package/lib/module/MessageEvent.js +7 -7
- package/lib/module/MessageEvent.js.map +1 -1
- package/lib/module/Permissions.js +28 -28
- package/lib/module/Permissions.js.map +1 -1
- package/lib/module/RTCAudioSession.js +4 -4
- package/lib/module/RTCAudioSession.js.map +1 -1
- package/lib/module/RTCDataChannel.js +2 -2
- package/lib/module/RTCDataChannel.js.map +1 -1
- package/lib/module/RTCDataChannelEvent.js +6 -6
- package/lib/module/RTCDataChannelEvent.js.map +1 -1
- package/lib/module/RTCDataPacketCryptor.js.map +1 -1
- package/lib/module/RTCDataPacketCryptorFactory.js.map +1 -1
- package/lib/module/RTCErrorEvent.js +3 -3
- package/lib/module/RTCErrorEvent.js.map +1 -1
- package/lib/module/RTCFrameCryptor.js +8 -8
- package/lib/module/RTCFrameCryptor.js.map +1 -1
- package/lib/module/RTCFrameCryptorFactory.js.map +1 -1
- package/lib/module/RTCIceCandidate.js.map +1 -1
- package/lib/module/RTCIceCandidateEvent.js +7 -7
- package/lib/module/RTCIceCandidateEvent.js.map +1 -1
- package/lib/module/RTCKeyProvider.js.map +1 -1
- package/lib/module/RTCPIPView.js +2 -2
- package/lib/module/RTCPIPView.js.map +1 -1
- package/lib/module/RTCPIPView.web.js.map +1 -1
- package/lib/module/RTCPeerConnection.js +36 -36
- package/lib/module/RTCPeerConnection.js.map +1 -1
- package/lib/module/RTCRtcpParameters.js.map +1 -1
- package/lib/module/RTCRtpCapabilities.js +2 -2
- package/lib/module/RTCRtpCapabilities.js.map +1 -1
- package/lib/module/RTCRtpCodecCapability.js.map +1 -1
- package/lib/module/RTCRtpCodecParameters.js.map +1 -1
- package/lib/module/RTCRtpEncodingParameters.js.map +1 -1
- package/lib/module/RTCRtpHeaderExtension.js.map +1 -1
- package/lib/module/RTCRtpParameters.js.map +1 -1
- package/lib/module/RTCRtpReceiveParameters.js.map +1 -1
- package/lib/module/RTCRtpReceiver.js +7 -7
- package/lib/module/RTCRtpReceiver.js.map +1 -1
- package/lib/module/RTCRtpSendParameters.js +3 -3
- package/lib/module/RTCRtpSendParameters.js.map +1 -1
- package/lib/module/RTCRtpSender.js +7 -7
- package/lib/module/RTCRtpSender.js.map +1 -1
- package/lib/module/RTCRtpTransceiver.js.map +1 -1
- package/lib/module/RTCSessionDescription.js.map +1 -1
- package/lib/module/RTCTrackEvent.js +6 -6
- package/lib/module/RTCTrackEvent.js.map +1 -1
- package/lib/module/RTCUtil.js +28 -28
- package/lib/module/RTCUtil.js.map +1 -1
- package/lib/module/RTCView.js +5 -5
- package/lib/module/RTCView.js.map +1 -1
- package/lib/module/RTCView.web.js.map +1 -1
- package/lib/module/ScreenCapturePickerView.js.map +1 -1
- package/lib/module/ScreenCapturePickerView.web.js.map +1 -1
- package/lib/module/getDisplayMedia.js.map +1 -1
- package/lib/module/getUserMedia.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/webStream.js.map +1 -1
- package/lib/typescript/Constraints.d.ts +19 -19
- package/lib/typescript/EventEmitter.d.ts +6 -6
- package/lib/typescript/Logger.d.ts +13 -13
- package/lib/typescript/MediaDevices.d.ts +30 -30
- package/lib/typescript/MediaStream.d.ts +48 -48
- package/lib/typescript/MediaStreamError.d.ts +6 -6
- package/lib/typescript/MediaStreamErrorEvent.d.ts +6 -6
- package/lib/typescript/MediaStreamTrack.d.ts +101 -101
- package/lib/typescript/MediaStreamTrackEvent.d.ts +19 -19
- package/lib/typescript/MessageEvent.d.ts +20 -20
- package/lib/typescript/Permissions.d.ts +55 -55
- package/lib/typescript/RTCAudioSession.d.ts +10 -10
- package/lib/typescript/RTCDataChannel.d.ts +43 -43
- package/lib/typescript/RTCDataChannelEvent.d.ts +19 -19
- package/lib/typescript/RTCDataPacketCryptor.d.ts +12 -12
- package/lib/typescript/RTCDataPacketCryptorFactory.d.ts +6 -6
- package/lib/typescript/RTCErrorEvent.d.ts +12 -12
- package/lib/typescript/RTCFrameCryptor.d.ts +47 -47
- package/lib/typescript/RTCFrameCryptorFactory.d.ts +21 -21
- package/lib/typescript/RTCIceCandidate.d.ts +17 -17
- package/lib/typescript/RTCIceCandidateEvent.d.ts +20 -20
- package/lib/typescript/RTCKeyProvider.d.ts +21 -21
- package/lib/typescript/RTCPIPView.d.ts +15 -15
- package/lib/typescript/RTCPIPView.web.d.ts +13 -13
- package/lib/typescript/RTCPeerConnection.d.ts +117 -117
- package/lib/typescript/RTCRtcpParameters.d.ts +10 -10
- package/lib/typescript/RTCRtpCapabilities.d.ts +9 -9
- package/lib/typescript/RTCRtpCodecCapability.d.ts +7 -7
- package/lib/typescript/RTCRtpCodecParameters.d.ts +16 -16
- package/lib/typescript/RTCRtpEncodingParameters.d.ts +23 -23
- package/lib/typescript/RTCRtpHeaderExtension.d.ts +12 -12
- package/lib/typescript/RTCRtpParameters.d.ts +19 -19
- package/lib/typescript/RTCRtpReceiveParameters.d.ts +4 -4
- package/lib/typescript/RTCRtpReceiver.d.ts +21 -21
- package/lib/typescript/RTCRtpSendParameters.d.ts +20 -20
- package/lib/typescript/RTCRtpSender.d.ts +22 -22
- package/lib/typescript/RTCRtpTransceiver.d.ts +31 -31
- package/lib/typescript/RTCSessionDescription.d.ts +12 -12
- package/lib/typescript/RTCTrackEvent.d.ts +29 -29
- package/lib/typescript/RTCUtil.d.ts +37 -37
- package/lib/typescript/RTCView.d.ts +117 -117
- package/lib/typescript/RTCView.web.d.ts +25 -25
- package/lib/typescript/ScreenCapturePickerView.d.ts +2 -2
- package/lib/typescript/ScreenCapturePickerView.web.d.ts +1 -1
- package/lib/typescript/getDisplayMedia.d.ts +2 -2
- package/lib/typescript/getUserMedia.d.ts +7 -7
- package/lib/typescript/index.d.ts +22 -22
- package/lib/typescript/index.web.d.ts +101 -101
- package/lib/typescript/webStream.d.ts +3 -3
- package/livekit-react-native-webrtc.podspec +29 -29
- package/macos/RCTWebRTC.xcodeproj/project.pbxproj +324 -324
- package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -7
- package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -8
- package/metro.config.js +7 -7
- package/metro.config.macos.js +14 -14
- package/package.json +66 -66
- package/react-native.config.js +11 -11
- package/src/.eslintrc.cjs +67 -67
- package/src/Constraints.ts +20 -20
- package/src/EventEmitter.ts +65 -65
- package/src/Logger.ts +49 -49
- package/src/MediaDevices.ts +53 -53
- package/src/MediaStream.ts +161 -161
- package/src/MediaStreamError.ts +12 -12
- package/src/MediaStreamErrorEvent.ts +11 -11
- package/src/MediaStreamTrack.ts +282 -282
- package/src/MediaStreamTrackEvent.ts +25 -25
- package/src/MessageEvent.ts +26 -26
- package/src/Permissions.ts +133 -133
- package/src/RTCAudioSession.ts +25 -25
- package/src/RTCDataChannel.ts +190 -190
- package/src/RTCDataChannelEvent.ts +28 -28
- package/src/RTCDataPacketCryptor.ts +90 -90
- package/src/RTCDataPacketCryptorFactory.ts +24 -24
- package/src/RTCErrorEvent.ts +20 -20
- package/src/RTCFrameCryptor.ts +162 -162
- package/src/RTCFrameCryptorFactory.ts +101 -101
- package/src/RTCIceCandidate.ts +29 -29
- package/src/RTCIceCandidateEvent.ts +26 -26
- package/src/RTCKeyProvider.ts +117 -117
- package/src/RTCPIPView.tsx +46 -46
- package/src/RTCPIPView.web.tsx +18 -18
- package/src/RTCPeerConnection.ts +935 -935
- package/src/RTCRtcpParameters.ts +23 -23
- package/src/RTCRtpCapabilities.ts +16 -16
- package/src/RTCRtpCodecCapability.ts +12 -12
- package/src/RTCRtpCodecParameters.ts +44 -44
- package/src/RTCRtpEncodingParameters.ts +90 -90
- package/src/RTCRtpHeaderExtension.ts +27 -27
- package/src/RTCRtpParameters.ts +37 -37
- package/src/RTCRtpReceiveParameters.ts +7 -7
- package/src/RTCRtpReceiver.ts +60 -60
- package/src/RTCRtpSendParameters.ts +63 -63
- package/src/RTCRtpSender.ts +78 -78
- package/src/RTCRtpTransceiver.ts +107 -107
- package/src/RTCSessionDescription.ts +30 -30
- package/src/RTCTrackEvent.ts +42 -42
- package/src/RTCUtil.ts +211 -211
- package/src/RTCView.ts +122 -122
- package/src/RTCView.web.tsx +80 -80
- package/src/ScreenCapturePickerView.ts +4 -4
- package/src/ScreenCapturePickerView.web.tsx +3 -3
- package/src/getDisplayMedia.ts +30 -30
- package/src/getUserMedia.ts +136 -136
- package/src/index.ts +107 -107
- package/src/index.web.ts +191 -191
- package/src/webStream.ts +31 -31
- package/tools/format.sh +6 -6
- package/tools/release.sh +45 -45
- package/tsconfig.json +17 -17
|
@@ -1,169 +1,169 @@
|
|
|
1
|
-
#if !TARGET_OS_OSX
|
|
2
|
-
#import <UIKit/UIKit.h>
|
|
3
|
-
#endif
|
|
4
|
-
|
|
5
|
-
#import <React/RCTBridge.h>
|
|
6
|
-
#import <React/RCTEventDispatcher.h>
|
|
7
|
-
#import <React/RCTLog.h>
|
|
8
|
-
#import <React/RCTUtils.h>
|
|
9
|
-
|
|
10
|
-
#import "WebRTCModule+RTCPeerConnection.h"
|
|
11
|
-
#import "WebRTCModule.h"
|
|
12
|
-
#import "WebRTCModuleOptions.h"
|
|
13
|
-
#import "WLVAudioDevice.h"
|
|
14
|
-
|
|
15
|
-
@interface WebRTCModule ()
|
|
16
|
-
|
|
17
|
-
@property(nonatomic, strong) RTCPeerConnectionFactory *virtualPeerConnectionFactory;
|
|
18
|
-
|
|
19
|
-
@end
|
|
20
|
-
|
|
21
|
-
@implementation WebRTCModule
|
|
22
|
-
|
|
23
|
-
+ (BOOL)requiresMainQueueSetup {
|
|
24
|
-
return NO;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
- (void)dealloc {
|
|
28
|
-
[_localTracks removeAllObjects];
|
|
29
|
-
_localTracks = nil;
|
|
30
|
-
[_audioRenderers removeAllObjects];
|
|
31
|
-
_audioRenderers = nil;
|
|
32
|
-
[_localStreams removeAllObjects];
|
|
33
|
-
_localStreams = nil;
|
|
34
|
-
|
|
35
|
-
for (NSNumber *peerConnectionId in _peerConnections) {
|
|
36
|
-
RTCPeerConnection *peerConnection = _peerConnections[peerConnectionId];
|
|
37
|
-
peerConnection.delegate = nil;
|
|
38
|
-
[peerConnection close];
|
|
39
|
-
}
|
|
40
|
-
[_peerConnections removeAllObjects];
|
|
41
|
-
|
|
42
|
-
_peerConnectionFactory = nil;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
- (instancetype)init {
|
|
46
|
-
self = [super init];
|
|
47
|
-
if (self) {
|
|
48
|
-
WebRTCModuleOptions *options = [WebRTCModuleOptions sharedInstance];
|
|
49
|
-
id<RTCAudioDevice> audioDevice = options.audioDevice;
|
|
50
|
-
id<RTCVideoDecoderFactory> decoderFactory = options.videoDecoderFactory;
|
|
51
|
-
id<RTCVideoEncoderFactory> encoderFactory = options.videoEncoderFactory;
|
|
52
|
-
id<RTCAudioProcessingModule> audioProcessingModule = options.audioProcessingModule;
|
|
53
|
-
NSDictionary *fieldTrials = options.fieldTrials;
|
|
54
|
-
RTCLoggingSeverity loggingSeverity = options.loggingSeverity;
|
|
55
|
-
|
|
56
|
-
// Initialize field trials.
|
|
57
|
-
if (fieldTrials == nil) {
|
|
58
|
-
// Fix for dual-sim connectivity:
|
|
59
|
-
// https://bugs.chromium.org/p/webrtc/issues/detail?id=10966
|
|
60
|
-
fieldTrials = @{kRTCFieldTrialUseNWPathMonitor : kRTCFieldTrialEnabledValue};
|
|
61
|
-
}
|
|
62
|
-
RTCInitFieldTrialDictionary(fieldTrials);
|
|
63
|
-
|
|
64
|
-
// Initialize logging.
|
|
65
|
-
RTCSetMinDebugLogLevel(loggingSeverity);
|
|
66
|
-
|
|
67
|
-
if (encoderFactory == nil) {
|
|
68
|
-
encoderFactory = [[RTCDefaultVideoEncoderFactory alloc] init];
|
|
69
|
-
}
|
|
70
|
-
if (decoderFactory == nil) {
|
|
71
|
-
decoderFactory = [[RTCDefaultVideoDecoderFactory alloc] init];
|
|
72
|
-
}
|
|
73
|
-
_encoderFactory = encoderFactory;
|
|
74
|
-
_decoderFactory = decoderFactory;
|
|
75
|
-
|
|
76
|
-
RCTLogInfo(@"Using video encoder factory: %@", NSStringFromClass([encoderFactory class]));
|
|
77
|
-
RCTLogInfo(@"Using video decoder factory: %@", NSStringFromClass([decoderFactory class]));
|
|
78
|
-
|
|
79
|
-
if (audioProcessingModule != nil) {
|
|
80
|
-
if (audioDevice != nil) {
|
|
81
|
-
NSLog(@"Both audioProcessingModule and audioDevice are provided, but only one can be used. Ignoring "
|
|
82
|
-
@"audioDevice.");
|
|
83
|
-
}
|
|
84
|
-
RCTLogInfo(@"Using audio processing module: %@", NSStringFromClass([audioProcessingModule class]));
|
|
85
|
-
_peerConnectionFactory =
|
|
86
|
-
[[RTCPeerConnectionFactory alloc] initWithAudioDeviceModuleType:RTCAudioDeviceModuleTypeAudioEngine
|
|
87
|
-
bypassVoiceProcessing:NO
|
|
88
|
-
encoderFactory:encoderFactory
|
|
89
|
-
decoderFactory:decoderFactory
|
|
90
|
-
audioProcessingModule:audioProcessingModule];
|
|
91
|
-
} else {
|
|
92
|
-
RCTLogInfo(@"Using audio device: %@", NSStringFromClass([audioDevice class]));
|
|
93
|
-
_peerConnectionFactory = [[RTCPeerConnectionFactory alloc] initWithEncoderFactory:encoderFactory
|
|
94
|
-
decoderFactory:decoderFactory
|
|
95
|
-
audioDevice:audioDevice];
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
_peerConnections = [NSMutableDictionary new];
|
|
99
|
-
_localStreams = [NSMutableDictionary new];
|
|
100
|
-
_localTracks = [NSMutableDictionary new];
|
|
101
|
-
_audioRenderers = [NSMutableDictionary new];
|
|
102
|
-
|
|
103
|
-
_frameCryptors = [NSMutableDictionary new];
|
|
104
|
-
_keyProviders = [NSMutableDictionary new];
|
|
105
|
-
_dataPacketCryptors = [NSMutableDictionary new];
|
|
106
|
-
|
|
107
|
-
dispatch_queue_attr_t attributes =
|
|
108
|
-
dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, QOS_CLASS_USER_INITIATED, -1);
|
|
109
|
-
_workerQueue = dispatch_queue_create("WebRTCModule.queue", attributes);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return self;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
- (RTCMediaStream *)streamForReactTag:(NSString *)reactTag {
|
|
116
|
-
RTCMediaStream *stream = _localStreams[reactTag];
|
|
117
|
-
if (!stream) {
|
|
118
|
-
for (NSNumber *peerConnectionId in _peerConnections) {
|
|
119
|
-
RTCPeerConnection *peerConnection = _peerConnections[peerConnectionId];
|
|
120
|
-
stream = peerConnection.remoteStreams[reactTag];
|
|
121
|
-
if (stream) {
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return stream;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
RCT_EXPORT_MODULE();
|
|
130
|
-
|
|
131
|
-
- (dispatch_queue_t)methodQueue {
|
|
132
|
-
return _workerQueue;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
- (RTCPeerConnectionFactory *)virtualFactory {
|
|
136
|
-
if (_virtualPeerConnectionFactory == nil) {
|
|
137
|
-
self.virtualAudioDevice = [[WLVAudioDevice alloc] init];
|
|
138
|
-
_virtualPeerConnectionFactory = [[RTCPeerConnectionFactory alloc] initWithEncoderFactory:_encoderFactory
|
|
139
|
-
decoderFactory:_decoderFactory
|
|
140
|
-
audioDevice:self.virtualAudioDevice];
|
|
141
|
-
}
|
|
142
|
-
return _virtualPeerConnectionFactory;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
- (NSArray<NSString *> *)supportedEvents {
|
|
146
|
-
return @[
|
|
147
|
-
kEventPeerConnectionSignalingStateChanged,
|
|
148
|
-
kEventPeerConnectionStateChanged,
|
|
149
|
-
kEventPeerConnectionOnRenegotiationNeeded,
|
|
150
|
-
kEventPeerConnectionIceConnectionChanged,
|
|
151
|
-
kEventPeerConnectionIceGatheringChanged,
|
|
152
|
-
kEventPeerConnectionGotICECandidate,
|
|
153
|
-
kEventPeerConnectionDidOpenDataChannel,
|
|
154
|
-
kEventDataChannelDidChangeBufferedAmount,
|
|
155
|
-
kEventDataChannelStateChanged,
|
|
156
|
-
kEventDataChannelReceiveMessage,
|
|
157
|
-
kEventMediaStreamTrackMuteChanged,
|
|
158
|
-
kEventMediaStreamTrackEnded,
|
|
159
|
-
kEventPeerConnectionOnRemoveTrack,
|
|
160
|
-
kEventPeerConnectionOnTrack,
|
|
161
|
-
kEventFrameCryptionStateChanged,
|
|
162
|
-
kEventPalabraTranscription,
|
|
163
|
-
kEventPalabraConnectionState,
|
|
164
|
-
kEventPalabraError,
|
|
165
|
-
kEventAudioSamples
|
|
166
|
-
];
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
@end
|
|
1
|
+
#if !TARGET_OS_OSX
|
|
2
|
+
#import <UIKit/UIKit.h>
|
|
3
|
+
#endif
|
|
4
|
+
|
|
5
|
+
#import <React/RCTBridge.h>
|
|
6
|
+
#import <React/RCTEventDispatcher.h>
|
|
7
|
+
#import <React/RCTLog.h>
|
|
8
|
+
#import <React/RCTUtils.h>
|
|
9
|
+
|
|
10
|
+
#import "WebRTCModule+RTCPeerConnection.h"
|
|
11
|
+
#import "WebRTCModule.h"
|
|
12
|
+
#import "WebRTCModuleOptions.h"
|
|
13
|
+
#import "WLVAudioDevice.h"
|
|
14
|
+
|
|
15
|
+
@interface WebRTCModule ()
|
|
16
|
+
|
|
17
|
+
@property(nonatomic, strong) RTCPeerConnectionFactory *virtualPeerConnectionFactory;
|
|
18
|
+
|
|
19
|
+
@end
|
|
20
|
+
|
|
21
|
+
@implementation WebRTCModule
|
|
22
|
+
|
|
23
|
+
+ (BOOL)requiresMainQueueSetup {
|
|
24
|
+
return NO;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
- (void)dealloc {
|
|
28
|
+
[_localTracks removeAllObjects];
|
|
29
|
+
_localTracks = nil;
|
|
30
|
+
[_audioRenderers removeAllObjects];
|
|
31
|
+
_audioRenderers = nil;
|
|
32
|
+
[_localStreams removeAllObjects];
|
|
33
|
+
_localStreams = nil;
|
|
34
|
+
|
|
35
|
+
for (NSNumber *peerConnectionId in _peerConnections) {
|
|
36
|
+
RTCPeerConnection *peerConnection = _peerConnections[peerConnectionId];
|
|
37
|
+
peerConnection.delegate = nil;
|
|
38
|
+
[peerConnection close];
|
|
39
|
+
}
|
|
40
|
+
[_peerConnections removeAllObjects];
|
|
41
|
+
|
|
42
|
+
_peerConnectionFactory = nil;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
- (instancetype)init {
|
|
46
|
+
self = [super init];
|
|
47
|
+
if (self) {
|
|
48
|
+
WebRTCModuleOptions *options = [WebRTCModuleOptions sharedInstance];
|
|
49
|
+
id<RTCAudioDevice> audioDevice = options.audioDevice;
|
|
50
|
+
id<RTCVideoDecoderFactory> decoderFactory = options.videoDecoderFactory;
|
|
51
|
+
id<RTCVideoEncoderFactory> encoderFactory = options.videoEncoderFactory;
|
|
52
|
+
id<RTCAudioProcessingModule> audioProcessingModule = options.audioProcessingModule;
|
|
53
|
+
NSDictionary *fieldTrials = options.fieldTrials;
|
|
54
|
+
RTCLoggingSeverity loggingSeverity = options.loggingSeverity;
|
|
55
|
+
|
|
56
|
+
// Initialize field trials.
|
|
57
|
+
if (fieldTrials == nil) {
|
|
58
|
+
// Fix for dual-sim connectivity:
|
|
59
|
+
// https://bugs.chromium.org/p/webrtc/issues/detail?id=10966
|
|
60
|
+
fieldTrials = @{kRTCFieldTrialUseNWPathMonitor : kRTCFieldTrialEnabledValue};
|
|
61
|
+
}
|
|
62
|
+
RTCInitFieldTrialDictionary(fieldTrials);
|
|
63
|
+
|
|
64
|
+
// Initialize logging.
|
|
65
|
+
RTCSetMinDebugLogLevel(loggingSeverity);
|
|
66
|
+
|
|
67
|
+
if (encoderFactory == nil) {
|
|
68
|
+
encoderFactory = [[RTCDefaultVideoEncoderFactory alloc] init];
|
|
69
|
+
}
|
|
70
|
+
if (decoderFactory == nil) {
|
|
71
|
+
decoderFactory = [[RTCDefaultVideoDecoderFactory alloc] init];
|
|
72
|
+
}
|
|
73
|
+
_encoderFactory = encoderFactory;
|
|
74
|
+
_decoderFactory = decoderFactory;
|
|
75
|
+
|
|
76
|
+
RCTLogInfo(@"Using video encoder factory: %@", NSStringFromClass([encoderFactory class]));
|
|
77
|
+
RCTLogInfo(@"Using video decoder factory: %@", NSStringFromClass([decoderFactory class]));
|
|
78
|
+
|
|
79
|
+
if (audioProcessingModule != nil) {
|
|
80
|
+
if (audioDevice != nil) {
|
|
81
|
+
NSLog(@"Both audioProcessingModule and audioDevice are provided, but only one can be used. Ignoring "
|
|
82
|
+
@"audioDevice.");
|
|
83
|
+
}
|
|
84
|
+
RCTLogInfo(@"Using audio processing module: %@", NSStringFromClass([audioProcessingModule class]));
|
|
85
|
+
_peerConnectionFactory =
|
|
86
|
+
[[RTCPeerConnectionFactory alloc] initWithAudioDeviceModuleType:RTCAudioDeviceModuleTypeAudioEngine
|
|
87
|
+
bypassVoiceProcessing:NO
|
|
88
|
+
encoderFactory:encoderFactory
|
|
89
|
+
decoderFactory:decoderFactory
|
|
90
|
+
audioProcessingModule:audioProcessingModule];
|
|
91
|
+
} else {
|
|
92
|
+
RCTLogInfo(@"Using audio device: %@", NSStringFromClass([audioDevice class]));
|
|
93
|
+
_peerConnectionFactory = [[RTCPeerConnectionFactory alloc] initWithEncoderFactory:encoderFactory
|
|
94
|
+
decoderFactory:decoderFactory
|
|
95
|
+
audioDevice:audioDevice];
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
_peerConnections = [NSMutableDictionary new];
|
|
99
|
+
_localStreams = [NSMutableDictionary new];
|
|
100
|
+
_localTracks = [NSMutableDictionary new];
|
|
101
|
+
_audioRenderers = [NSMutableDictionary new];
|
|
102
|
+
|
|
103
|
+
_frameCryptors = [NSMutableDictionary new];
|
|
104
|
+
_keyProviders = [NSMutableDictionary new];
|
|
105
|
+
_dataPacketCryptors = [NSMutableDictionary new];
|
|
106
|
+
|
|
107
|
+
dispatch_queue_attr_t attributes =
|
|
108
|
+
dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, QOS_CLASS_USER_INITIATED, -1);
|
|
109
|
+
_workerQueue = dispatch_queue_create("WebRTCModule.queue", attributes);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return self;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
- (RTCMediaStream *)streamForReactTag:(NSString *)reactTag {
|
|
116
|
+
RTCMediaStream *stream = _localStreams[reactTag];
|
|
117
|
+
if (!stream) {
|
|
118
|
+
for (NSNumber *peerConnectionId in _peerConnections) {
|
|
119
|
+
RTCPeerConnection *peerConnection = _peerConnections[peerConnectionId];
|
|
120
|
+
stream = peerConnection.remoteStreams[reactTag];
|
|
121
|
+
if (stream) {
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return stream;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
RCT_EXPORT_MODULE();
|
|
130
|
+
|
|
131
|
+
- (dispatch_queue_t)methodQueue {
|
|
132
|
+
return _workerQueue;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
- (RTCPeerConnectionFactory *)virtualFactory {
|
|
136
|
+
if (_virtualPeerConnectionFactory == nil) {
|
|
137
|
+
self.virtualAudioDevice = [[WLVAudioDevice alloc] init];
|
|
138
|
+
_virtualPeerConnectionFactory = [[RTCPeerConnectionFactory alloc] initWithEncoderFactory:_encoderFactory
|
|
139
|
+
decoderFactory:_decoderFactory
|
|
140
|
+
audioDevice:self.virtualAudioDevice];
|
|
141
|
+
}
|
|
142
|
+
return _virtualPeerConnectionFactory;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
- (NSArray<NSString *> *)supportedEvents {
|
|
146
|
+
return @[
|
|
147
|
+
kEventPeerConnectionSignalingStateChanged,
|
|
148
|
+
kEventPeerConnectionStateChanged,
|
|
149
|
+
kEventPeerConnectionOnRenegotiationNeeded,
|
|
150
|
+
kEventPeerConnectionIceConnectionChanged,
|
|
151
|
+
kEventPeerConnectionIceGatheringChanged,
|
|
152
|
+
kEventPeerConnectionGotICECandidate,
|
|
153
|
+
kEventPeerConnectionDidOpenDataChannel,
|
|
154
|
+
kEventDataChannelDidChangeBufferedAmount,
|
|
155
|
+
kEventDataChannelStateChanged,
|
|
156
|
+
kEventDataChannelReceiveMessage,
|
|
157
|
+
kEventMediaStreamTrackMuteChanged,
|
|
158
|
+
kEventMediaStreamTrackEnded,
|
|
159
|
+
kEventPeerConnectionOnRemoveTrack,
|
|
160
|
+
kEventPeerConnectionOnTrack,
|
|
161
|
+
kEventFrameCryptionStateChanged,
|
|
162
|
+
kEventPalabraTranscription,
|
|
163
|
+
kEventPalabraConnectionState,
|
|
164
|
+
kEventPalabraError,
|
|
165
|
+
kEventAudioSamples
|
|
166
|
+
];
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
@end
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
#import <Foundation/Foundation.h>
|
|
2
|
-
#import <WebRTC/WebRTC.h>
|
|
3
|
-
|
|
4
|
-
NS_ASSUME_NONNULL_BEGIN
|
|
5
|
-
|
|
6
|
-
@interface WebRTCModuleOptions : NSObject
|
|
7
|
-
|
|
8
|
-
@property(nonatomic, strong, nullable) id<RTCVideoDecoderFactory> videoDecoderFactory;
|
|
9
|
-
@property(nonatomic, strong, nullable) id<RTCVideoEncoderFactory> videoEncoderFactory;
|
|
10
|
-
@property(nonatomic, strong, nullable) id<RTCAudioDevice> audioDevice;
|
|
11
|
-
@property(nonatomic, strong, nullable) id<RTCAudioProcessingModule> audioProcessingModule;
|
|
12
|
-
@property(nonatomic, strong, nullable) NSDictionary *fieldTrials;
|
|
13
|
-
@property(nonatomic, assign) RTCLoggingSeverity loggingSeverity;
|
|
14
|
-
@property(nonatomic, assign) BOOL enableMultitaskingCameraAccess;
|
|
15
|
-
|
|
16
|
-
@property(nonatomic, assign) double defaultTrackVolume;
|
|
17
|
-
|
|
18
|
-
#pragma mark - This class is a singleton
|
|
19
|
-
|
|
20
|
-
+ (instancetype _Nonnull)sharedInstance;
|
|
21
|
-
|
|
22
|
-
@end
|
|
23
|
-
|
|
24
|
-
NS_ASSUME_NONNULL_END
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
#import <WebRTC/WebRTC.h>
|
|
3
|
+
|
|
4
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
5
|
+
|
|
6
|
+
@interface WebRTCModuleOptions : NSObject
|
|
7
|
+
|
|
8
|
+
@property(nonatomic, strong, nullable) id<RTCVideoDecoderFactory> videoDecoderFactory;
|
|
9
|
+
@property(nonatomic, strong, nullable) id<RTCVideoEncoderFactory> videoEncoderFactory;
|
|
10
|
+
@property(nonatomic, strong, nullable) id<RTCAudioDevice> audioDevice;
|
|
11
|
+
@property(nonatomic, strong, nullable) id<RTCAudioProcessingModule> audioProcessingModule;
|
|
12
|
+
@property(nonatomic, strong, nullable) NSDictionary *fieldTrials;
|
|
13
|
+
@property(nonatomic, assign) RTCLoggingSeverity loggingSeverity;
|
|
14
|
+
@property(nonatomic, assign) BOOL enableMultitaskingCameraAccess;
|
|
15
|
+
|
|
16
|
+
@property(nonatomic, assign) double defaultTrackVolume;
|
|
17
|
+
|
|
18
|
+
#pragma mark - This class is a singleton
|
|
19
|
+
|
|
20
|
+
+ (instancetype _Nonnull)sharedInstance;
|
|
21
|
+
|
|
22
|
+
@end
|
|
23
|
+
|
|
24
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
#import "WebRTCModuleOptions.h"
|
|
2
|
-
|
|
3
|
-
@implementation WebRTCModuleOptions
|
|
4
|
-
|
|
5
|
-
#pragma mark - This class is a singleton
|
|
6
|
-
|
|
7
|
-
+ (instancetype)sharedInstance {
|
|
8
|
-
static WebRTCModuleOptions *sharedInstance = nil;
|
|
9
|
-
static dispatch_once_t onceToken;
|
|
10
|
-
|
|
11
|
-
dispatch_once(&onceToken, ^{
|
|
12
|
-
sharedInstance = [[self alloc] init];
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
return sharedInstance;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
- (instancetype)init {
|
|
19
|
-
if (self = [super init]) {
|
|
20
|
-
self.audioDevice = nil;
|
|
21
|
-
self.fieldTrials = nil;
|
|
22
|
-
self.videoEncoderFactory = nil;
|
|
23
|
-
self.videoDecoderFactory = nil;
|
|
24
|
-
self.loggingSeverity = RTCLoggingSeverityNone;
|
|
25
|
-
self.defaultTrackVolume = 1.0;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return self;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@end
|
|
1
|
+
#import "WebRTCModuleOptions.h"
|
|
2
|
+
|
|
3
|
+
@implementation WebRTCModuleOptions
|
|
4
|
+
|
|
5
|
+
#pragma mark - This class is a singleton
|
|
6
|
+
|
|
7
|
+
+ (instancetype)sharedInstance {
|
|
8
|
+
static WebRTCModuleOptions *sharedInstance = nil;
|
|
9
|
+
static dispatch_once_t onceToken;
|
|
10
|
+
|
|
11
|
+
dispatch_once(&onceToken, ^{
|
|
12
|
+
sharedInstance = [[self alloc] init];
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
return sharedInstance;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
- (instancetype)init {
|
|
19
|
+
if (self = [super init]) {
|
|
20
|
+
self.audioDevice = nil;
|
|
21
|
+
self.fieldTrials = nil;
|
|
22
|
+
self.videoEncoderFactory = nil;
|
|
23
|
+
self.videoDecoderFactory = nil;
|
|
24
|
+
self.loggingSeverity = RTCLoggingSeverityNone;
|
|
25
|
+
self.defaultTrackVolume = 1.0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return self;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
#import "VideoFrameProcessor.h"
|
|
2
|
-
|
|
3
|
-
@interface ProcessorProvider : NSObject
|
|
4
|
-
|
|
5
|
-
+ (NSObject<VideoFrameProcessorDelegate> *)getProcessor:(NSString *)name;
|
|
6
|
-
+ (void)addProcessor:(NSObject<VideoFrameProcessorDelegate> *)processor forName:(NSString *)name;
|
|
7
|
-
+ (void)removeProcessor:(NSString *)name;
|
|
8
|
-
|
|
9
|
-
@end
|
|
1
|
+
#import "VideoFrameProcessor.h"
|
|
2
|
+
|
|
3
|
+
@interface ProcessorProvider : NSObject
|
|
4
|
+
|
|
5
|
+
+ (NSObject<VideoFrameProcessorDelegate> *)getProcessor:(NSString *)name;
|
|
6
|
+
+ (void)addProcessor:(NSObject<VideoFrameProcessorDelegate> *)processor forName:(NSString *)name;
|
|
7
|
+
+ (void)removeProcessor:(NSString *)name;
|
|
8
|
+
|
|
9
|
+
@end
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
#import "ProcessorProvider.h"
|
|
2
|
-
|
|
3
|
-
@implementation ProcessorProvider
|
|
4
|
-
|
|
5
|
-
static NSMutableDictionary<NSString *, NSObject<VideoFrameProcessorDelegate> *> *processorMap;
|
|
6
|
-
|
|
7
|
-
+ (void)initialize {
|
|
8
|
-
processorMap = [[NSMutableDictionary alloc] init];
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
+ (NSObject<VideoFrameProcessorDelegate> *)getProcessor:(NSString *)name {
|
|
12
|
-
return [processorMap objectForKey:name];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
+ (void)addProcessor:(NSObject<VideoFrameProcessorDelegate> *)processor forName:(NSString *)name {
|
|
16
|
-
[processorMap setObject:processor forKey:name];
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
+ (void)removeProcessor:(NSString *)name {
|
|
20
|
-
[processorMap removeObjectForKey:name];
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
@end
|
|
1
|
+
#import "ProcessorProvider.h"
|
|
2
|
+
|
|
3
|
+
@implementation ProcessorProvider
|
|
4
|
+
|
|
5
|
+
static NSMutableDictionary<NSString *, NSObject<VideoFrameProcessorDelegate> *> *processorMap;
|
|
6
|
+
|
|
7
|
+
+ (void)initialize {
|
|
8
|
+
processorMap = [[NSMutableDictionary alloc] init];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
+ (NSObject<VideoFrameProcessorDelegate> *)getProcessor:(NSString *)name {
|
|
12
|
+
return [processorMap objectForKey:name];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
+ (void)addProcessor:(NSObject<VideoFrameProcessorDelegate> *)processor forName:(NSString *)name {
|
|
16
|
+
[processorMap setObject:processor forKey:name];
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
+ (void)removeProcessor:(NSString *)name {
|
|
20
|
+
[processorMap removeObjectForKey:name];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@end
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
#import <WebRTC/RTCVideoSource.h>
|
|
2
|
-
|
|
3
|
-
#import "VideoFrameProcessor.h"
|
|
4
|
-
|
|
5
|
-
@interface VideoEffectProcessor : NSObject<RTCVideoCapturerDelegate>
|
|
6
|
-
|
|
7
|
-
@property(nonatomic, strong) NSArray<NSObject<VideoFrameProcessorDelegate> *> *videoFrameProcessors;
|
|
8
|
-
@property(nonatomic, strong) RTCVideoSource *videoSource;
|
|
9
|
-
|
|
10
|
-
- (instancetype)initWithProcessors:(NSArray<NSObject<VideoFrameProcessorDelegate> *> *)videoFrameProcessors
|
|
11
|
-
videoSource:(RTCVideoSource *)videoSource;
|
|
12
|
-
|
|
13
|
-
@end
|
|
1
|
+
#import <WebRTC/RTCVideoSource.h>
|
|
2
|
+
|
|
3
|
+
#import "VideoFrameProcessor.h"
|
|
4
|
+
|
|
5
|
+
@interface VideoEffectProcessor : NSObject<RTCVideoCapturerDelegate>
|
|
6
|
+
|
|
7
|
+
@property(nonatomic, strong) NSArray<NSObject<VideoFrameProcessorDelegate> *> *videoFrameProcessors;
|
|
8
|
+
@property(nonatomic, strong) RTCVideoSource *videoSource;
|
|
9
|
+
|
|
10
|
+
- (instancetype)initWithProcessors:(NSArray<NSObject<VideoFrameProcessorDelegate> *> *)videoFrameProcessors
|
|
11
|
+
videoSource:(RTCVideoSource *)videoSource;
|
|
12
|
+
|
|
13
|
+
@end
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
#import <WebRTC/RTCVideoCapturer.h>
|
|
2
|
-
|
|
3
|
-
#import "VideoEffectProcessor.h"
|
|
4
|
-
|
|
5
|
-
@implementation VideoEffectProcessor
|
|
6
|
-
|
|
7
|
-
- (instancetype)initWithProcessors:(NSArray<NSObject<VideoFrameProcessorDelegate> *> *)videoFrameProcessors
|
|
8
|
-
videoSource:(RTCVideoSource *)videoSource {
|
|
9
|
-
self = [super init];
|
|
10
|
-
_videoFrameProcessors = videoFrameProcessors;
|
|
11
|
-
_videoSource = videoSource;
|
|
12
|
-
return self;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
- (void)capturer:(nonnull RTCVideoCapturer *)capturer didCaptureVideoFrame:(nonnull RTCVideoFrame *)frame {
|
|
16
|
-
RTCVideoFrame *processedFrame = frame;
|
|
17
|
-
for (NSObject<VideoFrameProcessorDelegate> *processor in _videoFrameProcessors) {
|
|
18
|
-
processedFrame = [processor capturer:capturer didCaptureVideoFrame:processedFrame];
|
|
19
|
-
}
|
|
20
|
-
[self.videoSource capturer:capturer didCaptureVideoFrame:processedFrame];
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
@end
|
|
1
|
+
#import <WebRTC/RTCVideoCapturer.h>
|
|
2
|
+
|
|
3
|
+
#import "VideoEffectProcessor.h"
|
|
4
|
+
|
|
5
|
+
@implementation VideoEffectProcessor
|
|
6
|
+
|
|
7
|
+
- (instancetype)initWithProcessors:(NSArray<NSObject<VideoFrameProcessorDelegate> *> *)videoFrameProcessors
|
|
8
|
+
videoSource:(RTCVideoSource *)videoSource {
|
|
9
|
+
self = [super init];
|
|
10
|
+
_videoFrameProcessors = videoFrameProcessors;
|
|
11
|
+
_videoSource = videoSource;
|
|
12
|
+
return self;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
- (void)capturer:(nonnull RTCVideoCapturer *)capturer didCaptureVideoFrame:(nonnull RTCVideoFrame *)frame {
|
|
16
|
+
RTCVideoFrame *processedFrame = frame;
|
|
17
|
+
for (NSObject<VideoFrameProcessorDelegate> *processor in _videoFrameProcessors) {
|
|
18
|
+
processedFrame = [processor capturer:capturer didCaptureVideoFrame:processedFrame];
|
|
19
|
+
}
|
|
20
|
+
[self.videoSource capturer:capturer didCaptureVideoFrame:processedFrame];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#import <WebRTC/RTCVideoCapturer.h>
|
|
2
|
-
#import <WebRTC/RTCVideoFrame.h>
|
|
3
|
-
|
|
4
|
-
@protocol VideoFrameProcessorDelegate
|
|
5
|
-
|
|
6
|
-
- (RTCVideoFrame *)capturer:(RTCVideoCapturer *)capturer didCaptureVideoFrame:(RTCVideoFrame *)frame;
|
|
7
|
-
|
|
8
|
-
@end
|
|
1
|
+
#import <WebRTC/RTCVideoCapturer.h>
|
|
2
|
+
#import <WebRTC/RTCVideoFrame.h>
|
|
3
|
+
|
|
4
|
+
@protocol VideoFrameProcessorDelegate
|
|
5
|
+
|
|
6
|
+
- (RTCVideoFrame *)capturer:(RTCVideoCapturer *)capturer didCaptureVideoFrame:(RTCVideoFrame *)frame;
|
|
7
|
+
|
|
8
|
+
@end
|