@sbhjt-gr/react-native-webrtc 137.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/.clang-format +11 -0
  2. package/.eslintignore +6 -0
  3. package/.nvmrc +1 -0
  4. package/ISSUE_TEMPLATE.md +40 -0
  5. package/LICENSE +22 -0
  6. package/README.md +82 -0
  7. package/android/build.gradle +36 -0
  8. package/android/consumer-rules.pro +3 -0
  9. package/android/src/main/AndroidManifest.xml +11 -0
  10. package/android/src/main/java/com/oney/WebRTCModule/AbstractVideoCaptureController.java +113 -0
  11. package/android/src/main/java/com/oney/WebRTCModule/CameraCaptureController.java +338 -0
  12. package/android/src/main/java/com/oney/WebRTCModule/CameraEventsHandler.java +49 -0
  13. package/android/src/main/java/com/oney/WebRTCModule/DataChannelWrapper.java +99 -0
  14. package/android/src/main/java/com/oney/WebRTCModule/DataPacketCryptorManager.java +63 -0
  15. package/android/src/main/java/com/oney/WebRTCModule/DisplayUtils.java +16 -0
  16. package/android/src/main/java/com/oney/WebRTCModule/EglUtils.java +66 -0
  17. package/android/src/main/java/com/oney/WebRTCModule/GetUserMediaImpl.java +539 -0
  18. package/android/src/main/java/com/oney/WebRTCModule/LibraryLoader.java +21 -0
  19. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionNotification.java +70 -0
  20. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionService.java +82 -0
  21. package/android/src/main/java/com/oney/WebRTCModule/PeerConnectionObserver.java +588 -0
  22. package/android/src/main/java/com/oney/WebRTCModule/RTCCryptoManager.java +493 -0
  23. package/android/src/main/java/com/oney/WebRTCModule/RTCVideoViewManager.java +98 -0
  24. package/android/src/main/java/com/oney/WebRTCModule/ReactBridgeUtil.java +36 -0
  25. package/android/src/main/java/com/oney/WebRTCModule/ScreenCaptureController.java +94 -0
  26. package/android/src/main/java/com/oney/WebRTCModule/SerializeUtils.java +342 -0
  27. package/android/src/main/java/com/oney/WebRTCModule/StringUtils.java +101 -0
  28. package/android/src/main/java/com/oney/WebRTCModule/ThreadUtils.java +41 -0
  29. package/android/src/main/java/com/oney/WebRTCModule/TrackCapturerEventsEmitter.java +34 -0
  30. package/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java +137 -0
  31. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java +1593 -0
  32. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModuleOptions.java +33 -0
  33. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModulePackage.java +21 -0
  34. package/android/src/main/java/com/oney/WebRTCModule/WebRTCView.java +583 -0
  35. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/ProcessorProvider.java +38 -0
  36. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoEffectProcessor.java +59 -0
  37. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessor.java +19 -0
  38. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessorFactoryInterface.java +12 -0
  39. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoDecoderFactory.java +73 -0
  40. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoEncoderFactory.java +73 -0
  41. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoDecoderFactoryProxy.java +36 -0
  42. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoEncoderFactoryProxy.java +36 -0
  43. package/android/src/main/java/org/webrtc/Camera1Helper.java +54 -0
  44. package/android/src/main/java/org/webrtc/Camera2Helper.java +52 -0
  45. package/android/src/main/res/values/strings.xml +5 -0
  46. package/android/src/main/res/values/styles.xml +8 -0
  47. package/apple/.placeholder +0 -0
  48. package/ios/RCTWebRTC/CaptureController.h +18 -0
  49. package/ios/RCTWebRTC/CaptureController.m +29 -0
  50. package/ios/RCTWebRTC/CapturerEventsDelegate.h +12 -0
  51. package/ios/RCTWebRTC/DataChannelWrapper.h +27 -0
  52. package/ios/RCTWebRTC/DataChannelWrapper.m +42 -0
  53. package/ios/RCTWebRTC/I420Converter.h +22 -0
  54. package/ios/RCTWebRTC/I420Converter.m +164 -0
  55. package/ios/RCTWebRTC/PIPController.h +24 -0
  56. package/ios/RCTWebRTC/PIPController.m +234 -0
  57. package/ios/RCTWebRTC/RCTConvert+WebRTC.h +16 -0
  58. package/ios/RCTWebRTC/RCTConvert+WebRTC.m +206 -0
  59. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.h +10 -0
  60. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.m +16 -0
  61. package/ios/RCTWebRTC/RTCVideoViewManager.h +29 -0
  62. package/ios/RCTWebRTC/RTCVideoViewManager.m +411 -0
  63. package/ios/RCTWebRTC/SampleBufferVideoCallView.h +12 -0
  64. package/ios/RCTWebRTC/SampleBufferVideoCallView.m +178 -0
  65. package/ios/RCTWebRTC/ScreenCaptureController.h +20 -0
  66. package/ios/RCTWebRTC/ScreenCaptureController.m +83 -0
  67. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.h +7 -0
  68. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.m +60 -0
  69. package/ios/RCTWebRTC/ScreenCapturer.h +19 -0
  70. package/ios/RCTWebRTC/ScreenCapturer.m +264 -0
  71. package/ios/RCTWebRTC/SerializeUtils.h +28 -0
  72. package/ios/RCTWebRTC/SerializeUtils.m +314 -0
  73. package/ios/RCTWebRTC/SocketConnection.h +13 -0
  74. package/ios/RCTWebRTC/SocketConnection.m +137 -0
  75. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.h +14 -0
  76. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.m +37 -0
  77. package/ios/RCTWebRTC/VideoCaptureController.h +21 -0
  78. package/ios/RCTWebRTC/VideoCaptureController.m +328 -0
  79. package/ios/RCTWebRTC/WebRTCModule+Permissions.m +75 -0
  80. package/ios/RCTWebRTC/WebRTCModule+RTCAudioSession.m +20 -0
  81. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.h +14 -0
  82. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.m +165 -0
  83. package/ios/RCTWebRTC/WebRTCModule+RTCFrameCryptor.m +611 -0
  84. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.h +14 -0
  85. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m +545 -0
  86. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.h +24 -0
  87. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.m +1004 -0
  88. package/ios/RCTWebRTC/WebRTCModule+Transceivers.m +267 -0
  89. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.h +12 -0
  90. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.m +166 -0
  91. package/ios/RCTWebRTC/WebRTCModule.h +45 -0
  92. package/ios/RCTWebRTC/WebRTCModule.m +149 -0
  93. package/ios/RCTWebRTC/WebRTCModuleOptions.h +24 -0
  94. package/ios/RCTWebRTC/WebRTCModuleOptions.m +31 -0
  95. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.h +9 -0
  96. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.m +23 -0
  97. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.h +13 -0
  98. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.m +23 -0
  99. package/ios/RCTWebRTC/videoEffects/VideoFrameProcessor.h +8 -0
  100. package/ios/RCTWebRTC.xcodeproj/project.pbxproj +404 -0
  101. package/ios/RCTWebRTC.xcworkspace/contents.xcworkspacedata +10 -0
  102. package/lib/commonjs/Constraints.js +2 -0
  103. package/lib/commonjs/Constraints.js.map +1 -0
  104. package/lib/commonjs/EventEmitter.js +69 -0
  105. package/lib/commonjs/EventEmitter.js.map +1 -0
  106. package/lib/commonjs/Logger.js +47 -0
  107. package/lib/commonjs/Logger.js.map +1 -0
  108. package/lib/commonjs/MediaDevices.js +54 -0
  109. package/lib/commonjs/MediaDevices.js.map +1 -0
  110. package/lib/commonjs/MediaStream.js +137 -0
  111. package/lib/commonjs/MediaStream.js.map +1 -0
  112. package/lib/commonjs/MediaStreamError.js +19 -0
  113. package/lib/commonjs/MediaStreamError.js.map +1 -0
  114. package/lib/commonjs/MediaStreamErrorEvent.js +17 -0
  115. package/lib/commonjs/MediaStreamErrorEvent.js.map +1 -0
  116. package/lib/commonjs/MediaStreamTrack.js +239 -0
  117. package/lib/commonjs/MediaStreamTrack.js.map +1 -0
  118. package/lib/commonjs/MediaStreamTrackEvent.js +26 -0
  119. package/lib/commonjs/MediaStreamTrackEvent.js.map +1 -0
  120. package/lib/commonjs/MessageEvent.js +27 -0
  121. package/lib/commonjs/MessageEvent.js.map +1 -0
  122. package/lib/commonjs/Permissions.js +116 -0
  123. package/lib/commonjs/Permissions.js.map +1 -0
  124. package/lib/commonjs/RTCAudioSession.js +33 -0
  125. package/lib/commonjs/RTCAudioSession.js.map +1 -0
  126. package/lib/commonjs/RTCDataChannel.js +165 -0
  127. package/lib/commonjs/RTCDataChannel.js.map +1 -0
  128. package/lib/commonjs/RTCDataChannelEvent.js +26 -0
  129. package/lib/commonjs/RTCDataChannelEvent.js.map +1 -0
  130. package/lib/commonjs/RTCDataPacketCryptor.js +76 -0
  131. package/lib/commonjs/RTCDataPacketCryptor.js.map +1 -0
  132. package/lib/commonjs/RTCDataPacketCryptorFactory.js +27 -0
  133. package/lib/commonjs/RTCDataPacketCryptorFactory.js.map +1 -0
  134. package/lib/commonjs/RTCErrorEvent.js +23 -0
  135. package/lib/commonjs/RTCErrorEvent.js.map +1 -0
  136. package/lib/commonjs/RTCFrameCryptor.js +138 -0
  137. package/lib/commonjs/RTCFrameCryptor.js.map +1 -0
  138. package/lib/commonjs/RTCFrameCryptorFactory.js +81 -0
  139. package/lib/commonjs/RTCFrameCryptorFactory.js.map +1 -0
  140. package/lib/commonjs/RTCIceCandidate.js +34 -0
  141. package/lib/commonjs/RTCIceCandidate.js.map +1 -0
  142. package/lib/commonjs/RTCIceCandidateEvent.js +28 -0
  143. package/lib/commonjs/RTCIceCandidateEvent.js.map +1 -0
  144. package/lib/commonjs/RTCKeyProvider.js +111 -0
  145. package/lib/commonjs/RTCKeyProvider.js.map +1 -0
  146. package/lib/commonjs/RTCPIPView.js +38 -0
  147. package/lib/commonjs/RTCPIPView.js.map +1 -0
  148. package/lib/commonjs/RTCPeerConnection.js +694 -0
  149. package/lib/commonjs/RTCPeerConnection.js.map +1 -0
  150. package/lib/commonjs/RTCRtcpParameters.js +24 -0
  151. package/lib/commonjs/RTCRtcpParameters.js.map +1 -0
  152. package/lib/commonjs/RTCRtpCapabilities.js +22 -0
  153. package/lib/commonjs/RTCRtpCapabilities.js.map +1 -0
  154. package/lib/commonjs/RTCRtpCodecCapability.js +19 -0
  155. package/lib/commonjs/RTCRtpCodecCapability.js.map +1 -0
  156. package/lib/commonjs/RTCRtpCodecParameters.js +38 -0
  157. package/lib/commonjs/RTCRtpCodecParameters.js.map +1 -0
  158. package/lib/commonjs/RTCRtpEncodingParameters.js +78 -0
  159. package/lib/commonjs/RTCRtpEncodingParameters.js.map +1 -0
  160. package/lib/commonjs/RTCRtpHeaderExtension.js +27 -0
  161. package/lib/commonjs/RTCRtpHeaderExtension.js.map +1 -0
  162. package/lib/commonjs/RTCRtpParameters.js +35 -0
  163. package/lib/commonjs/RTCRtpParameters.js.map +1 -0
  164. package/lib/commonjs/RTCRtpReceiveParameters.js +15 -0
  165. package/lib/commonjs/RTCRtpReceiveParameters.js.map +1 -0
  166. package/lib/commonjs/RTCRtpReceiver.js +53 -0
  167. package/lib/commonjs/RTCRtpReceiver.js.map +1 -0
  168. package/lib/commonjs/RTCRtpSendParameters.js +49 -0
  169. package/lib/commonjs/RTCRtpSendParameters.js.map +1 -0
  170. package/lib/commonjs/RTCRtpSender.js +67 -0
  171. package/lib/commonjs/RTCRtpSender.js.map +1 -0
  172. package/lib/commonjs/RTCRtpTransceiver.js +81 -0
  173. package/lib/commonjs/RTCRtpTransceiver.js.map +1 -0
  174. package/lib/commonjs/RTCSessionDescription.js +33 -0
  175. package/lib/commonjs/RTCSessionDescription.js.map +1 -0
  176. package/lib/commonjs/RTCTrackEvent.js +38 -0
  177. package/lib/commonjs/RTCTrackEvent.js.map +1 -0
  178. package/lib/commonjs/RTCUtil.js +186 -0
  179. package/lib/commonjs/RTCUtil.js.map +1 -0
  180. package/lib/commonjs/RTCView.js +16 -0
  181. package/lib/commonjs/RTCView.js.map +1 -0
  182. package/lib/commonjs/ScreenCapturePickerView.js +10 -0
  183. package/lib/commonjs/ScreenCapturePickerView.js.map +1 -0
  184. package/lib/commonjs/getDisplayMedia.js +33 -0
  185. package/lib/commonjs/getDisplayMedia.js.map +1 -0
  186. package/lib/commonjs/getUserMedia.js +101 -0
  187. package/lib/commonjs/getUserMedia.js.map +1 -0
  188. package/lib/commonjs/index.js +224 -0
  189. package/lib/commonjs/index.js.map +1 -0
  190. package/lib/module/Constraints.js +2 -0
  191. package/lib/module/Constraints.js.map +1 -0
  192. package/lib/module/EventEmitter.js +58 -0
  193. package/lib/module/EventEmitter.js.map +1 -0
  194. package/lib/module/Logger.js +39 -0
  195. package/lib/module/Logger.js.map +1 -0
  196. package/lib/module/MediaDevices.js +46 -0
  197. package/lib/module/MediaDevices.js.map +1 -0
  198. package/lib/module/MediaStream.js +129 -0
  199. package/lib/module/MediaStream.js.map +1 -0
  200. package/lib/module/MediaStreamError.js +12 -0
  201. package/lib/module/MediaStreamError.js.map +1 -0
  202. package/lib/module/MediaStreamErrorEvent.js +10 -0
  203. package/lib/module/MediaStreamErrorEvent.js.map +1 -0
  204. package/lib/module/MediaStreamTrack.js +231 -0
  205. package/lib/module/MediaStreamTrack.js.map +1 -0
  206. package/lib/module/MediaStreamTrackEvent.js +19 -0
  207. package/lib/module/MediaStreamTrackEvent.js.map +1 -0
  208. package/lib/module/MessageEvent.js +20 -0
  209. package/lib/module/MessageEvent.js.map +1 -0
  210. package/lib/module/Permissions.js +109 -0
  211. package/lib/module/Permissions.js.map +1 -0
  212. package/lib/module/RTCAudioSession.js +26 -0
  213. package/lib/module/RTCAudioSession.js.map +1 -0
  214. package/lib/module/RTCDataChannel.js +155 -0
  215. package/lib/module/RTCDataChannel.js.map +1 -0
  216. package/lib/module/RTCDataChannelEvent.js +19 -0
  217. package/lib/module/RTCDataChannelEvent.js.map +1 -0
  218. package/lib/module/RTCDataPacketCryptor.js +66 -0
  219. package/lib/module/RTCDataPacketCryptor.js.map +1 -0
  220. package/lib/module/RTCDataPacketCryptorFactory.js +19 -0
  221. package/lib/module/RTCDataPacketCryptorFactory.js.map +1 -0
  222. package/lib/module/RTCErrorEvent.js +16 -0
  223. package/lib/module/RTCErrorEvent.js.map +1 -0
  224. package/lib/module/RTCFrameCryptor.js +128 -0
  225. package/lib/module/RTCFrameCryptor.js.map +1 -0
  226. package/lib/module/RTCFrameCryptorFactory.js +70 -0
  227. package/lib/module/RTCFrameCryptorFactory.js.map +1 -0
  228. package/lib/module/RTCIceCandidate.js +27 -0
  229. package/lib/module/RTCIceCandidate.js.map +1 -0
  230. package/lib/module/RTCIceCandidateEvent.js +21 -0
  231. package/lib/module/RTCIceCandidateEvent.js.map +1 -0
  232. package/lib/module/RTCKeyProvider.js +101 -0
  233. package/lib/module/RTCKeyProvider.js.map +1 -0
  234. package/lib/module/RTCPIPView.js +26 -0
  235. package/lib/module/RTCPIPView.js.map +1 -0
  236. package/lib/module/RTCPeerConnection.js +684 -0
  237. package/lib/module/RTCPeerConnection.js.map +1 -0
  238. package/lib/module/RTCRtcpParameters.js +17 -0
  239. package/lib/module/RTCRtcpParameters.js.map +1 -0
  240. package/lib/module/RTCRtpCapabilities.js +15 -0
  241. package/lib/module/RTCRtpCapabilities.js.map +1 -0
  242. package/lib/module/RTCRtpCodecCapability.js +12 -0
  243. package/lib/module/RTCRtpCodecCapability.js.map +1 -0
  244. package/lib/module/RTCRtpCodecParameters.js +31 -0
  245. package/lib/module/RTCRtpCodecParameters.js.map +1 -0
  246. package/lib/module/RTCRtpEncodingParameters.js +71 -0
  247. package/lib/module/RTCRtpEncodingParameters.js.map +1 -0
  248. package/lib/module/RTCRtpHeaderExtension.js +20 -0
  249. package/lib/module/RTCRtpHeaderExtension.js.map +1 -0
  250. package/lib/module/RTCRtpParameters.js +27 -0
  251. package/lib/module/RTCRtpParameters.js.map +1 -0
  252. package/lib/module/RTCRtpReceiveParameters.js +7 -0
  253. package/lib/module/RTCRtpReceiveParameters.js.map +1 -0
  254. package/lib/module/RTCRtpReceiver.js +45 -0
  255. package/lib/module/RTCRtpReceiver.js.map +1 -0
  256. package/lib/module/RTCRtpSendParameters.js +41 -0
  257. package/lib/module/RTCRtpSendParameters.js.map +1 -0
  258. package/lib/module/RTCRtpSender.js +59 -0
  259. package/lib/module/RTCRtpSender.js.map +1 -0
  260. package/lib/module/RTCRtpTransceiver.js +74 -0
  261. package/lib/module/RTCRtpTransceiver.js.map +1 -0
  262. package/lib/module/RTCSessionDescription.js +26 -0
  263. package/lib/module/RTCSessionDescription.js.map +1 -0
  264. package/lib/module/RTCTrackEvent.js +31 -0
  265. package/lib/module/RTCTrackEvent.js.map +1 -0
  266. package/lib/module/RTCUtil.js +176 -0
  267. package/lib/module/RTCUtil.js.map +1 -0
  268. package/lib/module/RTCView.js +11 -0
  269. package/lib/module/RTCView.js.map +1 -0
  270. package/lib/module/ScreenCapturePickerView.js +3 -0
  271. package/lib/module/ScreenCapturePickerView.js.map +1 -0
  272. package/lib/module/getDisplayMedia.js +26 -0
  273. package/lib/module/getDisplayMedia.js.map +1 -0
  274. package/lib/module/getUserMedia.js +92 -0
  275. package/lib/module/getUserMedia.js.map +1 -0
  276. package/lib/module/index.js +60 -0
  277. package/lib/module/index.js.map +1 -0
  278. package/lib/typescript/Constraints.d.ts +19 -0
  279. package/lib/typescript/EventEmitter.d.ts +7 -0
  280. package/lib/typescript/Logger.d.ts +13 -0
  281. package/lib/typescript/MediaDevices.d.ts +30 -0
  282. package/lib/typescript/MediaStream.d.ts +48 -0
  283. package/lib/typescript/MediaStreamError.d.ts +6 -0
  284. package/lib/typescript/MediaStreamErrorEvent.d.ts +6 -0
  285. package/lib/typescript/MediaStreamTrack.d.ts +103 -0
  286. package/lib/typescript/MediaStreamTrackEvent.d.ts +19 -0
  287. package/lib/typescript/MessageEvent.d.ts +21 -0
  288. package/lib/typescript/Permissions.d.ts +55 -0
  289. package/lib/typescript/RTCAudioSession.d.ts +10 -0
  290. package/lib/typescript/RTCDataChannel.d.ts +43 -0
  291. package/lib/typescript/RTCDataChannelEvent.d.ts +19 -0
  292. package/lib/typescript/RTCDataPacketCryptor.d.ts +12 -0
  293. package/lib/typescript/RTCDataPacketCryptorFactory.d.ts +6 -0
  294. package/lib/typescript/RTCErrorEvent.d.ts +12 -0
  295. package/lib/typescript/RTCFrameCryptor.d.ts +47 -0
  296. package/lib/typescript/RTCFrameCryptorFactory.d.ts +21 -0
  297. package/lib/typescript/RTCIceCandidate.d.ts +17 -0
  298. package/lib/typescript/RTCIceCandidateEvent.d.ts +20 -0
  299. package/lib/typescript/RTCKeyProvider.d.ts +21 -0
  300. package/lib/typescript/RTCPIPView.d.ts +15 -0
  301. package/lib/typescript/RTCPeerConnection.d.ts +117 -0
  302. package/lib/typescript/RTCRtcpParameters.d.ts +10 -0
  303. package/lib/typescript/RTCRtpCapabilities.d.ts +9 -0
  304. package/lib/typescript/RTCRtpCodecCapability.d.ts +7 -0
  305. package/lib/typescript/RTCRtpCodecParameters.d.ts +16 -0
  306. package/lib/typescript/RTCRtpEncodingParameters.d.ts +23 -0
  307. package/lib/typescript/RTCRtpHeaderExtension.d.ts +12 -0
  308. package/lib/typescript/RTCRtpParameters.d.ts +19 -0
  309. package/lib/typescript/RTCRtpReceiveParameters.d.ts +4 -0
  310. package/lib/typescript/RTCRtpReceiver.d.ts +21 -0
  311. package/lib/typescript/RTCRtpSendParameters.d.ts +20 -0
  312. package/lib/typescript/RTCRtpSender.d.ts +22 -0
  313. package/lib/typescript/RTCRtpTransceiver.d.ts +31 -0
  314. package/lib/typescript/RTCSessionDescription.d.ts +12 -0
  315. package/lib/typescript/RTCTrackEvent.d.ts +29 -0
  316. package/lib/typescript/RTCUtil.d.ts +37 -0
  317. package/lib/typescript/RTCView.d.ts +117 -0
  318. package/lib/typescript/ScreenCapturePickerView.d.ts +2 -0
  319. package/lib/typescript/getDisplayMedia.d.ts +2 -0
  320. package/lib/typescript/getUserMedia.d.ts +7 -0
  321. package/lib/typescript/index.d.ts +22 -0
  322. package/livekit-react-native-webrtc.podspec +29 -0
  323. package/macos/RCTWebRTC.xcodeproj/project.pbxproj +324 -0
  324. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  325. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  326. package/metro.config.js +7 -0
  327. package/metro.config.macos.js +14 -0
  328. package/package.json +65 -0
  329. package/react-native.config.js +11 -0
  330. package/src/.eslintrc.cjs +67 -0
  331. package/src/Constraints.ts +21 -0
  332. package/src/EventEmitter.ts +83 -0
  333. package/src/Logger.ts +49 -0
  334. package/src/MediaDevices.ts +53 -0
  335. package/src/MediaStream.ts +161 -0
  336. package/src/MediaStreamError.ts +12 -0
  337. package/src/MediaStreamErrorEvent.ts +11 -0
  338. package/src/MediaStreamTrack.ts +331 -0
  339. package/src/MediaStreamTrackEvent.ts +25 -0
  340. package/src/MessageEvent.ts +26 -0
  341. package/src/Permissions.ts +133 -0
  342. package/src/RTCAudioSession.ts +25 -0
  343. package/src/RTCDataChannel.ts +190 -0
  344. package/src/RTCDataChannelEvent.ts +28 -0
  345. package/src/RTCDataPacketCryptor.ts +90 -0
  346. package/src/RTCDataPacketCryptorFactory.ts +25 -0
  347. package/src/RTCErrorEvent.ts +21 -0
  348. package/src/RTCFrameCryptor.ts +163 -0
  349. package/src/RTCFrameCryptorFactory.ts +102 -0
  350. package/src/RTCIceCandidate.ts +29 -0
  351. package/src/RTCIceCandidateEvent.ts +26 -0
  352. package/src/RTCKeyProvider.ts +117 -0
  353. package/src/RTCPIPView.tsx +47 -0
  354. package/src/RTCPeerConnection.ts +832 -0
  355. package/src/RTCRtcpParameters.ts +23 -0
  356. package/src/RTCRtpCapabilities.ts +16 -0
  357. package/src/RTCRtpCodecCapability.ts +13 -0
  358. package/src/RTCRtpCodecParameters.ts +44 -0
  359. package/src/RTCRtpEncodingParameters.ts +90 -0
  360. package/src/RTCRtpHeaderExtension.ts +27 -0
  361. package/src/RTCRtpParameters.ts +37 -0
  362. package/src/RTCRtpReceiveParameters.ts +7 -0
  363. package/src/RTCRtpReceiver.ts +60 -0
  364. package/src/RTCRtpSendParameters.ts +63 -0
  365. package/src/RTCRtpSender.ts +78 -0
  366. package/src/RTCRtpTransceiver.ts +107 -0
  367. package/src/RTCSessionDescription.ts +30 -0
  368. package/src/RTCTrackEvent.ts +42 -0
  369. package/src/RTCUtil.ts +211 -0
  370. package/src/RTCView.ts +122 -0
  371. package/src/ScreenCapturePickerView.ts +4 -0
  372. package/src/getDisplayMedia.ts +30 -0
  373. package/src/getUserMedia.ts +111 -0
  374. package/src/index.ts +101 -0
  375. package/tools/format.sh +6 -0
  376. package/tools/release.sh +45 -0
  377. package/tsconfig.json +16 -0
@@ -0,0 +1,7 @@
1
+ export declare function setupNativeEvents(): void;
2
+ declare type EventHandler = (event: unknown) => void;
3
+ declare type Listener = unknown;
4
+ export declare function addListener(listener: Listener, eventName: string, eventHandler: EventHandler): void;
5
+ export declare function removeListener(listener: Listener): void;
6
+ export declare function removeListenerForEvent(listener: Listener, eventName: string): void;
7
+ export {};
@@ -0,0 +1,13 @@
1
+ export default class Logger {
2
+ static ROOT_PREFIX: string;
3
+ private _debug;
4
+ private _info;
5
+ private _warn;
6
+ private _error;
7
+ static enable(ns: string): void;
8
+ constructor(prefix: string);
9
+ debug(msg: string): void;
10
+ info(msg: string): void;
11
+ warn(msg: string): void;
12
+ error(msg: string, err?: Error): void;
13
+ }
@@ -0,0 +1,30 @@
1
+ import { EventTarget, Event } from 'event-target-shim/index';
2
+ import { Constraints } from './getUserMedia';
3
+ declare type MediaDevicesEventMap = {
4
+ devicechange: Event<'devicechange'>;
5
+ };
6
+ declare class MediaDevices extends EventTarget<MediaDevicesEventMap> {
7
+ /**
8
+ * W3C "Media Capture and Streams" compatible {@code enumerateDevices}
9
+ * implementation.
10
+ */
11
+ enumerateDevices(): Promise<unknown>;
12
+ /**
13
+ * W3C "Screen Capture" compatible {@code getDisplayMedia} implementation.
14
+ * See: https://w3c.github.io/mediacapture-screen-share/
15
+ *
16
+ * @returns {Promise}
17
+ */
18
+ getDisplayMedia(): Promise<import("./MediaStream").default>;
19
+ /**
20
+ * W3C "Media Capture and Streams" compatible {@code getUserMedia}
21
+ * implementation.
22
+ * See: https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-enumeratedevices
23
+ *
24
+ * @param {*} constraints
25
+ * @returns {Promise}
26
+ */
27
+ getUserMedia(constraints: Constraints): Promise<import("./MediaStream").default>;
28
+ }
29
+ declare const _default: MediaDevices;
30
+ export default _default;
@@ -0,0 +1,48 @@
1
+ import { EventTarget } from 'event-target-shim/index';
2
+ import MediaStreamTrack, { MediaStreamTrackInfo } from './MediaStreamTrack';
3
+ import MediaStreamTrackEvent from './MediaStreamTrackEvent';
4
+ declare type MediaStreamEventMap = {
5
+ addtrack: MediaStreamTrackEvent<'addtrack'>;
6
+ removetrack: MediaStreamTrackEvent<'removetrack'>;
7
+ };
8
+ export default class MediaStream extends EventTarget<MediaStreamEventMap> {
9
+ _tracks: MediaStreamTrack[];
10
+ _id: string;
11
+ /**
12
+ * The identifier of this MediaStream unique within the associated
13
+ * WebRTCModule instance. As the id of a remote MediaStream instance is unique
14
+ * only within the associated RTCPeerConnection, it is not sufficiently unique
15
+ * to identify this MediaStream across multiple RTCPeerConnections and to
16
+ * unambiguously differentiate it from a local MediaStream instance not added
17
+ * to an RTCPeerConnection.
18
+ */
19
+ _reactTag: string;
20
+ /**
21
+ * A MediaStream can be constructed in several ways, depending on the parameters
22
+ * that are passed here.
23
+ *
24
+ * - undefined: just a new stream, with no tracks.
25
+ * - MediaStream instance: a new stream, with a copy of the tracks of the passed stream.
26
+ * - Array of MediaStreamTrack: a new stream with a copy of the tracks in the array.
27
+ * - object: a new stream instance, represented by the passed info object, this is always
28
+ * done internally, when the stream is first created in native and the JS wrapper is
29
+ * built afterwards.
30
+ */
31
+ constructor(arg?: MediaStream | MediaStreamTrack[] | {
32
+ streamId: string;
33
+ streamReactTag: string;
34
+ tracks: MediaStreamTrackInfo[];
35
+ });
36
+ get id(): string;
37
+ get active(): boolean;
38
+ addTrack(track: MediaStreamTrack): void;
39
+ removeTrack(track: MediaStreamTrack): void;
40
+ getTracks(): MediaStreamTrack[];
41
+ getTrackById(trackId: any): MediaStreamTrack | undefined;
42
+ getAudioTracks(): MediaStreamTrack[];
43
+ getVideoTracks(): MediaStreamTrack[];
44
+ clone(): never;
45
+ toURL(): string;
46
+ release(releaseTracks?: boolean): void;
47
+ }
48
+ export {};
@@ -0,0 +1,6 @@
1
+ export default class MediaStreamError {
2
+ name: string;
3
+ message?: string;
4
+ constraintName?: string;
5
+ constructor(error: any);
6
+ }
@@ -0,0 +1,6 @@
1
+ import type MediaStreamError from './MediaStreamError';
2
+ export default class MediaStreamErrorEvent {
3
+ type: string;
4
+ error?: MediaStreamError;
5
+ constructor(type: any, eventInitDict: any);
6
+ }
@@ -0,0 +1,103 @@
1
+ import { EventTarget, Event } from 'event-target-shim/index';
2
+ import { MediaTrackConstraints } from './Constraints';
3
+ export declare type AudioSampleData = {
4
+ trackId: string;
5
+ samples: number[];
6
+ sampleRate: number;
7
+ channels: number;
8
+ timestamp: number;
9
+ };
10
+ export declare type AudioSinkCallback = (data: AudioSampleData) => void;
11
+ declare type MediaStreamTrackState = 'live' | 'ended';
12
+ export declare type MediaStreamTrackInfo = {
13
+ id: string;
14
+ kind: string;
15
+ remote: boolean;
16
+ constraints: object;
17
+ enabled: boolean;
18
+ settings: object;
19
+ peerConnectionId: number;
20
+ readyState: MediaStreamTrackState;
21
+ };
22
+ export declare type MediaTrackSettings = {
23
+ width?: number;
24
+ height?: number;
25
+ frameRate?: number;
26
+ facingMode?: string;
27
+ deviceId?: string;
28
+ groupId?: string;
29
+ };
30
+ declare type MediaStreamTrackEventMap = {
31
+ ended: Event<'ended'>;
32
+ mute: Event<'mute'>;
33
+ unmute: Event<'unmute'>;
34
+ };
35
+ export default class MediaStreamTrack extends EventTarget<MediaStreamTrackEventMap> {
36
+ _constraints: MediaTrackConstraints;
37
+ _enabled: boolean;
38
+ _settings: MediaTrackSettings;
39
+ _muted: boolean;
40
+ _peerConnectionId: number;
41
+ _readyState: MediaStreamTrackState;
42
+ readonly id: string;
43
+ readonly kind: string;
44
+ readonly label: string;
45
+ readonly remote: boolean;
46
+ constructor(info: MediaStreamTrackInfo);
47
+ get enabled(): boolean;
48
+ set enabled(enabled: boolean);
49
+ get muted(): boolean;
50
+ get readyState(): string;
51
+ stop(): void;
52
+ /**
53
+ * Private / custom API for switching the cameras on the fly, without the
54
+ * need for adding / removing tracks or doing any SDP renegotiation.
55
+ *
56
+ * This is how the reference application (AppRTCMobile) implements camera
57
+ * switching.
58
+ *
59
+ * @deprecated Use applyConstraints instead.
60
+ */
61
+ _switchCamera(): void;
62
+ _setVideoEffects(names: string[]): void;
63
+ _setVideoEffect(name: string): void;
64
+ /**
65
+ * Internal function which is used to set the muted state on remote tracks and
66
+ * emit the mute / unmute event.
67
+ *
68
+ * @param muted Whether the track should be marked as muted / unmuted.
69
+ */
70
+ _setMutedInternal(muted: boolean): void;
71
+ /**
72
+ * Custom API for setting the volume on an individual audio track.
73
+ *
74
+ * @param volume a gain value in the range of 0-10. defaults to 1.0
75
+ */
76
+ _setVolume(volume: number): void;
77
+ /**
78
+ * Applies a new set of constraints to the track.
79
+ *
80
+ * @param constraints An object listing the constraints
81
+ * to apply to the track's constrainable properties; any existing
82
+ * constraints are replaced with the new values specified, and any
83
+ * constrainable properties not included are restored to their default
84
+ * constraints. If this parameter is omitted, all currently set custom
85
+ * constraints are cleared.
86
+ */
87
+ applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;
88
+ clone(): never;
89
+ getCapabilities(): never;
90
+ getConstraints(): MediaTrackConstraints;
91
+ getSettings(): MediaTrackSettings;
92
+ _registerEvents(): void;
93
+ private _audioSinkCallback;
94
+ private _audioSinkListenerActive;
95
+ private _playbackEnabled;
96
+ _setAudioSinkCallback(callback: AudioSinkCallback | null): void;
97
+ _handleAudioSamples(data: AudioSampleData): void;
98
+ setAudioSink(callback: AudioSinkCallback | null): void;
99
+ setPlaybackEnabled(enabled: boolean): void;
100
+ isPlaybackEnabled(): boolean;
101
+ release(): void;
102
+ }
103
+ export {};
@@ -0,0 +1,19 @@
1
+ import { Event } from 'event-target-shim/index';
2
+ import type MediaStreamTrack from './MediaStreamTrack';
3
+ declare type MEDIA_STREAM_EVENTS = 'addtrack' | 'removetrack';
4
+ interface IMediaStreamTrackEventInitDict extends Event.EventInit {
5
+ track: MediaStreamTrack;
6
+ }
7
+ /**
8
+ * @eventClass
9
+ * This event is fired whenever the MediaStreamTrack has changed in any way.
10
+ * @param {MEDIA_STREAM_EVENTS} type - The type of event.
11
+ * @param {IMediaStreamTrackEventInitDict} eventInitDict - The event init properties.
12
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaStream#events MDN} for details.
13
+ */
14
+ export default class MediaStreamTrackEvent<TEventType extends MEDIA_STREAM_EVENTS> extends Event<TEventType> {
15
+ /** @eventProperty */
16
+ track: MediaStreamTrack;
17
+ constructor(type: TEventType, eventInitDict: IMediaStreamTrackEventInitDict);
18
+ }
19
+ export {};
@@ -0,0 +1,21 @@
1
+ /// <reference types="react-native" />
2
+ import { Event } from 'event-target-shim/index';
3
+ export declare type MessageEventData = string | ArrayBuffer | Blob;
4
+ declare type MESSAGE_EVENTS = 'message' | 'messageerror';
5
+ interface IMessageEventInitDict extends Event.EventInit {
6
+ data: MessageEventData;
7
+ }
8
+ /**
9
+ * @eventClass
10
+ * This event is fired whenever the RTCDataChannel send message.
11
+ * @param {MESSAGE_EVENTS} type - The type of event.
12
+ * @param {IMessageEventInitDict} eventInitDict - The event init properties.
13
+ * @see
14
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/message_event#event_type MDN} for details.
15
+ */
16
+ export default class MessageEvent<TEventType extends MESSAGE_EVENTS> extends Event<TEventType> {
17
+ /** @eventProperty */
18
+ data: MessageEventData;
19
+ constructor(type: TEventType, eventInitDict: IMessageEventInitDict);
20
+ }
21
+ export {};
@@ -0,0 +1,55 @@
1
+ import { Permission } from 'react-native';
2
+ /**
3
+ * Type declaration for a permissions descriptor.
4
+ */
5
+ declare type PermissionDescriptor = {
6
+ name: string;
7
+ };
8
+ /**
9
+ * Class implementing a subset of W3C's Permissions API as defined by:
10
+ * https://www.w3.org/TR/permissions/
11
+ */
12
+ declare class Permissions {
13
+ /**
14
+ * Possible result values for {@link query}, in accordance with:
15
+ * https://www.w3.org/TR/permissions/#status-of-a-permission
16
+ */
17
+ RESULT: {
18
+ DENIED: string;
19
+ GRANTED: string;
20
+ PROMPT: string;
21
+ };
22
+ /**
23
+ * This implementation only supports requesting these permissions, a subset
24
+ * of: https://www.w3.org/TR/permissions/#permission-registry
25
+ */
26
+ VALID_PERMISSIONS: string[];
27
+ _lastReq: Promise<unknown>;
28
+ /**
29
+ * Helper for requesting Android permissions. On Android only one permission
30
+ * can be requested at a time (unless the multi-permission API is used,
31
+ * but we are not using that for symmetry with the W3C API for querying)
32
+ * so we'll queue them up.
33
+ *
34
+ * @param perm - The requested permission from
35
+ * {@link PermissionsAndroid.PERMISSIONS}
36
+ * https://facebook.github.io/react-native/docs/permissionsandroid#permissions-that-require-prompting-the-user
37
+ */
38
+ _requestPermissionAndroid(perm: Permission): Promise<unknown>;
39
+ /**
40
+ * Validates the given permission descriptor.
41
+ */
42
+ _validatePermissionDescriptior(permissionDesc: any): void;
43
+ /**
44
+ * Method for querying the status of a permission, according to:
45
+ * https://www.w3.org/TR/permissions/#permissions-interface
46
+ */
47
+ query(permissionDesc: PermissionDescriptor): any;
48
+ /**
49
+ * Custom method NOT defined by W3C's permissions API, which allows the
50
+ * caller to request a permission.
51
+ */
52
+ request(permissionDesc: PermissionDescriptor): any;
53
+ }
54
+ declare const _default: Permissions;
55
+ export default _default;
@@ -0,0 +1,10 @@
1
+ export default class RTCAudioSession {
2
+ /**
3
+ * To be called when CallKit activates the audio session.
4
+ */
5
+ static audioSessionDidActivate(): void;
6
+ /**
7
+ * To be called when CallKit deactivates the audio session.
8
+ */
9
+ static audioSessionDidDeactivate(): void;
10
+ }
@@ -0,0 +1,43 @@
1
+ import { EventTarget } from 'event-target-shim/index';
2
+ import MessageEvent from './MessageEvent';
3
+ import RTCDataChannelEvent from './RTCDataChannelEvent';
4
+ declare type RTCDataChannelState = 'connecting' | 'open' | 'closing' | 'closed';
5
+ declare type DataChannelEventMap = {
6
+ bufferedamountlow: RTCDataChannelEvent<'bufferedamountlow'>;
7
+ close: RTCDataChannelEvent<'close'>;
8
+ closing: RTCDataChannelEvent<'closing'>;
9
+ error: RTCDataChannelEvent<'error'>;
10
+ message: MessageEvent<'message'>;
11
+ open: RTCDataChannelEvent<'open'>;
12
+ };
13
+ export default class RTCDataChannel extends EventTarget<DataChannelEventMap> {
14
+ _peerConnectionId: number;
15
+ _reactTag: string;
16
+ _bufferedAmount: number;
17
+ _id: number;
18
+ _label: string;
19
+ _maxPacketLifeTime?: number;
20
+ _maxRetransmits?: number;
21
+ _negotiated: boolean;
22
+ _ordered: boolean;
23
+ _protocol: string;
24
+ _readyState: RTCDataChannelState;
25
+ binaryType: string;
26
+ bufferedAmountLowThreshold: number;
27
+ constructor(info: any);
28
+ get bufferedAmount(): number;
29
+ get label(): string;
30
+ get id(): number;
31
+ get ordered(): boolean;
32
+ get maxPacketLifeTime(): number | undefined;
33
+ get maxRetransmits(): number | undefined;
34
+ get protocol(): string;
35
+ get negotiated(): boolean;
36
+ get readyState(): string;
37
+ send(data: string): void;
38
+ send(data: ArrayBuffer): void;
39
+ send(data: ArrayBufferView): void;
40
+ close(): void;
41
+ _registerEvents(): void;
42
+ }
43
+ export {};
@@ -0,0 +1,19 @@
1
+ import { Event } from 'event-target-shim/index';
2
+ import type RTCDataChannel from './RTCDataChannel';
3
+ declare type DATA_CHANNEL_EVENTS = 'open' | 'message' | 'bufferedamountlow' | 'closing' | 'close' | 'error' | 'datachannel';
4
+ interface IRTCDataChannelEventInitDict extends Event.EventInit {
5
+ channel: RTCDataChannel;
6
+ }
7
+ /**
8
+ * @eventClass
9
+ * This event is fired whenever the RTCDataChannel has changed in any way.
10
+ * @param {DATA_CHANNEL_EVENTS} type - The type of event.
11
+ * @param {IRTCDataChannelEventInitDict} eventInitDict - The event init properties.
12
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel#events MDN} for details.
13
+ */
14
+ export default class RTCDataChannelEvent<TEventType extends DATA_CHANNEL_EVENTS> extends Event<TEventType> {
15
+ /** @eventProperty */
16
+ channel: RTCDataChannel;
17
+ constructor(type: TEventType, eventInitDict: IRTCDataChannelEventInitDict);
18
+ }
19
+ export {};
@@ -0,0 +1,12 @@
1
+ export interface RTCEncryptedPacket {
2
+ payload: Uint8Array;
3
+ iv: Uint8Array;
4
+ keyIndex: number;
5
+ }
6
+ export default class RTCDataPacketCryptor {
7
+ _id: string;
8
+ constructor(dataPacketCryptorId: string);
9
+ encrypt(participantId: string, keyIndex: number, data: Uint8Array): Promise<RTCEncryptedPacket | null>;
10
+ decrypt(participantId: string, packet: RTCEncryptedPacket): Promise<Uint8Array | null>;
11
+ dispose(): Promise<void>;
12
+ }
@@ -0,0 +1,6 @@
1
+ import RTCDataPacketCryptor from './RTCDataPacketCryptor';
2
+ import RTCFrameCryptorAlgorithm from './RTCFrameCryptorFactory';
3
+ import RTCKeyProvider from './RTCKeyProvider';
4
+ export default class RTCDataPacketCryptorFactory {
5
+ static createDataPacketCryptor(algorithm: RTCFrameCryptorAlgorithm, keyProvider: RTCKeyProvider): Promise<RTCDataPacketCryptor>;
6
+ }
@@ -0,0 +1,12 @@
1
+ import { Event } from 'event-target-shim/index';
2
+ declare type RTCPeerConnectionErrorFunc = 'addTransceiver' | 'getTransceivers' | 'addTrack' | 'removeTrack';
3
+ /**
4
+ * @brief This class Represents internal error happening on the native side as
5
+ * part of asynchronous invocations to synchronous web APIs.
6
+ */
7
+ export default class RTCErrorEvent<TEventType extends RTCPeerConnectionErrorFunc> extends Event<TEventType> {
8
+ readonly func: RTCPeerConnectionErrorFunc;
9
+ readonly message: string;
10
+ constructor(type: TEventType, func: RTCPeerConnectionErrorFunc, message: string);
11
+ }
12
+ export {};
@@ -0,0 +1,47 @@
1
+ import { Event, EventTarget } from 'event-target-shim/index';
2
+ declare type FRAME_CRYPTOR_EVENTS = 'onframecryptorstatechanged';
3
+ interface IRTCDataChannelEventInitDict extends Event.EventInit {
4
+ frameCryptor: RTCFrameCryptor;
5
+ state: RTCFrameCryptorState;
6
+ }
7
+ /**
8
+ * @eventClass
9
+ * This event is fired whenever the RTCDataChannel has changed in any way.
10
+ * @param {FRAME_CRYPTOR_EVENTS} type - The type of event.
11
+ * @param {IRTCDataChannelEventInitDict} eventInitDict - The event init properties.
12
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel#events MDN} for details.
13
+ */
14
+ export declare class RTCFrameCryptorStateEvent<TEventType extends FRAME_CRYPTOR_EVENTS> extends Event<TEventType> {
15
+ /** @eventProperty */
16
+ frameCryptor: RTCFrameCryptor;
17
+ /** @eventProperty */
18
+ state: RTCFrameCryptorState;
19
+ constructor(type: TEventType, eventInitDict: IRTCDataChannelEventInitDict);
20
+ }
21
+ declare type RTCFrameCryptorEventMap = {
22
+ onframecryptorstatechanged: RTCFrameCryptorStateEvent<'onframecryptorstatechanged'>;
23
+ };
24
+ export declare enum RTCFrameCryptorState {
25
+ FrameCryptorStateNew = 0,
26
+ FrameCryptorStateOk = 1,
27
+ FrameCryptorStateEncryptionFailed = 2,
28
+ FrameCryptorStateDecryptionFailed = 3,
29
+ FrameCryptorStateMissingKey = 4,
30
+ FrameCryptorStateKeyRatcheted = 5,
31
+ FrameCryptorStateInternalError = 6
32
+ }
33
+ export default class RTCFrameCryptor extends EventTarget<RTCFrameCryptorEventMap> {
34
+ private _frameCryptorId;
35
+ private _participantId;
36
+ constructor(frameCryptorId: string, participantId: string);
37
+ get id(): string;
38
+ get participantId(): string;
39
+ _cryptorStateFromString(str: string): RTCFrameCryptorState;
40
+ setKeyIndex(keyIndex: number): Promise<boolean>;
41
+ getKeyIndex(): Promise<number>;
42
+ setEnabled(enabled: boolean): Promise<boolean>;
43
+ getEnabled(): Promise<boolean>;
44
+ dispose(): Promise<void>;
45
+ _registerEvents(): void;
46
+ }
47
+ export {};
@@ -0,0 +1,21 @@
1
+ import RTCFrameCryptor from './RTCFrameCryptor';
2
+ import RTCKeyProvider from './RTCKeyProvider';
3
+ import RTCRtpReceiver from './RTCRtpReceiver';
4
+ import RTCRtpSender from './RTCRtpSender';
5
+ export declare enum RTCFrameCryptorAlgorithm {
6
+ kAesGcm = 0
7
+ }
8
+ export declare type RTCKeyProviderOptions = {
9
+ sharedKey: boolean;
10
+ ratchetSalt: string | Uint8Array;
11
+ ratchetWindowSize: number;
12
+ uncryptedMagicBytes?: Uint8Array;
13
+ failureTolerance?: number;
14
+ keyRingSize?: number;
15
+ discardFrameWhenCryptorNotReady?: boolean;
16
+ };
17
+ export default class RTCFrameCryptorFactory {
18
+ static createFrameCryptorForRtpSender(participantId: string, sender: RTCRtpSender, algorithm: RTCFrameCryptorAlgorithm, keyProvider: RTCKeyProvider): RTCFrameCryptor;
19
+ static createFrameCryptorForRtpReceiver(participantId: string, receiver: RTCRtpReceiver, algorithm: RTCFrameCryptorAlgorithm, keyProvider: RTCKeyProvider): RTCFrameCryptor;
20
+ static createDefaultKeyProvider(options: RTCKeyProviderOptions): RTCKeyProvider;
21
+ }
@@ -0,0 +1,17 @@
1
+ interface RTCIceCandidateInfo {
2
+ candidate?: string;
3
+ sdpMLineIndex?: number | null;
4
+ sdpMid?: string | null;
5
+ }
6
+ export default class RTCIceCandidate {
7
+ candidate: string;
8
+ sdpMLineIndex?: number | null;
9
+ sdpMid?: string | null;
10
+ constructor({ candidate, sdpMLineIndex, sdpMid }: RTCIceCandidateInfo);
11
+ toJSON(): {
12
+ candidate: string;
13
+ sdpMLineIndex: number | null | undefined;
14
+ sdpMid: string | null | undefined;
15
+ };
16
+ }
17
+ export {};
@@ -0,0 +1,20 @@
1
+ import { Event } from 'event-target-shim/index';
2
+ import type RTCIceCandidate from './RTCIceCandidate';
3
+ declare type RTC_ICECANDIDATE_EVENTS = 'icecandidate' | 'icecandidateerror';
4
+ interface IRTCDataChannelEventInitDict extends Event.EventInit {
5
+ candidate: RTCIceCandidate | null;
6
+ }
7
+ /**
8
+ * @eventClass
9
+ * This event is fired whenever the icecandidate related RTC_EVENTS changed.
10
+ * @type {RTCIceCandidateEvent} for icecandidate related.
11
+ * @param {RTC_ICECANDIDATE_EVENTS} type - The type of event.
12
+ * @param {IRTCDataChannelEventInitDict} eventInitDict - The event init properties.
13
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection#events MDN} for details.
14
+ */
15
+ export default class RTCIceCandidateEvent<TEventType extends RTC_ICECANDIDATE_EVENTS> extends Event<TEventType> {
16
+ /** @eventProperty */
17
+ candidate: RTCIceCandidate | null;
18
+ constructor(type: TEventType, eventInitDict: IRTCDataChannelEventInitDict);
19
+ }
20
+ export {};
@@ -0,0 +1,21 @@
1
+ export declare enum FrameCryptorState {
2
+ FrameCryptorStateNew = 0,
3
+ FrameCryptorStateOk = 1,
4
+ FrameCryptorStateEncryptionFailed = 2,
5
+ FrameCryptorStateDecryptionFailed = 3,
6
+ FrameCryptorStateMissingKey = 4,
7
+ FrameCryptorStateKeyRatcheted = 5,
8
+ FrameCryptorStateInternalError = 6
9
+ }
10
+ export default class RTCKeyProvider {
11
+ _id: string;
12
+ constructor(keyProviderId: string);
13
+ setSharedKey(key: string | Uint8Array, keyIndex?: number): Promise<any>;
14
+ ratchetSharedKey(keyIndex?: number): Promise<Uint8Array>;
15
+ exportSharedKey(keyIndex?: number): Promise<Uint8Array>;
16
+ setKey(participantId: string, key: string | Uint8Array, keyIndex?: number): Promise<boolean>;
17
+ ratchetKey(participantId: string, keyIndex?: number): Promise<Uint8Array>;
18
+ exportKey(participantId: string, keyIndex?: number): Promise<Uint8Array>;
19
+ setSifTrailer(trailer: Uint8Array): Promise<any>;
20
+ dispose(): Promise<any>;
21
+ }
@@ -0,0 +1,15 @@
1
+ import { Component } from 'react';
2
+ import ReactNative from 'react-native';
3
+ import { RTCIOSPIPOptions, RTCVideoViewProps } from './RTCView';
4
+ export interface RTCPIPViewProps extends RTCVideoViewProps {
5
+ iosPIP?: RTCIOSPIPOptions & {
6
+ fallbackView?: Component;
7
+ };
8
+ }
9
+ /**
10
+ * A convenience wrapper around RTCView to handle the fallback view as a prop.
11
+ */
12
+ declare const RTCPIPView: import("react").ForwardRefExoticComponent<RTCPIPViewProps & import("react").RefAttributes<Component<RTCVideoViewProps, {}, any> & Readonly<ReactNative.NativeMethods>>>;
13
+ export declare function startIOSPIP(ref: any): void;
14
+ export declare function stopIOSPIP(ref: any): void;
15
+ export default RTCPIPView;