@sbhjt-gr/react-native-webrtc 137.0.2
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 -0
- package/.eslintignore +6 -0
- package/.nvmrc +1 -0
- package/ISSUE_TEMPLATE.md +40 -0
- package/LICENSE +22 -0
- package/README.md +82 -0
- package/android/build.gradle +36 -0
- package/android/consumer-rules.pro +3 -0
- package/android/src/main/AndroidManifest.xml +11 -0
- package/android/src/main/java/com/oney/WebRTCModule/AbstractVideoCaptureController.java +113 -0
- package/android/src/main/java/com/oney/WebRTCModule/CameraCaptureController.java +338 -0
- package/android/src/main/java/com/oney/WebRTCModule/CameraEventsHandler.java +49 -0
- package/android/src/main/java/com/oney/WebRTCModule/DataChannelWrapper.java +99 -0
- package/android/src/main/java/com/oney/WebRTCModule/DataPacketCryptorManager.java +63 -0
- package/android/src/main/java/com/oney/WebRTCModule/DisplayUtils.java +16 -0
- package/android/src/main/java/com/oney/WebRTCModule/EglUtils.java +66 -0
- package/android/src/main/java/com/oney/WebRTCModule/GetUserMediaImpl.java +539 -0
- package/android/src/main/java/com/oney/WebRTCModule/LibraryLoader.java +21 -0
- package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionNotification.java +70 -0
- package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionService.java +82 -0
- package/android/src/main/java/com/oney/WebRTCModule/PeerConnectionObserver.java +588 -0
- package/android/src/main/java/com/oney/WebRTCModule/RTCCryptoManager.java +493 -0
- package/android/src/main/java/com/oney/WebRTCModule/RTCVideoViewManager.java +98 -0
- package/android/src/main/java/com/oney/WebRTCModule/ReactBridgeUtil.java +36 -0
- package/android/src/main/java/com/oney/WebRTCModule/ScreenCaptureController.java +94 -0
- package/android/src/main/java/com/oney/WebRTCModule/SerializeUtils.java +342 -0
- package/android/src/main/java/com/oney/WebRTCModule/StringUtils.java +101 -0
- package/android/src/main/java/com/oney/WebRTCModule/ThreadUtils.java +41 -0
- package/android/src/main/java/com/oney/WebRTCModule/TrackCapturerEventsEmitter.java +34 -0
- package/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java +137 -0
- package/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java +1593 -0
- package/android/src/main/java/com/oney/WebRTCModule/WebRTCModuleOptions.java +33 -0
- package/android/src/main/java/com/oney/WebRTCModule/WebRTCModulePackage.java +21 -0
- package/android/src/main/java/com/oney/WebRTCModule/WebRTCView.java +583 -0
- package/android/src/main/java/com/oney/WebRTCModule/videoEffects/ProcessorProvider.java +38 -0
- package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoEffectProcessor.java +59 -0
- package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessor.java +19 -0
- package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessorFactoryInterface.java +12 -0
- package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoDecoderFactory.java +73 -0
- package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoEncoderFactory.java +73 -0
- package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoDecoderFactoryProxy.java +36 -0
- package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoEncoderFactoryProxy.java +36 -0
- package/android/src/main/java/org/webrtc/Camera1Helper.java +54 -0
- package/android/src/main/java/org/webrtc/Camera2Helper.java +52 -0
- package/android/src/main/res/values/strings.xml +5 -0
- package/android/src/main/res/values/styles.xml +8 -0
- package/apple/.placeholder +0 -0
- package/ios/RCTWebRTC/CaptureController.h +18 -0
- package/ios/RCTWebRTC/CaptureController.m +29 -0
- package/ios/RCTWebRTC/CapturerEventsDelegate.h +12 -0
- package/ios/RCTWebRTC/DataChannelWrapper.h +27 -0
- package/ios/RCTWebRTC/DataChannelWrapper.m +42 -0
- package/ios/RCTWebRTC/I420Converter.h +22 -0
- package/ios/RCTWebRTC/I420Converter.m +164 -0
- package/ios/RCTWebRTC/PIPController.h +24 -0
- package/ios/RCTWebRTC/PIPController.m +234 -0
- package/ios/RCTWebRTC/RCTConvert+WebRTC.h +16 -0
- package/ios/RCTWebRTC/RCTConvert+WebRTC.m +206 -0
- package/ios/RCTWebRTC/RTCMediaStreamTrack+React.h +10 -0
- package/ios/RCTWebRTC/RTCMediaStreamTrack+React.m +16 -0
- package/ios/RCTWebRTC/RTCVideoViewManager.h +29 -0
- package/ios/RCTWebRTC/RTCVideoViewManager.m +411 -0
- package/ios/RCTWebRTC/SampleBufferVideoCallView.h +12 -0
- package/ios/RCTWebRTC/SampleBufferVideoCallView.m +178 -0
- package/ios/RCTWebRTC/ScreenCaptureController.h +20 -0
- package/ios/RCTWebRTC/ScreenCaptureController.m +83 -0
- package/ios/RCTWebRTC/ScreenCapturePickerViewManager.h +7 -0
- package/ios/RCTWebRTC/ScreenCapturePickerViewManager.m +60 -0
- package/ios/RCTWebRTC/ScreenCapturer.h +19 -0
- package/ios/RCTWebRTC/ScreenCapturer.m +264 -0
- package/ios/RCTWebRTC/SerializeUtils.h +28 -0
- package/ios/RCTWebRTC/SerializeUtils.m +314 -0
- package/ios/RCTWebRTC/SocketConnection.h +13 -0
- package/ios/RCTWebRTC/SocketConnection.m +137 -0
- package/ios/RCTWebRTC/TrackCapturerEventsEmitter.h +14 -0
- package/ios/RCTWebRTC/TrackCapturerEventsEmitter.m +37 -0
- package/ios/RCTWebRTC/VideoCaptureController.h +21 -0
- package/ios/RCTWebRTC/VideoCaptureController.m +328 -0
- package/ios/RCTWebRTC/WebRTCModule+Permissions.m +75 -0
- package/ios/RCTWebRTC/WebRTCModule+RTCAudioSession.m +20 -0
- package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.h +14 -0
- package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.m +165 -0
- package/ios/RCTWebRTC/WebRTCModule+RTCFrameCryptor.m +611 -0
- package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.h +14 -0
- package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m +545 -0
- package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.h +24 -0
- package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.m +1004 -0
- package/ios/RCTWebRTC/WebRTCModule+Transceivers.m +267 -0
- package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.h +12 -0
- package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.m +166 -0
- package/ios/RCTWebRTC/WebRTCModule.h +45 -0
- package/ios/RCTWebRTC/WebRTCModule.m +149 -0
- package/ios/RCTWebRTC/WebRTCModuleOptions.h +24 -0
- package/ios/RCTWebRTC/WebRTCModuleOptions.m +31 -0
- package/ios/RCTWebRTC/videoEffects/ProcessorProvider.h +9 -0
- package/ios/RCTWebRTC/videoEffects/ProcessorProvider.m +23 -0
- package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.h +13 -0
- package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.m +23 -0
- package/ios/RCTWebRTC/videoEffects/VideoFrameProcessor.h +8 -0
- package/ios/RCTWebRTC.xcodeproj/project.pbxproj +404 -0
- package/ios/RCTWebRTC.xcworkspace/contents.xcworkspacedata +10 -0
- package/lib/commonjs/Constraints.js +2 -0
- package/lib/commonjs/Constraints.js.map +1 -0
- package/lib/commonjs/EventEmitter.js +69 -0
- package/lib/commonjs/EventEmitter.js.map +1 -0
- package/lib/commonjs/Logger.js +47 -0
- package/lib/commonjs/Logger.js.map +1 -0
- package/lib/commonjs/MediaDevices.js +54 -0
- package/lib/commonjs/MediaDevices.js.map +1 -0
- package/lib/commonjs/MediaStream.js +137 -0
- package/lib/commonjs/MediaStream.js.map +1 -0
- package/lib/commonjs/MediaStreamError.js +19 -0
- package/lib/commonjs/MediaStreamError.js.map +1 -0
- package/lib/commonjs/MediaStreamErrorEvent.js +17 -0
- package/lib/commonjs/MediaStreamErrorEvent.js.map +1 -0
- package/lib/commonjs/MediaStreamTrack.js +239 -0
- package/lib/commonjs/MediaStreamTrack.js.map +1 -0
- package/lib/commonjs/MediaStreamTrackEvent.js +26 -0
- package/lib/commonjs/MediaStreamTrackEvent.js.map +1 -0
- package/lib/commonjs/MessageEvent.js +27 -0
- package/lib/commonjs/MessageEvent.js.map +1 -0
- package/lib/commonjs/Permissions.js +116 -0
- package/lib/commonjs/Permissions.js.map +1 -0
- package/lib/commonjs/RTCAudioSession.js +33 -0
- package/lib/commonjs/RTCAudioSession.js.map +1 -0
- package/lib/commonjs/RTCDataChannel.js +165 -0
- package/lib/commonjs/RTCDataChannel.js.map +1 -0
- package/lib/commonjs/RTCDataChannelEvent.js +26 -0
- package/lib/commonjs/RTCDataChannelEvent.js.map +1 -0
- package/lib/commonjs/RTCDataPacketCryptor.js +76 -0
- package/lib/commonjs/RTCDataPacketCryptor.js.map +1 -0
- package/lib/commonjs/RTCDataPacketCryptorFactory.js +27 -0
- package/lib/commonjs/RTCDataPacketCryptorFactory.js.map +1 -0
- package/lib/commonjs/RTCErrorEvent.js +23 -0
- package/lib/commonjs/RTCErrorEvent.js.map +1 -0
- package/lib/commonjs/RTCFrameCryptor.js +138 -0
- package/lib/commonjs/RTCFrameCryptor.js.map +1 -0
- package/lib/commonjs/RTCFrameCryptorFactory.js +81 -0
- package/lib/commonjs/RTCFrameCryptorFactory.js.map +1 -0
- package/lib/commonjs/RTCIceCandidate.js +34 -0
- package/lib/commonjs/RTCIceCandidate.js.map +1 -0
- package/lib/commonjs/RTCIceCandidateEvent.js +28 -0
- package/lib/commonjs/RTCIceCandidateEvent.js.map +1 -0
- package/lib/commonjs/RTCKeyProvider.js +111 -0
- package/lib/commonjs/RTCKeyProvider.js.map +1 -0
- package/lib/commonjs/RTCPIPView.js +38 -0
- package/lib/commonjs/RTCPIPView.js.map +1 -0
- package/lib/commonjs/RTCPeerConnection.js +694 -0
- package/lib/commonjs/RTCPeerConnection.js.map +1 -0
- package/lib/commonjs/RTCRtcpParameters.js +24 -0
- package/lib/commonjs/RTCRtcpParameters.js.map +1 -0
- package/lib/commonjs/RTCRtpCapabilities.js +22 -0
- package/lib/commonjs/RTCRtpCapabilities.js.map +1 -0
- package/lib/commonjs/RTCRtpCodecCapability.js +19 -0
- package/lib/commonjs/RTCRtpCodecCapability.js.map +1 -0
- package/lib/commonjs/RTCRtpCodecParameters.js +38 -0
- package/lib/commonjs/RTCRtpCodecParameters.js.map +1 -0
- package/lib/commonjs/RTCRtpEncodingParameters.js +78 -0
- package/lib/commonjs/RTCRtpEncodingParameters.js.map +1 -0
- package/lib/commonjs/RTCRtpHeaderExtension.js +27 -0
- package/lib/commonjs/RTCRtpHeaderExtension.js.map +1 -0
- package/lib/commonjs/RTCRtpParameters.js +35 -0
- package/lib/commonjs/RTCRtpParameters.js.map +1 -0
- package/lib/commonjs/RTCRtpReceiveParameters.js +15 -0
- package/lib/commonjs/RTCRtpReceiveParameters.js.map +1 -0
- package/lib/commonjs/RTCRtpReceiver.js +53 -0
- package/lib/commonjs/RTCRtpReceiver.js.map +1 -0
- package/lib/commonjs/RTCRtpSendParameters.js +49 -0
- package/lib/commonjs/RTCRtpSendParameters.js.map +1 -0
- package/lib/commonjs/RTCRtpSender.js +67 -0
- package/lib/commonjs/RTCRtpSender.js.map +1 -0
- package/lib/commonjs/RTCRtpTransceiver.js +81 -0
- package/lib/commonjs/RTCRtpTransceiver.js.map +1 -0
- package/lib/commonjs/RTCSessionDescription.js +33 -0
- package/lib/commonjs/RTCSessionDescription.js.map +1 -0
- package/lib/commonjs/RTCTrackEvent.js +38 -0
- package/lib/commonjs/RTCTrackEvent.js.map +1 -0
- package/lib/commonjs/RTCUtil.js +186 -0
- package/lib/commonjs/RTCUtil.js.map +1 -0
- package/lib/commonjs/RTCView.js +16 -0
- package/lib/commonjs/RTCView.js.map +1 -0
- package/lib/commonjs/ScreenCapturePickerView.js +10 -0
- package/lib/commonjs/ScreenCapturePickerView.js.map +1 -0
- package/lib/commonjs/getDisplayMedia.js +33 -0
- package/lib/commonjs/getDisplayMedia.js.map +1 -0
- package/lib/commonjs/getUserMedia.js +101 -0
- package/lib/commonjs/getUserMedia.js.map +1 -0
- package/lib/commonjs/index.js +224 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/module/Constraints.js +2 -0
- package/lib/module/Constraints.js.map +1 -0
- package/lib/module/EventEmitter.js +58 -0
- package/lib/module/EventEmitter.js.map +1 -0
- package/lib/module/Logger.js +39 -0
- package/lib/module/Logger.js.map +1 -0
- package/lib/module/MediaDevices.js +46 -0
- package/lib/module/MediaDevices.js.map +1 -0
- package/lib/module/MediaStream.js +129 -0
- package/lib/module/MediaStream.js.map +1 -0
- package/lib/module/MediaStreamError.js +12 -0
- package/lib/module/MediaStreamError.js.map +1 -0
- package/lib/module/MediaStreamErrorEvent.js +10 -0
- package/lib/module/MediaStreamErrorEvent.js.map +1 -0
- package/lib/module/MediaStreamTrack.js +231 -0
- package/lib/module/MediaStreamTrack.js.map +1 -0
- package/lib/module/MediaStreamTrackEvent.js +19 -0
- package/lib/module/MediaStreamTrackEvent.js.map +1 -0
- package/lib/module/MessageEvent.js +20 -0
- package/lib/module/MessageEvent.js.map +1 -0
- package/lib/module/Permissions.js +109 -0
- package/lib/module/Permissions.js.map +1 -0
- package/lib/module/RTCAudioSession.js +26 -0
- package/lib/module/RTCAudioSession.js.map +1 -0
- package/lib/module/RTCDataChannel.js +155 -0
- package/lib/module/RTCDataChannel.js.map +1 -0
- package/lib/module/RTCDataChannelEvent.js +19 -0
- package/lib/module/RTCDataChannelEvent.js.map +1 -0
- package/lib/module/RTCDataPacketCryptor.js +66 -0
- package/lib/module/RTCDataPacketCryptor.js.map +1 -0
- package/lib/module/RTCDataPacketCryptorFactory.js +19 -0
- package/lib/module/RTCDataPacketCryptorFactory.js.map +1 -0
- package/lib/module/RTCErrorEvent.js +16 -0
- package/lib/module/RTCErrorEvent.js.map +1 -0
- package/lib/module/RTCFrameCryptor.js +128 -0
- package/lib/module/RTCFrameCryptor.js.map +1 -0
- package/lib/module/RTCFrameCryptorFactory.js +70 -0
- package/lib/module/RTCFrameCryptorFactory.js.map +1 -0
- package/lib/module/RTCIceCandidate.js +27 -0
- package/lib/module/RTCIceCandidate.js.map +1 -0
- package/lib/module/RTCIceCandidateEvent.js +21 -0
- package/lib/module/RTCIceCandidateEvent.js.map +1 -0
- package/lib/module/RTCKeyProvider.js +101 -0
- package/lib/module/RTCKeyProvider.js.map +1 -0
- package/lib/module/RTCPIPView.js +26 -0
- package/lib/module/RTCPIPView.js.map +1 -0
- package/lib/module/RTCPeerConnection.js +684 -0
- package/lib/module/RTCPeerConnection.js.map +1 -0
- package/lib/module/RTCRtcpParameters.js +17 -0
- package/lib/module/RTCRtcpParameters.js.map +1 -0
- package/lib/module/RTCRtpCapabilities.js +15 -0
- package/lib/module/RTCRtpCapabilities.js.map +1 -0
- package/lib/module/RTCRtpCodecCapability.js +12 -0
- package/lib/module/RTCRtpCodecCapability.js.map +1 -0
- package/lib/module/RTCRtpCodecParameters.js +31 -0
- package/lib/module/RTCRtpCodecParameters.js.map +1 -0
- package/lib/module/RTCRtpEncodingParameters.js +71 -0
- package/lib/module/RTCRtpEncodingParameters.js.map +1 -0
- package/lib/module/RTCRtpHeaderExtension.js +20 -0
- package/lib/module/RTCRtpHeaderExtension.js.map +1 -0
- package/lib/module/RTCRtpParameters.js +27 -0
- package/lib/module/RTCRtpParameters.js.map +1 -0
- package/lib/module/RTCRtpReceiveParameters.js +7 -0
- package/lib/module/RTCRtpReceiveParameters.js.map +1 -0
- package/lib/module/RTCRtpReceiver.js +45 -0
- package/lib/module/RTCRtpReceiver.js.map +1 -0
- package/lib/module/RTCRtpSendParameters.js +41 -0
- package/lib/module/RTCRtpSendParameters.js.map +1 -0
- package/lib/module/RTCRtpSender.js +59 -0
- package/lib/module/RTCRtpSender.js.map +1 -0
- package/lib/module/RTCRtpTransceiver.js +74 -0
- package/lib/module/RTCRtpTransceiver.js.map +1 -0
- package/lib/module/RTCSessionDescription.js +26 -0
- package/lib/module/RTCSessionDescription.js.map +1 -0
- package/lib/module/RTCTrackEvent.js +31 -0
- package/lib/module/RTCTrackEvent.js.map +1 -0
- package/lib/module/RTCUtil.js +176 -0
- package/lib/module/RTCUtil.js.map +1 -0
- package/lib/module/RTCView.js +11 -0
- package/lib/module/RTCView.js.map +1 -0
- package/lib/module/ScreenCapturePickerView.js +3 -0
- package/lib/module/ScreenCapturePickerView.js.map +1 -0
- package/lib/module/getDisplayMedia.js +26 -0
- package/lib/module/getDisplayMedia.js.map +1 -0
- package/lib/module/getUserMedia.js +92 -0
- package/lib/module/getUserMedia.js.map +1 -0
- package/lib/module/index.js +60 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/Constraints.d.ts +19 -0
- package/lib/typescript/EventEmitter.d.ts +7 -0
- package/lib/typescript/Logger.d.ts +13 -0
- package/lib/typescript/MediaDevices.d.ts +30 -0
- package/lib/typescript/MediaStream.d.ts +48 -0
- package/lib/typescript/MediaStreamError.d.ts +6 -0
- package/lib/typescript/MediaStreamErrorEvent.d.ts +6 -0
- package/lib/typescript/MediaStreamTrack.d.ts +103 -0
- package/lib/typescript/MediaStreamTrackEvent.d.ts +19 -0
- package/lib/typescript/MessageEvent.d.ts +21 -0
- package/lib/typescript/Permissions.d.ts +55 -0
- package/lib/typescript/RTCAudioSession.d.ts +10 -0
- package/lib/typescript/RTCDataChannel.d.ts +43 -0
- package/lib/typescript/RTCDataChannelEvent.d.ts +19 -0
- package/lib/typescript/RTCDataPacketCryptor.d.ts +12 -0
- package/lib/typescript/RTCDataPacketCryptorFactory.d.ts +6 -0
- package/lib/typescript/RTCErrorEvent.d.ts +12 -0
- package/lib/typescript/RTCFrameCryptor.d.ts +47 -0
- package/lib/typescript/RTCFrameCryptorFactory.d.ts +21 -0
- package/lib/typescript/RTCIceCandidate.d.ts +17 -0
- package/lib/typescript/RTCIceCandidateEvent.d.ts +20 -0
- package/lib/typescript/RTCKeyProvider.d.ts +21 -0
- package/lib/typescript/RTCPIPView.d.ts +15 -0
- package/lib/typescript/RTCPeerConnection.d.ts +117 -0
- package/lib/typescript/RTCRtcpParameters.d.ts +10 -0
- package/lib/typescript/RTCRtpCapabilities.d.ts +9 -0
- package/lib/typescript/RTCRtpCodecCapability.d.ts +7 -0
- package/lib/typescript/RTCRtpCodecParameters.d.ts +16 -0
- package/lib/typescript/RTCRtpEncodingParameters.d.ts +23 -0
- package/lib/typescript/RTCRtpHeaderExtension.d.ts +12 -0
- package/lib/typescript/RTCRtpParameters.d.ts +19 -0
- package/lib/typescript/RTCRtpReceiveParameters.d.ts +4 -0
- package/lib/typescript/RTCRtpReceiver.d.ts +21 -0
- package/lib/typescript/RTCRtpSendParameters.d.ts +20 -0
- package/lib/typescript/RTCRtpSender.d.ts +22 -0
- package/lib/typescript/RTCRtpTransceiver.d.ts +31 -0
- package/lib/typescript/RTCSessionDescription.d.ts +12 -0
- package/lib/typescript/RTCTrackEvent.d.ts +29 -0
- package/lib/typescript/RTCUtil.d.ts +37 -0
- package/lib/typescript/RTCView.d.ts +117 -0
- package/lib/typescript/ScreenCapturePickerView.d.ts +2 -0
- package/lib/typescript/getDisplayMedia.d.ts +2 -0
- package/lib/typescript/getUserMedia.d.ts +7 -0
- package/lib/typescript/index.d.ts +22 -0
- package/livekit-react-native-webrtc.podspec +29 -0
- package/macos/RCTWebRTC.xcodeproj/project.pbxproj +324 -0
- package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/metro.config.js +7 -0
- package/metro.config.macos.js +14 -0
- package/package.json +65 -0
- package/react-native.config.js +11 -0
- package/src/.eslintrc.cjs +67 -0
- package/src/Constraints.ts +21 -0
- package/src/EventEmitter.ts +83 -0
- package/src/Logger.ts +49 -0
- package/src/MediaDevices.ts +53 -0
- package/src/MediaStream.ts +161 -0
- package/src/MediaStreamError.ts +12 -0
- package/src/MediaStreamErrorEvent.ts +11 -0
- package/src/MediaStreamTrack.ts +331 -0
- package/src/MediaStreamTrackEvent.ts +25 -0
- package/src/MessageEvent.ts +26 -0
- package/src/Permissions.ts +133 -0
- package/src/RTCAudioSession.ts +25 -0
- package/src/RTCDataChannel.ts +190 -0
- package/src/RTCDataChannelEvent.ts +28 -0
- package/src/RTCDataPacketCryptor.ts +90 -0
- package/src/RTCDataPacketCryptorFactory.ts +25 -0
- package/src/RTCErrorEvent.ts +21 -0
- package/src/RTCFrameCryptor.ts +163 -0
- package/src/RTCFrameCryptorFactory.ts +102 -0
- package/src/RTCIceCandidate.ts +29 -0
- package/src/RTCIceCandidateEvent.ts +26 -0
- package/src/RTCKeyProvider.ts +117 -0
- package/src/RTCPIPView.tsx +47 -0
- package/src/RTCPeerConnection.ts +832 -0
- package/src/RTCRtcpParameters.ts +23 -0
- package/src/RTCRtpCapabilities.ts +16 -0
- package/src/RTCRtpCodecCapability.ts +13 -0
- package/src/RTCRtpCodecParameters.ts +44 -0
- package/src/RTCRtpEncodingParameters.ts +90 -0
- package/src/RTCRtpHeaderExtension.ts +27 -0
- package/src/RTCRtpParameters.ts +37 -0
- package/src/RTCRtpReceiveParameters.ts +7 -0
- package/src/RTCRtpReceiver.ts +60 -0
- package/src/RTCRtpSendParameters.ts +63 -0
- package/src/RTCRtpSender.ts +78 -0
- package/src/RTCRtpTransceiver.ts +107 -0
- package/src/RTCSessionDescription.ts +30 -0
- package/src/RTCTrackEvent.ts +42 -0
- package/src/RTCUtil.ts +211 -0
- package/src/RTCView.ts +122 -0
- package/src/ScreenCapturePickerView.ts +4 -0
- package/src/getDisplayMedia.ts +30 -0
- package/src/getUserMedia.ts +111 -0
- package/src/index.ts +101 -0
- package/tools/format.sh +6 -0
- package/tools/release.sh +45 -0
- package/tsconfig.json +16 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { EventTarget, Event } from 'event-target-shim/index';
|
|
2
|
+
import MediaStream from './MediaStream';
|
|
3
|
+
import MediaStreamTrack from './MediaStreamTrack';
|
|
4
|
+
import RTCDataChannel from './RTCDataChannel';
|
|
5
|
+
import RTCDataChannelEvent from './RTCDataChannelEvent';
|
|
6
|
+
import RTCIceCandidateEvent from './RTCIceCandidateEvent';
|
|
7
|
+
import RTCRtpReceiver from './RTCRtpReceiver';
|
|
8
|
+
import RTCRtpSender from './RTCRtpSender';
|
|
9
|
+
import RTCRtpTransceiver from './RTCRtpTransceiver';
|
|
10
|
+
import RTCSessionDescription, { RTCSessionDescriptionInit } from './RTCSessionDescription';
|
|
11
|
+
import RTCTrackEvent from './RTCTrackEvent';
|
|
12
|
+
import { RTCOfferOptions } from './RTCUtil';
|
|
13
|
+
declare type RTCSignalingState = 'stable' | 'have-local-offer' | 'have-remote-offer' | 'have-local-pranswer' | 'have-remote-pranswer' | 'closed';
|
|
14
|
+
declare type RTCIceGatheringState = 'new' | 'gathering' | 'complete';
|
|
15
|
+
declare type RTCPeerConnectionState = 'new' | 'connecting' | 'connected' | 'disconnected' | 'failed' | 'closed';
|
|
16
|
+
declare type RTCIceConnectionState = 'new' | 'checking' | 'connected' | 'completed' | 'failed' | 'disconnected' | 'closed';
|
|
17
|
+
declare type RTCDataChannelInit = {
|
|
18
|
+
ordered?: boolean;
|
|
19
|
+
maxPacketLifeTime?: number;
|
|
20
|
+
maxRetransmits?: number;
|
|
21
|
+
protocol?: string;
|
|
22
|
+
negotiated?: boolean;
|
|
23
|
+
id?: number;
|
|
24
|
+
};
|
|
25
|
+
declare type RTCIceServer = {
|
|
26
|
+
credential?: string;
|
|
27
|
+
url?: string;
|
|
28
|
+
urls?: string | string[];
|
|
29
|
+
username?: string;
|
|
30
|
+
};
|
|
31
|
+
declare type RTCConfiguration = {
|
|
32
|
+
bundlePolicy?: 'balanced' | 'max-compat' | 'max-bundle';
|
|
33
|
+
iceCandidatePoolSize?: number;
|
|
34
|
+
iceServers?: RTCIceServer[];
|
|
35
|
+
iceTransportPolicy?: 'all' | 'relay';
|
|
36
|
+
rtcpMuxPolicy?: 'negotiate' | 'require';
|
|
37
|
+
};
|
|
38
|
+
declare type RTCPeerConnectionEventMap = {
|
|
39
|
+
connectionstatechange: Event<'connectionstatechange'>;
|
|
40
|
+
icecandidate: RTCIceCandidateEvent<'icecandidate'>;
|
|
41
|
+
icecandidateerror: RTCIceCandidateEvent<'icecandidateerror'>;
|
|
42
|
+
iceconnectionstatechange: Event<'iceconnectionstatechange'>;
|
|
43
|
+
icegatheringstatechange: Event<'icegatheringstatechange'>;
|
|
44
|
+
negotiationneeded: Event<'negotiationneeded'>;
|
|
45
|
+
signalingstatechange: Event<'signalingstatechange'>;
|
|
46
|
+
datachannel: RTCDataChannelEvent<'datachannel'>;
|
|
47
|
+
track: RTCTrackEvent<'track'>;
|
|
48
|
+
error: Event<'error'>;
|
|
49
|
+
};
|
|
50
|
+
export default class RTCPeerConnection extends EventTarget<RTCPeerConnectionEventMap> {
|
|
51
|
+
localDescription: RTCSessionDescription | null;
|
|
52
|
+
remoteDescription: RTCSessionDescription | null;
|
|
53
|
+
signalingState: RTCSignalingState;
|
|
54
|
+
iceGatheringState: RTCIceGatheringState;
|
|
55
|
+
connectionState: RTCPeerConnectionState;
|
|
56
|
+
iceConnectionState: RTCIceConnectionState;
|
|
57
|
+
_pcId: number;
|
|
58
|
+
_transceivers: {
|
|
59
|
+
order: number;
|
|
60
|
+
transceiver: RTCRtpTransceiver;
|
|
61
|
+
}[];
|
|
62
|
+
_remoteStreams: Map<string, MediaStream>;
|
|
63
|
+
_pendingTrackEvents: any[];
|
|
64
|
+
constructor(configuration?: RTCConfiguration);
|
|
65
|
+
createOffer(options?: RTCOfferOptions): Promise<any>;
|
|
66
|
+
createAnswer(): Promise<any>;
|
|
67
|
+
setConfiguration(configuration: any): void;
|
|
68
|
+
setLocalDescription(sessionDescription?: RTCSessionDescription | RTCSessionDescriptionInit): Promise<void>;
|
|
69
|
+
setRemoteDescription(sessionDescription: RTCSessionDescription | RTCSessionDescriptionInit): Promise<void>;
|
|
70
|
+
addIceCandidate(candidate: any): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* @brief Adds a new track to the {@link RTCPeerConnection},
|
|
73
|
+
* and indicates that it is contained in the specified {@link MediaStream}s.
|
|
74
|
+
* This method has to be synchronous as the W3C API expects a track to be returned
|
|
75
|
+
* @param {MediaStreamTrack} track The track to be added
|
|
76
|
+
* @param {...MediaStream} streams One or more {@link MediaStream}s the track needs to be added to
|
|
77
|
+
* https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack
|
|
78
|
+
*/
|
|
79
|
+
addTrack(track: MediaStreamTrack, ...streams: MediaStream[]): RTCRtpSender;
|
|
80
|
+
addTransceiver(source: 'audio' | 'video' | MediaStreamTrack, init: any): RTCRtpTransceiver;
|
|
81
|
+
removeTrack(sender: RTCRtpSender): void;
|
|
82
|
+
getStats(selector?: MediaStreamTrack): Promise<any>;
|
|
83
|
+
getTransceivers(): RTCRtpTransceiver[];
|
|
84
|
+
getSenders(): RTCRtpSender[];
|
|
85
|
+
getReceivers(): RTCRtpReceiver[];
|
|
86
|
+
close(): void;
|
|
87
|
+
restartIce(): void;
|
|
88
|
+
_registerEvents(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Creates a new RTCDataChannel object with the given label. The
|
|
91
|
+
* RTCDataChannelInit dictionary can be used to configure properties of the
|
|
92
|
+
* underlying channel such as data reliability.
|
|
93
|
+
*
|
|
94
|
+
* @param {string} label - the value with which the label attribute of the new
|
|
95
|
+
* instance is to be initialized
|
|
96
|
+
* @param {RTCDataChannelInit} dataChannelDict - an optional dictionary of
|
|
97
|
+
* values with which to initialize corresponding attributes of the new
|
|
98
|
+
* instance such as id
|
|
99
|
+
*/
|
|
100
|
+
createDataChannel(label: string, dataChannelDict?: RTCDataChannelInit): RTCDataChannel;
|
|
101
|
+
/**
|
|
102
|
+
* Check whether a media stream track exists already in a sender.
|
|
103
|
+
* See https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack for more information
|
|
104
|
+
*/
|
|
105
|
+
_trackExists(track: MediaStreamTrack): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Updates transceivers after offer/answer updates if necessary.
|
|
108
|
+
*/
|
|
109
|
+
_updateTransceivers(transceiverUpdates: any, removeStopped?: boolean): void;
|
|
110
|
+
/**
|
|
111
|
+
* Inserts transceiver into the transceiver array in the order they are created (timestamp).
|
|
112
|
+
* @param order an index that refers to when it it was created relatively.
|
|
113
|
+
* @param transceiver the transceiver object to be inserted.
|
|
114
|
+
*/
|
|
115
|
+
_insertTransceiverSorted(order: number, transceiver: RTCRtpTransceiver): void;
|
|
116
|
+
}
|
|
117
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface RTCRtcpParametersInit {
|
|
2
|
+
cname: string;
|
|
3
|
+
reducedSize: boolean;
|
|
4
|
+
}
|
|
5
|
+
export default class RTCRtcpParameters {
|
|
6
|
+
readonly cname: string;
|
|
7
|
+
readonly reducedSize: boolean;
|
|
8
|
+
constructor(init: RTCRtcpParametersInit);
|
|
9
|
+
toJSON(): RTCRtcpParametersInit;
|
|
10
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import RTCRtpCodecCapability from './RTCRtpCodecCapability';
|
|
2
|
+
/**
|
|
3
|
+
* @brief represents codec capabilities for senders and receivers.
|
|
4
|
+
*/
|
|
5
|
+
export default class RTCRtpCapabilities {
|
|
6
|
+
_codecs: RTCRtpCodecCapability[];
|
|
7
|
+
constructor(codecs: RTCRtpCodecCapability[]);
|
|
8
|
+
get codecs(): RTCRtpCodecCapability[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface RTCRtpCodecParametersInit {
|
|
2
|
+
payloadType: number;
|
|
3
|
+
clockRate: number;
|
|
4
|
+
mimeType: string;
|
|
5
|
+
channels?: number;
|
|
6
|
+
sdpFmtpLine?: string;
|
|
7
|
+
}
|
|
8
|
+
export default class RTCRtpCodecParameters {
|
|
9
|
+
readonly payloadType: number;
|
|
10
|
+
readonly clockRate: number;
|
|
11
|
+
readonly mimeType: string;
|
|
12
|
+
readonly channels: number | null;
|
|
13
|
+
readonly sdpFmtpLine: string | null;
|
|
14
|
+
constructor(init: RTCRtpCodecParametersInit);
|
|
15
|
+
toJSON(): RTCRtpCodecParametersInit;
|
|
16
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface RTCRtpEncodingParametersInit {
|
|
2
|
+
active: boolean;
|
|
3
|
+
rid?: string;
|
|
4
|
+
maxFramerate?: number;
|
|
5
|
+
maxBitrate?: number;
|
|
6
|
+
scaleResolutionDownBy?: number;
|
|
7
|
+
}
|
|
8
|
+
export default class RTCRtpEncodingParameters {
|
|
9
|
+
active: boolean;
|
|
10
|
+
_rid: string | null;
|
|
11
|
+
_maxFramerate: number | null;
|
|
12
|
+
_maxBitrate: number | null;
|
|
13
|
+
_scaleResolutionDownBy: number | null;
|
|
14
|
+
constructor(init: RTCRtpEncodingParametersInit);
|
|
15
|
+
get rid(): string | null;
|
|
16
|
+
get maxFramerate(): number | null;
|
|
17
|
+
set maxFramerate(framerate: number | null);
|
|
18
|
+
get maxBitrate(): number | null;
|
|
19
|
+
set maxBitrate(bitrate: number | null);
|
|
20
|
+
get scaleResolutionDownBy(): number | null;
|
|
21
|
+
set scaleResolutionDownBy(resolutionScale: number | null);
|
|
22
|
+
toJSON(): RTCRtpEncodingParametersInit;
|
|
23
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface RTCRtpHeaderExtensionInit {
|
|
2
|
+
id: number;
|
|
3
|
+
uri: string;
|
|
4
|
+
encrypted: boolean;
|
|
5
|
+
}
|
|
6
|
+
export default class RTCRtpHeaderExtension {
|
|
7
|
+
readonly id: number;
|
|
8
|
+
readonly uri: string;
|
|
9
|
+
readonly encrypted: boolean;
|
|
10
|
+
constructor(init: RTCRtpHeaderExtensionInit);
|
|
11
|
+
toJSON(): RTCRtpHeaderExtensionInit;
|
|
12
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import RTCRtcpParameters, { RTCRtcpParametersInit } from './RTCRtcpParameters';
|
|
2
|
+
import RTCRtpCodecParameters, { RTCRtpCodecParametersInit } from './RTCRtpCodecParameters';
|
|
3
|
+
import RTCRtpHeaderExtension, { RTCRtpHeaderExtensionInit } from './RTCRtpHeaderExtension';
|
|
4
|
+
export interface RTCRtpParametersInit {
|
|
5
|
+
codecs: RTCRtpCodecParametersInit[];
|
|
6
|
+
headerExtensions: RTCRtpHeaderExtensionInit[];
|
|
7
|
+
rtcp: RTCRtcpParametersInit;
|
|
8
|
+
}
|
|
9
|
+
export default class RTCRtpParameters {
|
|
10
|
+
codecs: (RTCRtpCodecParameters | RTCRtpCodecParametersInit)[];
|
|
11
|
+
readonly headerExtensions: RTCRtpHeaderExtension[];
|
|
12
|
+
readonly rtcp: RTCRtcpParameters;
|
|
13
|
+
constructor(init: RTCRtpParametersInit);
|
|
14
|
+
toJSON(): {
|
|
15
|
+
codecs: (RTCRtpCodecParametersInit | RTCRtpCodecParameters)[];
|
|
16
|
+
headerExtensions: RTCRtpHeaderExtension[];
|
|
17
|
+
rtcp: RTCRtcpParameters;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import MediaStreamTrack from './MediaStreamTrack';
|
|
2
|
+
import RTCRtpCapabilities from './RTCRtpCapabilities';
|
|
3
|
+
import { RTCRtpParametersInit } from './RTCRtpParameters';
|
|
4
|
+
import RTCRtpReceiveParameters from './RTCRtpReceiveParameters';
|
|
5
|
+
export default class RTCRtpReceiver {
|
|
6
|
+
_id: string;
|
|
7
|
+
_peerConnectionId: number;
|
|
8
|
+
_track: MediaStreamTrack | null;
|
|
9
|
+
_rtpParameters: RTCRtpReceiveParameters;
|
|
10
|
+
constructor(info: {
|
|
11
|
+
peerConnectionId: number;
|
|
12
|
+
id: string;
|
|
13
|
+
track?: MediaStreamTrack;
|
|
14
|
+
rtpParameters: RTCRtpParametersInit;
|
|
15
|
+
});
|
|
16
|
+
static getCapabilities(kind: 'audio' | 'video'): RTCRtpCapabilities;
|
|
17
|
+
getStats(): any;
|
|
18
|
+
getParameters(): RTCRtpReceiveParameters;
|
|
19
|
+
get id(): string;
|
|
20
|
+
get track(): MediaStreamTrack | null;
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import RTCRtpEncodingParameters, { RTCRtpEncodingParametersInit } from './RTCRtpEncodingParameters';
|
|
2
|
+
import RTCRtpParameters, { RTCRtpParametersInit } from './RTCRtpParameters';
|
|
3
|
+
declare type DegradationPreferenceType = 'maintain-framerate' | 'maintain-resolution' | 'balanced' | 'disabled';
|
|
4
|
+
export interface RTCRtpSendParametersInit extends RTCRtpParametersInit {
|
|
5
|
+
transactionId: string;
|
|
6
|
+
encodings: RTCRtpEncodingParametersInit[];
|
|
7
|
+
degradationPreference?: string;
|
|
8
|
+
}
|
|
9
|
+
export default class RTCRtpSendParameters extends RTCRtpParameters {
|
|
10
|
+
readonly transactionId: string;
|
|
11
|
+
encodings: (RTCRtpEncodingParameters | RTCRtpEncodingParametersInit)[];
|
|
12
|
+
degradationPreference: DegradationPreferenceType | null;
|
|
13
|
+
constructor(init: RTCRtpSendParametersInit);
|
|
14
|
+
toJSON(): {
|
|
15
|
+
codecs: (import("./RTCRtpCodecParameters").RTCRtpCodecParametersInit | import("./RTCRtpCodecParameters").default)[];
|
|
16
|
+
headerExtensions: import("./RTCRtpHeaderExtension").default[];
|
|
17
|
+
rtcp: import("./RTCRtcpParameters").default;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import MediaStreamTrack from './MediaStreamTrack';
|
|
2
|
+
import RTCRtpCapabilities from './RTCRtpCapabilities';
|
|
3
|
+
import RTCRtpSendParameters, { RTCRtpSendParametersInit } from './RTCRtpSendParameters';
|
|
4
|
+
export default class RTCRtpSender {
|
|
5
|
+
_id: string;
|
|
6
|
+
_track: MediaStreamTrack | null;
|
|
7
|
+
_peerConnectionId: number;
|
|
8
|
+
_rtpParameters: RTCRtpSendParameters;
|
|
9
|
+
constructor(info: {
|
|
10
|
+
peerConnectionId: number;
|
|
11
|
+
id: string;
|
|
12
|
+
track?: MediaStreamTrack;
|
|
13
|
+
rtpParameters: RTCRtpSendParametersInit;
|
|
14
|
+
});
|
|
15
|
+
replaceTrack(track: MediaStreamTrack | null): Promise<void>;
|
|
16
|
+
static getCapabilities(kind: 'audio' | 'video'): RTCRtpCapabilities;
|
|
17
|
+
getParameters(): RTCRtpSendParameters;
|
|
18
|
+
setParameters(parameters: RTCRtpSendParameters): Promise<void>;
|
|
19
|
+
getStats(): any;
|
|
20
|
+
get track(): MediaStreamTrack | null;
|
|
21
|
+
get id(): string;
|
|
22
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import RTCRtpCodecCapability from './RTCRtpCodecCapability';
|
|
2
|
+
import RTCRtpReceiver from './RTCRtpReceiver';
|
|
3
|
+
import RTCRtpSender from './RTCRtpSender';
|
|
4
|
+
export default class RTCRtpTransceiver {
|
|
5
|
+
_peerConnectionId: number;
|
|
6
|
+
_sender: RTCRtpSender;
|
|
7
|
+
_receiver: RTCRtpReceiver;
|
|
8
|
+
_mid: string | null;
|
|
9
|
+
_direction: string;
|
|
10
|
+
_currentDirection: string;
|
|
11
|
+
_stopped: boolean;
|
|
12
|
+
constructor(args: {
|
|
13
|
+
peerConnectionId: number;
|
|
14
|
+
isStopped: boolean;
|
|
15
|
+
direction: string;
|
|
16
|
+
currentDirection: string;
|
|
17
|
+
mid?: string;
|
|
18
|
+
sender: RTCRtpSender;
|
|
19
|
+
receiver: RTCRtpReceiver;
|
|
20
|
+
});
|
|
21
|
+
get mid(): string | null;
|
|
22
|
+
get stopped(): boolean;
|
|
23
|
+
get direction(): string;
|
|
24
|
+
set direction(val: string);
|
|
25
|
+
get currentDirection(): string;
|
|
26
|
+
get sender(): RTCRtpSender;
|
|
27
|
+
get receiver(): RTCRtpReceiver;
|
|
28
|
+
stop(): void;
|
|
29
|
+
setCodecPreferences(codecs: RTCRtpCodecCapability[]): void;
|
|
30
|
+
_setStopped(): void;
|
|
31
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface RTCSessionDescriptionInit {
|
|
2
|
+
sdp: string;
|
|
3
|
+
type: string | null;
|
|
4
|
+
}
|
|
5
|
+
export default class RTCSessionDescription {
|
|
6
|
+
_sdp: string;
|
|
7
|
+
_type: string | null;
|
|
8
|
+
constructor(info?: RTCSessionDescriptionInit);
|
|
9
|
+
get sdp(): string;
|
|
10
|
+
get type(): string | null;
|
|
11
|
+
toJSON(): RTCSessionDescriptionInit;
|
|
12
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Event } from 'event-target-shim/index';
|
|
2
|
+
import MediaStream from './MediaStream';
|
|
3
|
+
import type MediaStreamTrack from './MediaStreamTrack';
|
|
4
|
+
import RTCRtpReceiver from './RTCRtpReceiver';
|
|
5
|
+
import RTCRtpTransceiver from './RTCRtpTransceiver';
|
|
6
|
+
declare type TRACK_EVENTS = 'track';
|
|
7
|
+
interface IRTCTrackEventInitDict extends Event.EventInit {
|
|
8
|
+
streams: MediaStream[];
|
|
9
|
+
transceiver: RTCRtpTransceiver;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @eventClass
|
|
13
|
+
* This event is fired whenever the Track is changed in PeerConnection.
|
|
14
|
+
* @param {TRACK_EVENTS} type - The type of event.
|
|
15
|
+
* @param {IRTCTrackEventInitDict} eventInitDict - The event init properties.
|
|
16
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/track_event MDN} for details.
|
|
17
|
+
*/
|
|
18
|
+
export default class RTCTrackEvent<TEventType extends TRACK_EVENTS> extends Event<TEventType> {
|
|
19
|
+
/** @eventProperty */
|
|
20
|
+
readonly streams: MediaStream[];
|
|
21
|
+
/** @eventProperty */
|
|
22
|
+
readonly transceiver: RTCRtpTransceiver;
|
|
23
|
+
/** @eventProperty */
|
|
24
|
+
readonly receiver: RTCRtpReceiver | null;
|
|
25
|
+
/** @eventProperty */
|
|
26
|
+
readonly track: MediaStreamTrack | null;
|
|
27
|
+
constructor(type: TEventType, eventInitDict: IRTCTrackEventInitDict);
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare type RTCOfferOptions = {
|
|
2
|
+
iceRestart?: boolean;
|
|
3
|
+
offerToReceiveAudio?: boolean;
|
|
4
|
+
offerToReceiveVideo?: boolean;
|
|
5
|
+
voiceActivityDetection?: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Put together a random string in UUIDv4 format {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
|
|
9
|
+
*
|
|
10
|
+
* @return {String} uuidv4
|
|
11
|
+
*/
|
|
12
|
+
export declare function uniqueID(): string;
|
|
13
|
+
/**
|
|
14
|
+
* Utility for deep cloning an object. Object.assign() only does a shallow copy.
|
|
15
|
+
*
|
|
16
|
+
* @param {Object} obj - object to be cloned
|
|
17
|
+
* @return {Object} cloned obj
|
|
18
|
+
*/
|
|
19
|
+
export declare function deepClone<T>(obj: T): T;
|
|
20
|
+
/**
|
|
21
|
+
* Checks whether an SDP type is valid or not.
|
|
22
|
+
*
|
|
23
|
+
* @param type SDP type to check.
|
|
24
|
+
* @returns Whether the SDP type is valid or not.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isSdpTypeValid(type: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Normalize options passed to createOffer().
|
|
29
|
+
*
|
|
30
|
+
* @param options - user supplied options
|
|
31
|
+
* @return Normalized options
|
|
32
|
+
*/
|
|
33
|
+
export declare function normalizeOfferOptions(options?: RTCOfferOptions): Record<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Normalize the given constraints in something we can work with.
|
|
36
|
+
*/
|
|
37
|
+
export declare function normalizeConstraints(constraints: any): any;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { ViewProps } from 'react-native';
|
|
2
|
+
/**
|
|
3
|
+
* Native prop validation was removed from RN in:
|
|
4
|
+
* https://github.com/facebook/react-native/commit/8dc3ba0444c94d9bbb66295b5af885bff9b9cd34
|
|
5
|
+
*
|
|
6
|
+
* So we list them here for documentation purposes.
|
|
7
|
+
*/
|
|
8
|
+
export interface RTCVideoViewProps extends ViewProps {
|
|
9
|
+
/**
|
|
10
|
+
* Indicates whether the video specified by {@link #streamURL} should be
|
|
11
|
+
* mirrored during rendering. Commonly, applications choose to mirror the
|
|
12
|
+
* user-facing camera.
|
|
13
|
+
*
|
|
14
|
+
* mirror: boolean
|
|
15
|
+
*/
|
|
16
|
+
mirror?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* In the fashion of
|
|
19
|
+
* https://www.w3.org/TR/html5/embedded-content-0.html#dom-video-videowidth
|
|
20
|
+
* and https://www.w3.org/TR/html5/rendering.html#video-object-fit,
|
|
21
|
+
* resembles the CSS style object-fit.
|
|
22
|
+
*
|
|
23
|
+
* objectFit: 'contain' | 'cover'
|
|
24
|
+
*
|
|
25
|
+
* Defaults to 'cover'.
|
|
26
|
+
*/
|
|
27
|
+
objectFit?: 'contain' | 'cover';
|
|
28
|
+
/**
|
|
29
|
+
* URL / id of the stream that should be rendered.
|
|
30
|
+
*
|
|
31
|
+
* streamURL: string
|
|
32
|
+
*/
|
|
33
|
+
streamURL?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Similarly to the CSS property z-index, specifies the z-order of this
|
|
36
|
+
* RTCView in the stacking space of all RTCViews. When RTCViews overlap,
|
|
37
|
+
* zOrder determines which one covers the other. An RTCView with a larger
|
|
38
|
+
* zOrder generally covers an RTCView with a lower one.
|
|
39
|
+
*
|
|
40
|
+
* Non-overlapping RTCViews may safely share a z-order (because one does not
|
|
41
|
+
* have to cover the other).
|
|
42
|
+
*
|
|
43
|
+
* The support for zOrder is platform-dependent and/or
|
|
44
|
+
* implementation-specific. Thus, specifying a value for zOrder is to be
|
|
45
|
+
* thought of as giving a hint rather than as imposing a requirement. For
|
|
46
|
+
* example, video renderers such as RTCView are commonly implemented using
|
|
47
|
+
* OpenGL and OpenGL views may have different numbers of layers in their
|
|
48
|
+
* stacking space. Android has three: a layer bellow the window (aka
|
|
49
|
+
* default), a layer bellow the window again but above the previous layer
|
|
50
|
+
* (aka media overlay), and above the window. Consequently, it is advisable
|
|
51
|
+
* to limit the number of utilized layers in the stacking space to the
|
|
52
|
+
* minimum sufficient for the desired display. For example, a video call
|
|
53
|
+
* application usually needs a maximum of two zOrder values: 0 for the
|
|
54
|
+
* remote video(s) which appear in the background, and 1 for the local
|
|
55
|
+
* video(s) which appear above the remote video(s).
|
|
56
|
+
*
|
|
57
|
+
* zOrder: number
|
|
58
|
+
*/
|
|
59
|
+
zOrder?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Picture in picture options for this view. Disabled if not supplied.
|
|
62
|
+
*
|
|
63
|
+
* Note: this should only be generally only used with remote video tracks,
|
|
64
|
+
* as the local camera may stop while in the background.
|
|
65
|
+
*
|
|
66
|
+
* iOS only. Requires iOS 15.0 or above, and the PIP background mode capability.
|
|
67
|
+
*/
|
|
68
|
+
iosPIP?: RTCIOSPIPOptions;
|
|
69
|
+
/**
|
|
70
|
+
* Callback function that is called when the dimensions of the video change.
|
|
71
|
+
*
|
|
72
|
+
* @param {Object} event - The event object containing the new dimensions.
|
|
73
|
+
* @param {Object} event.nativeEvent - The native event data.
|
|
74
|
+
* @param {number} event.nativeEvent.width - The width of the video.
|
|
75
|
+
* @param {number} event.nativeEvent.height - The height of the video.
|
|
76
|
+
*/
|
|
77
|
+
onDimensionsChange?: (event: {
|
|
78
|
+
nativeEvent: {
|
|
79
|
+
width: number;
|
|
80
|
+
height: number;
|
|
81
|
+
};
|
|
82
|
+
}) => void;
|
|
83
|
+
}
|
|
84
|
+
export interface RTCIOSPIPOptions {
|
|
85
|
+
/**
|
|
86
|
+
* Whether PIP can be launched from this view.
|
|
87
|
+
*
|
|
88
|
+
* Defaults to true.
|
|
89
|
+
*/
|
|
90
|
+
enabled?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* The preferred size of the PIP window.
|
|
93
|
+
*/
|
|
94
|
+
preferredSize?: {
|
|
95
|
+
width: number;
|
|
96
|
+
height: number;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Indicates whether Picture in Picture starts automatically
|
|
100
|
+
* when the controller embeds its content inline and the app
|
|
101
|
+
* transitions to the background.
|
|
102
|
+
*
|
|
103
|
+
* Defaults to true.
|
|
104
|
+
*
|
|
105
|
+
* See: AVPictureInPictureController.canStartPictureInPictureAutomaticallyFromInline
|
|
106
|
+
*/
|
|
107
|
+
startAutomatically?: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Indicates whether Picture in Picture should stop automatically
|
|
110
|
+
* when the app returns to the foreground.
|
|
111
|
+
*
|
|
112
|
+
* Defaults to true.
|
|
113
|
+
*/
|
|
114
|
+
stopAutomatically?: boolean;
|
|
115
|
+
}
|
|
116
|
+
declare const _default: import("react-native").HostComponent<RTCVideoViewProps>;
|
|
117
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MediaTrackConstraints } from './Constraints';
|
|
2
|
+
import MediaStream from './MediaStream';
|
|
3
|
+
export interface Constraints {
|
|
4
|
+
audio?: boolean | MediaTrackConstraints;
|
|
5
|
+
video?: boolean | MediaTrackConstraints;
|
|
6
|
+
}
|
|
7
|
+
export default function getUserMedia(constraints?: Constraints): Promise<MediaStream>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import mediaDevices from './MediaDevices';
|
|
2
|
+
import MediaStream from './MediaStream';
|
|
3
|
+
import MediaStreamTrack, { type MediaTrackSettings } from './MediaStreamTrack';
|
|
4
|
+
import permissions from './Permissions';
|
|
5
|
+
import RTCAudioSession from './RTCAudioSession';
|
|
6
|
+
import RTCDataPacketCryptor, { RTCEncryptedPacket } from './RTCDataPacketCryptor';
|
|
7
|
+
import RTCDataPacketCryptorFactory from './RTCDataPacketCryptorFactory';
|
|
8
|
+
import RTCErrorEvent from './RTCErrorEvent';
|
|
9
|
+
import RTCFrameCryptor, { RTCFrameCryptorState } from './RTCFrameCryptor';
|
|
10
|
+
import RTCFrameCryptorFactory, { RTCFrameCryptorAlgorithm, RTCKeyProviderOptions } from './RTCFrameCryptorFactory';
|
|
11
|
+
import RTCIceCandidate from './RTCIceCandidate';
|
|
12
|
+
import RTCKeyProvider from './RTCKeyProvider';
|
|
13
|
+
import RTCPIPView, { startIOSPIP, stopIOSPIP } from './RTCPIPView';
|
|
14
|
+
import RTCPeerConnection from './RTCPeerConnection';
|
|
15
|
+
import RTCRtpReceiver from './RTCRtpReceiver';
|
|
16
|
+
import RTCRtpSender from './RTCRtpSender';
|
|
17
|
+
import RTCRtpTransceiver from './RTCRtpTransceiver';
|
|
18
|
+
import RTCSessionDescription from './RTCSessionDescription';
|
|
19
|
+
import RTCView, { type RTCVideoViewProps, type RTCIOSPIPOptions } from './RTCView';
|
|
20
|
+
import ScreenCapturePickerView from './ScreenCapturePickerView';
|
|
21
|
+
export { RTCIceCandidate, RTCPeerConnection, RTCSessionDescription, RTCView, RTCPIPView, ScreenCapturePickerView, RTCRtpTransceiver, RTCRtpReceiver, RTCRtpSender, RTCErrorEvent, RTCAudioSession, RTCDataPacketCryptor, RTCDataPacketCryptorFactory, RTCEncryptedPacket, RTCFrameCryptor, RTCFrameCryptorAlgorithm, RTCFrameCryptorState, RTCFrameCryptorFactory, RTCKeyProvider, RTCKeyProviderOptions, MediaStream, MediaStreamTrack, type MediaTrackSettings, type RTCVideoViewProps, type RTCIOSPIPOptions, mediaDevices, permissions, registerGlobals, startIOSPIP, stopIOSPIP, };
|
|
22
|
+
declare function registerGlobals(): void;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'json'
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
|
|
4
|
+
|
|
5
|
+
Pod::Spec.new do |s|
|
|
6
|
+
s.name = 'livekit-react-native-webrtc'
|
|
7
|
+
s.version = package['version']
|
|
8
|
+
s.summary = package['description']
|
|
9
|
+
s.homepage = 'https://github.com/sbhjt-gr/react-native-webrtc'
|
|
10
|
+
s.license = package['license']
|
|
11
|
+
s.author = 'https://github.com/sbhjt-gr/react-native-webrtc/graphs/contributors'
|
|
12
|
+
s.source = { :git => 'git@github.com:sbhjt-gr/react-native-webrtc.git', :tag => 'release #{s.version}' }
|
|
13
|
+
s.requires_arc = true
|
|
14
|
+
|
|
15
|
+
s.platforms = { :ios => '12.0', :osx => '10.13', :tvos => '16.0' }
|
|
16
|
+
|
|
17
|
+
s.preserve_paths = 'ios/**/*'
|
|
18
|
+
s.source_files = 'ios/**/*.{h,m}'
|
|
19
|
+
s.libraries = 'c', 'sqlite3', 'stdc++'
|
|
20
|
+
s.framework = 'AudioToolbox','AVFoundation', 'CoreAudio', 'CoreGraphics', 'CoreVideo', 'GLKit', 'VideoToolbox'
|
|
21
|
+
s.dependency 'React-Core'
|
|
22
|
+
s.dependency 'WebRTC-SDK', '=137.7151.09'
|
|
23
|
+
|
|
24
|
+
# Swift/Objective-C compatibility
|
|
25
|
+
s.pod_target_xcconfig = {
|
|
26
|
+
'DEFINES_MODULE' => 'YES'
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
end
|