mediasoup 3.27.1 → 3.29.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 (297) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/node/lib/Consumer.d.ts.map +1 -1
  3. package/node/lib/Consumer.js +4 -51
  4. package/node/lib/PipeTransportTypes.d.ts +6 -1
  5. package/node/lib/PipeTransportTypes.d.ts.map +1 -1
  6. package/node/lib/PlainTransportTypes.d.ts +6 -1
  7. package/node/lib/PlainTransportTypes.d.ts.map +1 -1
  8. package/node/lib/Producer.d.ts.map +1 -1
  9. package/node/lib/Producer.js +4 -8
  10. package/node/lib/ProducerTypes.d.ts +4 -2
  11. package/node/lib/ProducerTypes.d.ts.map +1 -1
  12. package/node/lib/Router.d.ts +4 -4
  13. package/node/lib/Router.d.ts.map +1 -1
  14. package/node/lib/Router.js +14 -7
  15. package/node/lib/RouterTypes.d.ts +7 -1
  16. package/node/lib/RouterTypes.d.ts.map +1 -1
  17. package/node/lib/Transport.d.ts +2 -1
  18. package/node/lib/Transport.d.ts.map +1 -1
  19. package/node/lib/Transport.js +24 -16
  20. package/node/lib/TransportTypes.d.ts +12 -2
  21. package/node/lib/TransportTypes.d.ts.map +1 -1
  22. package/node/lib/WebRtcTransportTypes.d.ts +6 -1
  23. package/node/lib/WebRtcTransportTypes.d.ts.map +1 -1
  24. package/node/lib/fbs/rtp-parameters/rtp-header-extension-uri.d.ts +3 -4
  25. package/node/lib/fbs/rtp-parameters/rtp-header-extension-uri.d.ts.map +1 -1
  26. package/node/lib/fbs/rtp-parameters/rtp-header-extension-uri.js +3 -4
  27. package/node/lib/fbs/transport/options.d.ts +6 -2
  28. package/node/lib/fbs/transport/options.d.ts.map +1 -1
  29. package/node/lib/fbs/transport/options.js +19 -7
  30. package/node/lib/fbs/transport/sctp-zero-checksum.d.ts +6 -0
  31. package/node/lib/fbs/transport/sctp-zero-checksum.d.ts.map +1 -0
  32. package/node/lib/fbs/transport/sctp-zero-checksum.js +11 -0
  33. package/node/lib/fbs/transport/stats.d.ts +2 -8
  34. package/node/lib/fbs/transport/stats.d.ts.map +1 -1
  35. package/node/lib/fbs/transport/stats.js +5 -29
  36. package/node/lib/fbs/transport.d.ts +1 -0
  37. package/node/lib/fbs/transport.d.ts.map +1 -1
  38. package/node/lib/fbs/transport.js +4 -2
  39. package/node/lib/ortc.d.ts +0 -2
  40. package/node/lib/ortc.d.ts.map +1 -1
  41. package/node/lib/ortc.js +11 -21
  42. package/node/lib/rtpMappingFbsUtils.d.ts +6 -0
  43. package/node/lib/rtpMappingFbsUtils.d.ts.map +1 -0
  44. package/node/lib/rtpMappingFbsUtils.js +65 -0
  45. package/node/lib/rtpParametersFbsUtils.d.ts.map +1 -1
  46. package/node/lib/rtpParametersFbsUtils.js +0 -6
  47. package/node/lib/rtpParametersTypes.d.ts +1 -1
  48. package/node/lib/rtpParametersTypes.d.ts.map +1 -1
  49. package/node/lib/rtpStreamFbsUtils.d.ts +4 -0
  50. package/node/lib/rtpStreamFbsUtils.d.ts.map +1 -0
  51. package/node/lib/rtpStreamFbsUtils.js +51 -0
  52. package/node/lib/supportedRtpCapabilities.d.ts.map +1 -1
  53. package/node/lib/supportedRtpCapabilities.js +6 -13
  54. package/node/lib/test/test-Consumer.js +1 -13
  55. package/node/lib/test/test-DataConsumer.js +9 -0
  56. package/node/lib/test/test-DataProducer.js +38 -0
  57. package/node/lib/test/test-PipeTransport.js +27 -29
  58. package/node/lib/test/test-Producer.js +97 -0
  59. package/node/lib/test/test-ortc.js +34 -14
  60. package/npm-scripts.mjs +35 -44
  61. package/package.json +14 -10
  62. package/worker/fbs/rtpParameters.fbs +0 -1
  63. package/worker/fbs/transport.fbs +9 -2
  64. package/worker/fuzzer/src/FuzzerUtils.cpp +5 -3
  65. package/worker/fuzzer/src/RTC/RTP/FuzzerPacket.cpp +16 -2
  66. package/worker/fuzzer/src/RTC/RTP/FuzzerRetransmissionBuffer.cpp +14 -1
  67. package/worker/fuzzer/src/RTC/RTP/FuzzerRtpStreamSend.cpp +17 -4
  68. package/worker/include/DepLibUV.hpp +13 -0
  69. package/worker/include/RTC/BWE/AimdRateControl.hpp +9 -9
  70. package/worker/include/RTC/BWE/AlrDetector.hpp +97 -0
  71. package/worker/include/RTC/BWE/BitrateProber.hpp +217 -0
  72. package/worker/include/RTC/BWE/{Utils.hpp → BitrateUtils.hpp} +3 -3
  73. package/worker/include/RTC/BWE/BweTypes.hpp +207 -2
  74. package/worker/include/RTC/BWE/DelayBasedBwe.hpp +3 -3
  75. package/worker/include/RTC/BWE/FeedbackAdapter.hpp +2 -16
  76. package/worker/include/RTC/BWE/InterArrival.hpp +117 -0
  77. package/worker/include/RTC/BWE/IntervalBudget.hpp +81 -0
  78. package/worker/include/RTC/BWE/LossBasedController.hpp +109 -4
  79. package/worker/include/RTC/BWE/OveruseDetector.hpp +72 -0
  80. package/worker/include/RTC/BWE/OveruseEstimator.hpp +115 -0
  81. package/worker/include/RTC/BWE/ProbeBitrateEstimator.hpp +84 -0
  82. package/worker/include/RTC/BWE/ProbeController.hpp +379 -0
  83. package/worker/include/RTC/BWE/ProbePacketGenerator.hpp +126 -0
  84. package/worker/include/RTC/BWE/ProbingScheduler.hpp +183 -0
  85. package/worker/include/RTC/BWE/ReceiverTransportCongestionController.hpp +148 -0
  86. package/worker/include/RTC/BWE/RembGenerator.hpp +97 -0
  87. package/worker/include/RTC/BWE/RemoteBitrateEstimatorAbsSendTime.hpp +237 -0
  88. package/worker/include/RTC/BWE/RobustThroughputEstimator.hpp +26 -0
  89. package/worker/include/RTC/BWE/SendPacketHistory.hpp +161 -25
  90. package/worker/include/RTC/BWE/SenderTransportCongestionController.hpp +343 -0
  91. package/worker/include/RTC/BWE/TargetRateController.hpp +4 -1
  92. package/worker/include/RTC/BWE/TransportWideCcFeedbackGenerator.hpp +147 -0
  93. package/worker/include/RTC/BWE/TrendlineEstimator.hpp +18 -3
  94. package/worker/include/RTC/Consts.hpp +70 -0
  95. package/worker/include/RTC/Consumer.hpp +8 -1
  96. package/worker/include/RTC/DataConsumer.hpp +3 -5
  97. package/worker/include/RTC/DirectTransport.hpp +4 -5
  98. package/worker/include/RTC/PipeTransport.hpp +4 -5
  99. package/worker/include/RTC/PlainTransport.hpp +4 -5
  100. package/worker/include/RTC/RTCP/FeedbackPsRemb.hpp +6 -7
  101. package/worker/include/RTC/RTCP/FeedbackRtpTransport.hpp +3 -1
  102. package/worker/include/RTC/RTP/Codecs/Tools.hpp +1 -1
  103. package/worker/include/RTC/RTP/HeaderExtensionIds.hpp +0 -1
  104. package/worker/include/RTC/RTP/Packet.hpp +16 -4
  105. package/worker/include/RTC/RTP/ProbationGenerator.hpp +0 -8
  106. package/worker/include/RTC/RTP/RetransmissionBuffer.hpp +36 -10
  107. package/worker/include/RTC/RTP/RtpStream.hpp +33 -9
  108. package/worker/include/RTC/RTP/RtpStreamRecv.hpp +23 -4
  109. package/worker/include/RTC/RTP/RtpStreamSend.hpp +126 -11
  110. package/worker/include/RTC/RTP/RtxStream.hpp +10 -4
  111. package/worker/include/RTC/RateCalculator.hpp +103 -24
  112. package/worker/include/RTC/RemoteCaptureTimeEstimator.hpp +33 -3
  113. package/worker/include/RTC/{RtcLogger.hpp → RtcLogger/RtpPacket.hpp} +5 -3
  114. package/worker/include/RTC/RtcLogger/SendBurst.hpp +88 -0
  115. package/worker/include/RTC/RtpDictionaries.hpp +3 -4
  116. package/worker/include/RTC/SCTP/association/Association.hpp +1 -1
  117. package/worker/include/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.hpp +12 -3
  118. package/worker/include/RTC/SCTP/public/AssociationMetrics.hpp +0 -1
  119. package/worker/include/RTC/SCTP/public/SctpTypes.hpp +4 -4
  120. package/worker/include/RTC/SCTP/rx/DataTracker.hpp +1 -1
  121. package/worker/include/RTC/SCTP/rx/ReassemblyQueue.hpp +1 -1
  122. package/worker/include/RTC/SctpDictionaries.hpp +2 -2
  123. package/worker/include/RTC/TcpConnection.hpp +2 -1
  124. package/worker/include/RTC/Transport.hpp +23 -8
  125. package/worker/include/RTC/TransportCongestionControlClient.hpp +0 -5
  126. package/worker/include/RTC/TransportCongestionControlServer.hpp +0 -5
  127. package/worker/include/RTC/TransportTuple.hpp +61 -6
  128. package/worker/include/RTC/WebRtcTransport.hpp +4 -5
  129. package/worker/include/Shared.hpp +5 -0
  130. package/worker/include/SharedInterface.hpp +10 -0
  131. package/worker/include/Utils.hpp +81 -5
  132. package/worker/include/common.hpp +12 -4
  133. package/worker/include/handles/SendCallbacks.hpp +34 -0
  134. package/worker/include/handles/TcpConnectionHandle.hpp +4 -12
  135. package/worker/include/handles/UdpSocketHandle.hpp +4 -8
  136. package/worker/meson.build +45 -3
  137. package/worker/meson_options.txt +1 -0
  138. package/worker/mocks/include/MockShared.hpp +16 -2
  139. package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +1 -1
  140. package/worker/scripts/package-lock.json +6 -6
  141. package/worker/src/RTC/BWE/AimdRateControl.cpp +26 -27
  142. package/worker/src/RTC/BWE/AlrDetector.cpp +80 -0
  143. package/worker/src/RTC/BWE/BitrateProber.cpp +256 -0
  144. package/worker/src/RTC/BWE/{Utils.cpp → BitrateUtils.cpp} +4 -4
  145. package/worker/src/RTC/BWE/DelayBasedBwe.cpp +18 -22
  146. package/worker/src/RTC/BWE/FeedbackAdapter.cpp +21 -38
  147. package/worker/src/RTC/BWE/InterArrival.cpp +216 -0
  148. package/worker/src/RTC/BWE/IntervalBudget.cpp +93 -0
  149. package/worker/src/RTC/BWE/LossBasedController.cpp +189 -41
  150. package/worker/src/RTC/BWE/OveruseDetector.cpp +128 -0
  151. package/worker/src/RTC/BWE/OveruseEstimator.cpp +166 -0
  152. package/worker/src/RTC/BWE/ProbeBitrateEstimator.cpp +222 -0
  153. package/worker/src/RTC/BWE/ProbeController.cpp +645 -0
  154. package/worker/src/RTC/BWE/ProbePacketGenerator.cpp +135 -0
  155. package/worker/src/RTC/BWE/ProbingScheduler.cpp +191 -0
  156. package/worker/src/RTC/BWE/ReceiverTransportCongestionController.cpp +207 -0
  157. package/worker/src/RTC/BWE/RembGenerator.cpp +169 -0
  158. package/worker/src/RTC/BWE/RemoteBitrateEstimatorAbsSendTime.cpp +497 -0
  159. package/worker/src/RTC/BWE/RobustThroughputEstimator.cpp +47 -0
  160. package/worker/src/RTC/BWE/SendPacketHistory.cpp +173 -50
  161. package/worker/src/RTC/BWE/SenderTransportCongestionController.cpp +599 -0
  162. package/worker/src/RTC/BWE/TargetRateController.cpp +12 -14
  163. package/worker/src/RTC/BWE/TransportWideCcFeedbackGenerator.cpp +376 -0
  164. package/worker/src/RTC/BWE/TrendlineEstimator.cpp +24 -5
  165. package/worker/src/RTC/Consumer.cpp +10 -7
  166. package/worker/src/RTC/DataConsumer.cpp +10 -12
  167. package/worker/src/RTC/DirectTransport.cpp +14 -8
  168. package/worker/src/RTC/DtlsTransport.cpp +8 -8
  169. package/worker/src/RTC/ICE/IceCandidate.cpp +4 -4
  170. package/worker/src/RTC/ICE/IceServer.cpp +1 -1
  171. package/worker/src/RTC/PipeTransport.cpp +13 -8
  172. package/worker/src/RTC/PlainTransport.cpp +13 -8
  173. package/worker/src/RTC/Producer.cpp +14 -31
  174. package/worker/src/RTC/RTCP/Bye.cpp +1 -1
  175. package/worker/src/RTC/RTCP/FeedbackPsRemb.cpp +18 -0
  176. package/worker/src/RTC/RTCP/FeedbackPsRpsi.cpp +2 -2
  177. package/worker/src/RTC/RTCP/FeedbackPsVbcm.cpp +2 -1
  178. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +2 -2
  179. package/worker/src/RTC/RTCP/Sdes.cpp +1 -1
  180. package/worker/src/RTC/RTP/Codecs/DependencyDescriptor.cpp +2 -1
  181. package/worker/src/RTC/RTP/Packet.cpp +26 -11
  182. package/worker/src/RTC/RTP/ProbationGenerator.cpp +5 -6
  183. package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +21 -8
  184. package/worker/src/RTC/RTP/RtpStream.cpp +1 -4
  185. package/worker/src/RTC/RTP/RtpStreamRecv.cpp +109 -102
  186. package/worker/src/RTC/RTP/RtpStreamSend.cpp +442 -258
  187. package/worker/src/RTC/RTP/RtxStream.cpp +32 -22
  188. package/worker/src/RTC/RateCalculator.cpp +133 -28
  189. package/worker/src/RTC/RemoteCaptureTimeEstimator.cpp +56 -1
  190. package/worker/src/RTC/{RtcLogger.cpp → RtcLogger/RtpPacket.cpp} +2 -2
  191. package/worker/src/RTC/RtcLogger/SendBurst.cpp +124 -0
  192. package/worker/src/RTC/RtpDictionaries/RtpHeaderExtensionUri.cpp +2 -12
  193. package/worker/src/RTC/RtpDictionaries/RtpParameters.cpp +1 -1
  194. package/worker/src/RTC/SCTP/association/Association.cpp +4 -3
  195. package/worker/src/RTC/SCTP/association/StateCookie.cpp +26 -6
  196. package/worker/src/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.cpp +4 -3
  197. package/worker/src/RTC/SCTP/rx/InterleavedReassemblyStreams.cpp +3 -3
  198. package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +4 -2
  199. package/worker/src/RTC/SCTP/rx/TraditionalReassemblyStreams.cpp +4 -4
  200. package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +4 -2
  201. package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +4 -4
  202. package/worker/src/RTC/SctpDictionaries/SctpStreamParameters.cpp +6 -10
  203. package/worker/src/RTC/SimulcastProducerStreamManager.cpp +2 -2
  204. package/worker/src/RTC/SrtpSession.cpp +2 -2
  205. package/worker/src/RTC/SvcProducerStreamManager.cpp +2 -2
  206. package/worker/src/RTC/TcpConnection.cpp +2 -2
  207. package/worker/src/RTC/Transport.cpp +160 -113
  208. package/worker/src/RTC/TransportCongestionControlClient.cpp +0 -66
  209. package/worker/src/RTC/TransportCongestionControlServer.cpp +0 -55
  210. package/worker/src/RTC/TransportTuple.cpp +4 -4
  211. package/worker/src/RTC/WebRtcServer.cpp +4 -3
  212. package/worker/src/RTC/WebRtcTransport.cpp +20 -13
  213. package/worker/src/Utils/BitStream.cpp +24 -0
  214. package/worker/src/Utils/Crypto.cpp +114 -98
  215. package/worker/src/handles/BackoffTimerHandle.cpp +1 -1
  216. package/worker/src/handles/TcpConnectionHandle.cpp +13 -23
  217. package/worker/src/handles/UdpSocketHandle.cpp +14 -21
  218. package/worker/subprojects/catch2.wrap +6 -6
  219. package/worker/subprojects/openssl.wrap +11 -12
  220. package/worker/subprojects/packagefiles/ankerl-unordered-dense/meson.build +1 -1
  221. package/worker/subprojects/unordered-dense.wrap +4 -4
  222. package/worker/test/include/RTC/BWE/helpers/LinkSimulator.hpp +68 -14
  223. package/worker/test/include/RTC/BWE/helpers/RemoteBitrateEstimatorAbsSendTimeTestHelper.hpp +125 -0
  224. package/worker/test/src/RTC/BWE/TestAlrDetector.cpp +110 -0
  225. package/worker/test/src/RTC/BWE/TestBitrateProber.cpp +418 -0
  226. package/worker/test/src/RTC/BWE/TestBitrateUtils.cpp +61 -0
  227. package/worker/test/src/RTC/BWE/TestDelayBasedBwe.cpp +9 -9
  228. package/worker/test/src/RTC/BWE/TestFeedbackAdapter.cpp +79 -60
  229. package/worker/test/src/RTC/BWE/TestInterArrival.cpp +643 -0
  230. package/worker/test/src/RTC/BWE/TestInterArrivalDelta.cpp +8 -8
  231. package/worker/test/src/RTC/BWE/TestIntervalBudget.cpp +130 -0
  232. package/worker/test/src/RTC/BWE/TestOveruseDetector.cpp +519 -0
  233. package/worker/test/src/RTC/BWE/TestProbeBitrateEstimator.cpp +266 -0
  234. package/worker/test/src/RTC/BWE/TestProbeController.cpp +1685 -0
  235. package/worker/test/src/RTC/BWE/TestProbePacketGenerator.cpp +250 -0
  236. package/worker/test/src/RTC/BWE/TestProbingScheduler.cpp +236 -0
  237. package/worker/test/src/RTC/BWE/TestReceiverTransportCongestionController.cpp +346 -0
  238. package/worker/test/src/RTC/BWE/TestRembGenerator.cpp +285 -0
  239. package/worker/test/src/RTC/BWE/TestRemoteBitrateEstimatorAbsSendTime.cpp +414 -0
  240. package/worker/test/src/RTC/BWE/TestSendPacketHistory.cpp +296 -77
  241. package/worker/test/src/RTC/BWE/TestSenderTransportCongestionController.cpp +510 -0
  242. package/worker/test/src/RTC/BWE/TestTransportWideCcFeedbackGenerator.cpp +580 -0
  243. package/worker/test/src/RTC/BWE/TestTrendlineEstimator.cpp +6 -6
  244. package/worker/test/src/RTC/BWE/helpers/LinkSimulator.cpp +133 -29
  245. package/worker/test/src/RTC/BWE/helpers/RemoteBitrateEstimatorAbsSendTimeTestHelper.cpp +624 -0
  246. package/worker/test/src/RTC/RTCP/TestBye.cpp +1 -1
  247. package/worker/test/src/RTC/RTCP/TestFeedbackPsAfb.cpp +1 -1
  248. package/worker/test/src/RTC/RTCP/TestFeedbackPsFir.cpp +1 -1
  249. package/worker/test/src/RTC/RTCP/TestFeedbackPsLei.cpp +1 -1
  250. package/worker/test/src/RTC/RTCP/TestFeedbackPsPli.cpp +1 -1
  251. package/worker/test/src/RTC/RTCP/TestFeedbackPsRemb.cpp +20 -1
  252. package/worker/test/src/RTC/RTCP/TestFeedbackPsRpsi.cpp +1 -1
  253. package/worker/test/src/RTC/RTCP/TestFeedbackPsSli.cpp +1 -1
  254. package/worker/test/src/RTC/RTCP/TestFeedbackPsTst.cpp +1 -1
  255. package/worker/test/src/RTC/RTCP/TestFeedbackPsVbcm.cpp +1 -1
  256. package/worker/test/src/RTC/RTCP/TestFeedbackRtpEcn.cpp +1 -1
  257. package/worker/test/src/RTC/RTCP/TestFeedbackRtpNack.cpp +1 -1
  258. package/worker/test/src/RTC/RTCP/TestFeedbackRtpSrReq.cpp +1 -1
  259. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTllei.cpp +1 -1
  260. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTmmb.cpp +1 -1
  261. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTransport.cpp +1 -1
  262. package/worker/test/src/RTC/RTCP/TestReceiverReport.cpp +1 -1
  263. package/worker/test/src/RTC/RTCP/TestSenderReport.cpp +1 -1
  264. package/worker/test/src/RTC/RTP/TestPacket.cpp +58 -4
  265. package/worker/test/src/RTC/RTP/TestProbationGenerator.cpp +3 -2
  266. package/worker/test/src/RTC/RTP/TestRetransmissionBuffer.cpp +60 -28
  267. package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +50 -0
  268. package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +804 -23
  269. package/worker/test/src/RTC/RTP/TestSharedPacket.cpp +1 -1
  270. package/worker/test/src/RTC/SCTP/association/TestAssociation.cpp +42 -0
  271. package/worker/test/src/RTC/SCTP/association/TestNegotiatedCapabilities.cpp +54 -5
  272. package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +80 -15
  273. package/worker/test/src/RTC/SCTP/association/TestStreamResetHandler.cpp +410 -3
  274. package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +1 -1
  275. package/worker/test/src/RTC/SCTP/packet/parameters/TestZeroChecksumAcceptableParameter.cpp +37 -5
  276. package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +5 -4
  277. package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +1 -1
  278. package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +1 -1
  279. package/worker/test/src/RTC/SCTP/rx/TestTraditionalReassemblyStreams.cpp +1 -1
  280. package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +1 -1
  281. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +11 -10
  282. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionTimeout.cpp +1 -1
  283. package/worker/test/src/RTC/TestNackGenerator.cpp +1 -1
  284. package/worker/test/src/RTC/TestPortManager.cpp +2 -2
  285. package/worker/test/src/RTC/TestRateCalculator.cpp +323 -61
  286. package/worker/test/src/RTC/TestRemoteCaptureTimeEstimator.cpp +103 -9
  287. package/worker/test/src/RTC/TestRemoteClockOffsetEstimator.cpp +13 -13
  288. package/worker/test/src/RTC/TestRtpEncodingParameters.cpp +1 -1
  289. package/worker/test/src/RTC/TestSimpleProducerStreamManager.cpp +34 -16
  290. package/worker/test/src/RTC/TestSimulcastProducerStreamManager.cpp +31 -13
  291. package/worker/test/src/RTC/TestSubchannelsCodec.cpp +2 -2
  292. package/worker/test/src/RTC/TestSvcProducerStreamManager.cpp +37 -19
  293. package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +11 -11
  294. package/worker/test/src/RTC/TestTransportTuple.cpp +3 -2
  295. package/worker/test/src/Utils/TestCrypto.cpp +71 -2
  296. package/worker/test/src/Utils/TestTime.cpp +120 -21
  297. package/worker/test/src/RTC/BWE/TestUtils.cpp +0 -61
package/node/lib/ortc.js CHANGED
@@ -42,13 +42,11 @@ exports.getConsumableRtpParameters = getConsumableRtpParameters;
42
42
  exports.canConsume = canConsume;
43
43
  exports.getConsumerRtpParameters = getConsumerRtpParameters;
44
44
  exports.getPipeConsumerRtpParameters = getPipeConsumerRtpParameters;
45
- exports.serializeRtpMapping = serializeRtpMapping;
46
45
  const h264 = __importStar(require("h264-profile-level-id"));
47
46
  const supportedRtpCapabilities_1 = require("./supportedRtpCapabilities");
48
47
  const scalabilityModesUtils_1 = require("./scalabilityModesUtils");
49
48
  const utils = __importStar(require("./utils"));
50
49
  const errors_1 = require("./errors");
51
- const FbsRtpParameters = __importStar(require("./fbs/rtp-parameters"));
52
50
  const DynamicPayloadTypes = [
53
51
  100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
54
52
  115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 96, 97, 98,
@@ -162,24 +160,28 @@ function validateAndNormalizeSctpStreamParameters(params) {
162
160
  params.ordered = true;
163
161
  }
164
162
  // maxPacketLifeTime is optional.
165
- if (params.maxPacketLifeTime &&
163
+ if (params.maxPacketLifeTime !== undefined &&
166
164
  typeof params.maxPacketLifeTime !== 'number') {
167
165
  throw new TypeError('invalid params.maxPacketLifeTime');
168
166
  }
169
167
  // maxRetransmits is optional.
170
- if (params.maxRetransmits && typeof params.maxRetransmits !== 'number') {
168
+ if (params.maxRetransmits !== undefined &&
169
+ typeof params.maxRetransmits !== 'number') {
171
170
  throw new TypeError('invalid params.maxRetransmits');
172
171
  }
173
- if (params.maxPacketLifeTime && params.maxRetransmits) {
172
+ if (params.maxPacketLifeTime !== undefined &&
173
+ params.maxRetransmits !== undefined) {
174
174
  throw new TypeError('cannot provide both maxPacketLifeTime and maxRetransmits');
175
175
  }
176
176
  if (orderedGiven &&
177
177
  params.ordered &&
178
- (params.maxPacketLifeTime || params.maxRetransmits)) {
178
+ (params.maxPacketLifeTime !== undefined ||
179
+ params.maxRetransmits !== undefined)) {
179
180
  throw new TypeError('cannot be ordered with maxPacketLifeTime or maxRetransmits');
180
181
  }
181
182
  else if (!orderedGiven &&
182
- (params.maxPacketLifeTime || params.maxRetransmits)) {
183
+ (params.maxPacketLifeTime !== undefined ||
184
+ params.maxRetransmits !== undefined)) {
183
185
  params.ordered = false;
184
186
  }
185
187
  }
@@ -307,7 +309,8 @@ function getProducerRtpParametersMapping(params, caps) {
307
309
  continue;
308
310
  }
309
311
  // Search for the associated media codec.
310
- const associatedMediaCodec = params.codecs.find(mediaCodec => mediaCodec.payloadType === codec.parameters['apt']);
312
+ const associatedMediaCodec = params.codecs.find(mediaCodec => !isRtxCodec(mediaCodec) &&
313
+ mediaCodec.payloadType === codec.parameters['apt']);
311
314
  if (!associatedMediaCodec) {
312
315
  throw new TypeError(`missing media codec found for RTX PT ${codec.payloadType}`);
313
316
  }
@@ -619,19 +622,6 @@ function getPipeConsumerRtpParameters({ consumableRtpParameters, enableRtx, }) {
619
622
  }
620
623
  return consumerParams;
621
624
  }
622
- function serializeRtpMapping(builder, rtpMapping) {
623
- const codecs = [];
624
- for (const codec of rtpMapping.codecs) {
625
- codecs.push(FbsRtpParameters.CodecMapping.createCodecMapping(builder, codec.payloadType, codec.mappedPayloadType));
626
- }
627
- const codecsOffset = FbsRtpParameters.RtpMapping.createCodecsVector(builder, codecs);
628
- const encodings = [];
629
- for (const encoding of rtpMapping.encodings) {
630
- encodings.push(FbsRtpParameters.EncodingMapping.createEncodingMapping(builder, builder.createString(encoding.rid), encoding.ssrc ?? null, encoding.mappedSsrc));
631
- }
632
- const encodingsOffset = FbsRtpParameters.RtpMapping.createEncodingsVector(builder, encodings);
633
- return FbsRtpParameters.RtpMapping.createRtpMapping(builder, codecsOffset, encodingsOffset);
634
- }
635
625
  function isRtxCodec(codec) {
636
626
  return /.+\/rtx$/i.test(codec.mimeType);
637
627
  }
@@ -0,0 +1,6 @@
1
+ import type * as flatbuffers from 'flatbuffers';
2
+ import type { RtpCodecsEncodingsMapping } from './ortc';
3
+ import * as FbsRtpParameters from './fbs/rtp-parameters';
4
+ export declare function serializeRtpMapping(builder: flatbuffers.Builder, rtpMapping: RtpCodecsEncodingsMapping): number;
5
+ export declare function parseRtpMapping(data: FbsRtpParameters.RtpMapping): RtpCodecsEncodingsMapping;
6
+ //# sourceMappingURL=rtpMappingFbsUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtpMappingFbsUtils.d.ts","sourceRoot":"","sources":["../src/rtpMappingFbsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,WAAW,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AAExD,OAAO,KAAK,gBAAgB,MAAM,sBAAsB,CAAC;AAEzD,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,UAAU,EAAE,yBAAyB,GACnC,MAAM,CAwCR;AAED,wBAAgB,eAAe,CAC9B,IAAI,EAAE,gBAAgB,CAAC,UAAU,GAC/B,yBAAyB,CAoB3B"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.serializeRtpMapping = serializeRtpMapping;
37
+ exports.parseRtpMapping = parseRtpMapping;
38
+ const fbsUtils = __importStar(require("./fbsUtils"));
39
+ const FbsRtpParameters = __importStar(require("./fbs/rtp-parameters"));
40
+ function serializeRtpMapping(builder, rtpMapping) {
41
+ const codecs = [];
42
+ for (const codec of rtpMapping.codecs) {
43
+ codecs.push(FbsRtpParameters.CodecMapping.createCodecMapping(builder, codec.payloadType, codec.mappedPayloadType));
44
+ }
45
+ const codecsOffset = FbsRtpParameters.RtpMapping.createCodecsVector(builder, codecs);
46
+ const encodings = [];
47
+ for (const encoding of rtpMapping.encodings) {
48
+ encodings.push(FbsRtpParameters.EncodingMapping.createEncodingMapping(builder, builder.createString(encoding.rid), encoding.ssrc ?? null, encoding.mappedSsrc));
49
+ }
50
+ const encodingsOffset = FbsRtpParameters.RtpMapping.createEncodingsVector(builder, encodings);
51
+ return FbsRtpParameters.RtpMapping.createRtpMapping(builder, codecsOffset, encodingsOffset);
52
+ }
53
+ function parseRtpMapping(data) {
54
+ return {
55
+ codecs: fbsUtils.parseVector(data, 'codecs', (codec) => ({
56
+ payloadType: codec.payloadType(),
57
+ mappedPayloadType: codec.mappedPayloadType(),
58
+ })),
59
+ encodings: fbsUtils.parseVector(data, 'encodings', (encoding) => ({
60
+ ssrc: encoding.ssrc() ?? undefined,
61
+ rid: encoding.rid() || undefined,
62
+ mappedSsrc: encoding.mappedSsrc(),
63
+ })),
64
+ };
65
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"rtpParametersFbsUtils.d.ts","sourceRoot":"","sources":["../src/rtpParametersFbsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,WAAW,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EACX,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,4BAA4B,EAE5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAON,YAAY,IAAI,eAAe,EAE/B,kBAAkB,IAAI,qBAAqB,EAC3C,qBAAqB,IAAI,wBAAwB,EACjD,4BAA4B,IAAI,+BAA+B,EAC/D,qBAAqB,IAAI,wBAAwB,EACjD,aAAa,IAAI,gBAAgB,EAGjC,MAAM,sBAAsB,CAAC;AAE9B,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,aAAa,EAAE,aAAa,GAC1B,MAAM,CAoGR;AAED,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,qBAAqB,GAAE,qBAAqB,EAAO,GACjD,MAAM,CAuER;AAED,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM,EAAE,CAmEV;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,YAAY,CAKrE;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuDlE;AAED,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,qBAAqB,GACzB,kBAAkB,CAqBpB;AAED,wBAAgB,4BAA4B,CAC3C,GAAG,EAAE,wBAAwB,GAC3B,qBAAqB,CAkDvB;AAED,wBAAgB,0BAA0B,CACzC,GAAG,EAAE,qBAAqB,GACxB,wBAAwB,CAsD1B;AAED,wBAAgB,iCAAiC,CAChD,IAAI,EAAE,+BAA+B,GACnC,4BAA4B,CAO9B;AAED,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,wBAAwB,GAC5B,qBAAqB,CAYvB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa,CA0CxE"}
1
+ {"version":3,"file":"rtpParametersFbsUtils.d.ts","sourceRoot":"","sources":["../src/rtpParametersFbsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,WAAW,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EACX,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,4BAA4B,EAE5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAON,YAAY,IAAI,eAAe,EAE/B,kBAAkB,IAAI,qBAAqB,EAC3C,qBAAqB,IAAI,wBAAwB,EACjD,4BAA4B,IAAI,+BAA+B,EAC/D,qBAAqB,IAAI,wBAAwB,EACjD,aAAa,IAAI,gBAAgB,EAGjC,MAAM,sBAAsB,CAAC;AAE9B,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,aAAa,EAAE,aAAa,GAC1B,MAAM,CAoGR;AAED,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,qBAAqB,GAAE,qBAAqB,EAAO,GACjD,MAAM,CAuER;AAED,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM,EAAE,CAmEV;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,YAAY,CAKrE;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuDlE;AAED,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,qBAAqB,GACzB,kBAAkB,CAqBpB;AAED,wBAAgB,4BAA4B,CAC3C,GAAG,EAAE,wBAAwB,GAC3B,qBAAqB,CA8CvB;AAED,wBAAgB,0BAA0B,CACzC,GAAG,EAAE,qBAAqB,GACxB,wBAAwB,CAkD1B;AAED,wBAAgB,iCAAiC,CAChD,IAAI,EAAE,+BAA+B,GACnC,4BAA4B,CAO9B;AAED,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,wBAAwB,GAC5B,qBAAqB,CAYvB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa,CA0CxE"}
@@ -259,9 +259,6 @@ function rtpHeaderExtensionUriFromFbs(uri) {
259
259
  case rtp_parameters_1.RtpHeaderExtensionUri.VideoOrientation: {
260
260
  return 'urn:3gpp:video-orientation';
261
261
  }
262
- case rtp_parameters_1.RtpHeaderExtensionUri.TimeOffset: {
263
- return 'urn:ietf:params:rtp-hdrext:toffset';
264
- }
265
262
  case rtp_parameters_1.RtpHeaderExtensionUri.AbsCaptureTime: {
266
263
  return 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time';
267
264
  }
@@ -299,9 +296,6 @@ function rtpHeaderExtensionUriToFbs(uri) {
299
296
  case 'urn:3gpp:video-orientation': {
300
297
  return rtp_parameters_1.RtpHeaderExtensionUri.VideoOrientation;
301
298
  }
302
- case 'urn:ietf:params:rtp-hdrext:toffset': {
303
- return rtp_parameters_1.RtpHeaderExtensionUri.TimeOffset;
304
- }
305
299
  case 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time': {
306
300
  return rtp_parameters_1.RtpHeaderExtensionUri.AbsCaptureTime;
307
301
  }
@@ -271,7 +271,7 @@ export type RtpEncodingParameters = {
271
271
  */
272
272
  maxBitrate?: number;
273
273
  };
274
- export type RtpHeaderExtensionUri = 'urn:ietf:params:rtp-hdrext:sdes:mid' | 'urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id' | 'urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id' | 'http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time' | 'http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01' | 'urn:ietf:params:rtp-hdrext:ssrc-audio-level' | 'https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension' | 'urn:3gpp:video-orientation' | 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time' | 'urn:ietf:params:rtp-hdrext:toffset' | 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay' | 'urn:mediasoup:params:rtp-hdrext:packet-id';
274
+ export type RtpHeaderExtensionUri = 'urn:ietf:params:rtp-hdrext:sdes:mid' | 'urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id' | 'urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id' | 'http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time' | 'http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01' | 'urn:ietf:params:rtp-hdrext:ssrc-audio-level' | 'https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension' | 'urn:3gpp:video-orientation' | 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time' | 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay' | 'urn:mediasoup:params:rtp-hdrext:packet-id';
275
275
  /**
276
276
  * Defines a RTP header extension within the RTP parameters. The list of RTP
277
277
  * header extensions supported by mediasoup is defined in the
@@ -1 +1 @@
1
- {"version":3,"file":"rtpParametersTypes.d.ts","sourceRoot":"","sources":["../src/rtpParametersTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rtpParametersTypes.d.ts","sourceRoot":"","sources":["../src/rtpParametersTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { RtpStreamDump } from './ConsumerTypes';
2
+ import * as FbsRtpStream from './fbs/rtp-stream';
3
+ export declare function parseRtpStream(data: FbsRtpStream.Dump): RtpStreamDump;
4
+ //# sourceMappingURL=rtpStreamFbsUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtpStreamFbsUtils.d.ts","sourceRoot":"","sources":["../src/rtpStreamFbsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAIb,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AAGjD,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,GAAG,aAAa,CAcrE"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseRtpStream = parseRtpStream;
4
+ function parseRtpStream(data) {
5
+ const params = parseRtpStreamParameters(data.params());
6
+ let rtxStream;
7
+ if (data.rtxStream()) {
8
+ rtxStream = parseRtxStream(data.rtxStream());
9
+ }
10
+ return {
11
+ params,
12
+ score: data.score(),
13
+ rtxStream,
14
+ };
15
+ }
16
+ function parseRtpStreamParameters(data) {
17
+ return {
18
+ encodingIdx: data.encodingIdx(),
19
+ ssrc: data.ssrc(),
20
+ payloadType: data.payloadType(),
21
+ mimeType: data.mimeType(),
22
+ clockRate: data.clockRate(),
23
+ rid: data.rid().length > 0 ? data.rid() : undefined,
24
+ cname: data.cname(),
25
+ rtxSsrc: data.rtxSsrc() !== null ? data.rtxSsrc() : undefined,
26
+ rtxPayloadType: data.rtxPayloadType() !== null ? data.rtxPayloadType() : undefined,
27
+ useNack: data.useNack(),
28
+ usePli: data.usePli(),
29
+ useFir: data.useFir(),
30
+ useInBandFec: data.useInBandFec(),
31
+ useDtx: data.useDtx(),
32
+ spatialLayers: data.spatialLayers(),
33
+ temporalLayers: data.temporalLayers(),
34
+ };
35
+ }
36
+ function parseRtxStream(data) {
37
+ const params = parseRtxStreamParameters(data.params());
38
+ return {
39
+ params,
40
+ };
41
+ }
42
+ function parseRtxStreamParameters(data) {
43
+ return {
44
+ ssrc: data.ssrc(),
45
+ payloadType: data.payloadType(),
46
+ mimeType: data.mimeType(),
47
+ clockRate: data.clockRate(),
48
+ rrid: data.rrid().length > 0 ? data.rrid() : undefined,
49
+ cname: data.cname(),
50
+ };
51
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"supportedRtpCapabilities.d.ts","sourceRoot":"","sources":["../src/supportedRtpCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,QAAA,MAAM,wBAAwB,EAAE,qBA4U/B,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"supportedRtpCapabilities.d.ts","sourceRoot":"","sources":["../src/supportedRtpCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,QAAA,MAAM,wBAAwB,EAAE,qBAqU/B,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -282,52 +282,45 @@ const supportedRtpCapabilities = {
282
282
  preferredEncrypt: false,
283
283
  direction: 'sendrecv',
284
284
  },
285
- {
286
- kind: 'video',
287
- uri: 'urn:ietf:params:rtp-hdrext:toffset',
288
- preferredId: 9,
289
- preferredEncrypt: false,
290
- direction: 'sendrecv',
291
- },
292
285
  {
293
286
  kind: 'audio',
294
287
  uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time',
295
- preferredId: 10,
288
+ preferredId: 9,
296
289
  preferredEncrypt: false,
297
290
  direction: 'sendrecv',
298
291
  },
299
292
  {
300
293
  kind: 'video',
301
294
  uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time',
302
- preferredId: 10,
295
+ preferredId: 9,
303
296
  preferredEncrypt: false,
304
297
  direction: 'sendrecv',
305
298
  },
306
299
  {
307
300
  kind: 'audio',
308
301
  uri: 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay',
309
- preferredId: 11,
302
+ preferredId: 10,
310
303
  preferredEncrypt: false,
311
304
  direction: 'sendrecv',
312
305
  },
313
306
  {
314
307
  kind: 'video',
315
308
  uri: 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay',
316
- preferredId: 11,
309
+ preferredId: 10,
317
310
  preferredEncrypt: false,
318
311
  direction: 'sendrecv',
319
312
  },
320
313
  {
321
314
  kind: 'audio',
322
315
  uri: 'urn:mediasoup:params:rtp-hdrext:packet-id',
323
- preferredId: 12,
316
+ preferredId: 11,
324
317
  preferredEncrypt: false,
325
318
  direction: 'sendrecv',
326
319
  },
327
320
  {
328
321
  kind: 'video',
329
322
  uri: 'urn:mediasoup:params:rtp-hdrext:packet-id',
330
- preferredId: 12,
323
+ preferredId: 11,
331
324
  preferredEncrypt: false,
332
325
  direction: 'sendrecv',
333
326
  },
@@ -233,12 +233,6 @@ const ctx = {
233
233
  preferredId: 8,
234
234
  preferredEncrypt: false,
235
235
  },
236
- {
237
- kind: 'video',
238
- uri: 'urn:ietf:params:rtp-hdrext:toffset',
239
- preferredId: 9,
240
- preferredEncrypt: false,
241
- },
242
236
  ],
243
237
  }),
244
238
  vpxMediaCodecs: utils.deepFreeze([
@@ -745,7 +739,7 @@ test('consumer.dump() succeeds', async () => {
745
739
  { type: 'goog-remb' },
746
740
  ]);
747
741
  expect(Array.isArray(dump2.rtpParameters.headerExtensions)).toBe(true);
748
- expect(dump2.rtpParameters.headerExtensions.length).toBe(4);
742
+ expect(dump2.rtpParameters.headerExtensions.length).toBe(3);
749
743
  expect(dump2.rtpParameters.headerExtensions).toEqual([
750
744
  {
751
745
  uri: 'urn:ietf:params:rtp-hdrext:sdes:mid',
@@ -765,12 +759,6 @@ test('consumer.dump() succeeds', async () => {
765
759
  parameters: {},
766
760
  encrypt: false,
767
761
  },
768
- {
769
- uri: 'urn:ietf:params:rtp-hdrext:toffset',
770
- id: 9,
771
- parameters: {},
772
- encrypt: false,
773
- },
774
762
  ]);
775
763
  expect(Array.isArray(dump2.rtpParameters.encodings)).toBe(true);
776
764
  expect(dump2.rtpParameters.encodings.length).toBe(1);
@@ -114,6 +114,15 @@ test('transport.consumeData() with unknown dataProducerId fails', async () => {
114
114
  dataProducerId: '12345678',
115
115
  })).rejects.toThrow(errors_1.NotFoundError);
116
116
  }, 2000);
117
+ test('transport.consumeData() with maxRetransmits replaces DataProducer maxPacketLifeTime', async () => {
118
+ const dataConsumer = await ctx.webRtcTransport2.consumeData({
119
+ dataProducerId: ctx.sctpDataProducer.id,
120
+ maxRetransmits: 2,
121
+ });
122
+ expect(dataConsumer.sctpStreamParameters.ordered).toBe(false);
123
+ expect(dataConsumer.sctpStreamParameters.maxPacketLifeTime).toBeUndefined();
124
+ expect(dataConsumer.sctpStreamParameters.maxRetransmits).toBe(2);
125
+ }, 2000);
117
126
  test('dataConsumer.dump() succeeds', async () => {
118
127
  const dataConsumer = await ctx.webRtcTransport2.consumeData({
119
128
  dataProducerId: ctx.sctpDataProducer.id,
@@ -154,6 +154,44 @@ test('transport.produceData() with ordered and maxPacketLifeTime rejects with Ty
154
154
  },
155
155
  })).rejects.toThrow(TypeError);
156
156
  }, 2000);
157
+ test('transport.produceData() with maxRetransmits 0 or maxPacketLifeTime 0 creates an unordered DataProducer', async () => {
158
+ const dataProducer1 = await ctx.webRtcTransport1.produceData({
159
+ sctpStreamParameters: {
160
+ streamId: 888,
161
+ maxRetransmits: 0,
162
+ },
163
+ });
164
+ expect(dataProducer1.sctpStreamParameters?.ordered).toBe(false);
165
+ expect(dataProducer1.sctpStreamParameters?.maxPacketLifeTime).toBeUndefined();
166
+ expect(dataProducer1.sctpStreamParameters?.maxRetransmits).toBe(0);
167
+ const dataProducer2 = await ctx.webRtcTransport1.produceData({
168
+ sctpStreamParameters: {
169
+ streamId: 999,
170
+ maxPacketLifeTime: 0,
171
+ },
172
+ });
173
+ expect(dataProducer2.sctpStreamParameters?.ordered).toBe(false);
174
+ expect(dataProducer2.sctpStreamParameters?.maxPacketLifeTime).toBe(0);
175
+ expect(dataProducer2.sctpStreamParameters?.maxRetransmits).toBeUndefined();
176
+ }, 2000);
177
+ test('transport.produceData() with ordered and maxRetransmits 0 rejects with TypeError', async () => {
178
+ await expect(ctx.webRtcTransport1.produceData({
179
+ sctpStreamParameters: {
180
+ streamId: 999,
181
+ ordered: true,
182
+ maxRetransmits: 0,
183
+ },
184
+ })).rejects.toThrow(TypeError);
185
+ }, 2000);
186
+ test('transport.produceData() with maxPacketLifeTime 0 and maxRetransmits rejects with TypeError', async () => {
187
+ await expect(ctx.webRtcTransport1.produceData({
188
+ sctpStreamParameters: {
189
+ streamId: 999,
190
+ maxPacketLifeTime: 0,
191
+ maxRetransmits: 5,
192
+ },
193
+ })).rejects.toThrow(TypeError);
194
+ }, 2000);
157
195
  test('dataProducer.dump() succeeds', async () => {
158
196
  const dataProducer1 = await ctx.webRtcTransport1.produceData(ctx.dataProducerOptions1);
159
197
  const dump1 = await dataProducer1.dump();
@@ -262,13 +262,13 @@ test('router.pipeToRouter() succeeds with audio', async () => {
262
262
  },
263
263
  {
264
264
  uri: 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay',
265
- id: 11,
265
+ id: 10,
266
266
  encrypt: false,
267
267
  parameters: {},
268
268
  },
269
269
  {
270
270
  uri: 'urn:mediasoup:params:rtp-hdrext:packet-id',
271
- id: 12,
271
+ id: 11,
272
272
  encrypt: false,
273
273
  parameters: {},
274
274
  },
@@ -315,13 +315,13 @@ test('router.pipeToRouter() succeeds with audio', async () => {
315
315
  },
316
316
  {
317
317
  uri: 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay',
318
- id: 11,
318
+ id: 10,
319
319
  encrypt: false,
320
320
  parameters: {},
321
321
  },
322
322
  {
323
323
  uri: 'urn:mediasoup:params:rtp-hdrext:packet-id',
324
- id: 12,
324
+ id: 11,
325
325
  encrypt: false,
326
326
  parameters: {},
327
327
  },
@@ -370,21 +370,15 @@ test('router.pipeToRouter() succeeds with video', async () => {
370
370
  encrypt: false,
371
371
  parameters: {},
372
372
  },
373
- {
374
- uri: 'urn:ietf:params:rtp-hdrext:toffset',
375
- id: 9,
376
- encrypt: false,
377
- parameters: {},
378
- },
379
373
  {
380
374
  uri: 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay',
381
- id: 11,
375
+ id: 10,
382
376
  encrypt: false,
383
377
  parameters: {},
384
378
  },
385
379
  {
386
380
  uri: 'urn:mediasoup:params:rtp-hdrext:packet-id',
387
- id: 12,
381
+ id: 11,
388
382
  encrypt: false,
389
383
  parameters: {},
390
384
  },
@@ -428,21 +422,15 @@ test('router.pipeToRouter() succeeds with video', async () => {
428
422
  encrypt: false,
429
423
  parameters: {},
430
424
  },
431
- {
432
- uri: 'urn:ietf:params:rtp-hdrext:toffset',
433
- id: 9,
434
- encrypt: false,
435
- parameters: {},
436
- },
437
425
  {
438
426
  uri: 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay',
439
- id: 11,
427
+ id: 10,
440
428
  encrypt: false,
441
429
  parameters: {},
442
430
  },
443
431
  {
444
432
  uri: 'urn:mediasoup:params:rtp-hdrext:packet-id',
445
- id: 12,
433
+ id: 11,
446
434
  encrypt: false,
447
435
  parameters: {},
448
436
  },
@@ -479,7 +467,7 @@ test('router.pipeToRouter() gives abs-capture-time to the pipe Consumer if the P
479
467
  }));
480
468
  expect(pipeConsumer.rtpParameters.headerExtensions).toContainEqual({
481
469
  uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time',
482
- id: 10,
470
+ id: 9,
483
471
  encrypt: false,
484
472
  parameters: {},
485
473
  });
@@ -502,6 +490,22 @@ test('router.pipeToRouter() with unknown router, producerId or dataProducerId fa
502
490
  dataProducerId: '12345678',
503
491
  })).rejects.toThrow(errors_1.NotFoundError);
504
492
  }, 2000);
493
+ test('router.pipeToRouter() can be retried after failing to create the PipeTransport pair', async () => {
494
+ // Fails because the IP is not assigned to any local network interface.
495
+ await expect(ctx.router1.pipeToRouter({
496
+ router: ctx.router2,
497
+ producerId: ctx.videoProducer.id,
498
+ listenInfo: { protocol: 'udp', ip: '203.0.113.1' },
499
+ })).rejects.toThrow();
500
+ const { pipeConsumer, pipeProducer } = await ctx.router1.pipeToRouter({
501
+ router: ctx.router2,
502
+ producerId: ctx.videoProducer.id,
503
+ listenInfo: { protocol: 'udp', ip: '127.0.0.1' },
504
+ });
505
+ expect(pipeConsumer).toBeDefined();
506
+ expect(pipeProducer).toBeDefined();
507
+ expect(pipeProducer.id).toBe(ctx.videoProducer.id);
508
+ }, 5000);
505
509
  test('router.createPipeTransport() with wrong arguments rejects with TypeError', async () => {
506
510
  // @ts-expect-error --- Testing purposes.
507
511
  await expect(ctx.router1.createPipeTransport({})).rejects.toThrow(TypeError);
@@ -576,21 +580,15 @@ test('router.createPipeTransport() with enableRtx succeeds', async () => {
576
580
  encrypt: false,
577
581
  parameters: {},
578
582
  },
579
- {
580
- uri: 'urn:ietf:params:rtp-hdrext:toffset',
581
- id: 9,
582
- encrypt: false,
583
- parameters: {},
584
- },
585
583
  {
586
584
  uri: 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay',
587
- id: 11,
585
+ id: 10,
588
586
  encrypt: false,
589
587
  parameters: {},
590
588
  },
591
589
  {
592
590
  uri: 'urn:mediasoup:params:rtp-hdrext:packet-id',
593
- id: 12,
591
+ id: 11,
594
592
  encrypt: false,
595
593
  parameters: {},
596
594
  },