@sbhjt-gr/react-native-webrtc 124.0.3 → 124.0.4

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.
Files changed (361) hide show
  1. package/.clang-format +11 -11
  2. package/.eslintignore +6 -6
  3. package/.nvmrc +1 -1
  4. package/ISSUE_TEMPLATE.md +40 -40
  5. package/LICENSE +22 -22
  6. package/README.md +103 -103
  7. package/android/build.gradle +37 -37
  8. package/android/consumer-rules.pro +3 -3
  9. package/android/src/main/AndroidManifest.xml +11 -11
  10. package/android/src/main/java/com/oney/WebRTCModule/AbstractVideoCaptureController.java +113 -113
  11. package/android/src/main/java/com/oney/WebRTCModule/CameraCaptureController.java +338 -338
  12. package/android/src/main/java/com/oney/WebRTCModule/CameraEventsHandler.java +49 -49
  13. package/android/src/main/java/com/oney/WebRTCModule/DataChannelWrapper.java +99 -99
  14. package/android/src/main/java/com/oney/WebRTCModule/DataPacketCryptorManager.java +62 -62
  15. package/android/src/main/java/com/oney/WebRTCModule/DisplayUtils.java +16 -16
  16. package/android/src/main/java/com/oney/WebRTCModule/EglUtils.java +66 -66
  17. package/android/src/main/java/com/oney/WebRTCModule/GetUserMediaImpl.java +539 -539
  18. package/android/src/main/java/com/oney/WebRTCModule/LibraryLoader.java +21 -21
  19. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionNotification.java +70 -70
  20. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionService.java +82 -82
  21. package/android/src/main/java/com/oney/WebRTCModule/PeerConnectionObserver.java +588 -588
  22. package/android/src/main/java/com/oney/WebRTCModule/RTCCryptoManager.java +493 -493
  23. package/android/src/main/java/com/oney/WebRTCModule/RTCVideoViewManager.java +98 -98
  24. package/android/src/main/java/com/oney/WebRTCModule/ReactBridgeUtil.java +35 -35
  25. package/android/src/main/java/com/oney/WebRTCModule/ScreenCaptureController.java +94 -94
  26. package/android/src/main/java/com/oney/WebRTCModule/SerializeUtils.java +342 -342
  27. package/android/src/main/java/com/oney/WebRTCModule/StringUtils.java +100 -100
  28. package/android/src/main/java/com/oney/WebRTCModule/ThreadUtils.java +41 -41
  29. package/android/src/main/java/com/oney/WebRTCModule/TrackCapturerEventsEmitter.java +34 -34
  30. package/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java +137 -137
  31. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java +1649 -1643
  32. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModuleOptions.java +33 -33
  33. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModulePackage.java +21 -21
  34. package/android/src/main/java/com/oney/WebRTCModule/WebRTCView.java +583 -583
  35. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraClient.java +529 -501
  36. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraConfig.java +17 -17
  37. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraListener.java +7 -7
  38. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/ProcessorProvider.java +38 -38
  39. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoEffectProcessor.java +59 -59
  40. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessor.java +19 -19
  41. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessorFactoryInterface.java +12 -12
  42. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoDecoderFactory.java +73 -73
  43. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoEncoderFactory.java +73 -73
  44. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoDecoderFactoryProxy.java +36 -36
  45. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoEncoderFactoryProxy.java +36 -36
  46. package/android/src/main/java/org/webrtc/Camera1Helper.java +54 -54
  47. package/android/src/main/java/org/webrtc/Camera2Helper.java +52 -52
  48. package/android/src/main/res/values/strings.xml +5 -5
  49. package/android/src/main/res/values/styles.xml +8 -8
  50. package/ios/RCTWebRTC/CaptureController.h +18 -18
  51. package/ios/RCTWebRTC/CaptureController.m +28 -28
  52. package/ios/RCTWebRTC/CapturerEventsDelegate.h +12 -12
  53. package/ios/RCTWebRTC/DataChannelWrapper.h +27 -27
  54. package/ios/RCTWebRTC/DataChannelWrapper.m +42 -42
  55. package/ios/RCTWebRTC/I420Converter.h +22 -22
  56. package/ios/RCTWebRTC/I420Converter.m +164 -164
  57. package/ios/RCTWebRTC/PIPController.h +24 -24
  58. package/ios/RCTWebRTC/PIPController.m +234 -234
  59. package/ios/RCTWebRTC/PalabraAudioSink.h +13 -13
  60. package/ios/RCTWebRTC/PalabraAudioSink.m +18 -18
  61. package/ios/RCTWebRTC/PalabraClient.h +42 -36
  62. package/ios/RCTWebRTC/PalabraClient.m +680 -644
  63. package/ios/RCTWebRTC/RCTConvert+WebRTC.h +16 -16
  64. package/ios/RCTWebRTC/RCTConvert+WebRTC.m +206 -206
  65. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.h +10 -10
  66. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.m +16 -16
  67. package/ios/RCTWebRTC/RTCVideoViewManager.h +29 -29
  68. package/ios/RCTWebRTC/RTCVideoViewManager.m +411 -411
  69. package/ios/RCTWebRTC/SampleBufferVideoCallView.h +12 -12
  70. package/ios/RCTWebRTC/SampleBufferVideoCallView.m +178 -178
  71. package/ios/RCTWebRTC/ScreenCaptureController.h +20 -20
  72. package/ios/RCTWebRTC/ScreenCaptureController.m +82 -82
  73. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.h +7 -7
  74. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.m +59 -59
  75. package/ios/RCTWebRTC/ScreenCapturer.h +19 -19
  76. package/ios/RCTWebRTC/ScreenCapturer.m +263 -263
  77. package/ios/RCTWebRTC/SerializeUtils.h +28 -28
  78. package/ios/RCTWebRTC/SerializeUtils.m +314 -314
  79. package/ios/RCTWebRTC/SocketConnection.h +13 -13
  80. package/ios/RCTWebRTC/SocketConnection.m +137 -137
  81. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.h +14 -14
  82. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.m +36 -36
  83. package/ios/RCTWebRTC/VideoCaptureController.h +21 -21
  84. package/ios/RCTWebRTC/VideoCaptureController.m +328 -328
  85. package/ios/RCTWebRTC/WLVAudioDevice.h +12 -12
  86. package/ios/RCTWebRTC/WLVAudioDevice.m +137 -137
  87. package/ios/RCTWebRTC/WebRTCModule+Palabra.h +4 -4
  88. package/ios/RCTWebRTC/WebRTCModule+Palabra.m +92 -83
  89. package/ios/RCTWebRTC/WebRTCModule+Permissions.m +75 -75
  90. package/ios/RCTWebRTC/WebRTCModule+RTCAudioSession.m +20 -20
  91. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.h +14 -14
  92. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.m +165 -165
  93. package/ios/RCTWebRTC/WebRTCModule+RTCFrameCryptor.m +611 -611
  94. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.h +13 -13
  95. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m +728 -728
  96. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.h +24 -24
  97. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.m +1004 -1004
  98. package/ios/RCTWebRTC/WebRTCModule+Transceivers.m +267 -267
  99. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.h +12 -12
  100. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.m +166 -166
  101. package/ios/RCTWebRTC/WebRTCModule.h +58 -58
  102. package/ios/RCTWebRTC/WebRTCModule.m +169 -169
  103. package/ios/RCTWebRTC/WebRTCModuleOptions.h +24 -24
  104. package/ios/RCTWebRTC/WebRTCModuleOptions.m +31 -31
  105. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.h +9 -9
  106. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.m +23 -23
  107. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.h +13 -13
  108. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.m +23 -23
  109. package/ios/RCTWebRTC/videoEffects/VideoFrameProcessor.h +8 -8
  110. package/ios/RCTWebRTC.xcodeproj/project.pbxproj +404 -404
  111. package/ios/RCTWebRTC.xcworkspace/contents.xcworkspacedata +10 -10
  112. package/lib/commonjs/Constraints.js.map +1 -1
  113. package/lib/commonjs/EventEmitter.js.map +1 -1
  114. package/lib/commonjs/Logger.js.map +1 -1
  115. package/lib/commonjs/MediaDevices.js +17 -17
  116. package/lib/commonjs/MediaDevices.js.map +1 -1
  117. package/lib/commonjs/MediaStream.js +19 -19
  118. package/lib/commonjs/MediaStream.js.map +1 -1
  119. package/lib/commonjs/MediaStreamError.js.map +1 -1
  120. package/lib/commonjs/MediaStreamErrorEvent.js.map +1 -1
  121. package/lib/commonjs/MediaStreamTrack.js +28 -28
  122. package/lib/commonjs/MediaStreamTrack.js.map +1 -1
  123. package/lib/commonjs/MediaStreamTrackEvent.js +6 -6
  124. package/lib/commonjs/MediaStreamTrackEvent.js.map +1 -1
  125. package/lib/commonjs/MessageEvent.js +7 -7
  126. package/lib/commonjs/MessageEvent.js.map +1 -1
  127. package/lib/commonjs/Permissions.js +28 -28
  128. package/lib/commonjs/Permissions.js.map +1 -1
  129. package/lib/commonjs/RTCAudioSession.js +4 -4
  130. package/lib/commonjs/RTCAudioSession.js.map +1 -1
  131. package/lib/commonjs/RTCDataChannel.js +2 -2
  132. package/lib/commonjs/RTCDataChannel.js.map +1 -1
  133. package/lib/commonjs/RTCDataChannelEvent.js +6 -6
  134. package/lib/commonjs/RTCDataChannelEvent.js.map +1 -1
  135. package/lib/commonjs/RTCDataPacketCryptor.js.map +1 -1
  136. package/lib/commonjs/RTCDataPacketCryptorFactory.js.map +1 -1
  137. package/lib/commonjs/RTCErrorEvent.js +3 -3
  138. package/lib/commonjs/RTCErrorEvent.js.map +1 -1
  139. package/lib/commonjs/RTCFrameCryptor.js +8 -8
  140. package/lib/commonjs/RTCFrameCryptor.js.map +1 -1
  141. package/lib/commonjs/RTCFrameCryptorFactory.js.map +1 -1
  142. package/lib/commonjs/RTCIceCandidate.js.map +1 -1
  143. package/lib/commonjs/RTCIceCandidateEvent.js +7 -7
  144. package/lib/commonjs/RTCIceCandidateEvent.js.map +1 -1
  145. package/lib/commonjs/RTCKeyProvider.js.map +1 -1
  146. package/lib/commonjs/RTCPIPView.js +2 -2
  147. package/lib/commonjs/RTCPIPView.js.map +1 -1
  148. package/lib/commonjs/RTCPIPView.web.js.map +1 -1
  149. package/lib/commonjs/RTCPeerConnection.js +36 -36
  150. package/lib/commonjs/RTCPeerConnection.js.map +1 -1
  151. package/lib/commonjs/RTCRtcpParameters.js.map +1 -1
  152. package/lib/commonjs/RTCRtpCapabilities.js +2 -2
  153. package/lib/commonjs/RTCRtpCapabilities.js.map +1 -1
  154. package/lib/commonjs/RTCRtpCodecCapability.js.map +1 -1
  155. package/lib/commonjs/RTCRtpCodecParameters.js.map +1 -1
  156. package/lib/commonjs/RTCRtpEncodingParameters.js.map +1 -1
  157. package/lib/commonjs/RTCRtpHeaderExtension.js.map +1 -1
  158. package/lib/commonjs/RTCRtpParameters.js.map +1 -1
  159. package/lib/commonjs/RTCRtpReceiveParameters.js.map +1 -1
  160. package/lib/commonjs/RTCRtpReceiver.js +7 -7
  161. package/lib/commonjs/RTCRtpReceiver.js.map +1 -1
  162. package/lib/commonjs/RTCRtpSendParameters.js +3 -3
  163. package/lib/commonjs/RTCRtpSendParameters.js.map +1 -1
  164. package/lib/commonjs/RTCRtpSender.js +7 -7
  165. package/lib/commonjs/RTCRtpSender.js.map +1 -1
  166. package/lib/commonjs/RTCRtpTransceiver.js.map +1 -1
  167. package/lib/commonjs/RTCSessionDescription.js.map +1 -1
  168. package/lib/commonjs/RTCTrackEvent.js +6 -6
  169. package/lib/commonjs/RTCTrackEvent.js.map +1 -1
  170. package/lib/commonjs/RTCUtil.js +28 -28
  171. package/lib/commonjs/RTCUtil.js.map +1 -1
  172. package/lib/commonjs/RTCView.js +5 -5
  173. package/lib/commonjs/RTCView.js.map +1 -1
  174. package/lib/commonjs/RTCView.web.js.map +1 -1
  175. package/lib/commonjs/ScreenCapturePickerView.js.map +1 -1
  176. package/lib/commonjs/ScreenCapturePickerView.web.js.map +1 -1
  177. package/lib/commonjs/getDisplayMedia.js.map +1 -1
  178. package/lib/commonjs/getUserMedia.js.map +1 -1
  179. package/lib/commonjs/index.js.map +1 -1
  180. package/lib/commonjs/index.web.js.map +1 -1
  181. package/lib/commonjs/webStream.js.map +1 -1
  182. package/lib/module/Constraints.js.map +1 -1
  183. package/lib/module/EventEmitter.js.map +1 -1
  184. package/lib/module/Logger.js.map +1 -1
  185. package/lib/module/MediaDevices.js +17 -17
  186. package/lib/module/MediaDevices.js.map +1 -1
  187. package/lib/module/MediaStream.js +19 -19
  188. package/lib/module/MediaStream.js.map +1 -1
  189. package/lib/module/MediaStreamError.js.map +1 -1
  190. package/lib/module/MediaStreamErrorEvent.js.map +1 -1
  191. package/lib/module/MediaStreamTrack.js +28 -28
  192. package/lib/module/MediaStreamTrack.js.map +1 -1
  193. package/lib/module/MediaStreamTrackEvent.js +6 -6
  194. package/lib/module/MediaStreamTrackEvent.js.map +1 -1
  195. package/lib/module/MessageEvent.js +7 -7
  196. package/lib/module/MessageEvent.js.map +1 -1
  197. package/lib/module/Permissions.js +28 -28
  198. package/lib/module/Permissions.js.map +1 -1
  199. package/lib/module/RTCAudioSession.js +4 -4
  200. package/lib/module/RTCAudioSession.js.map +1 -1
  201. package/lib/module/RTCDataChannel.js +2 -2
  202. package/lib/module/RTCDataChannel.js.map +1 -1
  203. package/lib/module/RTCDataChannelEvent.js +6 -6
  204. package/lib/module/RTCDataChannelEvent.js.map +1 -1
  205. package/lib/module/RTCDataPacketCryptor.js.map +1 -1
  206. package/lib/module/RTCDataPacketCryptorFactory.js.map +1 -1
  207. package/lib/module/RTCErrorEvent.js +3 -3
  208. package/lib/module/RTCErrorEvent.js.map +1 -1
  209. package/lib/module/RTCFrameCryptor.js +8 -8
  210. package/lib/module/RTCFrameCryptor.js.map +1 -1
  211. package/lib/module/RTCFrameCryptorFactory.js.map +1 -1
  212. package/lib/module/RTCIceCandidate.js.map +1 -1
  213. package/lib/module/RTCIceCandidateEvent.js +7 -7
  214. package/lib/module/RTCIceCandidateEvent.js.map +1 -1
  215. package/lib/module/RTCKeyProvider.js.map +1 -1
  216. package/lib/module/RTCPIPView.js +2 -2
  217. package/lib/module/RTCPIPView.js.map +1 -1
  218. package/lib/module/RTCPIPView.web.js.map +1 -1
  219. package/lib/module/RTCPeerConnection.js +36 -36
  220. package/lib/module/RTCPeerConnection.js.map +1 -1
  221. package/lib/module/RTCRtcpParameters.js.map +1 -1
  222. package/lib/module/RTCRtpCapabilities.js +2 -2
  223. package/lib/module/RTCRtpCapabilities.js.map +1 -1
  224. package/lib/module/RTCRtpCodecCapability.js.map +1 -1
  225. package/lib/module/RTCRtpCodecParameters.js.map +1 -1
  226. package/lib/module/RTCRtpEncodingParameters.js.map +1 -1
  227. package/lib/module/RTCRtpHeaderExtension.js.map +1 -1
  228. package/lib/module/RTCRtpParameters.js.map +1 -1
  229. package/lib/module/RTCRtpReceiveParameters.js.map +1 -1
  230. package/lib/module/RTCRtpReceiver.js +7 -7
  231. package/lib/module/RTCRtpReceiver.js.map +1 -1
  232. package/lib/module/RTCRtpSendParameters.js +3 -3
  233. package/lib/module/RTCRtpSendParameters.js.map +1 -1
  234. package/lib/module/RTCRtpSender.js +7 -7
  235. package/lib/module/RTCRtpSender.js.map +1 -1
  236. package/lib/module/RTCRtpTransceiver.js.map +1 -1
  237. package/lib/module/RTCSessionDescription.js.map +1 -1
  238. package/lib/module/RTCTrackEvent.js +6 -6
  239. package/lib/module/RTCTrackEvent.js.map +1 -1
  240. package/lib/module/RTCUtil.js +28 -28
  241. package/lib/module/RTCUtil.js.map +1 -1
  242. package/lib/module/RTCView.js +5 -5
  243. package/lib/module/RTCView.js.map +1 -1
  244. package/lib/module/RTCView.web.js.map +1 -1
  245. package/lib/module/ScreenCapturePickerView.js.map +1 -1
  246. package/lib/module/ScreenCapturePickerView.web.js.map +1 -1
  247. package/lib/module/getDisplayMedia.js.map +1 -1
  248. package/lib/module/getUserMedia.js.map +1 -1
  249. package/lib/module/index.js.map +1 -1
  250. package/lib/module/index.web.js.map +1 -1
  251. package/lib/module/webStream.js.map +1 -1
  252. package/lib/typescript/Constraints.d.ts +19 -19
  253. package/lib/typescript/EventEmitter.d.ts +6 -6
  254. package/lib/typescript/Logger.d.ts +13 -13
  255. package/lib/typescript/MediaDevices.d.ts +30 -30
  256. package/lib/typescript/MediaStream.d.ts +48 -48
  257. package/lib/typescript/MediaStreamError.d.ts +6 -6
  258. package/lib/typescript/MediaStreamErrorEvent.d.ts +6 -6
  259. package/lib/typescript/MediaStreamTrack.d.ts +101 -101
  260. package/lib/typescript/MediaStreamTrackEvent.d.ts +19 -19
  261. package/lib/typescript/MessageEvent.d.ts +20 -20
  262. package/lib/typescript/Permissions.d.ts +55 -55
  263. package/lib/typescript/RTCAudioSession.d.ts +10 -10
  264. package/lib/typescript/RTCDataChannel.d.ts +43 -43
  265. package/lib/typescript/RTCDataChannelEvent.d.ts +19 -19
  266. package/lib/typescript/RTCDataPacketCryptor.d.ts +12 -12
  267. package/lib/typescript/RTCDataPacketCryptorFactory.d.ts +6 -6
  268. package/lib/typescript/RTCErrorEvent.d.ts +12 -12
  269. package/lib/typescript/RTCFrameCryptor.d.ts +47 -47
  270. package/lib/typescript/RTCFrameCryptorFactory.d.ts +21 -21
  271. package/lib/typescript/RTCIceCandidate.d.ts +17 -17
  272. package/lib/typescript/RTCIceCandidateEvent.d.ts +20 -20
  273. package/lib/typescript/RTCKeyProvider.d.ts +21 -21
  274. package/lib/typescript/RTCPIPView.d.ts +15 -15
  275. package/lib/typescript/RTCPIPView.web.d.ts +13 -13
  276. package/lib/typescript/RTCPeerConnection.d.ts +117 -117
  277. package/lib/typescript/RTCRtcpParameters.d.ts +10 -10
  278. package/lib/typescript/RTCRtpCapabilities.d.ts +9 -9
  279. package/lib/typescript/RTCRtpCodecCapability.d.ts +7 -7
  280. package/lib/typescript/RTCRtpCodecParameters.d.ts +16 -16
  281. package/lib/typescript/RTCRtpEncodingParameters.d.ts +23 -23
  282. package/lib/typescript/RTCRtpHeaderExtension.d.ts +12 -12
  283. package/lib/typescript/RTCRtpParameters.d.ts +19 -19
  284. package/lib/typescript/RTCRtpReceiveParameters.d.ts +4 -4
  285. package/lib/typescript/RTCRtpReceiver.d.ts +21 -21
  286. package/lib/typescript/RTCRtpSendParameters.d.ts +20 -20
  287. package/lib/typescript/RTCRtpSender.d.ts +22 -22
  288. package/lib/typescript/RTCRtpTransceiver.d.ts +31 -31
  289. package/lib/typescript/RTCSessionDescription.d.ts +12 -12
  290. package/lib/typescript/RTCTrackEvent.d.ts +29 -29
  291. package/lib/typescript/RTCUtil.d.ts +37 -37
  292. package/lib/typescript/RTCView.d.ts +117 -117
  293. package/lib/typescript/RTCView.web.d.ts +25 -25
  294. package/lib/typescript/ScreenCapturePickerView.d.ts +2 -2
  295. package/lib/typescript/ScreenCapturePickerView.web.d.ts +1 -1
  296. package/lib/typescript/getDisplayMedia.d.ts +2 -2
  297. package/lib/typescript/getUserMedia.d.ts +7 -7
  298. package/lib/typescript/index.d.ts +22 -22
  299. package/lib/typescript/index.web.d.ts +101 -101
  300. package/lib/typescript/webStream.d.ts +3 -3
  301. package/livekit-react-native-webrtc.podspec +29 -29
  302. package/macos/RCTWebRTC.xcodeproj/project.pbxproj +324 -324
  303. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -7
  304. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -8
  305. package/metro.config.js +7 -7
  306. package/metro.config.macos.js +14 -14
  307. package/package.json +66 -66
  308. package/react-native.config.js +11 -11
  309. package/src/.eslintrc.cjs +67 -67
  310. package/src/Constraints.ts +20 -20
  311. package/src/EventEmitter.ts +65 -65
  312. package/src/Logger.ts +49 -49
  313. package/src/MediaDevices.ts +53 -53
  314. package/src/MediaStream.ts +161 -161
  315. package/src/MediaStreamError.ts +12 -12
  316. package/src/MediaStreamErrorEvent.ts +11 -11
  317. package/src/MediaStreamTrack.ts +282 -282
  318. package/src/MediaStreamTrackEvent.ts +25 -25
  319. package/src/MessageEvent.ts +26 -26
  320. package/src/Permissions.ts +133 -133
  321. package/src/RTCAudioSession.ts +25 -25
  322. package/src/RTCDataChannel.ts +190 -190
  323. package/src/RTCDataChannelEvent.ts +28 -28
  324. package/src/RTCDataPacketCryptor.ts +90 -90
  325. package/src/RTCDataPacketCryptorFactory.ts +24 -24
  326. package/src/RTCErrorEvent.ts +20 -20
  327. package/src/RTCFrameCryptor.ts +162 -162
  328. package/src/RTCFrameCryptorFactory.ts +101 -101
  329. package/src/RTCIceCandidate.ts +29 -29
  330. package/src/RTCIceCandidateEvent.ts +26 -26
  331. package/src/RTCKeyProvider.ts +117 -117
  332. package/src/RTCPIPView.tsx +46 -46
  333. package/src/RTCPIPView.web.tsx +18 -18
  334. package/src/RTCPeerConnection.ts +935 -935
  335. package/src/RTCRtcpParameters.ts +23 -23
  336. package/src/RTCRtpCapabilities.ts +16 -16
  337. package/src/RTCRtpCodecCapability.ts +12 -12
  338. package/src/RTCRtpCodecParameters.ts +44 -44
  339. package/src/RTCRtpEncodingParameters.ts +90 -90
  340. package/src/RTCRtpHeaderExtension.ts +27 -27
  341. package/src/RTCRtpParameters.ts +37 -37
  342. package/src/RTCRtpReceiveParameters.ts +7 -7
  343. package/src/RTCRtpReceiver.ts +60 -60
  344. package/src/RTCRtpSendParameters.ts +63 -63
  345. package/src/RTCRtpSender.ts +78 -78
  346. package/src/RTCRtpTransceiver.ts +107 -107
  347. package/src/RTCSessionDescription.ts +30 -30
  348. package/src/RTCTrackEvent.ts +42 -42
  349. package/src/RTCUtil.ts +211 -211
  350. package/src/RTCView.ts +122 -122
  351. package/src/RTCView.web.tsx +80 -80
  352. package/src/ScreenCapturePickerView.ts +4 -4
  353. package/src/ScreenCapturePickerView.web.tsx +3 -3
  354. package/src/getDisplayMedia.ts +30 -30
  355. package/src/getUserMedia.ts +136 -136
  356. package/src/index.ts +107 -107
  357. package/src/index.web.ts +191 -191
  358. package/src/webStream.ts +31 -31
  359. package/tools/format.sh +6 -6
  360. package/tools/release.sh +45 -45
  361. package/tsconfig.json +17 -17
@@ -1,82 +1,82 @@
1
- import React, { useEffect, useMemo, useRef } from 'react';
1
+ import React, { useEffect, useMemo, useRef } from 'react';
2
2
  import { StyleSheet, View, ViewProps } from 'react-native';
3
-
4
- import { getStream } from './webStream';
5
-
6
- export interface RTCVideoViewProps extends ViewProps {
7
- mirror?: boolean;
8
- objectFit?: 'contain' | 'cover';
9
- streamURL?: string;
10
- zOrder?: number;
11
- iosPIP?: RTCIOSPIPOptions;
12
- onDimensionsChange?: (event: { nativeEvent: { width: number; height: number } }) => void;
13
- }
14
-
15
- export interface RTCIOSPIPOptions {
16
- enabled?: boolean;
17
- preferredSize?: {
18
- width: number;
19
- height: number;
20
- };
21
- startAutomatically?: boolean;
22
- stopAutomatically?: boolean;
23
- }
24
-
25
- export default function RTCView({
26
- mirror,
27
- objectFit = 'cover',
28
- streamURL,
29
- style,
30
- onDimensionsChange,
31
- }: RTCVideoViewProps) {
32
- const ref = useRef<HTMLVideoElement | null>(null);
33
- const stream = useMemo(() => getStream(streamURL), [ streamURL ]);
34
-
35
- useEffect(() => {
36
- if (!ref.current) {
37
- return;
38
- }
39
-
40
- ref.current.srcObject = stream;
41
- }, [ stream ]);
42
-
43
- const flatStyle = StyleSheet.flatten(style) as React.CSSProperties | undefined;
44
-
45
- return (
46
- <View style={[ styles.container, style ]}>
47
- {React.createElement('video', {
48
- autoPlay: true,
49
- muted: true,
50
- playsInline: true,
51
- ref,
52
- onLoadedMetadata: (event: Event) => {
3
+
4
+ import { getStream } from './webStream';
5
+
6
+ export interface RTCVideoViewProps extends ViewProps {
7
+ mirror?: boolean;
8
+ objectFit?: 'contain' | 'cover';
9
+ streamURL?: string;
10
+ zOrder?: number;
11
+ iosPIP?: RTCIOSPIPOptions;
12
+ onDimensionsChange?: (event: { nativeEvent: { width: number; height: number } }) => void;
13
+ }
14
+
15
+ export interface RTCIOSPIPOptions {
16
+ enabled?: boolean;
17
+ preferredSize?: {
18
+ width: number;
19
+ height: number;
20
+ };
21
+ startAutomatically?: boolean;
22
+ stopAutomatically?: boolean;
23
+ }
24
+
25
+ export default function RTCView({
26
+ mirror,
27
+ objectFit = 'cover',
28
+ streamURL,
29
+ style,
30
+ onDimensionsChange,
31
+ }: RTCVideoViewProps) {
32
+ const ref = useRef<HTMLVideoElement | null>(null);
33
+ const stream = useMemo(() => getStream(streamURL), [ streamURL ]);
34
+
35
+ useEffect(() => {
36
+ if (!ref.current) {
37
+ return;
38
+ }
39
+
40
+ ref.current.srcObject = stream;
41
+ }, [ stream ]);
42
+
43
+ const flatStyle = StyleSheet.flatten(style) as React.CSSProperties | undefined;
44
+
45
+ return (
46
+ <View style={[ styles.container, style ]}>
47
+ {React.createElement('video', {
48
+ autoPlay: true,
49
+ muted: true,
50
+ playsInline: true,
51
+ ref,
52
+ onLoadedMetadata: (event: Event) => {
53
53
  const target = event.currentTarget as HTMLVideoElement | null;
54
-
55
- if (!target || !onDimensionsChange) {
56
- return;
57
- }
58
-
59
- onDimensionsChange({
60
- nativeEvent: {
61
- width: target.videoWidth,
62
- height: target.videoHeight,
63
- },
64
- });
65
- },
66
- style: {
67
- ...flatStyle,
68
- width: '100%',
69
- height: '100%',
70
- objectFit,
71
- transform: mirror ? 'scaleX(-1)' : undefined,
72
- },
73
- })}
74
- </View>
75
- );
76
- }
77
-
78
- const styles = StyleSheet.create({
79
- container: {
80
- overflow: 'hidden',
81
- },
82
- });
54
+
55
+ if (!target || !onDimensionsChange) {
56
+ return;
57
+ }
58
+
59
+ onDimensionsChange({
60
+ nativeEvent: {
61
+ width: target.videoWidth,
62
+ height: target.videoHeight,
63
+ },
64
+ });
65
+ },
66
+ style: {
67
+ ...flatStyle,
68
+ width: '100%',
69
+ height: '100%',
70
+ objectFit,
71
+ transform: mirror ? 'scaleX(-1)' : undefined,
72
+ },
73
+ })}
74
+ </View>
75
+ );
76
+ }
77
+
78
+ const styles = StyleSheet.create({
79
+ container: {
80
+ overflow: 'hidden',
81
+ },
82
+ });
@@ -1,4 +1,4 @@
1
-
2
- import { requireNativeComponent } from 'react-native';
3
-
4
- export default requireNativeComponent('ScreenCapturePickerView');
1
+
2
+ import { requireNativeComponent } from 'react-native';
3
+
4
+ export default requireNativeComponent('ScreenCapturePickerView');
@@ -1,3 +1,3 @@
1
- export default function ScreenCapturePickerView() {
2
- return null;
3
- }
1
+ export default function ScreenCapturePickerView() {
2
+ return null;
3
+ }
@@ -1,30 +1,30 @@
1
-
2
- import { NativeModules } from 'react-native';
3
-
4
- import MediaStream from './MediaStream';
5
- import MediaStreamError from './MediaStreamError';
6
-
7
- const { WebRTCModule } = NativeModules;
8
-
9
- export default function getDisplayMedia(): Promise<MediaStream> {
10
- return new Promise((resolve, reject) => {
11
- WebRTCModule.getDisplayMedia().then(
12
- data => {
13
- const { streamId, track } = data;
14
-
15
- const info = {
16
- streamId: streamId,
17
- streamReactTag: streamId,
18
- tracks: [ track ]
19
- };
20
-
21
- const stream = new MediaStream(info);
22
-
23
- resolve(stream);
24
- },
25
- error => {
26
- reject(new MediaStreamError(error));
27
- }
28
- );
29
- });
30
- }
1
+
2
+ import { NativeModules } from 'react-native';
3
+
4
+ import MediaStream from './MediaStream';
5
+ import MediaStreamError from './MediaStreamError';
6
+
7
+ const { WebRTCModule } = NativeModules;
8
+
9
+ export default function getDisplayMedia(): Promise<MediaStream> {
10
+ return new Promise((resolve, reject) => {
11
+ WebRTCModule.getDisplayMedia().then(
12
+ data => {
13
+ const { streamId, track } = data;
14
+
15
+ const info = {
16
+ streamId: streamId,
17
+ streamReactTag: streamId,
18
+ tracks: [ track ]
19
+ };
20
+
21
+ const stream = new MediaStream(info);
22
+
23
+ resolve(stream);
24
+ },
25
+ error => {
26
+ reject(new MediaStreamError(error));
27
+ }
28
+ );
29
+ });
30
+ }
@@ -1,136 +1,136 @@
1
-
2
- import { NativeModules } from 'react-native';
3
-
4
-
5
- import { MediaTrackConstraints } from './Constraints';
6
- import MediaStream from './MediaStream';
7
- import MediaStreamError from './MediaStreamError';
8
- import permissions from './Permissions';
9
- import * as RTCUtil from './RTCUtil';
10
-
11
- const { WebRTCModule } = NativeModules;
12
-
13
- export interface Constraints {
14
- audio?: boolean | MediaTrackConstraints;
15
- video?: boolean | MediaTrackConstraints;
16
- }
17
-
18
- export default function getUserMedia(constraints: Constraints = {}): Promise<MediaStream> {
19
- // According to
20
- // https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-getusermedia,
21
- // the constraints argument is a dictionary of type MediaStreamConstraints.
22
- if (typeof constraints !== 'object') {
23
- return Promise.reject(new TypeError('constraints is not a dictionary'));
24
- }
25
-
26
- if (
27
- (typeof constraints.audio === 'undefined' || !constraints.audio) &&
28
- (typeof constraints.video === 'undefined' || !constraints.video)
29
- ) {
30
- return Promise.reject(new TypeError('audio and/or video is required'));
31
- }
32
-
33
- console.log('[RNWebRTC] get_user_media_start', {
34
- audio: !!constraints.audio,
35
- video: !!constraints.video,
36
- });
37
-
38
- // Normalize constraints.
39
- constraints = RTCUtil.normalizeConstraints(constraints);
40
-
41
- // Request required permissions
42
- const reqPermissions: Promise<boolean>[] = [];
43
-
44
- if (constraints.audio) {
45
- console.log('[RNWebRTC] requesting_mic_permission');
46
- reqPermissions.push(permissions.request({ name: 'microphone' }));
47
- } else {
48
- reqPermissions.push(Promise.resolve(false));
49
- }
50
-
51
- if (constraints.video) {
52
- console.log('[RNWebRTC] requesting_camera_permission');
53
- reqPermissions.push(permissions.request({ name: 'camera' }));
54
- } else {
55
- reqPermissions.push(Promise.resolve(false));
56
- }
57
-
58
- const _t0 = Date.now();
59
-
60
- return new Promise((resolve, reject) => {
61
- Promise.all(reqPermissions).then(results => {
62
- const [ audioPerm, videoPerm ] = results;
63
-
64
- console.log('[RNWebRTC] permission_results', { audioPerm, videoPerm });
65
-
66
- // Check permission results and remove unneeded permissions.
67
-
68
- if (!audioPerm && !videoPerm) {
69
- // https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-getusermedia
70
- // step 4
71
- console.log('[RNWebRTC] permission_denied_both');
72
- const error = {
73
- message: 'Permission denied.',
74
- name: 'SecurityError'
75
- };
76
-
77
- reject(new MediaStreamError(error));
78
-
79
- return;
80
- }
81
-
82
- audioPerm || delete constraints.audio;
83
- videoPerm || delete constraints.video;
84
-
85
- const success = (id, tracks) => {
86
- // Store initial constraints.
87
- for (const trackInfo of tracks) {
88
- const c = constraints[trackInfo.kind];
89
-
90
- if (typeof c === 'object') {
91
- trackInfo.constraints = RTCUtil.deepClone(c);
92
- }
93
- }
94
-
95
- console.log('[RNWebRTC] get_user_media_success', {
96
- durationMs: Date.now() - _t0,
97
- streamId: id,
98
- trackCount: tracks.length,
99
- trackKinds: tracks.map(t => t.kind),
100
- });
101
-
102
- const info = {
103
- streamId: id,
104
- streamReactTag: id,
105
- tracks
106
- };
107
-
108
- resolve(new MediaStream(info));
109
- };
110
-
111
- const failure = (type, message) => {
112
- console.log('[RNWebRTC] get_user_media_error', {
113
- durationMs: Date.now() - _t0,
114
- type,
115
- message,
116
- });
117
-
118
- let error;
119
-
120
- switch (type) {
121
- case 'TypeError':
122
- error = new TypeError(message);
123
- break;
124
- }
125
-
126
- if (!error) {
127
- error = new MediaStreamError({ message, name: type });
128
- }
129
-
130
- reject(error);
131
- };
132
-
133
- WebRTCModule.getUserMedia(constraints, success, failure);
134
- });
135
- });
136
- }
1
+
2
+ import { NativeModules } from 'react-native';
3
+
4
+
5
+ import { MediaTrackConstraints } from './Constraints';
6
+ import MediaStream from './MediaStream';
7
+ import MediaStreamError from './MediaStreamError';
8
+ import permissions from './Permissions';
9
+ import * as RTCUtil from './RTCUtil';
10
+
11
+ const { WebRTCModule } = NativeModules;
12
+
13
+ export interface Constraints {
14
+ audio?: boolean | MediaTrackConstraints;
15
+ video?: boolean | MediaTrackConstraints;
16
+ }
17
+
18
+ export default function getUserMedia(constraints: Constraints = {}): Promise<MediaStream> {
19
+ // According to
20
+ // https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-getusermedia,
21
+ // the constraints argument is a dictionary of type MediaStreamConstraints.
22
+ if (typeof constraints !== 'object') {
23
+ return Promise.reject(new TypeError('constraints is not a dictionary'));
24
+ }
25
+
26
+ if (
27
+ (typeof constraints.audio === 'undefined' || !constraints.audio) &&
28
+ (typeof constraints.video === 'undefined' || !constraints.video)
29
+ ) {
30
+ return Promise.reject(new TypeError('audio and/or video is required'));
31
+ }
32
+
33
+ console.log('[RNWebRTC] get_user_media_start', {
34
+ audio: !!constraints.audio,
35
+ video: !!constraints.video,
36
+ });
37
+
38
+ // Normalize constraints.
39
+ constraints = RTCUtil.normalizeConstraints(constraints);
40
+
41
+ // Request required permissions
42
+ const reqPermissions: Promise<boolean>[] = [];
43
+
44
+ if (constraints.audio) {
45
+ console.log('[RNWebRTC] requesting_mic_permission');
46
+ reqPermissions.push(permissions.request({ name: 'microphone' }));
47
+ } else {
48
+ reqPermissions.push(Promise.resolve(false));
49
+ }
50
+
51
+ if (constraints.video) {
52
+ console.log('[RNWebRTC] requesting_camera_permission');
53
+ reqPermissions.push(permissions.request({ name: 'camera' }));
54
+ } else {
55
+ reqPermissions.push(Promise.resolve(false));
56
+ }
57
+
58
+ const _t0 = Date.now();
59
+
60
+ return new Promise((resolve, reject) => {
61
+ Promise.all(reqPermissions).then(results => {
62
+ const [ audioPerm, videoPerm ] = results;
63
+
64
+ console.log('[RNWebRTC] permission_results', { audioPerm, videoPerm });
65
+
66
+ // Check permission results and remove unneeded permissions.
67
+
68
+ if (!audioPerm && !videoPerm) {
69
+ // https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-getusermedia
70
+ // step 4
71
+ console.log('[RNWebRTC] permission_denied_both');
72
+ const error = {
73
+ message: 'Permission denied.',
74
+ name: 'SecurityError'
75
+ };
76
+
77
+ reject(new MediaStreamError(error));
78
+
79
+ return;
80
+ }
81
+
82
+ audioPerm || delete constraints.audio;
83
+ videoPerm || delete constraints.video;
84
+
85
+ const success = (id, tracks) => {
86
+ // Store initial constraints.
87
+ for (const trackInfo of tracks) {
88
+ const c = constraints[trackInfo.kind];
89
+
90
+ if (typeof c === 'object') {
91
+ trackInfo.constraints = RTCUtil.deepClone(c);
92
+ }
93
+ }
94
+
95
+ console.log('[RNWebRTC] get_user_media_success', {
96
+ durationMs: Date.now() - _t0,
97
+ streamId: id,
98
+ trackCount: tracks.length,
99
+ trackKinds: tracks.map(t => t.kind),
100
+ });
101
+
102
+ const info = {
103
+ streamId: id,
104
+ streamReactTag: id,
105
+ tracks
106
+ };
107
+
108
+ resolve(new MediaStream(info));
109
+ };
110
+
111
+ const failure = (type, message) => {
112
+ console.log('[RNWebRTC] get_user_media_error', {
113
+ durationMs: Date.now() - _t0,
114
+ type,
115
+ message,
116
+ });
117
+
118
+ let error;
119
+
120
+ switch (type) {
121
+ case 'TypeError':
122
+ error = new TypeError(message);
123
+ break;
124
+ }
125
+
126
+ if (!error) {
127
+ error = new MediaStreamError({ message, name: type });
128
+ }
129
+
130
+ reject(error);
131
+ };
132
+
133
+ WebRTCModule.getUserMedia(constraints, success, failure);
134
+ });
135
+ });
136
+ }