@sbhjt-gr/react-native-webrtc 124.0.0 → 124.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.
Files changed (362) 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 +1643 -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 +464 -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 +36 -36
  62. package/ios/RCTWebRTC/PalabraClient.m +584 -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 -0
  86. package/ios/RCTWebRTC/WLVAudioDevice.m +137 -0
  87. package/ios/RCTWebRTC/WebRTCModule+Palabra.h +4 -4
  88. package/ios/RCTWebRTC/WebRTCModule+Palabra.m +83 -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 -533
  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 -51
  102. package/ios/RCTWebRTC/WebRTCModule.m +169 -151
  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 +832 -832
  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 +111 -111
  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
  362. package/.claude/settings.local.json +0 -9
@@ -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,111 +1,111 @@
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
- // Normalize constraints.
34
- constraints = RTCUtil.normalizeConstraints(constraints);
35
-
36
- // Request required permissions
37
- const reqPermissions: Promise<boolean>[] = [];
38
-
39
- if (constraints.audio) {
40
- reqPermissions.push(permissions.request({ name: 'microphone' }));
41
- } else {
42
- reqPermissions.push(Promise.resolve(false));
43
- }
44
-
45
- if (constraints.video) {
46
- reqPermissions.push(permissions.request({ name: 'camera' }));
47
- } else {
48
- reqPermissions.push(Promise.resolve(false));
49
- }
50
-
51
- return new Promise((resolve, reject) => {
52
- Promise.all(reqPermissions).then(results => {
53
- const [ audioPerm, videoPerm ] = results;
54
-
55
- // Check permission results and remove unneeded permissions.
56
-
57
- if (!audioPerm && !videoPerm) {
58
- // https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-getusermedia
59
- // step 4
60
- const error = {
61
- message: 'Permission denied.',
62
- name: 'SecurityError'
63
- };
64
-
65
- reject(new MediaStreamError(error));
66
-
67
- return;
68
- }
69
-
70
- audioPerm || delete constraints.audio;
71
- videoPerm || delete constraints.video;
72
-
73
- const success = (id, tracks) => {
74
- // Store initial constraints.
75
- for (const trackInfo of tracks) {
76
- const c = constraints[trackInfo.kind];
77
-
78
- if (typeof c === 'object') {
79
- trackInfo.constraints = RTCUtil.deepClone(c);
80
- }
81
- }
82
-
83
- const info = {
84
- streamId: id,
85
- streamReactTag: id,
86
- tracks
87
- };
88
-
89
- resolve(new MediaStream(info));
90
- };
91
-
92
- const failure = (type, message) => {
93
- let error;
94
-
95
- switch (type) {
96
- case 'TypeError':
97
- error = new TypeError(message);
98
- break;
99
- }
100
-
101
- if (!error) {
102
- error = new MediaStreamError({ message, name: type });
103
- }
104
-
105
- reject(error);
106
- };
107
-
108
- WebRTCModule.getUserMedia(constraints, success, failure);
109
- });
110
- });
111
- }
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
+ // Normalize constraints.
34
+ constraints = RTCUtil.normalizeConstraints(constraints);
35
+
36
+ // Request required permissions
37
+ const reqPermissions: Promise<boolean>[] = [];
38
+
39
+ if (constraints.audio) {
40
+ reqPermissions.push(permissions.request({ name: 'microphone' }));
41
+ } else {
42
+ reqPermissions.push(Promise.resolve(false));
43
+ }
44
+
45
+ if (constraints.video) {
46
+ reqPermissions.push(permissions.request({ name: 'camera' }));
47
+ } else {
48
+ reqPermissions.push(Promise.resolve(false));
49
+ }
50
+
51
+ return new Promise((resolve, reject) => {
52
+ Promise.all(reqPermissions).then(results => {
53
+ const [ audioPerm, videoPerm ] = results;
54
+
55
+ // Check permission results and remove unneeded permissions.
56
+
57
+ if (!audioPerm && !videoPerm) {
58
+ // https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-getusermedia
59
+ // step 4
60
+ const error = {
61
+ message: 'Permission denied.',
62
+ name: 'SecurityError'
63
+ };
64
+
65
+ reject(new MediaStreamError(error));
66
+
67
+ return;
68
+ }
69
+
70
+ audioPerm || delete constraints.audio;
71
+ videoPerm || delete constraints.video;
72
+
73
+ const success = (id, tracks) => {
74
+ // Store initial constraints.
75
+ for (const trackInfo of tracks) {
76
+ const c = constraints[trackInfo.kind];
77
+
78
+ if (typeof c === 'object') {
79
+ trackInfo.constraints = RTCUtil.deepClone(c);
80
+ }
81
+ }
82
+
83
+ const info = {
84
+ streamId: id,
85
+ streamReactTag: id,
86
+ tracks
87
+ };
88
+
89
+ resolve(new MediaStream(info));
90
+ };
91
+
92
+ const failure = (type, message) => {
93
+ let error;
94
+
95
+ switch (type) {
96
+ case 'TypeError':
97
+ error = new TypeError(message);
98
+ break;
99
+ }
100
+
101
+ if (!error) {
102
+ error = new MediaStreamError({ message, name: type });
103
+ }
104
+
105
+ reject(error);
106
+ };
107
+
108
+ WebRTCModule.getUserMedia(constraints, success, failure);
109
+ });
110
+ });
111
+ }