@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
package/src/Permissions.ts
CHANGED
|
@@ -1,133 +1,133 @@
|
|
|
1
|
-
|
|
2
|
-
import { NativeModules, Permission, PermissionsAndroid, Platform } from 'react-native';
|
|
3
|
-
|
|
4
|
-
const { WebRTCModule } = NativeModules;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Type declaration for a permissions descriptor.
|
|
8
|
-
*/
|
|
9
|
-
type PermissionDescriptor = {
|
|
10
|
-
name: string;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Class implementing a subset of W3C's Permissions API as defined by:
|
|
15
|
-
* https://www.w3.org/TR/permissions/
|
|
16
|
-
*/
|
|
17
|
-
class Permissions {
|
|
18
|
-
/**
|
|
19
|
-
* Possible result values for {@link query}, in accordance with:
|
|
20
|
-
* https://www.w3.org/TR/permissions/#status-of-a-permission
|
|
21
|
-
*/
|
|
22
|
-
RESULT = {
|
|
23
|
-
DENIED: 'denied',
|
|
24
|
-
GRANTED: 'granted',
|
|
25
|
-
PROMPT: 'prompt'
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* This implementation only supports requesting these permissions, a subset
|
|
30
|
-
* of: https://www.w3.org/TR/permissions/#permission-registry
|
|
31
|
-
*/
|
|
32
|
-
VALID_PERMISSIONS = [ 'camera', 'microphone' ];
|
|
33
|
-
|
|
34
|
-
_lastReq: Promise<unknown> = Promise.resolve();
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Helper for requesting Android permissions. On Android only one permission
|
|
38
|
-
* can be requested at a time (unless the multi-permission API is used,
|
|
39
|
-
* but we are not using that for symmetry with the W3C API for querying)
|
|
40
|
-
* so we'll queue them up.
|
|
41
|
-
*
|
|
42
|
-
* @param perm - The requested permission from
|
|
43
|
-
* {@link PermissionsAndroid.PERMISSIONS}
|
|
44
|
-
* https://facebook.github.io/react-native/docs/permissionsandroid#permissions-that-require-prompting-the-user
|
|
45
|
-
*/
|
|
46
|
-
_requestPermissionAndroid(perm: Permission) {
|
|
47
|
-
return new Promise(resolve => {
|
|
48
|
-
PermissionsAndroid.request(perm).then(
|
|
49
|
-
granted => resolve(granted === PermissionsAndroid.RESULTS.GRANTED),
|
|
50
|
-
() => resolve(false)
|
|
51
|
-
);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Validates the given permission descriptor.
|
|
57
|
-
*/
|
|
58
|
-
_validatePermissionDescriptior(permissionDesc) {
|
|
59
|
-
if (typeof permissionDesc !== 'object') {
|
|
60
|
-
throw new TypeError('Argument 1 of Permissions.query is not an object.');
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (typeof permissionDesc.name === 'undefined') {
|
|
64
|
-
throw new TypeError('Missing required \'name\' member of PermissionDescriptor.');
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (this.VALID_PERMISSIONS.indexOf(permissionDesc.name) === -1) {
|
|
68
|
-
throw new TypeError(
|
|
69
|
-
'\'name\' member of PermissionDescriptor is not a valid value for enumeration PermissionName.'
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Method for querying the status of a permission, according to:
|
|
76
|
-
* https://www.w3.org/TR/permissions/#permissions-interface
|
|
77
|
-
*/
|
|
78
|
-
query(permissionDesc: PermissionDescriptor) {
|
|
79
|
-
try {
|
|
80
|
-
this._validatePermissionDescriptior(permissionDesc);
|
|
81
|
-
} catch (e) {
|
|
82
|
-
return Promise.reject(e);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (Platform.OS === 'android') {
|
|
86
|
-
const perm =
|
|
87
|
-
permissionDesc.name === 'camera'
|
|
88
|
-
? PermissionsAndroid.PERMISSIONS.CAMERA
|
|
89
|
-
: PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;
|
|
90
|
-
|
|
91
|
-
return new Promise(resolve => {
|
|
92
|
-
PermissionsAndroid.check(perm).then(
|
|
93
|
-
granted => resolve(granted ? this.RESULT.GRANTED : this.RESULT.PROMPT),
|
|
94
|
-
() => resolve(this.RESULT.PROMPT)
|
|
95
|
-
);
|
|
96
|
-
});
|
|
97
|
-
} else if (Platform.OS === 'ios' || Platform.OS === 'macos') {
|
|
98
|
-
return WebRTCModule.checkPermission(permissionDesc.name);
|
|
99
|
-
} else {
|
|
100
|
-
return Promise.reject(new TypeError('Unsupported platform.'));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Custom method NOT defined by W3C's permissions API, which allows the
|
|
106
|
-
* caller to request a permission.
|
|
107
|
-
*/
|
|
108
|
-
request(permissionDesc: PermissionDescriptor) {
|
|
109
|
-
try {
|
|
110
|
-
this._validatePermissionDescriptior(permissionDesc);
|
|
111
|
-
} catch (e) {
|
|
112
|
-
return Promise.reject(e);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
if (Platform.OS === 'android') {
|
|
116
|
-
const perm =
|
|
117
|
-
permissionDesc.name === 'camera'
|
|
118
|
-
? PermissionsAndroid.PERMISSIONS.CAMERA
|
|
119
|
-
: PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;
|
|
120
|
-
const requestPermission = () => this._requestPermissionAndroid(perm);
|
|
121
|
-
|
|
122
|
-
this._lastReq = this._lastReq.then(requestPermission, requestPermission);
|
|
123
|
-
|
|
124
|
-
return this._lastReq;
|
|
125
|
-
} else if (Platform.OS === 'ios' || Platform.OS === 'macos') {
|
|
126
|
-
return WebRTCModule.requestPermission(permissionDesc.name);
|
|
127
|
-
} else {
|
|
128
|
-
return Promise.reject(new TypeError('Unsupported platform.'));
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
export default new Permissions();
|
|
1
|
+
|
|
2
|
+
import { NativeModules, Permission, PermissionsAndroid, Platform } from 'react-native';
|
|
3
|
+
|
|
4
|
+
const { WebRTCModule } = NativeModules;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Type declaration for a permissions descriptor.
|
|
8
|
+
*/
|
|
9
|
+
type PermissionDescriptor = {
|
|
10
|
+
name: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Class implementing a subset of W3C's Permissions API as defined by:
|
|
15
|
+
* https://www.w3.org/TR/permissions/
|
|
16
|
+
*/
|
|
17
|
+
class Permissions {
|
|
18
|
+
/**
|
|
19
|
+
* Possible result values for {@link query}, in accordance with:
|
|
20
|
+
* https://www.w3.org/TR/permissions/#status-of-a-permission
|
|
21
|
+
*/
|
|
22
|
+
RESULT = {
|
|
23
|
+
DENIED: 'denied',
|
|
24
|
+
GRANTED: 'granted',
|
|
25
|
+
PROMPT: 'prompt'
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* This implementation only supports requesting these permissions, a subset
|
|
30
|
+
* of: https://www.w3.org/TR/permissions/#permission-registry
|
|
31
|
+
*/
|
|
32
|
+
VALID_PERMISSIONS = [ 'camera', 'microphone' ];
|
|
33
|
+
|
|
34
|
+
_lastReq: Promise<unknown> = Promise.resolve();
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Helper for requesting Android permissions. On Android only one permission
|
|
38
|
+
* can be requested at a time (unless the multi-permission API is used,
|
|
39
|
+
* but we are not using that for symmetry with the W3C API for querying)
|
|
40
|
+
* so we'll queue them up.
|
|
41
|
+
*
|
|
42
|
+
* @param perm - The requested permission from
|
|
43
|
+
* {@link PermissionsAndroid.PERMISSIONS}
|
|
44
|
+
* https://facebook.github.io/react-native/docs/permissionsandroid#permissions-that-require-prompting-the-user
|
|
45
|
+
*/
|
|
46
|
+
_requestPermissionAndroid(perm: Permission) {
|
|
47
|
+
return new Promise(resolve => {
|
|
48
|
+
PermissionsAndroid.request(perm).then(
|
|
49
|
+
granted => resolve(granted === PermissionsAndroid.RESULTS.GRANTED),
|
|
50
|
+
() => resolve(false)
|
|
51
|
+
);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Validates the given permission descriptor.
|
|
57
|
+
*/
|
|
58
|
+
_validatePermissionDescriptior(permissionDesc) {
|
|
59
|
+
if (typeof permissionDesc !== 'object') {
|
|
60
|
+
throw new TypeError('Argument 1 of Permissions.query is not an object.');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (typeof permissionDesc.name === 'undefined') {
|
|
64
|
+
throw new TypeError('Missing required \'name\' member of PermissionDescriptor.');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (this.VALID_PERMISSIONS.indexOf(permissionDesc.name) === -1) {
|
|
68
|
+
throw new TypeError(
|
|
69
|
+
'\'name\' member of PermissionDescriptor is not a valid value for enumeration PermissionName.'
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Method for querying the status of a permission, according to:
|
|
76
|
+
* https://www.w3.org/TR/permissions/#permissions-interface
|
|
77
|
+
*/
|
|
78
|
+
query(permissionDesc: PermissionDescriptor) {
|
|
79
|
+
try {
|
|
80
|
+
this._validatePermissionDescriptior(permissionDesc);
|
|
81
|
+
} catch (e) {
|
|
82
|
+
return Promise.reject(e);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (Platform.OS === 'android') {
|
|
86
|
+
const perm =
|
|
87
|
+
permissionDesc.name === 'camera'
|
|
88
|
+
? PermissionsAndroid.PERMISSIONS.CAMERA
|
|
89
|
+
: PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;
|
|
90
|
+
|
|
91
|
+
return new Promise(resolve => {
|
|
92
|
+
PermissionsAndroid.check(perm).then(
|
|
93
|
+
granted => resolve(granted ? this.RESULT.GRANTED : this.RESULT.PROMPT),
|
|
94
|
+
() => resolve(this.RESULT.PROMPT)
|
|
95
|
+
);
|
|
96
|
+
});
|
|
97
|
+
} else if (Platform.OS === 'ios' || Platform.OS === 'macos') {
|
|
98
|
+
return WebRTCModule.checkPermission(permissionDesc.name);
|
|
99
|
+
} else {
|
|
100
|
+
return Promise.reject(new TypeError('Unsupported platform.'));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Custom method NOT defined by W3C's permissions API, which allows the
|
|
106
|
+
* caller to request a permission.
|
|
107
|
+
*/
|
|
108
|
+
request(permissionDesc: PermissionDescriptor) {
|
|
109
|
+
try {
|
|
110
|
+
this._validatePermissionDescriptior(permissionDesc);
|
|
111
|
+
} catch (e) {
|
|
112
|
+
return Promise.reject(e);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (Platform.OS === 'android') {
|
|
116
|
+
const perm =
|
|
117
|
+
permissionDesc.name === 'camera'
|
|
118
|
+
? PermissionsAndroid.PERMISSIONS.CAMERA
|
|
119
|
+
: PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;
|
|
120
|
+
const requestPermission = () => this._requestPermissionAndroid(perm);
|
|
121
|
+
|
|
122
|
+
this._lastReq = this._lastReq.then(requestPermission, requestPermission);
|
|
123
|
+
|
|
124
|
+
return this._lastReq;
|
|
125
|
+
} else if (Platform.OS === 'ios' || Platform.OS === 'macos') {
|
|
126
|
+
return WebRTCModule.requestPermission(permissionDesc.name);
|
|
127
|
+
} else {
|
|
128
|
+
return Promise.reject(new TypeError('Unsupported platform.'));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export default new Permissions();
|
package/src/RTCAudioSession.ts
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { NativeModules, Platform } from 'react-native';
|
|
2
|
-
|
|
3
|
-
const { WebRTCModule } = NativeModules;
|
|
4
|
-
|
|
5
|
-
export default class RTCAudioSession {
|
|
6
|
-
/**
|
|
7
|
-
* To be called when CallKit activates the audio session.
|
|
8
|
-
*/
|
|
9
|
-
static audioSessionDidActivate() {
|
|
10
|
-
// Only valid for iOS
|
|
11
|
-
if (Platform.OS === 'ios') {
|
|
12
|
-
WebRTCModule.audioSessionDidActivate();
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* To be called when CallKit deactivates the audio session.
|
|
18
|
-
*/
|
|
19
|
-
static audioSessionDidDeactivate() {
|
|
20
|
-
// Only valid for iOS
|
|
21
|
-
if (Platform.OS === 'ios') {
|
|
22
|
-
WebRTCModule.audioSessionDidDeactivate();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
1
|
+
import { NativeModules, Platform } from 'react-native';
|
|
2
|
+
|
|
3
|
+
const { WebRTCModule } = NativeModules;
|
|
4
|
+
|
|
5
|
+
export default class RTCAudioSession {
|
|
6
|
+
/**
|
|
7
|
+
* To be called when CallKit activates the audio session.
|
|
8
|
+
*/
|
|
9
|
+
static audioSessionDidActivate() {
|
|
10
|
+
// Only valid for iOS
|
|
11
|
+
if (Platform.OS === 'ios') {
|
|
12
|
+
WebRTCModule.audioSessionDidActivate();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* To be called when CallKit deactivates the audio session.
|
|
18
|
+
*/
|
|
19
|
+
static audioSessionDidDeactivate() {
|
|
20
|
+
// Only valid for iOS
|
|
21
|
+
if (Platform.OS === 'ios') {
|
|
22
|
+
WebRTCModule.audioSessionDidDeactivate();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|