@sbhjt-gr/react-native-webrtc 124.0.0

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 (417) hide show
  1. package/.clang-format +11 -0
  2. package/.claude/settings.local.json +9 -0
  3. package/.eslintignore +6 -0
  4. package/.nvmrc +1 -0
  5. package/ISSUE_TEMPLATE.md +40 -0
  6. package/LICENSE +22 -0
  7. package/README.md +103 -0
  8. package/android/build.gradle +37 -0
  9. package/android/consumer-rules.pro +3 -0
  10. package/android/src/main/AndroidManifest.xml +11 -0
  11. package/android/src/main/java/com/oney/WebRTCModule/AbstractVideoCaptureController.java +113 -0
  12. package/android/src/main/java/com/oney/WebRTCModule/CameraCaptureController.java +338 -0
  13. package/android/src/main/java/com/oney/WebRTCModule/CameraEventsHandler.java +49 -0
  14. package/android/src/main/java/com/oney/WebRTCModule/DataChannelWrapper.java +99 -0
  15. package/android/src/main/java/com/oney/WebRTCModule/DataPacketCryptorManager.java +63 -0
  16. package/android/src/main/java/com/oney/WebRTCModule/DisplayUtils.java +16 -0
  17. package/android/src/main/java/com/oney/WebRTCModule/EglUtils.java +66 -0
  18. package/android/src/main/java/com/oney/WebRTCModule/GetUserMediaImpl.java +539 -0
  19. package/android/src/main/java/com/oney/WebRTCModule/LibraryLoader.java +21 -0
  20. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionNotification.java +70 -0
  21. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionService.java +82 -0
  22. package/android/src/main/java/com/oney/WebRTCModule/PeerConnectionObserver.java +588 -0
  23. package/android/src/main/java/com/oney/WebRTCModule/RTCCryptoManager.java +493 -0
  24. package/android/src/main/java/com/oney/WebRTCModule/RTCVideoViewManager.java +98 -0
  25. package/android/src/main/java/com/oney/WebRTCModule/ReactBridgeUtil.java +36 -0
  26. package/android/src/main/java/com/oney/WebRTCModule/ScreenCaptureController.java +94 -0
  27. package/android/src/main/java/com/oney/WebRTCModule/SerializeUtils.java +342 -0
  28. package/android/src/main/java/com/oney/WebRTCModule/StringUtils.java +101 -0
  29. package/android/src/main/java/com/oney/WebRTCModule/ThreadUtils.java +41 -0
  30. package/android/src/main/java/com/oney/WebRTCModule/TrackCapturerEventsEmitter.java +34 -0
  31. package/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java +137 -0
  32. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java +1643 -0
  33. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModuleOptions.java +33 -0
  34. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModulePackage.java +21 -0
  35. package/android/src/main/java/com/oney/WebRTCModule/WebRTCView.java +583 -0
  36. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraClient.java +464 -0
  37. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraConfig.java +17 -0
  38. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraListener.java +7 -0
  39. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/ProcessorProvider.java +38 -0
  40. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoEffectProcessor.java +59 -0
  41. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessor.java +19 -0
  42. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessorFactoryInterface.java +12 -0
  43. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoDecoderFactory.java +73 -0
  44. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoEncoderFactory.java +73 -0
  45. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoDecoderFactoryProxy.java +36 -0
  46. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoEncoderFactoryProxy.java +36 -0
  47. package/android/src/main/java/org/webrtc/Camera1Helper.java +54 -0
  48. package/android/src/main/java/org/webrtc/Camera2Helper.java +52 -0
  49. package/android/src/main/res/values/strings.xml +5 -0
  50. package/android/src/main/res/values/styles.xml +8 -0
  51. package/apple/.placeholder +0 -0
  52. package/ios/RCTWebRTC/CaptureController.h +18 -0
  53. package/ios/RCTWebRTC/CaptureController.m +29 -0
  54. package/ios/RCTWebRTC/CapturerEventsDelegate.h +12 -0
  55. package/ios/RCTWebRTC/DataChannelWrapper.h +27 -0
  56. package/ios/RCTWebRTC/DataChannelWrapper.m +42 -0
  57. package/ios/RCTWebRTC/I420Converter.h +22 -0
  58. package/ios/RCTWebRTC/I420Converter.m +164 -0
  59. package/ios/RCTWebRTC/PIPController.h +24 -0
  60. package/ios/RCTWebRTC/PIPController.m +234 -0
  61. package/ios/RCTWebRTC/PalabraAudioSink.h +13 -0
  62. package/ios/RCTWebRTC/PalabraAudioSink.m +18 -0
  63. package/ios/RCTWebRTC/PalabraClient.h +36 -0
  64. package/ios/RCTWebRTC/PalabraClient.m +584 -0
  65. package/ios/RCTWebRTC/RCTConvert+WebRTC.h +16 -0
  66. package/ios/RCTWebRTC/RCTConvert+WebRTC.m +206 -0
  67. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.h +10 -0
  68. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.m +16 -0
  69. package/ios/RCTWebRTC/RTCVideoViewManager.h +29 -0
  70. package/ios/RCTWebRTC/RTCVideoViewManager.m +411 -0
  71. package/ios/RCTWebRTC/SampleBufferVideoCallView.h +12 -0
  72. package/ios/RCTWebRTC/SampleBufferVideoCallView.m +178 -0
  73. package/ios/RCTWebRTC/ScreenCaptureController.h +20 -0
  74. package/ios/RCTWebRTC/ScreenCaptureController.m +83 -0
  75. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.h +7 -0
  76. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.m +60 -0
  77. package/ios/RCTWebRTC/ScreenCapturer.h +19 -0
  78. package/ios/RCTWebRTC/ScreenCapturer.m +264 -0
  79. package/ios/RCTWebRTC/SerializeUtils.h +28 -0
  80. package/ios/RCTWebRTC/SerializeUtils.m +314 -0
  81. package/ios/RCTWebRTC/SocketConnection.h +13 -0
  82. package/ios/RCTWebRTC/SocketConnection.m +137 -0
  83. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.h +14 -0
  84. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.m +37 -0
  85. package/ios/RCTWebRTC/VideoCaptureController.h +21 -0
  86. package/ios/RCTWebRTC/VideoCaptureController.m +328 -0
  87. package/ios/RCTWebRTC/WebRTCModule+Palabra.h +4 -0
  88. package/ios/RCTWebRTC/WebRTCModule+Palabra.m +83 -0
  89. package/ios/RCTWebRTC/WebRTCModule+Permissions.m +75 -0
  90. package/ios/RCTWebRTC/WebRTCModule+RTCAudioSession.m +20 -0
  91. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.h +14 -0
  92. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.m +165 -0
  93. package/ios/RCTWebRTC/WebRTCModule+RTCFrameCryptor.m +611 -0
  94. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.h +14 -0
  95. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m +533 -0
  96. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.h +24 -0
  97. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.m +1004 -0
  98. package/ios/RCTWebRTC/WebRTCModule+Transceivers.m +267 -0
  99. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.h +12 -0
  100. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.m +166 -0
  101. package/ios/RCTWebRTC/WebRTCModule.h +51 -0
  102. package/ios/RCTWebRTC/WebRTCModule.m +151 -0
  103. package/ios/RCTWebRTC/WebRTCModuleOptions.h +24 -0
  104. package/ios/RCTWebRTC/WebRTCModuleOptions.m +31 -0
  105. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.h +9 -0
  106. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.m +23 -0
  107. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.h +13 -0
  108. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.m +23 -0
  109. package/ios/RCTWebRTC/videoEffects/VideoFrameProcessor.h +8 -0
  110. package/ios/RCTWebRTC.xcodeproj/project.pbxproj +404 -0
  111. package/ios/RCTWebRTC.xcworkspace/contents.xcworkspacedata +10 -0
  112. package/lib/commonjs/Constraints.js +2 -0
  113. package/lib/commonjs/Constraints.js.map +1 -0
  114. package/lib/commonjs/EventEmitter.js +51 -0
  115. package/lib/commonjs/EventEmitter.js.map +1 -0
  116. package/lib/commonjs/Logger.js +47 -0
  117. package/lib/commonjs/Logger.js.map +1 -0
  118. package/lib/commonjs/MediaDevices.js +54 -0
  119. package/lib/commonjs/MediaDevices.js.map +1 -0
  120. package/lib/commonjs/MediaStream.js +137 -0
  121. package/lib/commonjs/MediaStream.js.map +1 -0
  122. package/lib/commonjs/MediaStreamError.js +19 -0
  123. package/lib/commonjs/MediaStreamError.js.map +1 -0
  124. package/lib/commonjs/MediaStreamErrorEvent.js +17 -0
  125. package/lib/commonjs/MediaStreamErrorEvent.js.map +1 -0
  126. package/lib/commonjs/MediaStreamTrack.js +203 -0
  127. package/lib/commonjs/MediaStreamTrack.js.map +1 -0
  128. package/lib/commonjs/MediaStreamTrackEvent.js +26 -0
  129. package/lib/commonjs/MediaStreamTrackEvent.js.map +1 -0
  130. package/lib/commonjs/MessageEvent.js +27 -0
  131. package/lib/commonjs/MessageEvent.js.map +1 -0
  132. package/lib/commonjs/Permissions.js +116 -0
  133. package/lib/commonjs/Permissions.js.map +1 -0
  134. package/lib/commonjs/RTCAudioSession.js +33 -0
  135. package/lib/commonjs/RTCAudioSession.js.map +1 -0
  136. package/lib/commonjs/RTCDataChannel.js +165 -0
  137. package/lib/commonjs/RTCDataChannel.js.map +1 -0
  138. package/lib/commonjs/RTCDataChannelEvent.js +26 -0
  139. package/lib/commonjs/RTCDataChannelEvent.js.map +1 -0
  140. package/lib/commonjs/RTCDataPacketCryptor.js +76 -0
  141. package/lib/commonjs/RTCDataPacketCryptor.js.map +1 -0
  142. package/lib/commonjs/RTCDataPacketCryptorFactory.js +27 -0
  143. package/lib/commonjs/RTCDataPacketCryptorFactory.js.map +1 -0
  144. package/lib/commonjs/RTCErrorEvent.js +23 -0
  145. package/lib/commonjs/RTCErrorEvent.js.map +1 -0
  146. package/lib/commonjs/RTCFrameCryptor.js +138 -0
  147. package/lib/commonjs/RTCFrameCryptor.js.map +1 -0
  148. package/lib/commonjs/RTCFrameCryptorFactory.js +81 -0
  149. package/lib/commonjs/RTCFrameCryptorFactory.js.map +1 -0
  150. package/lib/commonjs/RTCIceCandidate.js +34 -0
  151. package/lib/commonjs/RTCIceCandidate.js.map +1 -0
  152. package/lib/commonjs/RTCIceCandidateEvent.js +28 -0
  153. package/lib/commonjs/RTCIceCandidateEvent.js.map +1 -0
  154. package/lib/commonjs/RTCKeyProvider.js +111 -0
  155. package/lib/commonjs/RTCKeyProvider.js.map +1 -0
  156. package/lib/commonjs/RTCPIPView.js +38 -0
  157. package/lib/commonjs/RTCPIPView.js.map +1 -0
  158. package/lib/commonjs/RTCPIPView.web.js +23 -0
  159. package/lib/commonjs/RTCPIPView.web.js.map +1 -0
  160. package/lib/commonjs/RTCPeerConnection.js +694 -0
  161. package/lib/commonjs/RTCPeerConnection.js.map +1 -0
  162. package/lib/commonjs/RTCRtcpParameters.js +24 -0
  163. package/lib/commonjs/RTCRtcpParameters.js.map +1 -0
  164. package/lib/commonjs/RTCRtpCapabilities.js +22 -0
  165. package/lib/commonjs/RTCRtpCapabilities.js.map +1 -0
  166. package/lib/commonjs/RTCRtpCodecCapability.js +19 -0
  167. package/lib/commonjs/RTCRtpCodecCapability.js.map +1 -0
  168. package/lib/commonjs/RTCRtpCodecParameters.js +38 -0
  169. package/lib/commonjs/RTCRtpCodecParameters.js.map +1 -0
  170. package/lib/commonjs/RTCRtpEncodingParameters.js +78 -0
  171. package/lib/commonjs/RTCRtpEncodingParameters.js.map +1 -0
  172. package/lib/commonjs/RTCRtpHeaderExtension.js +27 -0
  173. package/lib/commonjs/RTCRtpHeaderExtension.js.map +1 -0
  174. package/lib/commonjs/RTCRtpParameters.js +35 -0
  175. package/lib/commonjs/RTCRtpParameters.js.map +1 -0
  176. package/lib/commonjs/RTCRtpReceiveParameters.js +15 -0
  177. package/lib/commonjs/RTCRtpReceiveParameters.js.map +1 -0
  178. package/lib/commonjs/RTCRtpReceiver.js +53 -0
  179. package/lib/commonjs/RTCRtpReceiver.js.map +1 -0
  180. package/lib/commonjs/RTCRtpSendParameters.js +49 -0
  181. package/lib/commonjs/RTCRtpSendParameters.js.map +1 -0
  182. package/lib/commonjs/RTCRtpSender.js +67 -0
  183. package/lib/commonjs/RTCRtpSender.js.map +1 -0
  184. package/lib/commonjs/RTCRtpTransceiver.js +81 -0
  185. package/lib/commonjs/RTCRtpTransceiver.js.map +1 -0
  186. package/lib/commonjs/RTCSessionDescription.js +33 -0
  187. package/lib/commonjs/RTCSessionDescription.js.map +1 -0
  188. package/lib/commonjs/RTCTrackEvent.js +38 -0
  189. package/lib/commonjs/RTCTrackEvent.js.map +1 -0
  190. package/lib/commonjs/RTCUtil.js +186 -0
  191. package/lib/commonjs/RTCUtil.js.map +1 -0
  192. package/lib/commonjs/RTCView.js +16 -0
  193. package/lib/commonjs/RTCView.js.map +1 -0
  194. package/lib/commonjs/RTCView.web.js +62 -0
  195. package/lib/commonjs/RTCView.web.js.map +1 -0
  196. package/lib/commonjs/ScreenCapturePickerView.js +10 -0
  197. package/lib/commonjs/ScreenCapturePickerView.js.map +1 -0
  198. package/lib/commonjs/ScreenCapturePickerView.web.js +10 -0
  199. package/lib/commonjs/ScreenCapturePickerView.web.js.map +1 -0
  200. package/lib/commonjs/getDisplayMedia.js +33 -0
  201. package/lib/commonjs/getDisplayMedia.js.map +1 -0
  202. package/lib/commonjs/getUserMedia.js +101 -0
  203. package/lib/commonjs/getUserMedia.js.map +1 -0
  204. package/lib/commonjs/index.js +224 -0
  205. package/lib/commonjs/index.js.map +1 -0
  206. package/lib/commonjs/index.web.js +175 -0
  207. package/lib/commonjs/index.web.js.map +1 -0
  208. package/lib/commonjs/webStream.js +35 -0
  209. package/lib/commonjs/webStream.js.map +1 -0
  210. package/lib/module/Constraints.js +2 -0
  211. package/lib/module/Constraints.js.map +1 -0
  212. package/lib/module/EventEmitter.js +41 -0
  213. package/lib/module/EventEmitter.js.map +1 -0
  214. package/lib/module/Logger.js +39 -0
  215. package/lib/module/Logger.js.map +1 -0
  216. package/lib/module/MediaDevices.js +46 -0
  217. package/lib/module/MediaDevices.js.map +1 -0
  218. package/lib/module/MediaStream.js +129 -0
  219. package/lib/module/MediaStream.js.map +1 -0
  220. package/lib/module/MediaStreamError.js +12 -0
  221. package/lib/module/MediaStreamError.js.map +1 -0
  222. package/lib/module/MediaStreamErrorEvent.js +10 -0
  223. package/lib/module/MediaStreamErrorEvent.js.map +1 -0
  224. package/lib/module/MediaStreamTrack.js +195 -0
  225. package/lib/module/MediaStreamTrack.js.map +1 -0
  226. package/lib/module/MediaStreamTrackEvent.js +19 -0
  227. package/lib/module/MediaStreamTrackEvent.js.map +1 -0
  228. package/lib/module/MessageEvent.js +20 -0
  229. package/lib/module/MessageEvent.js.map +1 -0
  230. package/lib/module/Permissions.js +109 -0
  231. package/lib/module/Permissions.js.map +1 -0
  232. package/lib/module/RTCAudioSession.js +26 -0
  233. package/lib/module/RTCAudioSession.js.map +1 -0
  234. package/lib/module/RTCDataChannel.js +155 -0
  235. package/lib/module/RTCDataChannel.js.map +1 -0
  236. package/lib/module/RTCDataChannelEvent.js +19 -0
  237. package/lib/module/RTCDataChannelEvent.js.map +1 -0
  238. package/lib/module/RTCDataPacketCryptor.js +66 -0
  239. package/lib/module/RTCDataPacketCryptor.js.map +1 -0
  240. package/lib/module/RTCDataPacketCryptorFactory.js +19 -0
  241. package/lib/module/RTCDataPacketCryptorFactory.js.map +1 -0
  242. package/lib/module/RTCErrorEvent.js +16 -0
  243. package/lib/module/RTCErrorEvent.js.map +1 -0
  244. package/lib/module/RTCFrameCryptor.js +128 -0
  245. package/lib/module/RTCFrameCryptor.js.map +1 -0
  246. package/lib/module/RTCFrameCryptorFactory.js +70 -0
  247. package/lib/module/RTCFrameCryptorFactory.js.map +1 -0
  248. package/lib/module/RTCIceCandidate.js +27 -0
  249. package/lib/module/RTCIceCandidate.js.map +1 -0
  250. package/lib/module/RTCIceCandidateEvent.js +21 -0
  251. package/lib/module/RTCIceCandidateEvent.js.map +1 -0
  252. package/lib/module/RTCKeyProvider.js +101 -0
  253. package/lib/module/RTCKeyProvider.js.map +1 -0
  254. package/lib/module/RTCPIPView.js +26 -0
  255. package/lib/module/RTCPIPView.js.map +1 -0
  256. package/lib/module/RTCPIPView.web.js +11 -0
  257. package/lib/module/RTCPIPView.web.js.map +1 -0
  258. package/lib/module/RTCPeerConnection.js +684 -0
  259. package/lib/module/RTCPeerConnection.js.map +1 -0
  260. package/lib/module/RTCRtcpParameters.js +17 -0
  261. package/lib/module/RTCRtcpParameters.js.map +1 -0
  262. package/lib/module/RTCRtpCapabilities.js +15 -0
  263. package/lib/module/RTCRtpCapabilities.js.map +1 -0
  264. package/lib/module/RTCRtpCodecCapability.js +12 -0
  265. package/lib/module/RTCRtpCodecCapability.js.map +1 -0
  266. package/lib/module/RTCRtpCodecParameters.js +31 -0
  267. package/lib/module/RTCRtpCodecParameters.js.map +1 -0
  268. package/lib/module/RTCRtpEncodingParameters.js +71 -0
  269. package/lib/module/RTCRtpEncodingParameters.js.map +1 -0
  270. package/lib/module/RTCRtpHeaderExtension.js +20 -0
  271. package/lib/module/RTCRtpHeaderExtension.js.map +1 -0
  272. package/lib/module/RTCRtpParameters.js +27 -0
  273. package/lib/module/RTCRtpParameters.js.map +1 -0
  274. package/lib/module/RTCRtpReceiveParameters.js +7 -0
  275. package/lib/module/RTCRtpReceiveParameters.js.map +1 -0
  276. package/lib/module/RTCRtpReceiver.js +45 -0
  277. package/lib/module/RTCRtpReceiver.js.map +1 -0
  278. package/lib/module/RTCRtpSendParameters.js +41 -0
  279. package/lib/module/RTCRtpSendParameters.js.map +1 -0
  280. package/lib/module/RTCRtpSender.js +59 -0
  281. package/lib/module/RTCRtpSender.js.map +1 -0
  282. package/lib/module/RTCRtpTransceiver.js +74 -0
  283. package/lib/module/RTCRtpTransceiver.js.map +1 -0
  284. package/lib/module/RTCSessionDescription.js +26 -0
  285. package/lib/module/RTCSessionDescription.js.map +1 -0
  286. package/lib/module/RTCTrackEvent.js +31 -0
  287. package/lib/module/RTCTrackEvent.js.map +1 -0
  288. package/lib/module/RTCUtil.js +176 -0
  289. package/lib/module/RTCUtil.js.map +1 -0
  290. package/lib/module/RTCView.js +11 -0
  291. package/lib/module/RTCView.js.map +1 -0
  292. package/lib/module/RTCView.web.js +54 -0
  293. package/lib/module/RTCView.web.js.map +1 -0
  294. package/lib/module/ScreenCapturePickerView.js +3 -0
  295. package/lib/module/ScreenCapturePickerView.js.map +1 -0
  296. package/lib/module/ScreenCapturePickerView.web.js +4 -0
  297. package/lib/module/ScreenCapturePickerView.web.js.map +1 -0
  298. package/lib/module/getDisplayMedia.js +26 -0
  299. package/lib/module/getDisplayMedia.js.map +1 -0
  300. package/lib/module/getUserMedia.js +92 -0
  301. package/lib/module/getUserMedia.js.map +1 -0
  302. package/lib/module/index.js +60 -0
  303. package/lib/module/index.js.map +1 -0
  304. package/lib/module/index.web.js +114 -0
  305. package/lib/module/index.web.js.map +1 -0
  306. package/lib/module/webStream.js +27 -0
  307. package/lib/module/webStream.js.map +1 -0
  308. package/lib/typescript/Constraints.d.ts +19 -0
  309. package/lib/typescript/EventEmitter.d.ts +6 -0
  310. package/lib/typescript/Logger.d.ts +13 -0
  311. package/lib/typescript/MediaDevices.d.ts +30 -0
  312. package/lib/typescript/MediaStream.d.ts +48 -0
  313. package/lib/typescript/MediaStreamError.d.ts +6 -0
  314. package/lib/typescript/MediaStreamErrorEvent.d.ts +6 -0
  315. package/lib/typescript/MediaStreamTrack.d.ts +101 -0
  316. package/lib/typescript/MediaStreamTrackEvent.d.ts +19 -0
  317. package/lib/typescript/MessageEvent.d.ts +20 -0
  318. package/lib/typescript/Permissions.d.ts +55 -0
  319. package/lib/typescript/RTCAudioSession.d.ts +10 -0
  320. package/lib/typescript/RTCDataChannel.d.ts +43 -0
  321. package/lib/typescript/RTCDataChannelEvent.d.ts +19 -0
  322. package/lib/typescript/RTCDataPacketCryptor.d.ts +12 -0
  323. package/lib/typescript/RTCDataPacketCryptorFactory.d.ts +6 -0
  324. package/lib/typescript/RTCErrorEvent.d.ts +12 -0
  325. package/lib/typescript/RTCFrameCryptor.d.ts +47 -0
  326. package/lib/typescript/RTCFrameCryptorFactory.d.ts +21 -0
  327. package/lib/typescript/RTCIceCandidate.d.ts +17 -0
  328. package/lib/typescript/RTCIceCandidateEvent.d.ts +20 -0
  329. package/lib/typescript/RTCKeyProvider.d.ts +21 -0
  330. package/lib/typescript/RTCPIPView.d.ts +15 -0
  331. package/lib/typescript/RTCPIPView.web.d.ts +13 -0
  332. package/lib/typescript/RTCPeerConnection.d.ts +117 -0
  333. package/lib/typescript/RTCRtcpParameters.d.ts +10 -0
  334. package/lib/typescript/RTCRtpCapabilities.d.ts +9 -0
  335. package/lib/typescript/RTCRtpCodecCapability.d.ts +7 -0
  336. package/lib/typescript/RTCRtpCodecParameters.d.ts +16 -0
  337. package/lib/typescript/RTCRtpEncodingParameters.d.ts +23 -0
  338. package/lib/typescript/RTCRtpHeaderExtension.d.ts +12 -0
  339. package/lib/typescript/RTCRtpParameters.d.ts +19 -0
  340. package/lib/typescript/RTCRtpReceiveParameters.d.ts +4 -0
  341. package/lib/typescript/RTCRtpReceiver.d.ts +21 -0
  342. package/lib/typescript/RTCRtpSendParameters.d.ts +20 -0
  343. package/lib/typescript/RTCRtpSender.d.ts +22 -0
  344. package/lib/typescript/RTCRtpTransceiver.d.ts +31 -0
  345. package/lib/typescript/RTCSessionDescription.d.ts +12 -0
  346. package/lib/typescript/RTCTrackEvent.d.ts +29 -0
  347. package/lib/typescript/RTCUtil.d.ts +37 -0
  348. package/lib/typescript/RTCView.d.ts +117 -0
  349. package/lib/typescript/RTCView.web.d.ts +25 -0
  350. package/lib/typescript/ScreenCapturePickerView.d.ts +2 -0
  351. package/lib/typescript/ScreenCapturePickerView.web.d.ts +1 -0
  352. package/lib/typescript/getDisplayMedia.d.ts +2 -0
  353. package/lib/typescript/getUserMedia.d.ts +7 -0
  354. package/lib/typescript/index.d.ts +22 -0
  355. package/lib/typescript/index.web.d.ts +101 -0
  356. package/lib/typescript/webStream.d.ts +3 -0
  357. package/livekit-react-native-webrtc.podspec +29 -0
  358. package/macos/RCTWebRTC.xcodeproj/project.pbxproj +324 -0
  359. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  360. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  361. package/metro.config.js +7 -0
  362. package/metro.config.macos.js +14 -0
  363. package/package.json +66 -0
  364. package/react-native.config.js +11 -0
  365. package/src/.eslintrc.cjs +67 -0
  366. package/src/Constraints.ts +21 -0
  367. package/src/EventEmitter.ts +65 -0
  368. package/src/Logger.ts +49 -0
  369. package/src/MediaDevices.ts +53 -0
  370. package/src/MediaStream.ts +161 -0
  371. package/src/MediaStreamError.ts +12 -0
  372. package/src/MediaStreamErrorEvent.ts +11 -0
  373. package/src/MediaStreamTrack.ts +284 -0
  374. package/src/MediaStreamTrackEvent.ts +25 -0
  375. package/src/MessageEvent.ts +26 -0
  376. package/src/Permissions.ts +133 -0
  377. package/src/RTCAudioSession.ts +25 -0
  378. package/src/RTCDataChannel.ts +190 -0
  379. package/src/RTCDataChannelEvent.ts +28 -0
  380. package/src/RTCDataPacketCryptor.ts +90 -0
  381. package/src/RTCDataPacketCryptorFactory.ts +25 -0
  382. package/src/RTCErrorEvent.ts +21 -0
  383. package/src/RTCFrameCryptor.ts +163 -0
  384. package/src/RTCFrameCryptorFactory.ts +102 -0
  385. package/src/RTCIceCandidate.ts +29 -0
  386. package/src/RTCIceCandidateEvent.ts +26 -0
  387. package/src/RTCKeyProvider.ts +117 -0
  388. package/src/RTCPIPView.tsx +47 -0
  389. package/src/RTCPIPView.web.tsx +18 -0
  390. package/src/RTCPeerConnection.ts +832 -0
  391. package/src/RTCRtcpParameters.ts +23 -0
  392. package/src/RTCRtpCapabilities.ts +16 -0
  393. package/src/RTCRtpCodecCapability.ts +13 -0
  394. package/src/RTCRtpCodecParameters.ts +44 -0
  395. package/src/RTCRtpEncodingParameters.ts +90 -0
  396. package/src/RTCRtpHeaderExtension.ts +27 -0
  397. package/src/RTCRtpParameters.ts +37 -0
  398. package/src/RTCRtpReceiveParameters.ts +7 -0
  399. package/src/RTCRtpReceiver.ts +60 -0
  400. package/src/RTCRtpSendParameters.ts +63 -0
  401. package/src/RTCRtpSender.ts +78 -0
  402. package/src/RTCRtpTransceiver.ts +107 -0
  403. package/src/RTCSessionDescription.ts +30 -0
  404. package/src/RTCTrackEvent.ts +42 -0
  405. package/src/RTCUtil.ts +211 -0
  406. package/src/RTCView.ts +122 -0
  407. package/src/RTCView.web.tsx +82 -0
  408. package/src/ScreenCapturePickerView.ts +4 -0
  409. package/src/ScreenCapturePickerView.web.tsx +3 -0
  410. package/src/getDisplayMedia.ts +30 -0
  411. package/src/getUserMedia.ts +111 -0
  412. package/src/index.ts +107 -0
  413. package/src/index.web.ts +191 -0
  414. package/src/webStream.ts +33 -0
  415. package/tools/format.sh +6 -0
  416. package/tools/release.sh +45 -0
  417. package/tsconfig.json +17 -0
@@ -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;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { RTCIOSPIPOptions, RTCVideoViewProps } from './RTCView.web';
3
+ export declare type RTCPIPViewProps = RTCVideoViewProps & {
4
+ fallbackView?: React.ReactNode;
5
+ iosPIP?: RTCIOSPIPOptions;
6
+ };
7
+ declare const RTCPIPView: React.ForwardRefExoticComponent<RTCVideoViewProps & {
8
+ fallbackView?: React.ReactNode;
9
+ iosPIP?: RTCIOSPIPOptions | undefined;
10
+ } & React.RefAttributes<unknown>>;
11
+ export declare function startIOSPIP(): void;
12
+ export declare function stopIOSPIP(): void;
13
+ export default RTCPIPView;
@@ -0,0 +1,117 @@
1
+ import { EventTarget, Event } from 'event-target-shim/index';
2
+ import MediaStream from './MediaStream';
3
+ import MediaStreamTrack from './MediaStreamTrack';
4
+ import RTCDataChannel from './RTCDataChannel';
5
+ import RTCDataChannelEvent from './RTCDataChannelEvent';
6
+ import RTCIceCandidateEvent from './RTCIceCandidateEvent';
7
+ import RTCRtpReceiver from './RTCRtpReceiver';
8
+ import RTCRtpSender from './RTCRtpSender';
9
+ import RTCRtpTransceiver from './RTCRtpTransceiver';
10
+ import RTCSessionDescription, { RTCSessionDescriptionInit } from './RTCSessionDescription';
11
+ import RTCTrackEvent from './RTCTrackEvent';
12
+ import { RTCOfferOptions } from './RTCUtil';
13
+ declare type RTCSignalingState = 'stable' | 'have-local-offer' | 'have-remote-offer' | 'have-local-pranswer' | 'have-remote-pranswer' | 'closed';
14
+ declare type RTCIceGatheringState = 'new' | 'gathering' | 'complete';
15
+ declare type RTCPeerConnectionState = 'new' | 'connecting' | 'connected' | 'disconnected' | 'failed' | 'closed';
16
+ declare type RTCIceConnectionState = 'new' | 'checking' | 'connected' | 'completed' | 'failed' | 'disconnected' | 'closed';
17
+ declare type RTCDataChannelInit = {
18
+ ordered?: boolean;
19
+ maxPacketLifeTime?: number;
20
+ maxRetransmits?: number;
21
+ protocol?: string;
22
+ negotiated?: boolean;
23
+ id?: number;
24
+ };
25
+ declare type RTCIceServer = {
26
+ credential?: string;
27
+ url?: string;
28
+ urls?: string | string[];
29
+ username?: string;
30
+ };
31
+ declare type RTCConfiguration = {
32
+ bundlePolicy?: 'balanced' | 'max-compat' | 'max-bundle';
33
+ iceCandidatePoolSize?: number;
34
+ iceServers?: RTCIceServer[];
35
+ iceTransportPolicy?: 'all' | 'relay';
36
+ rtcpMuxPolicy?: 'negotiate' | 'require';
37
+ };
38
+ declare type RTCPeerConnectionEventMap = {
39
+ connectionstatechange: Event<'connectionstatechange'>;
40
+ icecandidate: RTCIceCandidateEvent<'icecandidate'>;
41
+ icecandidateerror: RTCIceCandidateEvent<'icecandidateerror'>;
42
+ iceconnectionstatechange: Event<'iceconnectionstatechange'>;
43
+ icegatheringstatechange: Event<'icegatheringstatechange'>;
44
+ negotiationneeded: Event<'negotiationneeded'>;
45
+ signalingstatechange: Event<'signalingstatechange'>;
46
+ datachannel: RTCDataChannelEvent<'datachannel'>;
47
+ track: RTCTrackEvent<'track'>;
48
+ error: Event<'error'>;
49
+ };
50
+ export default class RTCPeerConnection extends EventTarget<RTCPeerConnectionEventMap> {
51
+ localDescription: RTCSessionDescription | null;
52
+ remoteDescription: RTCSessionDescription | null;
53
+ signalingState: RTCSignalingState;
54
+ iceGatheringState: RTCIceGatheringState;
55
+ connectionState: RTCPeerConnectionState;
56
+ iceConnectionState: RTCIceConnectionState;
57
+ _pcId: number;
58
+ _transceivers: {
59
+ order: number;
60
+ transceiver: RTCRtpTransceiver;
61
+ }[];
62
+ _remoteStreams: Map<string, MediaStream>;
63
+ _pendingTrackEvents: any[];
64
+ constructor(configuration?: RTCConfiguration);
65
+ createOffer(options?: RTCOfferOptions): Promise<any>;
66
+ createAnswer(): Promise<any>;
67
+ setConfiguration(configuration: any): void;
68
+ setLocalDescription(sessionDescription?: RTCSessionDescription | RTCSessionDescriptionInit): Promise<void>;
69
+ setRemoteDescription(sessionDescription: RTCSessionDescription | RTCSessionDescriptionInit): Promise<void>;
70
+ addIceCandidate(candidate: any): Promise<void>;
71
+ /**
72
+ * @brief Adds a new track to the {@link RTCPeerConnection},
73
+ * and indicates that it is contained in the specified {@link MediaStream}s.
74
+ * This method has to be synchronous as the W3C API expects a track to be returned
75
+ * @param {MediaStreamTrack} track The track to be added
76
+ * @param {...MediaStream} streams One or more {@link MediaStream}s the track needs to be added to
77
+ * https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack
78
+ */
79
+ addTrack(track: MediaStreamTrack, ...streams: MediaStream[]): RTCRtpSender;
80
+ addTransceiver(source: 'audio' | 'video' | MediaStreamTrack, init: any): RTCRtpTransceiver;
81
+ removeTrack(sender: RTCRtpSender): void;
82
+ getStats(selector?: MediaStreamTrack): Promise<any>;
83
+ getTransceivers(): RTCRtpTransceiver[];
84
+ getSenders(): RTCRtpSender[];
85
+ getReceivers(): RTCRtpReceiver[];
86
+ close(): void;
87
+ restartIce(): void;
88
+ _registerEvents(): void;
89
+ /**
90
+ * Creates a new RTCDataChannel object with the given label. The
91
+ * RTCDataChannelInit dictionary can be used to configure properties of the
92
+ * underlying channel such as data reliability.
93
+ *
94
+ * @param {string} label - the value with which the label attribute of the new
95
+ * instance is to be initialized
96
+ * @param {RTCDataChannelInit} dataChannelDict - an optional dictionary of
97
+ * values with which to initialize corresponding attributes of the new
98
+ * instance such as id
99
+ */
100
+ createDataChannel(label: string, dataChannelDict?: RTCDataChannelInit): RTCDataChannel;
101
+ /**
102
+ * Check whether a media stream track exists already in a sender.
103
+ * See https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack for more information
104
+ */
105
+ _trackExists(track: MediaStreamTrack): boolean;
106
+ /**
107
+ * Updates transceivers after offer/answer updates if necessary.
108
+ */
109
+ _updateTransceivers(transceiverUpdates: any, removeStopped?: boolean): void;
110
+ /**
111
+ * Inserts transceiver into the transceiver array in the order they are created (timestamp).
112
+ * @param order an index that refers to when it it was created relatively.
113
+ * @param transceiver the transceiver object to be inserted.
114
+ */
115
+ _insertTransceiverSorted(order: number, transceiver: RTCRtpTransceiver): void;
116
+ }
117
+ export {};
@@ -0,0 +1,10 @@
1
+ export interface RTCRtcpParametersInit {
2
+ cname: string;
3
+ reducedSize: boolean;
4
+ }
5
+ export default class RTCRtcpParameters {
6
+ readonly cname: string;
7
+ readonly reducedSize: boolean;
8
+ constructor(init: RTCRtcpParametersInit);
9
+ toJSON(): RTCRtcpParametersInit;
10
+ }
@@ -0,0 +1,9 @@
1
+ import RTCRtpCodecCapability from './RTCRtpCodecCapability';
2
+ /**
3
+ * @brief represents codec capabilities for senders and receivers.
4
+ */
5
+ export default class RTCRtpCapabilities {
6
+ _codecs: RTCRtpCodecCapability[];
7
+ constructor(codecs: RTCRtpCodecCapability[]);
8
+ get codecs(): RTCRtpCodecCapability[];
9
+ }
@@ -0,0 +1,7 @@
1
+ export default class RTCRtpCodecCapability {
2
+ _mimeType: string;
3
+ constructor(init: {
4
+ mimeType: string;
5
+ });
6
+ get mimeType(): string;
7
+ }
@@ -0,0 +1,16 @@
1
+ export interface RTCRtpCodecParametersInit {
2
+ payloadType: number;
3
+ clockRate: number;
4
+ mimeType: string;
5
+ channels?: number;
6
+ sdpFmtpLine?: string;
7
+ }
8
+ export default class RTCRtpCodecParameters {
9
+ readonly payloadType: number;
10
+ readonly clockRate: number;
11
+ readonly mimeType: string;
12
+ readonly channels: number | null;
13
+ readonly sdpFmtpLine: string | null;
14
+ constructor(init: RTCRtpCodecParametersInit);
15
+ toJSON(): RTCRtpCodecParametersInit;
16
+ }
@@ -0,0 +1,23 @@
1
+ export interface RTCRtpEncodingParametersInit {
2
+ active: boolean;
3
+ rid?: string;
4
+ maxFramerate?: number;
5
+ maxBitrate?: number;
6
+ scaleResolutionDownBy?: number;
7
+ }
8
+ export default class RTCRtpEncodingParameters {
9
+ active: boolean;
10
+ _rid: string | null;
11
+ _maxFramerate: number | null;
12
+ _maxBitrate: number | null;
13
+ _scaleResolutionDownBy: number | null;
14
+ constructor(init: RTCRtpEncodingParametersInit);
15
+ get rid(): string | null;
16
+ get maxFramerate(): number | null;
17
+ set maxFramerate(framerate: number | null);
18
+ get maxBitrate(): number | null;
19
+ set maxBitrate(bitrate: number | null);
20
+ get scaleResolutionDownBy(): number | null;
21
+ set scaleResolutionDownBy(resolutionScale: number | null);
22
+ toJSON(): RTCRtpEncodingParametersInit;
23
+ }
@@ -0,0 +1,12 @@
1
+ export interface RTCRtpHeaderExtensionInit {
2
+ id: number;
3
+ uri: string;
4
+ encrypted: boolean;
5
+ }
6
+ export default class RTCRtpHeaderExtension {
7
+ readonly id: number;
8
+ readonly uri: string;
9
+ readonly encrypted: boolean;
10
+ constructor(init: RTCRtpHeaderExtensionInit);
11
+ toJSON(): RTCRtpHeaderExtensionInit;
12
+ }
@@ -0,0 +1,19 @@
1
+ import RTCRtcpParameters, { RTCRtcpParametersInit } from './RTCRtcpParameters';
2
+ import RTCRtpCodecParameters, { RTCRtpCodecParametersInit } from './RTCRtpCodecParameters';
3
+ import RTCRtpHeaderExtension, { RTCRtpHeaderExtensionInit } from './RTCRtpHeaderExtension';
4
+ export interface RTCRtpParametersInit {
5
+ codecs: RTCRtpCodecParametersInit[];
6
+ headerExtensions: RTCRtpHeaderExtensionInit[];
7
+ rtcp: RTCRtcpParametersInit;
8
+ }
9
+ export default class RTCRtpParameters {
10
+ codecs: (RTCRtpCodecParameters | RTCRtpCodecParametersInit)[];
11
+ readonly headerExtensions: RTCRtpHeaderExtension[];
12
+ readonly rtcp: RTCRtcpParameters;
13
+ constructor(init: RTCRtpParametersInit);
14
+ toJSON(): {
15
+ codecs: (RTCRtpCodecParametersInit | RTCRtpCodecParameters)[];
16
+ headerExtensions: RTCRtpHeaderExtension[];
17
+ rtcp: RTCRtcpParameters;
18
+ };
19
+ }
@@ -0,0 +1,4 @@
1
+ import RTCRtpParameters, { RTCRtpParametersInit } from './RTCRtpParameters';
2
+ export default class RTCRtpReceiveParameters extends RTCRtpParameters {
3
+ constructor(init: RTCRtpParametersInit);
4
+ }
@@ -0,0 +1,21 @@
1
+ import MediaStreamTrack from './MediaStreamTrack';
2
+ import RTCRtpCapabilities from './RTCRtpCapabilities';
3
+ import { RTCRtpParametersInit } from './RTCRtpParameters';
4
+ import RTCRtpReceiveParameters from './RTCRtpReceiveParameters';
5
+ export default class RTCRtpReceiver {
6
+ _id: string;
7
+ _peerConnectionId: number;
8
+ _track: MediaStreamTrack | null;
9
+ _rtpParameters: RTCRtpReceiveParameters;
10
+ constructor(info: {
11
+ peerConnectionId: number;
12
+ id: string;
13
+ track?: MediaStreamTrack;
14
+ rtpParameters: RTCRtpParametersInit;
15
+ });
16
+ static getCapabilities(kind: 'audio' | 'video'): RTCRtpCapabilities;
17
+ getStats(): any;
18
+ getParameters(): RTCRtpReceiveParameters;
19
+ get id(): string;
20
+ get track(): MediaStreamTrack | null;
21
+ }
@@ -0,0 +1,20 @@
1
+ import RTCRtpEncodingParameters, { RTCRtpEncodingParametersInit } from './RTCRtpEncodingParameters';
2
+ import RTCRtpParameters, { RTCRtpParametersInit } from './RTCRtpParameters';
3
+ declare type DegradationPreferenceType = 'maintain-framerate' | 'maintain-resolution' | 'balanced' | 'disabled';
4
+ export interface RTCRtpSendParametersInit extends RTCRtpParametersInit {
5
+ transactionId: string;
6
+ encodings: RTCRtpEncodingParametersInit[];
7
+ degradationPreference?: string;
8
+ }
9
+ export default class RTCRtpSendParameters extends RTCRtpParameters {
10
+ readonly transactionId: string;
11
+ encodings: (RTCRtpEncodingParameters | RTCRtpEncodingParametersInit)[];
12
+ degradationPreference: DegradationPreferenceType | null;
13
+ constructor(init: RTCRtpSendParametersInit);
14
+ toJSON(): {
15
+ codecs: (import("./RTCRtpCodecParameters").RTCRtpCodecParametersInit | import("./RTCRtpCodecParameters").default)[];
16
+ headerExtensions: import("./RTCRtpHeaderExtension").default[];
17
+ rtcp: import("./RTCRtcpParameters").default;
18
+ };
19
+ }
20
+ export {};
@@ -0,0 +1,22 @@
1
+ import MediaStreamTrack from './MediaStreamTrack';
2
+ import RTCRtpCapabilities from './RTCRtpCapabilities';
3
+ import RTCRtpSendParameters, { RTCRtpSendParametersInit } from './RTCRtpSendParameters';
4
+ export default class RTCRtpSender {
5
+ _id: string;
6
+ _track: MediaStreamTrack | null;
7
+ _peerConnectionId: number;
8
+ _rtpParameters: RTCRtpSendParameters;
9
+ constructor(info: {
10
+ peerConnectionId: number;
11
+ id: string;
12
+ track?: MediaStreamTrack;
13
+ rtpParameters: RTCRtpSendParametersInit;
14
+ });
15
+ replaceTrack(track: MediaStreamTrack | null): Promise<void>;
16
+ static getCapabilities(kind: 'audio' | 'video'): RTCRtpCapabilities;
17
+ getParameters(): RTCRtpSendParameters;
18
+ setParameters(parameters: RTCRtpSendParameters): Promise<void>;
19
+ getStats(): any;
20
+ get track(): MediaStreamTrack | null;
21
+ get id(): string;
22
+ }
@@ -0,0 +1,31 @@
1
+ import RTCRtpCodecCapability from './RTCRtpCodecCapability';
2
+ import RTCRtpReceiver from './RTCRtpReceiver';
3
+ import RTCRtpSender from './RTCRtpSender';
4
+ export default class RTCRtpTransceiver {
5
+ _peerConnectionId: number;
6
+ _sender: RTCRtpSender;
7
+ _receiver: RTCRtpReceiver;
8
+ _mid: string | null;
9
+ _direction: string;
10
+ _currentDirection: string;
11
+ _stopped: boolean;
12
+ constructor(args: {
13
+ peerConnectionId: number;
14
+ isStopped: boolean;
15
+ direction: string;
16
+ currentDirection: string;
17
+ mid?: string;
18
+ sender: RTCRtpSender;
19
+ receiver: RTCRtpReceiver;
20
+ });
21
+ get mid(): string | null;
22
+ get stopped(): boolean;
23
+ get direction(): string;
24
+ set direction(val: string);
25
+ get currentDirection(): string;
26
+ get sender(): RTCRtpSender;
27
+ get receiver(): RTCRtpReceiver;
28
+ stop(): void;
29
+ setCodecPreferences(codecs: RTCRtpCodecCapability[]): void;
30
+ _setStopped(): void;
31
+ }
@@ -0,0 +1,12 @@
1
+ export interface RTCSessionDescriptionInit {
2
+ sdp: string;
3
+ type: string | null;
4
+ }
5
+ export default class RTCSessionDescription {
6
+ _sdp: string;
7
+ _type: string | null;
8
+ constructor(info?: RTCSessionDescriptionInit);
9
+ get sdp(): string;
10
+ get type(): string | null;
11
+ toJSON(): RTCSessionDescriptionInit;
12
+ }
@@ -0,0 +1,29 @@
1
+ import { Event } from 'event-target-shim/index';
2
+ import MediaStream from './MediaStream';
3
+ import type MediaStreamTrack from './MediaStreamTrack';
4
+ import RTCRtpReceiver from './RTCRtpReceiver';
5
+ import RTCRtpTransceiver from './RTCRtpTransceiver';
6
+ declare type TRACK_EVENTS = 'track';
7
+ interface IRTCTrackEventInitDict extends Event.EventInit {
8
+ streams: MediaStream[];
9
+ transceiver: RTCRtpTransceiver;
10
+ }
11
+ /**
12
+ * @eventClass
13
+ * This event is fired whenever the Track is changed in PeerConnection.
14
+ * @param {TRACK_EVENTS} type - The type of event.
15
+ * @param {IRTCTrackEventInitDict} eventInitDict - The event init properties.
16
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/track_event MDN} for details.
17
+ */
18
+ export default class RTCTrackEvent<TEventType extends TRACK_EVENTS> extends Event<TEventType> {
19
+ /** @eventProperty */
20
+ readonly streams: MediaStream[];
21
+ /** @eventProperty */
22
+ readonly transceiver: RTCRtpTransceiver;
23
+ /** @eventProperty */
24
+ readonly receiver: RTCRtpReceiver | null;
25
+ /** @eventProperty */
26
+ readonly track: MediaStreamTrack | null;
27
+ constructor(type: TEventType, eventInitDict: IRTCTrackEventInitDict);
28
+ }
29
+ export {};
@@ -0,0 +1,37 @@
1
+ export declare type RTCOfferOptions = {
2
+ iceRestart?: boolean;
3
+ offerToReceiveAudio?: boolean;
4
+ offerToReceiveVideo?: boolean;
5
+ voiceActivityDetection?: boolean;
6
+ };
7
+ /**
8
+ * Put together a random string in UUIDv4 format {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
9
+ *
10
+ * @return {String} uuidv4
11
+ */
12
+ export declare function uniqueID(): string;
13
+ /**
14
+ * Utility for deep cloning an object. Object.assign() only does a shallow copy.
15
+ *
16
+ * @param {Object} obj - object to be cloned
17
+ * @return {Object} cloned obj
18
+ */
19
+ export declare function deepClone<T>(obj: T): T;
20
+ /**
21
+ * Checks whether an SDP type is valid or not.
22
+ *
23
+ * @param type SDP type to check.
24
+ * @returns Whether the SDP type is valid or not.
25
+ */
26
+ export declare function isSdpTypeValid(type: string): boolean;
27
+ /**
28
+ * Normalize options passed to createOffer().
29
+ *
30
+ * @param options - user supplied options
31
+ * @return Normalized options
32
+ */
33
+ export declare function normalizeOfferOptions(options?: RTCOfferOptions): Record<string, string>;
34
+ /**
35
+ * Normalize the given constraints in something we can work with.
36
+ */
37
+ export declare function normalizeConstraints(constraints: any): any;