@sbhjt-gr/react-native-webrtc 124.0.2 → 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 (363) 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 -464
  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 -584
  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 +146 -41
  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 +23 -0
  179. package/lib/commonjs/getUserMedia.js.map +1 -1
  180. package/lib/commonjs/index.js.map +1 -1
  181. package/lib/commonjs/index.web.js.map +1 -1
  182. package/lib/commonjs/webStream.js.map +1 -1
  183. package/lib/module/Constraints.js.map +1 -1
  184. package/lib/module/EventEmitter.js.map +1 -1
  185. package/lib/module/Logger.js.map +1 -1
  186. package/lib/module/MediaDevices.js +17 -17
  187. package/lib/module/MediaDevices.js.map +1 -1
  188. package/lib/module/MediaStream.js +19 -19
  189. package/lib/module/MediaStream.js.map +1 -1
  190. package/lib/module/MediaStreamError.js.map +1 -1
  191. package/lib/module/MediaStreamErrorEvent.js.map +1 -1
  192. package/lib/module/MediaStreamTrack.js +28 -28
  193. package/lib/module/MediaStreamTrack.js.map +1 -1
  194. package/lib/module/MediaStreamTrackEvent.js +6 -6
  195. package/lib/module/MediaStreamTrackEvent.js.map +1 -1
  196. package/lib/module/MessageEvent.js +7 -7
  197. package/lib/module/MessageEvent.js.map +1 -1
  198. package/lib/module/Permissions.js +28 -28
  199. package/lib/module/Permissions.js.map +1 -1
  200. package/lib/module/RTCAudioSession.js +4 -4
  201. package/lib/module/RTCAudioSession.js.map +1 -1
  202. package/lib/module/RTCDataChannel.js +2 -2
  203. package/lib/module/RTCDataChannel.js.map +1 -1
  204. package/lib/module/RTCDataChannelEvent.js +6 -6
  205. package/lib/module/RTCDataChannelEvent.js.map +1 -1
  206. package/lib/module/RTCDataPacketCryptor.js.map +1 -1
  207. package/lib/module/RTCDataPacketCryptorFactory.js.map +1 -1
  208. package/lib/module/RTCErrorEvent.js +3 -3
  209. package/lib/module/RTCErrorEvent.js.map +1 -1
  210. package/lib/module/RTCFrameCryptor.js +8 -8
  211. package/lib/module/RTCFrameCryptor.js.map +1 -1
  212. package/lib/module/RTCFrameCryptorFactory.js.map +1 -1
  213. package/lib/module/RTCIceCandidate.js.map +1 -1
  214. package/lib/module/RTCIceCandidateEvent.js +7 -7
  215. package/lib/module/RTCIceCandidateEvent.js.map +1 -1
  216. package/lib/module/RTCKeyProvider.js.map +1 -1
  217. package/lib/module/RTCPIPView.js +2 -2
  218. package/lib/module/RTCPIPView.js.map +1 -1
  219. package/lib/module/RTCPIPView.web.js.map +1 -1
  220. package/lib/module/RTCPeerConnection.js +146 -41
  221. package/lib/module/RTCPeerConnection.js.map +1 -1
  222. package/lib/module/RTCRtcpParameters.js.map +1 -1
  223. package/lib/module/RTCRtpCapabilities.js +2 -2
  224. package/lib/module/RTCRtpCapabilities.js.map +1 -1
  225. package/lib/module/RTCRtpCodecCapability.js.map +1 -1
  226. package/lib/module/RTCRtpCodecParameters.js.map +1 -1
  227. package/lib/module/RTCRtpEncodingParameters.js.map +1 -1
  228. package/lib/module/RTCRtpHeaderExtension.js.map +1 -1
  229. package/lib/module/RTCRtpParameters.js.map +1 -1
  230. package/lib/module/RTCRtpReceiveParameters.js.map +1 -1
  231. package/lib/module/RTCRtpReceiver.js +7 -7
  232. package/lib/module/RTCRtpReceiver.js.map +1 -1
  233. package/lib/module/RTCRtpSendParameters.js +3 -3
  234. package/lib/module/RTCRtpSendParameters.js.map +1 -1
  235. package/lib/module/RTCRtpSender.js +7 -7
  236. package/lib/module/RTCRtpSender.js.map +1 -1
  237. package/lib/module/RTCRtpTransceiver.js.map +1 -1
  238. package/lib/module/RTCSessionDescription.js.map +1 -1
  239. package/lib/module/RTCTrackEvent.js +6 -6
  240. package/lib/module/RTCTrackEvent.js.map +1 -1
  241. package/lib/module/RTCUtil.js +28 -28
  242. package/lib/module/RTCUtil.js.map +1 -1
  243. package/lib/module/RTCView.js +5 -5
  244. package/lib/module/RTCView.js.map +1 -1
  245. package/lib/module/RTCView.web.js.map +1 -1
  246. package/lib/module/ScreenCapturePickerView.js.map +1 -1
  247. package/lib/module/ScreenCapturePickerView.web.js.map +1 -1
  248. package/lib/module/getDisplayMedia.js.map +1 -1
  249. package/lib/module/getUserMedia.js +23 -0
  250. package/lib/module/getUserMedia.js.map +1 -1
  251. package/lib/module/index.js.map +1 -1
  252. package/lib/module/index.web.js.map +1 -1
  253. package/lib/module/webStream.js.map +1 -1
  254. package/lib/typescript/Constraints.d.ts +19 -19
  255. package/lib/typescript/EventEmitter.d.ts +6 -6
  256. package/lib/typescript/Logger.d.ts +13 -13
  257. package/lib/typescript/MediaDevices.d.ts +30 -30
  258. package/lib/typescript/MediaStream.d.ts +48 -48
  259. package/lib/typescript/MediaStreamError.d.ts +6 -6
  260. package/lib/typescript/MediaStreamErrorEvent.d.ts +6 -6
  261. package/lib/typescript/MediaStreamTrack.d.ts +101 -101
  262. package/lib/typescript/MediaStreamTrackEvent.d.ts +19 -19
  263. package/lib/typescript/MessageEvent.d.ts +20 -20
  264. package/lib/typescript/Permissions.d.ts +55 -55
  265. package/lib/typescript/RTCAudioSession.d.ts +10 -10
  266. package/lib/typescript/RTCDataChannel.d.ts +43 -43
  267. package/lib/typescript/RTCDataChannelEvent.d.ts +19 -19
  268. package/lib/typescript/RTCDataPacketCryptor.d.ts +12 -12
  269. package/lib/typescript/RTCDataPacketCryptorFactory.d.ts +6 -6
  270. package/lib/typescript/RTCErrorEvent.d.ts +12 -12
  271. package/lib/typescript/RTCFrameCryptor.d.ts +47 -47
  272. package/lib/typescript/RTCFrameCryptorFactory.d.ts +21 -21
  273. package/lib/typescript/RTCIceCandidate.d.ts +17 -17
  274. package/lib/typescript/RTCIceCandidateEvent.d.ts +20 -20
  275. package/lib/typescript/RTCKeyProvider.d.ts +21 -21
  276. package/lib/typescript/RTCPIPView.d.ts +15 -15
  277. package/lib/typescript/RTCPIPView.web.d.ts +13 -13
  278. package/lib/typescript/RTCPeerConnection.d.ts +117 -117
  279. package/lib/typescript/RTCRtcpParameters.d.ts +10 -10
  280. package/lib/typescript/RTCRtpCapabilities.d.ts +9 -9
  281. package/lib/typescript/RTCRtpCodecCapability.d.ts +7 -7
  282. package/lib/typescript/RTCRtpCodecParameters.d.ts +16 -16
  283. package/lib/typescript/RTCRtpEncodingParameters.d.ts +23 -23
  284. package/lib/typescript/RTCRtpHeaderExtension.d.ts +12 -12
  285. package/lib/typescript/RTCRtpParameters.d.ts +19 -19
  286. package/lib/typescript/RTCRtpReceiveParameters.d.ts +4 -4
  287. package/lib/typescript/RTCRtpReceiver.d.ts +21 -21
  288. package/lib/typescript/RTCRtpSendParameters.d.ts +20 -20
  289. package/lib/typescript/RTCRtpSender.d.ts +22 -22
  290. package/lib/typescript/RTCRtpTransceiver.d.ts +31 -31
  291. package/lib/typescript/RTCSessionDescription.d.ts +12 -12
  292. package/lib/typescript/RTCTrackEvent.d.ts +29 -29
  293. package/lib/typescript/RTCUtil.d.ts +37 -37
  294. package/lib/typescript/RTCView.d.ts +117 -117
  295. package/lib/typescript/RTCView.web.d.ts +25 -25
  296. package/lib/typescript/ScreenCapturePickerView.d.ts +2 -2
  297. package/lib/typescript/ScreenCapturePickerView.web.d.ts +1 -1
  298. package/lib/typescript/getDisplayMedia.d.ts +2 -2
  299. package/lib/typescript/getUserMedia.d.ts +7 -7
  300. package/lib/typescript/index.d.ts +22 -22
  301. package/lib/typescript/index.web.d.ts +101 -101
  302. package/lib/typescript/webStream.d.ts +3 -3
  303. package/livekit-react-native-webrtc.podspec +29 -29
  304. package/macos/RCTWebRTC.xcodeproj/project.pbxproj +324 -324
  305. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -7
  306. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -8
  307. package/metro.config.js +7 -7
  308. package/metro.config.macos.js +14 -14
  309. package/package.json +66 -66
  310. package/react-native.config.js +11 -11
  311. package/src/.eslintrc.cjs +67 -67
  312. package/src/Constraints.ts +20 -20
  313. package/src/EventEmitter.ts +65 -65
  314. package/src/Logger.ts +49 -49
  315. package/src/MediaDevices.ts +53 -53
  316. package/src/MediaStream.ts +161 -161
  317. package/src/MediaStreamError.ts +12 -12
  318. package/src/MediaStreamErrorEvent.ts +11 -11
  319. package/src/MediaStreamTrack.ts +282 -282
  320. package/src/MediaStreamTrackEvent.ts +25 -25
  321. package/src/MessageEvent.ts +26 -26
  322. package/src/Permissions.ts +133 -133
  323. package/src/RTCAudioSession.ts +25 -25
  324. package/src/RTCDataChannel.ts +190 -190
  325. package/src/RTCDataChannelEvent.ts +28 -28
  326. package/src/RTCDataPacketCryptor.ts +90 -90
  327. package/src/RTCDataPacketCryptorFactory.ts +24 -24
  328. package/src/RTCErrorEvent.ts +20 -20
  329. package/src/RTCFrameCryptor.ts +162 -162
  330. package/src/RTCFrameCryptorFactory.ts +101 -101
  331. package/src/RTCIceCandidate.ts +29 -29
  332. package/src/RTCIceCandidateEvent.ts +26 -26
  333. package/src/RTCKeyProvider.ts +117 -117
  334. package/src/RTCPIPView.tsx +46 -46
  335. package/src/RTCPIPView.web.tsx +18 -18
  336. package/src/RTCPeerConnection.ts +935 -832
  337. package/src/RTCRtcpParameters.ts +23 -23
  338. package/src/RTCRtpCapabilities.ts +16 -16
  339. package/src/RTCRtpCodecCapability.ts +12 -12
  340. package/src/RTCRtpCodecParameters.ts +44 -44
  341. package/src/RTCRtpEncodingParameters.ts +90 -90
  342. package/src/RTCRtpHeaderExtension.ts +27 -27
  343. package/src/RTCRtpParameters.ts +37 -37
  344. package/src/RTCRtpReceiveParameters.ts +7 -7
  345. package/src/RTCRtpReceiver.ts +60 -60
  346. package/src/RTCRtpSendParameters.ts +63 -63
  347. package/src/RTCRtpSender.ts +78 -78
  348. package/src/RTCRtpTransceiver.ts +107 -107
  349. package/src/RTCSessionDescription.ts +30 -30
  350. package/src/RTCTrackEvent.ts +42 -42
  351. package/src/RTCUtil.ts +211 -211
  352. package/src/RTCView.ts +122 -122
  353. package/src/RTCView.web.tsx +80 -80
  354. package/src/ScreenCapturePickerView.ts +4 -4
  355. package/src/ScreenCapturePickerView.web.tsx +3 -3
  356. package/src/getDisplayMedia.ts +30 -30
  357. package/src/getUserMedia.ts +136 -111
  358. package/src/index.ts +107 -107
  359. package/src/index.web.ts +191 -191
  360. package/src/webStream.ts +31 -31
  361. package/tools/format.sh +6 -6
  362. package/tools/release.sh +45 -45
  363. package/tsconfig.json +17 -17
@@ -79,12 +79,24 @@ class RTCPeerConnection extends _index.EventTarget {
79
79
  log.debug(`${this._pcId} ctor`);
80
80
  }
81
81
  async createOffer(options) {
82
+ var _sdpInfo$sdp$length, _sdpInfo$sdp;
83
+ const _t0 = Date.now();
84
+ console.log(`[RNWebRTC] pc:${this._pcId} create_offer_start`, {
85
+ signalingState: this.signalingState,
86
+ connectionState: this.connectionState,
87
+ iceConnectionState: this.iceConnectionState
88
+ });
82
89
  log.debug(`${this._pcId} createOffer`);
83
90
  const {
84
91
  sdpInfo,
85
92
  newTransceivers,
86
93
  transceiversInfo
87
94
  } = await WebRTCModule.peerConnectionCreateOffer(this._pcId, RTCUtil.normalizeOfferOptions(options));
95
+ console.log(`[RNWebRTC] pc:${this._pcId} create_offer_done`, {
96
+ durationMs: Date.now() - _t0,
97
+ sdpType: sdpInfo === null || sdpInfo === void 0 ? void 0 : sdpInfo.type,
98
+ sdpLen: (_sdpInfo$sdp$length = sdpInfo === null || sdpInfo === void 0 ? void 0 : (_sdpInfo$sdp = sdpInfo.sdp) === null || _sdpInfo$sdp === void 0 ? void 0 : _sdpInfo$sdp.length) !== null && _sdpInfo$sdp$length !== void 0 ? _sdpInfo$sdp$length : 0
99
+ });
88
100
  log.debug(`${this._pcId} createOffer OK`);
89
101
  newTransceivers === null || newTransceivers === void 0 ? void 0 : newTransceivers.forEach(t => {
90
102
  const {
@@ -111,11 +123,22 @@ class RTCPeerConnection extends _index.EventTarget {
111
123
  return sdpInfo;
112
124
  }
113
125
  async createAnswer() {
126
+ var _sdpInfo$sdp$length2, _sdpInfo$sdp2;
127
+ const _t0 = Date.now();
128
+ console.log(`[RNWebRTC] pc:${this._pcId} create_answer_start`, {
129
+ signalingState: this.signalingState,
130
+ connectionState: this.connectionState
131
+ });
114
132
  log.debug(`${this._pcId} createAnswer`);
115
133
  const {
116
134
  sdpInfo,
117
135
  transceiversInfo
118
136
  } = await WebRTCModule.peerConnectionCreateAnswer(this._pcId, {});
137
+ console.log(`[RNWebRTC] pc:${this._pcId} create_answer_done`, {
138
+ durationMs: Date.now() - _t0,
139
+ sdpType: sdpInfo === null || sdpInfo === void 0 ? void 0 : sdpInfo.type,
140
+ sdpLen: (_sdpInfo$sdp$length2 = sdpInfo === null || sdpInfo === void 0 ? void 0 : (_sdpInfo$sdp2 = sdpInfo.sdp) === null || _sdpInfo$sdp2 === void 0 ? void 0 : _sdpInfo$sdp2.length) !== null && _sdpInfo$sdp$length2 !== void 0 ? _sdpInfo$sdp$length2 : 0
141
+ });
119
142
  this._updateTransceivers(transceiversInfo);
120
143
  return sdpInfo;
121
144
  }
@@ -123,14 +146,20 @@ class RTCPeerConnection extends _index.EventTarget {
123
146
  WebRTCModule.peerConnectionSetConfiguration(configuration, this._pcId);
124
147
  }
125
148
  async setLocalDescription(sessionDescription) {
126
- var _desc;
149
+ var _sessionDescription$s, _sessionDescription$s2, _desc;
150
+ const _t0 = Date.now();
151
+ console.log(`[RNWebRTC] pc:${this._pcId} set_local_desc_start`, {
152
+ type: sessionDescription === null || sessionDescription === void 0 ? void 0 : sessionDescription.type,
153
+ sdpLen: (_sessionDescription$s = sessionDescription === null || sessionDescription === void 0 ? void 0 : (_sessionDescription$s2 = sessionDescription.sdp) === null || _sessionDescription$s2 === void 0 ? void 0 : _sessionDescription$s2.length) !== null && _sessionDescription$s !== void 0 ? _sessionDescription$s : 0,
154
+ signalingState: this.signalingState
155
+ });
127
156
  log.debug(`${this._pcId} setLocalDescription`);
128
157
  let desc;
129
158
  if (sessionDescription) {
130
- var _sessionDescription$s;
159
+ var _sessionDescription$s3;
131
160
  desc = {
132
161
  type: sessionDescription.type,
133
- sdp: (_sessionDescription$s = sessionDescription.sdp) !== null && _sessionDescription$s !== void 0 ? _sessionDescription$s : ''
162
+ sdp: (_sessionDescription$s3 = sessionDescription.sdp) !== null && _sessionDescription$s3 !== void 0 ? _sessionDescription$s3 : ''
134
163
  };
135
164
  if (!RTCUtil.isSdpTypeValid(desc.type)) {
136
165
  throw new Error(`Invalid session description: invalid type: ${desc.type}`);
@@ -148,17 +177,28 @@ class RTCPeerConnection extends _index.EventTarget {
148
177
  this.localDescription = null;
149
178
  }
150
179
  this._updateTransceivers(transceiversInfo, /* removeStopped */((_desc = desc) === null || _desc === void 0 ? void 0 : _desc.type) === 'answer');
180
+ console.log(`[RNWebRTC] pc:${this._pcId} set_local_desc_done`, {
181
+ durationMs: Date.now() - _t0,
182
+ signalingState: this.signalingState
183
+ });
151
184
  log.debug(`${this._pcId} setLocalDescription OK`);
152
185
  }
153
186
  async setRemoteDescription(sessionDescription) {
154
- var _sessionDescription$s2, _desc$type;
187
+ var _sessionDescription$s4, _sessionDescription$s5, _sessionDescription$s6, _desc$type;
188
+ const _t0 = Date.now();
189
+ console.log(`[RNWebRTC] pc:${this._pcId} set_remote_desc_start`, {
190
+ type: sessionDescription === null || sessionDescription === void 0 ? void 0 : sessionDescription.type,
191
+ sdpLen: (_sessionDescription$s4 = sessionDescription === null || sessionDescription === void 0 ? void 0 : (_sessionDescription$s5 = sessionDescription.sdp) === null || _sessionDescription$s5 === void 0 ? void 0 : _sessionDescription$s5.length) !== null && _sessionDescription$s4 !== void 0 ? _sessionDescription$s4 : 0,
192
+ signalingState: this.signalingState,
193
+ connectionState: this.connectionState
194
+ });
155
195
  log.debug(`${this._pcId} setRemoteDescription`);
156
196
  if (!sessionDescription) {
157
197
  return Promise.reject(new Error('No session description provided'));
158
198
  }
159
199
  const desc = {
160
200
  type: sessionDescription.type,
161
- sdp: (_sessionDescription$s2 = sessionDescription.sdp) !== null && _sessionDescription$s2 !== void 0 ? _sessionDescription$s2 : ''
201
+ sdp: (_sessionDescription$s6 = sessionDescription.sdp) !== null && _sessionDescription$s6 !== void 0 ? _sessionDescription$s6 : ''
162
202
  };
163
203
  if (!RTCUtil.isSdpTypeValid((_desc$type = desc.type) !== null && _desc$type !== void 0 ? _desc$type : '')) {
164
204
  throw new Error(`Invalid session description: invalid type: ${desc.type}`);
@@ -246,9 +286,24 @@ class RTCPeerConnection extends _index.EventTarget {
246
286
  // Dispatch an unmute event for the track.
247
287
  track._setMutedInternal(false);
248
288
  }
289
+ console.log(`[RNWebRTC] pc:${this._pcId} set_remote_desc_done`, {
290
+ durationMs: Date.now() - _t0,
291
+ signalingState: this.signalingState,
292
+ pendingTrackEventsDispatched: this._pendingTrackEvents.length
293
+ });
249
294
  log.debug(`${this._pcId} setRemoteDescription OK`);
250
295
  }
251
296
  async addIceCandidate(candidate) {
297
+ console.log(`[RNWebRTC] pc:${this._pcId} add_ice_candidate`, {
298
+ type: candidate === null || candidate === void 0 ? void 0 : candidate.type,
299
+ protocol: candidate === null || candidate === void 0 ? void 0 : candidate.protocol,
300
+ sdpMid: candidate === null || candidate === void 0 ? void 0 : candidate.sdpMid,
301
+ sdpMLineIndex: candidate === null || candidate === void 0 ? void 0 : candidate.sdpMLineIndex,
302
+ empty: !(candidate !== null && candidate !== void 0 && candidate.candidate),
303
+ signalingState: this.signalingState,
304
+ connectionState: this.connectionState,
305
+ iceConnectionState: this.iceConnectionState
306
+ });
252
307
  log.debug(`${this._pcId} addIceCandidate`);
253
308
  if (!candidate || !candidate.candidate) {
254
309
  // XXX end-of candidates is not implemented: https://bugs.chromium.org/p/webrtc/issues/detail?id=9218
@@ -261,13 +316,13 @@ class RTCPeerConnection extends _index.EventTarget {
261
316
  this.remoteDescription = new _RTCSessionDescription.default(newSdp);
262
317
  }
263
318
 
264
- /**
265
- * @brief Adds a new track to the {@link RTCPeerConnection},
266
- * and indicates that it is contained in the specified {@link MediaStream}s.
267
- * This method has to be synchronous as the W3C API expects a track to be returned
268
- * @param {MediaStreamTrack} track The track to be added
269
- * @param {...MediaStream} streams One or more {@link MediaStream}s the track needs to be added to
270
- * https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack
319
+ /**
320
+ * @brief Adds a new track to the {@link RTCPeerConnection},
321
+ * and indicates that it is contained in the specified {@link MediaStream}s.
322
+ * This method has to be synchronous as the W3C API expects a track to be returned
323
+ * @param {MediaStreamTrack} track The track to be added
324
+ * @param {...MediaStream} streams One or more {@link MediaStream}s the track needs to be added to
325
+ * https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack
271
326
  */
272
327
  addTrack(track) {
273
328
  log.debug(`${this._pcId} addTrack`);
@@ -409,14 +464,14 @@ class RTCPeerConnection extends _index.EventTarget {
409
464
  if (!selector) {
410
465
  const data = await WebRTCModule.peerConnectionGetStats(this._pcId);
411
466
 
412
- /**
413
- * On both Android and iOS it is faster to construct a single
414
- * JSON string representing the Map of StatsReports and have it
415
- * pass through the React Native bridge rather than the Map of
416
- * StatsReports. While the implementations do try to be faster in
417
- * general, the stress is on being faster to pass through the React
418
- * Native bridge which is a bottleneck that tends to be visible in
419
- * the UI when there is congestion involving UI-related passing.
467
+ /**
468
+ * On both Android and iOS it is faster to construct a single
469
+ * JSON string representing the Map of StatsReports and have it
470
+ * pass through the React Native bridge rather than the Map of
471
+ * StatsReports. While the implementations do try to be faster in
472
+ * general, the stress is on being faster to pass through the React
473
+ * Native bridge which is a bottleneck that tends to be visible in
474
+ * the UI when there is congestion involving UI-related passing.
420
475
  */
421
476
  return new Map(JSON.parse(data));
422
477
  } else {
@@ -465,22 +520,43 @@ class RTCPeerConnection extends _index.EventTarget {
465
520
  if (ev.pcId !== this._pcId) {
466
521
  return;
467
522
  }
523
+ console.log(`[RNWebRTC] pc:${this._pcId} negotiation_needed`, {
524
+ signalingState: this.signalingState,
525
+ connectionState: this.connectionState,
526
+ iceConnectionState: this.iceConnectionState
527
+ });
468
528
  this.dispatchEvent(new _index.Event('negotiationneeded'));
469
529
  });
470
530
  (0, _EventEmitter.addListener)(this, 'peerConnectionIceConnectionChanged', ev => {
471
531
  if (ev.pcId !== this._pcId) {
472
532
  return;
473
533
  }
534
+ const prev = this.iceConnectionState;
474
535
  this.iceConnectionState = ev.iceConnectionState;
536
+ console.log(`[RNWebRTC] pc:${this._pcId} ice_connection_changed`, {
537
+ prev,
538
+ current: ev.iceConnectionState,
539
+ connectionState: this.connectionState,
540
+ signalingState: this.signalingState
541
+ });
475
542
  this.dispatchEvent(new _index.Event('iceconnectionstatechange'));
476
543
  });
477
544
  (0, _EventEmitter.addListener)(this, 'peerConnectionStateChanged', ev => {
478
545
  if (ev.pcId !== this._pcId) {
479
546
  return;
480
547
  }
548
+ const prev = this.connectionState;
481
549
  this.connectionState = ev.connectionState;
550
+ console.log(`[RNWebRTC] pc:${this._pcId} connection_state_changed`, {
551
+ prev,
552
+ current: ev.connectionState,
553
+ iceConnectionState: this.iceConnectionState,
554
+ iceGatheringState: this.iceGatheringState,
555
+ signalingState: this.signalingState
556
+ });
482
557
  this.dispatchEvent(new _index.Event('connectionstatechange'));
483
558
  if (ev.connectionState === 'closed') {
559
+ console.log(`[RNWebRTC] pc:${this._pcId} disposing`);
484
560
  // This PeerConnection is done, clean up.
485
561
  (0, _EventEmitter.removeListener)(this);
486
562
  WebRTCModule.peerConnectionDispose(this._pcId);
@@ -490,15 +566,28 @@ class RTCPeerConnection extends _index.EventTarget {
490
566
  if (ev.pcId !== this._pcId) {
491
567
  return;
492
568
  }
569
+ const prev = this.signalingState;
493
570
  this.signalingState = ev.signalingState;
571
+ console.log(`[RNWebRTC] pc:${this._pcId} signaling_state_changed`, {
572
+ prev,
573
+ current: ev.signalingState,
574
+ connectionState: this.connectionState
575
+ });
494
576
  this.dispatchEvent(new _index.Event('signalingstatechange'));
495
577
  });
496
578
 
497
579
  // Consider moving away from this event: https://github.com/WebKit/WebKit/pull/3953
498
580
  (0, _EventEmitter.addListener)(this, 'peerConnectionOnTrack', ev => {
581
+ var _ev$receiver, _ev$receiver2, _ev$receiver2$track, _ev$streams$length, _ev$streams;
499
582
  if (ev.pcId !== this._pcId) {
500
583
  return;
501
584
  }
585
+ console.log(`[RNWebRTC] pc:${this._pcId} track_event_queued`, {
586
+ receiverId: (_ev$receiver = ev.receiver) === null || _ev$receiver === void 0 ? void 0 : _ev$receiver.id,
587
+ trackKind: (_ev$receiver2 = ev.receiver) === null || _ev$receiver2 === void 0 ? void 0 : (_ev$receiver2$track = _ev$receiver2.track) === null || _ev$receiver2$track === void 0 ? void 0 : _ev$receiver2$track.kind,
588
+ streamCount: (_ev$streams$length = (_ev$streams = ev.streams) === null || _ev$streams === void 0 ? void 0 : _ev$streams.length) !== null && _ev$streams$length !== void 0 ? _ev$streams$length : 0,
589
+ pendingCount: this._pendingTrackEvents.length + 1
590
+ });
502
591
  log.debug(`${this._pcId} ontrack`);
503
592
 
504
593
  // NOTE: We need to make sure the track event fires right before sRD completes,
@@ -510,6 +599,9 @@ class RTCPeerConnection extends _index.EventTarget {
510
599
  if (ev.pcId !== this._pcId) {
511
600
  return;
512
601
  }
602
+ console.log(`[RNWebRTC] pc:${this._pcId} remove_track`, {
603
+ receiverId: ev.receiverId
604
+ });
513
605
  log.debug(`${this._pcId} onremovetrack ${ev.receiverId}`);
514
606
  const receiver = this.getReceivers().find(r => r.id === ev.receiverId);
515
607
  const track = receiver === null || receiver === void 0 ? void 0 : receiver.track;
@@ -535,9 +627,16 @@ class RTCPeerConnection extends _index.EventTarget {
535
627
  }
536
628
  });
537
629
  (0, _EventEmitter.addListener)(this, 'peerConnectionGotICECandidate', ev => {
630
+ var _ev$candidate, _ev$candidate2, _ev$candidate3;
538
631
  if (ev.pcId !== this._pcId) {
539
632
  return;
540
633
  }
634
+ console.log(`[RNWebRTC] pc:${this._pcId} local_ice_candidate`, {
635
+ type: (_ev$candidate = ev.candidate) === null || _ev$candidate === void 0 ? void 0 : _ev$candidate.type,
636
+ protocol: (_ev$candidate2 = ev.candidate) === null || _ev$candidate2 === void 0 ? void 0 : _ev$candidate2.protocol,
637
+ sdpMid: (_ev$candidate3 = ev.candidate) === null || _ev$candidate3 === void 0 ? void 0 : _ev$candidate3.sdpMid,
638
+ iceGatheringState: this.iceGatheringState
639
+ });
541
640
  const sdpInfo = ev.sdp;
542
641
 
543
642
  // Can happen when doing a rollback.
@@ -555,7 +654,13 @@ class RTCPeerConnection extends _index.EventTarget {
555
654
  if (ev.pcId !== this._pcId) {
556
655
  return;
557
656
  }
657
+ const prev = this.iceGatheringState;
558
658
  this.iceGatheringState = ev.iceGatheringState;
659
+ console.log(`[RNWebRTC] pc:${this._pcId} ice_gathering_state_changed`, {
660
+ prev,
661
+ current: ev.iceGatheringState,
662
+ connectionState: this.connectionState
663
+ });
559
664
  if (this.iceGatheringState === 'complete') {
560
665
  const sdpInfo = ev.sdp;
561
666
 
@@ -597,16 +702,16 @@ class RTCPeerConnection extends _index.EventTarget {
597
702
  });
598
703
  }
599
704
 
600
- /**
601
- * Creates a new RTCDataChannel object with the given label. The
602
- * RTCDataChannelInit dictionary can be used to configure properties of the
603
- * underlying channel such as data reliability.
604
- *
605
- * @param {string} label - the value with which the label attribute of the new
606
- * instance is to be initialized
607
- * @param {RTCDataChannelInit} dataChannelDict - an optional dictionary of
608
- * values with which to initialize corresponding attributes of the new
609
- * instance such as id
705
+ /**
706
+ * Creates a new RTCDataChannel object with the given label. The
707
+ * RTCDataChannelInit dictionary can be used to configure properties of the
708
+ * underlying channel such as data reliability.
709
+ *
710
+ * @param {string} label - the value with which the label attribute of the new
711
+ * instance is to be initialized
712
+ * @param {RTCDataChannelInit} dataChannelDict - an optional dictionary of
713
+ * values with which to initialize corresponding attributes of the new
714
+ * instance such as id
610
715
  */
611
716
  createDataChannel(label, dataChannelDict) {
612
717
  if (arguments.length === 0) {
@@ -625,9 +730,9 @@ class RTCPeerConnection extends _index.EventTarget {
625
730
  return new _RTCDataChannel.default(channelInfo);
626
731
  }
627
732
 
628
- /**
629
- * Check whether a media stream track exists already in a sender.
630
- * See https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack for more information
733
+ /**
734
+ * Check whether a media stream track exists already in a sender.
735
+ * See https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack for more information
631
736
  */
632
737
  _trackExists(track) {
633
738
  const [sender] = this.getSenders().filter(sender => {
@@ -637,8 +742,8 @@ class RTCPeerConnection extends _index.EventTarget {
637
742
  return sender ? true : false;
638
743
  }
639
744
 
640
- /**
641
- * Updates transceivers after offer/answer updates if necessary.
745
+ /**
746
+ * Updates transceivers after offer/answer updates if necessary.
642
747
  */
643
748
  _updateTransceivers(transceiverUpdates) {
644
749
  let removeStopped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
@@ -662,10 +767,10 @@ class RTCPeerConnection extends _index.EventTarget {
662
767
  }
663
768
  }
664
769
 
665
- /**
666
- * Inserts transceiver into the transceiver array in the order they are created (timestamp).
667
- * @param order an index that refers to when it it was created relatively.
668
- * @param transceiver the transceiver object to be inserted.
770
+ /**
771
+ * Inserts transceiver into the transceiver array in the order they are created (timestamp).
772
+ * @param order an index that refers to when it it was created relatively.
773
+ * @param transceiver the transceiver object to be inserted.
669
774
  */
670
775
  _insertTransceiverSorted(order, transceiver) {
671
776
  this._transceivers.push({
@@ -676,8 +781,8 @@ class RTCPeerConnection extends _index.EventTarget {
676
781
  }
677
782
  }
678
783
 
679
- /**
680
- * Define the `onxxx` event handlers.
784
+ /**
785
+ * Define the `onxxx` event handlers.
681
786
  */
682
787
  exports.default = RTCPeerConnection;
683
788
  const proto = RTCPeerConnection.prototype;