mediasoup 3.26.0 → 3.27.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 (310) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/node/lib/DataConsumer.js +1 -1
  3. package/node/lib/Router.js +1 -1
  4. package/node/lib/Transport.js +15 -15
  5. package/node/lib/fbs/rtp-parameters/encoding-mapping.d.ts +2 -6
  6. package/node/lib/fbs/rtp-parameters/encoding-mapping.d.ts.map +1 -1
  7. package/node/lib/fbs/rtp-parameters/encoding-mapping.js +7 -19
  8. package/node/lib/fbs/rtp-parameters/rtp-encoding-parameters.d.ts +4 -4
  9. package/node/lib/fbs/rtp-parameters/rtp-encoding-parameters.js +2 -2
  10. package/node/lib/fbs/rtp-stream/bitrate-by-layer.d.ts +5 -5
  11. package/node/lib/fbs/rtp-stream/bitrate-by-layer.d.ts.map +1 -1
  12. package/node/lib/fbs/rtp-stream/bitrate-by-layer.js +3 -3
  13. package/node/lib/fbs/rtp-stream/recv-stats.d.ts +5 -5
  14. package/node/lib/fbs/rtp-stream/recv-stats.d.ts.map +1 -1
  15. package/node/lib/fbs/rtp-stream/recv-stats.js +3 -3
  16. package/node/lib/fbs/rtp-stream/send-stats.d.ts +5 -5
  17. package/node/lib/fbs/rtp-stream/send-stats.d.ts.map +1 -1
  18. package/node/lib/fbs/rtp-stream/send-stats.js +3 -3
  19. package/node/lib/fbs/transport/bwe-trace-info.d.ts +23 -23
  20. package/node/lib/fbs/transport/bwe-trace-info.d.ts.map +1 -1
  21. package/node/lib/fbs/transport/bwe-trace-info.js +15 -15
  22. package/node/lib/fbs/transport/options.d.ts +5 -5
  23. package/node/lib/fbs/transport/options.js +2 -2
  24. package/node/lib/fbs/transport/set-max-incoming-bitrate-request.d.ts +5 -5
  25. package/node/lib/fbs/transport/set-max-incoming-bitrate-request.d.ts.map +1 -1
  26. package/node/lib/fbs/transport/set-max-incoming-bitrate-request.js +3 -3
  27. package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.d.ts +5 -5
  28. package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.d.ts.map +1 -1
  29. package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.js +3 -3
  30. package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.d.ts +5 -5
  31. package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.d.ts.map +1 -1
  32. package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.js +3 -3
  33. package/node/lib/fbs/transport/stats.d.ts +38 -38
  34. package/node/lib/fbs/transport/stats.d.ts.map +1 -1
  35. package/node/lib/fbs/transport/stats.js +25 -25
  36. package/node/lib/ortc.d.ts +0 -1
  37. package/node/lib/ortc.d.ts.map +1 -1
  38. package/node/lib/ortc.js +1 -2
  39. package/node/lib/rtpParametersFbsUtils.d.ts.map +1 -1
  40. package/node/lib/rtpParametersFbsUtils.js +2 -2
  41. package/package.json +9 -9
  42. package/worker/deps/libwebrtc/libwebrtc/call/rtp_transport_controller_send.cc +10 -10
  43. package/worker/deps/libwebrtc/libwebrtc/mediasoup_helpers.h +6 -6
  44. package/worker/deps/libwebrtc/libwebrtc/modules/congestion_controller/goog_cc/alr_detector.cc +1 -1
  45. package/worker/deps/libwebrtc/libwebrtc/modules/pacing/paced_sender.cc +7 -7
  46. package/worker/deps/libwebrtc/libwebrtc/modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h +1 -1
  47. package/worker/deps/libwebrtc/libwebrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc +1 -1
  48. package/worker/fbs/rtpParameters.fbs +1 -2
  49. package/worker/fbs/rtpStream.fbs +3 -3
  50. package/worker/fbs/transport.fbs +23 -23
  51. package/worker/fuzzer/include/RTC/FuzzerDtlsTransport.hpp +4 -1
  52. package/worker/fuzzer/src/FuzzerUtils.cpp +5 -3
  53. package/worker/fuzzer/src/RTC/FuzzerDtlsTransport.cpp +8 -5
  54. package/worker/fuzzer/src/RTC/FuzzerRateCalculator.cpp +3 -3
  55. package/worker/fuzzer/src/RTC/FuzzerTrendCalculator.cpp +6 -6
  56. package/worker/fuzzer/src/RTC/RTCP/FuzzerFeedbackRtpTransport.cpp +3 -3
  57. package/worker/fuzzer/src/RTC/RTP/FuzzerPacket.cpp +2 -2
  58. package/worker/fuzzer/src/RTC/RTP/FuzzerRetransmissionBuffer.cpp +5 -5
  59. package/worker/fuzzer/src/RTC/RTP/FuzzerRtpStreamSend.cpp +3 -3
  60. package/worker/fuzzer/src/fuzzer.cpp +4 -0
  61. package/worker/include/Channel/ChannelNotification.hpp +3 -3
  62. package/worker/include/Channel/ChannelRequest.hpp +1 -1
  63. package/worker/include/Channel/ChannelSocket.hpp +11 -0
  64. package/worker/include/DepLibUV.hpp +16 -33
  65. package/worker/include/RTC/ActiveSpeakerObserver.hpp +11 -11
  66. package/worker/include/RTC/AudioLevelObserver.hpp +4 -4
  67. package/worker/include/RTC/BWE/AcknowledgedBitrateEstimatorInterface.hpp +55 -0
  68. package/worker/include/RTC/BWE/AimdRateControl.hpp +190 -0
  69. package/worker/include/RTC/BWE/BweTypes.hpp +211 -0
  70. package/worker/include/RTC/BWE/DelayBasedBwe.hpp +173 -0
  71. package/worker/include/RTC/BWE/FeedbackAdapter.hpp +72 -0
  72. package/worker/include/RTC/BWE/InterArrivalDelta.hpp +106 -0
  73. package/worker/include/RTC/BWE/LinkCapacityEstimator.hpp +84 -0
  74. package/worker/include/RTC/BWE/RobustThroughputEstimator.hpp +94 -0
  75. package/worker/include/RTC/BWE/SendPacketHistory.hpp +137 -0
  76. package/worker/include/RTC/BWE/TrendlineEstimator.hpp +101 -0
  77. package/worker/include/RTC/Consts.hpp +6 -6
  78. package/worker/include/RTC/Consumer.hpp +14 -12
  79. package/worker/include/RTC/DataConsumer.hpp +3 -3
  80. package/worker/include/RTC/DataProducer.hpp +3 -3
  81. package/worker/include/RTC/DtlsTransport.hpp +5 -2
  82. package/worker/include/RTC/ICE/IceCandidate.hpp +2 -2
  83. package/worker/include/RTC/ICE/IceServer.hpp +3 -3
  84. package/worker/include/RTC/KeyFrameRequestManager.hpp +3 -3
  85. package/worker/include/RTC/NEW_RTCP/packet/Packet.hpp +1 -1
  86. package/worker/include/RTC/NackGenerator.hpp +12 -12
  87. package/worker/include/RTC/PipeProducerStreamManager.hpp +3 -4
  88. package/worker/include/RTC/PipeTransport.hpp +18 -5
  89. package/worker/include/RTC/PlainTransport.hpp +18 -5
  90. package/worker/include/RTC/PortManager.hpp +4 -4
  91. package/worker/include/RTC/Producer.hpp +21 -12
  92. package/worker/include/RTC/ProducerStreamManager.hpp +12 -6
  93. package/worker/include/RTC/RTCP/Bye.hpp +2 -2
  94. package/worker/include/RTC/RTCP/FeedbackPsRemb.hpp +4 -4
  95. package/worker/include/RTC/RTCP/FeedbackRtpTmmb.hpp +3 -3
  96. package/worker/include/RTC/RTCP/FeedbackRtpTransport.hpp +54 -39
  97. package/worker/include/RTC/RTCP/Packet.hpp +3 -3
  98. package/worker/include/RTC/RTCP/ReceiverReport.hpp +3 -3
  99. package/worker/include/RTC/RTCP/Sdes.hpp +2 -2
  100. package/worker/include/RTC/RTCP/XR.hpp +2 -2
  101. package/worker/include/RTC/RTCP/XrDelaySinceLastRr.hpp +1 -1
  102. package/worker/include/RTC/RTP/Codecs/H264.hpp +1 -1
  103. package/worker/include/RTC/RTP/Codecs/Opus.hpp +2 -2
  104. package/worker/include/RTC/RTP/Codecs/PayloadDescriptorHandler.hpp +3 -3
  105. package/worker/include/RTC/RTP/Codecs/VP8.hpp +2 -2
  106. package/worker/include/RTC/RTP/Codecs/VP9.hpp +2 -2
  107. package/worker/include/RTC/RTP/HeaderExtensionIds.hpp +12 -12
  108. package/worker/include/RTC/RTP/Packet.hpp +13 -13
  109. package/worker/include/RTC/RTP/ProbationGenerator.hpp +1 -1
  110. package/worker/include/RTC/RTP/RetransmissionBuffer.hpp +7 -7
  111. package/worker/include/RTC/RTP/RtpStream.hpp +37 -51
  112. package/worker/include/RTC/RTP/RtpStreamRecv.hpp +59 -41
  113. package/worker/include/RTC/RTP/RtpStreamSend.hpp +20 -14
  114. package/worker/include/RTC/RTP/RtxStream.hpp +12 -13
  115. package/worker/include/RTC/RateCalculator.hpp +50 -44
  116. package/worker/include/RTC/RemoteCaptureTimeEstimator.hpp +5 -4
  117. package/worker/include/RTC/RemoteClockOffsetEstimator.hpp +11 -11
  118. package/worker/include/RTC/Router.hpp +6 -0
  119. package/worker/include/RTC/RtcLogger.hpp +1 -1
  120. package/worker/include/RTC/RtpDictionaries.hpp +10 -10
  121. package/worker/include/RTC/SCTP/association/Association.hpp +56 -28
  122. package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +4 -4
  123. package/worker/include/RTC/SCTP/association/StateCookie.hpp +14 -14
  124. package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +2 -2
  125. package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +12 -12
  126. package/worker/include/RTC/SCTP/association/TransmissionControlBlockContextInterface.hpp +4 -4
  127. package/worker/include/RTC/SCTP/packet/TLV.hpp +1 -1
  128. package/worker/include/RTC/SCTP/packet/parameters/StateCookieParameter.hpp +3 -3
  129. package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +4 -1
  130. package/worker/include/RTC/SCTP/public/AssociationMetrics.hpp +1 -1
  131. package/worker/include/RTC/SCTP/public/SctpOptions.hpp +12 -12
  132. package/worker/include/RTC/SCTP/public/SctpTypes.hpp +1 -1
  133. package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +15 -16
  134. package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +7 -8
  135. package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +20 -16
  136. package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +5 -6
  137. package/worker/include/RTC/SCTP/tx/SendQueueInterface.hpp +2 -2
  138. package/worker/include/RTC/SCTP/tx/StreamScheduler.hpp +5 -5
  139. package/worker/include/RTC/SctpDictionaries.hpp +3 -3
  140. package/worker/include/RTC/Serializable.hpp +1 -1
  141. package/worker/include/RTC/SimpleProducerStreamManager.hpp +3 -4
  142. package/worker/include/RTC/SimulcastProducerStreamManager.hpp +6 -7
  143. package/worker/include/RTC/SvcProducerStreamManager.hpp +6 -5
  144. package/worker/include/RTC/TcpConnection.hpp +9 -3
  145. package/worker/include/RTC/TcpServer.hpp +3 -0
  146. package/worker/include/RTC/Transport.hpp +52 -45
  147. package/worker/include/RTC/TransportCongestionControlClient.hpp +30 -25
  148. package/worker/include/RTC/TransportCongestionControlServer.hpp +17 -17
  149. package/worker/include/RTC/TrendCalculator.hpp +5 -5
  150. package/worker/include/RTC/UdpSocket.hpp +11 -2
  151. package/worker/include/RTC/WebRtcServer.hpp +20 -5
  152. package/worker/include/RTC/WebRtcTransport.hpp +35 -10
  153. package/worker/include/Settings.hpp +4 -2
  154. package/worker/include/Shared.hpp +5 -20
  155. package/worker/include/SharedInterface.hpp +6 -28
  156. package/worker/include/Utils.hpp +40 -21
  157. package/worker/include/common.hpp +4 -0
  158. package/worker/include/handles/BackoffTimerHandle.hpp +4 -4
  159. package/worker/include/handles/BackoffTimerHandleInterface.hpp +5 -5
  160. package/worker/include/handles/TcpConnectionHandle.hpp +6 -6
  161. package/worker/include/handles/TcpServerHandle.hpp +1 -1
  162. package/worker/include/handles/TimerHandle.hpp +15 -9
  163. package/worker/include/handles/TimerHandleInterface.hpp +10 -4
  164. package/worker/include/handles/UdpSocketHandle.hpp +3 -3
  165. package/worker/include/handles/UnixStreamSocketHandle.hpp +2 -2
  166. package/worker/meson.build +81 -36
  167. package/worker/meson_options.txt +1 -0
  168. package/worker/mocks/include/MockShared.hpp +24 -23
  169. package/worker/mocks/include/RTC/SCTP/association/MockTransmissionControlBlockContext.hpp +51 -27
  170. package/worker/mocks/include/RTC/SCTP/tx/MockSendQueue.hpp +11 -11
  171. package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +10 -10
  172. package/worker/mocks/include/handles/MockTimerHandle.hpp +60 -22
  173. package/worker/mocks/src/MockShared.cpp +51 -5
  174. package/worker/mocks/src/handles/MockBackoffTimerHandle.cpp +29 -15
  175. package/worker/mocks/src/handles/MockTimerHandle.cpp +117 -0
  176. package/worker/scripts/clang-scripts.mjs +2 -2
  177. package/worker/src/Channel/ChannelNotification.cpp +5 -6
  178. package/worker/src/Channel/ChannelSocket.cpp +20 -2
  179. package/worker/src/DepLibUV.cpp +4 -5
  180. package/worker/src/RTC/ActiveSpeakerObserver.cpp +59 -47
  181. package/worker/src/RTC/AudioLevelObserver.cpp +7 -7
  182. package/worker/src/RTC/BWE/AimdRateControl.cpp +468 -0
  183. package/worker/src/RTC/BWE/BweTypes.cpp +61 -0
  184. package/worker/src/RTC/BWE/DelayBasedBwe.cpp +275 -0
  185. package/worker/src/RTC/BWE/FeedbackAdapter.cpp +148 -0
  186. package/worker/src/RTC/BWE/InterArrivalDelta.cpp +181 -0
  187. package/worker/src/RTC/BWE/LinkCapacityEstimator.cpp +133 -0
  188. package/worker/src/RTC/BWE/RobustThroughputEstimator.cpp +245 -0
  189. package/worker/src/RTC/BWE/SendPacketHistory.cpp +184 -0
  190. package/worker/src/RTC/BWE/TrendlineEstimator.cpp +233 -0
  191. package/worker/src/RTC/Consumer.cpp +48 -35
  192. package/worker/src/RTC/DataConsumer.cpp +4 -4
  193. package/worker/src/RTC/DataProducer.cpp +3 -3
  194. package/worker/src/RTC/DirectTransport.cpp +2 -2
  195. package/worker/src/RTC/DtlsTransport.cpp +14 -11
  196. package/worker/src/RTC/ICE/IceServer.cpp +2 -2
  197. package/worker/src/RTC/KeyFrameRequestManager.cpp +16 -12
  198. package/worker/src/RTC/NackGenerator.cpp +12 -12
  199. package/worker/src/RTC/PipeProducerStreamManager.cpp +6 -6
  200. package/worker/src/RTC/PipeTransport.cpp +16 -13
  201. package/worker/src/RTC/PlainTransport.cpp +25 -16
  202. package/worker/src/RTC/Producer.cpp +50 -36
  203. package/worker/src/RTC/RTCP/FeedbackPsRemb.cpp +13 -6
  204. package/worker/src/RTC/RTCP/FeedbackRtpTmmb.cpp +14 -5
  205. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +76 -50
  206. package/worker/src/RTC/RTP/Codecs/VP8.cpp +1 -1
  207. package/worker/src/RTC/RTP/Codecs/VP9.cpp +4 -4
  208. package/worker/src/RTC/RTP/Packet.cpp +9 -10
  209. package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +6 -6
  210. package/worker/src/RTC/RTP/RtpStream.cpp +19 -19
  211. package/worker/src/RTC/RTP/RtpStreamRecv.cpp +146 -81
  212. package/worker/src/RTC/RTP/RtpStreamSend.cpp +49 -44
  213. package/worker/src/RTC/RTP/RtxStream.cpp +7 -10
  214. package/worker/src/RTC/RateCalculator.cpp +99 -136
  215. package/worker/src/RTC/RemoteCaptureTimeEstimator.cpp +13 -13
  216. package/worker/src/RTC/RemoteClockOffsetEstimator.cpp +18 -17
  217. package/worker/src/RTC/Router.cpp +18 -1
  218. package/worker/src/RTC/RtpDictionaries/RtpEncodingParameters.cpp +5 -2
  219. package/worker/src/RTC/SCTP/association/Association.cpp +131 -102
  220. package/worker/src/RTC/SCTP/association/AssociationListenerDeferrer.cpp +4 -4
  221. package/worker/src/RTC/SCTP/association/Capabilities.cpp +1 -1
  222. package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +25 -18
  223. package/worker/src/RTC/SCTP/association/StateCookie.cpp +7 -6
  224. package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +16 -13
  225. package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +28 -26
  226. package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +0 -1
  227. package/worker/src/RTC/SCTP/packet/parameters/StateCookieParameter.cpp +2 -2
  228. package/worker/src/RTC/SCTP/public/AssociationMetrics.cpp +1 -1
  229. package/worker/src/RTC/SCTP/public/SctpOptions.cpp +13 -13
  230. package/worker/src/RTC/SCTP/rx/DataTracker.cpp +1 -1
  231. package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +5 -5
  232. package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +15 -15
  233. package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +15 -15
  234. package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +29 -26
  235. package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +12 -11
  236. package/worker/src/RTC/SCTP/tx/StreamScheduler.cpp +4 -4
  237. package/worker/src/RTC/SctpDictionaries/SctpStreamParameters.cpp +2 -2
  238. package/worker/src/RTC/SimpleProducerStreamManager.cpp +10 -10
  239. package/worker/src/RTC/SimulcastProducerStreamManager.cpp +39 -37
  240. package/worker/src/RTC/SvcProducerStreamManager.cpp +39 -25
  241. package/worker/src/RTC/TcpConnection.cpp +9 -3
  242. package/worker/src/RTC/TcpServer.cpp +7 -2
  243. package/worker/src/RTC/Transport.cpp +242 -302
  244. package/worker/src/RTC/TransportCongestionControlClient.cpp +78 -71
  245. package/worker/src/RTC/TransportCongestionControlServer.cpp +38 -40
  246. package/worker/src/RTC/TrendCalculator.cpp +3 -3
  247. package/worker/src/RTC/UdpSocket.cpp +14 -3
  248. package/worker/src/RTC/WebRtcServer.cpp +20 -14
  249. package/worker/src/RTC/WebRtcTransport.cpp +35 -30
  250. package/worker/src/Settings.cpp +10 -0
  251. package/worker/src/Shared.cpp +2 -2
  252. package/worker/src/Utils/Crypto.cpp +2 -2
  253. package/worker/src/Worker.cpp +5 -1
  254. package/worker/src/handles/BackoffTimerHandle.cpp +24 -11
  255. package/worker/src/handles/TimerHandle.cpp +74 -25
  256. package/worker/src/lib.cpp +6 -0
  257. package/worker/tasks.py +171 -44
  258. package/worker/test/include/RTC/BWE/helpers/LinkSimulator.hpp +117 -0
  259. package/worker/test/src/RTC/BWE/TestAimdRateControl.cpp +400 -0
  260. package/worker/test/src/RTC/BWE/TestDelayBasedBwe.cpp +568 -0
  261. package/worker/test/src/RTC/BWE/TestFeedbackAdapter.cpp +546 -0
  262. package/worker/test/src/RTC/BWE/TestInterArrivalDelta.cpp +301 -0
  263. package/worker/test/src/RTC/BWE/TestLinkCapacityEstimator.cpp +115 -0
  264. package/worker/test/src/RTC/BWE/TestRobustThroughputEstimator.cpp +433 -0
  265. package/worker/test/src/RTC/BWE/TestSendPacketHistory.cpp +259 -0
  266. package/worker/test/src/RTC/BWE/TestTrendlineEstimator.cpp +137 -0
  267. package/worker/test/src/RTC/BWE/helpers/LinkSimulator.cpp +171 -0
  268. package/worker/test/src/RTC/RTCP/TestFeedbackPsRemb.cpp +1 -1
  269. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTmmb.cpp +1 -1
  270. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTransport.cpp +246 -208
  271. package/worker/test/src/RTC/RTP/TestPacket.cpp +11 -11
  272. package/worker/test/src/RTC/RTP/TestRetransmissionBuffer.cpp +12 -12
  273. package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +23 -16
  274. package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +13 -13
  275. package/worker/test/src/RTC/SCTP/association/TestAssociation.cpp +27 -22
  276. package/worker/test/src/RTC/SCTP/association/TestHeartbeatHandler.cpp +21 -15
  277. package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +6 -6
  278. package/worker/test/src/RTC/SCTP/association/TestStreamResetHandler.cpp +17 -13
  279. package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +3 -3
  280. package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +2 -2
  281. package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +23 -23
  282. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +1 -1
  283. package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +1 -1
  284. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +1 -1
  285. package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +37 -37
  286. package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +10 -10
  287. package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +1 -1
  288. package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +93 -93
  289. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +247 -247
  290. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionTimeout.cpp +100 -80
  291. package/worker/test/src/RTC/SCTP/tx/TestRoundRobinSendQueue.cpp +163 -163
  292. package/worker/test/src/RTC/SCTP/tx/TestStreamScheduler.cpp +76 -77
  293. package/worker/test/src/RTC/TestConsumer.cpp +8 -3
  294. package/worker/test/src/RTC/TestKeyFrameRequestManager.cpp +3 -3
  295. package/worker/test/src/RTC/TestNackGenerator.cpp +3 -3
  296. package/worker/test/src/RTC/TestPipeProducerStreamManager.cpp +5 -5
  297. package/worker/test/src/RTC/TestRateCalculator.cpp +110 -14
  298. package/worker/test/src/RTC/TestRemoteCaptureTimeEstimator.cpp +22 -17
  299. package/worker/test/src/RTC/TestRemoteClockOffsetEstimator.cpp +87 -85
  300. package/worker/test/src/RTC/TestSimpleProducerStreamManager.cpp +54 -47
  301. package/worker/test/src/RTC/TestSimulcastProducerStreamManager.cpp +83 -69
  302. package/worker/test/src/RTC/TestSvcProducerStreamManager.cpp +76 -65
  303. package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +72 -66
  304. package/worker/test/src/RTC/TestTransportTuple.cpp +19 -4
  305. package/worker/test/src/TestDepLibUV.cpp +19 -0
  306. package/worker/test/src/Utils/TestTime.cpp +57 -26
  307. package/worker/test/src/testHelpers.cpp +1 -1
  308. package/worker/test/src/tests.cpp +6 -0
  309. package/worker/include/RTC/SenderBandwidthEstimator.hpp +0 -118
  310. package/worker/src/RTC/SenderBandwidthEstimator.cpp +0 -269
@@ -10,7 +10,7 @@
10
10
  SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
11
11
  {
12
12
  constexpr size_t Mtu{ 1100 };
13
- constexpr uint64_t NowMs{ 0 };
13
+ constexpr int64_t NowUs{ 0 };
14
14
  constexpr uint16_t StreamId{ 1 };
15
15
  constexpr uint32_t Ppid{ 53 };
16
16
  constexpr uint16_t DefaultPriority{ 10 };
@@ -30,7 +30,7 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
30
30
  TotalBufferedAmountLowThreshold);
31
31
 
32
32
  REQUIRE(q.IsEmpty());
33
- REQUIRE(q.Produce(NowMs, OneFragmentPacketLength).has_value() == false);
33
+ REQUIRE(q.Produce(NowUs, OneFragmentPacketLength).has_value() == false);
34
34
  }
35
35
 
36
36
  SECTION("add and get single chunk")
@@ -43,11 +43,11 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
43
43
  DefaultStreamBufferedAmountLowThreshold,
44
44
  TotalBufferedAmountLowThreshold);
45
45
 
46
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, { 1, 2, 4, 5, 6 }));
46
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, { 1, 2, 4, 5, 6 }));
47
47
 
48
48
  REQUIRE(!q.IsEmpty());
49
49
 
50
- const auto dataToSend = q.Produce(NowMs, OneFragmentPacketLength);
50
+ const auto dataToSend = q.Produce(NowUs, OneFragmentPacketLength);
51
51
 
52
52
  REQUIRE(dataToSend.has_value());
53
53
  REQUIRE(dataToSend->data.IsBeginning());
@@ -66,27 +66,27 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
66
66
 
67
67
  const std::vector<uint8_t> payload(60);
68
68
 
69
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
69
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
70
70
 
71
- const auto dataToSendBeg = q.Produce(NowMs, /*maxLength*/ 20);
71
+ const auto dataToSendBeg = q.Produce(NowUs, /*maxLength*/ 20);
72
72
 
73
73
  REQUIRE(dataToSendBeg.has_value());
74
74
  REQUIRE(dataToSendBeg->data.IsBeginning());
75
75
  REQUIRE(!dataToSendBeg->data.IsEnd());
76
76
 
77
- const auto dataToSendMid = q.Produce(NowMs, /*maxLength*/ 20);
77
+ const auto dataToSendMid = q.Produce(NowUs, /*maxLength*/ 20);
78
78
 
79
79
  REQUIRE(dataToSendMid.has_value());
80
80
  REQUIRE(!dataToSendMid->data.IsBeginning());
81
81
  REQUIRE(!dataToSendMid->data.IsEnd());
82
82
 
83
- const auto dataToSendEnd = q.Produce(NowMs, /*maxLength*/ 20);
83
+ const auto dataToSendEnd = q.Produce(NowUs, /*maxLength*/ 20);
84
84
 
85
85
  REQUIRE(dataToSendEnd.has_value());
86
86
  REQUIRE(!dataToSendEnd->data.IsBeginning());
87
87
  REQUIRE(dataToSendEnd->data.IsEnd());
88
88
 
89
- REQUIRE(q.Produce(NowMs, OneFragmentPacketLength).has_value() == false);
89
+ REQUIRE(q.Produce(NowUs, OneFragmentPacketLength).has_value() == false);
90
90
  }
91
91
 
92
92
  SECTION("get chunks from two messages")
@@ -101,10 +101,10 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
101
101
 
102
102
  const std::vector<uint8_t> payload(60);
103
103
 
104
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
105
- q.AddMessage(NowMs, RTC::SCTP::Message(3, 54, payload));
104
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
105
+ q.AddMessage(NowUs, RTC::SCTP::Message(3, 54, payload));
106
106
 
107
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
107
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
108
108
 
109
109
  REQUIRE(dataToSendOne.has_value());
110
110
  REQUIRE(dataToSendOne->data.GetStreamId() == StreamId);
@@ -112,7 +112,7 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
112
112
  REQUIRE(dataToSendOne->data.IsBeginning());
113
113
  REQUIRE(dataToSendOne->data.IsEnd());
114
114
 
115
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
115
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
116
116
 
117
117
  REQUIRE(dataToSendTwo.has_value());
118
118
  REQUIRE(dataToSendTwo->data.GetStreamId() == 3);
@@ -135,19 +135,19 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
135
135
 
136
136
  REQUIRE(q.GetTotalBufferedAmount() < 1000);
137
137
 
138
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
138
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
139
139
 
140
140
  REQUIRE(q.GetTotalBufferedAmount() < 1000);
141
141
 
142
- q.AddMessage(NowMs, RTC::SCTP::Message(3, 54, payload));
142
+ q.AddMessage(NowUs, RTC::SCTP::Message(3, 54, payload));
143
143
 
144
144
  REQUIRE(q.GetTotalBufferedAmount() >= 1000);
145
145
 
146
- q.AddMessage(NowMs, RTC::SCTP::Message(5, 55, payload));
146
+ q.AddMessage(NowUs, RTC::SCTP::Message(5, 55, payload));
147
147
 
148
148
  REQUIRE(q.GetTotalBufferedAmount() >= 1000);
149
149
 
150
- auto dataToSendOne = q.Produce(NowMs, 1000);
150
+ auto dataToSendOne = q.Produce(NowUs, 1000);
151
151
 
152
152
  REQUIRE(dataToSendOne.has_value());
153
153
  REQUIRE(dataToSendOne->data.GetStreamId() == StreamId);
@@ -155,7 +155,7 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
155
155
 
156
156
  REQUIRE(q.GetTotalBufferedAmount() >= 1000);
157
157
 
158
- auto dataToSendTwo = q.Produce(NowMs, 1000);
158
+ auto dataToSendTwo = q.Produce(NowUs, 1000);
159
159
 
160
160
  REQUIRE(dataToSendTwo.has_value());
161
161
  REQUIRE(dataToSendTwo->data.GetStreamId() == 3);
@@ -164,7 +164,7 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
164
164
  REQUIRE(q.GetTotalBufferedAmount() < 1000);
165
165
  REQUIRE(!q.IsEmpty());
166
166
 
167
- auto dataToSendThree = q.Produce(NowMs, 1000);
167
+ auto dataToSendThree = q.Produce(NowUs, 1000);
168
168
 
169
169
  REQUIRE(dataToSendThree.has_value());
170
170
  REQUIRE(dataToSendThree->data.GetStreamId() == 5);
@@ -186,9 +186,9 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
186
186
 
187
187
  const std::vector<uint8_t> payload(20);
188
188
 
189
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
189
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
190
190
 
191
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
191
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
192
192
 
193
193
  REQUIRE(dataToSendOne.has_value());
194
194
  REQUIRE(!dataToSendOne->data.IsUnordered());
@@ -197,9 +197,9 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
197
197
 
198
198
  options.unordered = true;
199
199
 
200
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload), options);
200
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload), options);
201
201
 
202
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
202
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
203
203
 
204
204
  REQUIRE(dataToSendTwo.has_value());
205
205
  REQUIRE(dataToSendTwo->data.IsUnordered());
@@ -217,47 +217,47 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
217
217
 
218
218
  const std::vector<uint8_t> payload(20);
219
219
 
220
- uint64_t now = NowMs;
220
+ int64_t nowUs = NowUs;
221
221
 
222
- q.AddMessage(now, RTC::SCTP::Message(StreamId, Ppid, payload));
222
+ q.AddMessage(nowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
223
223
 
224
- now += 1000000;
224
+ nowUs += 1000000 * 1000;
225
225
 
226
- REQUIRE(q.Produce(now, OneFragmentPacketLength).has_value());
226
+ REQUIRE(q.Produce(nowUs, OneFragmentPacketLength).has_value());
227
227
 
228
228
  RTC::SCTP::SendMessageOptions expires2s;
229
229
 
230
230
  expires2s.lifetimeMs = 2000;
231
231
 
232
- q.AddMessage(now, RTC::SCTP::Message(StreamId, Ppid, payload), expires2s);
232
+ q.AddMessage(nowUs, RTC::SCTP::Message(StreamId, Ppid, payload), expires2s);
233
233
 
234
- now += 2000;
234
+ nowUs += 2000 * 1000;
235
235
 
236
- REQUIRE(q.Produce(now, OneFragmentPacketLength).has_value());
236
+ REQUIRE(q.Produce(nowUs, OneFragmentPacketLength).has_value());
237
237
 
238
- q.AddMessage(now, RTC::SCTP::Message(StreamId, Ppid, payload), expires2s);
238
+ q.AddMessage(nowUs, RTC::SCTP::Message(StreamId, Ppid, payload), expires2s);
239
239
 
240
- now += 2001;
240
+ nowUs += 2001 * 1000;
241
241
 
242
- REQUIRE(!q.Produce(now, OneFragmentPacketLength).has_value());
242
+ REQUIRE(!q.Produce(nowUs, OneFragmentPacketLength).has_value());
243
243
 
244
- q.AddMessage(now, RTC::SCTP::Message(StreamId, Ppid, payload), expires2s);
244
+ q.AddMessage(nowUs, RTC::SCTP::Message(StreamId, Ppid, payload), expires2s);
245
245
 
246
- now += 1000000;
246
+ nowUs += 1000000 * 1000;
247
247
 
248
- REQUIRE(!q.Produce(now, OneFragmentPacketLength).has_value());
248
+ REQUIRE(!q.Produce(nowUs, OneFragmentPacketLength).has_value());
249
249
 
250
250
  RTC::SCTP::SendMessageOptions expires4s;
251
251
 
252
252
  expires4s.lifetimeMs = 4000;
253
253
 
254
- q.AddMessage(now, RTC::SCTP::Message(StreamId, Ppid, payload), expires2s);
255
- q.AddMessage(now, RTC::SCTP::Message(StreamId, Ppid, payload), expires4s);
254
+ q.AddMessage(nowUs, RTC::SCTP::Message(StreamId, Ppid, payload), expires2s);
255
+ q.AddMessage(nowUs, RTC::SCTP::Message(StreamId, Ppid, payload), expires4s);
256
256
 
257
- now += 2001;
257
+ nowUs += 2001 * 1000;
258
258
 
259
- REQUIRE(q.Produce(now, OneFragmentPacketLength).has_value());
260
- REQUIRE(!q.Produce(now, OneFragmentPacketLength).has_value());
259
+ REQUIRE(q.Produce(nowUs, OneFragmentPacketLength).has_value());
260
+ REQUIRE(!q.Produce(nowUs, OneFragmentPacketLength).has_value());
261
261
  }
262
262
 
263
263
  SECTION("discard partial packets")
@@ -272,10 +272,10 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
272
272
 
273
273
  const std::vector<uint8_t> payload(120);
274
274
 
275
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
276
- q.AddMessage(NowMs, RTC::SCTP::Message(2, 54, payload));
275
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
276
+ q.AddMessage(NowUs, RTC::SCTP::Message(2, 54, payload));
277
277
 
278
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
278
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
279
279
 
280
280
  REQUIRE(dataToSendOne.has_value());
281
281
  REQUIRE(!dataToSendOne->data.IsEnd());
@@ -283,23 +283,23 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
283
283
 
284
284
  q.Discard(dataToSendOne->data.GetStreamId(), dataToSendOne->outgoingMessageId);
285
285
 
286
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
286
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
287
287
 
288
288
  REQUIRE(dataToSendTwo.has_value());
289
289
  REQUIRE(!dataToSendTwo->data.IsEnd());
290
290
  REQUIRE(dataToSendTwo->data.GetStreamId() == 2);
291
291
 
292
- const auto dataToSendThree = q.Produce(NowMs, OneFragmentPacketLength);
292
+ const auto dataToSendThree = q.Produce(NowUs, OneFragmentPacketLength);
293
293
 
294
294
  REQUIRE(dataToSendThree.has_value());
295
295
  REQUIRE(dataToSendThree->data.IsEnd());
296
296
  REQUIRE(dataToSendThree->data.GetStreamId() == 2);
297
297
 
298
- REQUIRE(!q.Produce(NowMs, OneFragmentPacketLength).has_value());
298
+ REQUIRE(!q.Produce(NowUs, OneFragmentPacketLength).has_value());
299
299
 
300
300
  q.Discard(dataToSendOne->data.GetStreamId(), dataToSendOne->outgoingMessageId);
301
301
 
302
- REQUIRE(!q.Produce(NowMs, OneFragmentPacketLength).has_value());
302
+ REQUIRE(!q.Produce(NowUs, OneFragmentPacketLength).has_value());
303
303
  }
304
304
 
305
305
  SECTION("prepare reset streams discards stream")
@@ -312,8 +312,8 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
312
312
  DefaultStreamBufferedAmountLowThreshold,
313
313
  TotalBufferedAmountLowThreshold);
314
314
 
315
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, { 1, 2, 3 }));
316
- q.AddMessage(NowMs, RTC::SCTP::Message(2, 54, { 1, 2, 3, 4, 5 }));
315
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, { 1, 2, 3 }));
316
+ q.AddMessage(NowUs, RTC::SCTP::Message(2, 54, { 1, 2, 3, 4, 5 }));
317
317
 
318
318
  REQUIRE(q.GetTotalBufferedAmount() == 8);
319
319
 
@@ -345,10 +345,10 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
345
345
 
346
346
  const std::vector<uint8_t> payload(120);
347
347
 
348
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
349
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
348
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
349
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
350
350
 
351
- const auto dataToSendOne = q.Produce(NowMs, 50);
351
+ const auto dataToSendOne = q.Produce(NowUs, 50);
352
352
 
353
353
  REQUIRE(dataToSendOne.has_value());
354
354
  REQUIRE(dataToSendOne->data.GetStreamId() == StreamId);
@@ -376,11 +376,11 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
376
376
 
377
377
  REQUIRE(q.GetTotalBufferedAmount() == 0);
378
378
 
379
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
379
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
380
380
 
381
381
  REQUIRE(q.GetTotalBufferedAmount() == payload.size());
382
382
 
383
- REQUIRE(!q.Produce(NowMs, OneFragmentPacketLength).has_value());
383
+ REQUIRE(!q.Produce(NowUs, OneFragmentPacketLength).has_value());
384
384
 
385
385
  REQUIRE(q.HasStreamsReadyToBeReset());
386
386
 
@@ -389,13 +389,13 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
389
389
  REQUIRE(streamsReadyToBeReset.size() == 1);
390
390
  REQUIRE(std::ranges::find(streamsReadyToBeReset, StreamId) != streamsReadyToBeReset.end());
391
391
 
392
- REQUIRE(!q.Produce(NowMs, OneFragmentPacketLength).has_value());
392
+ REQUIRE(!q.Produce(NowUs, OneFragmentPacketLength).has_value());
393
393
 
394
394
  q.CommitResetStreams();
395
395
 
396
396
  REQUIRE(q.GetTotalBufferedAmount() == payload.size());
397
397
 
398
- const auto dataToSendOne = q.Produce(NowMs, 50);
398
+ const auto dataToSendOne = q.Produce(NowUs, 50);
399
399
 
400
400
  REQUIRE(dataToSendOne.has_value());
401
401
  REQUIRE(dataToSendOne->data.GetStreamId() == StreamId);
@@ -418,10 +418,10 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
418
418
 
419
419
  const std::vector<uint8_t> payload(payloadLength);
420
420
 
421
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
422
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
421
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
422
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
423
423
 
424
- const auto dataToSendOne = q.Produce(NowMs, fragmentLength);
424
+ const auto dataToSendOne = q.Produce(NowUs, fragmentLength);
425
425
 
426
426
  REQUIRE(dataToSendOne.has_value());
427
427
  REQUIRE(dataToSendOne->data.GetStreamId() == StreamId);
@@ -432,14 +432,14 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
432
432
 
433
433
  REQUIRE(q.GetTotalBufferedAmount() == payloadLength - fragmentLength);
434
434
 
435
- const auto dataToSendTwo = q.Produce(NowMs, fragmentLength);
435
+ const auto dataToSendTwo = q.Produce(NowUs, fragmentLength);
436
436
 
437
437
  REQUIRE(dataToSendTwo.has_value());
438
438
  REQUIRE(dataToSendTwo->data.GetStreamId() == StreamId);
439
439
 
440
440
  REQUIRE(q.GetTotalBufferedAmount() == 0);
441
441
 
442
- REQUIRE(!q.Produce(NowMs, fragmentLength).has_value());
442
+ REQUIRE(!q.Produce(NowUs, fragmentLength).has_value());
443
443
  }
444
444
 
445
445
  SECTION("committing resets SSN")
@@ -454,22 +454,22 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
454
454
 
455
455
  const std::vector<uint8_t> payload(50);
456
456
 
457
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
458
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
457
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
458
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
459
459
 
460
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
460
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
461
461
 
462
462
  REQUIRE(dataToSendOne.has_value());
463
463
  REQUIRE(dataToSendOne->data.GetStreamSequenceNumber() == 0);
464
464
 
465
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
465
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
466
466
 
467
467
  REQUIRE(dataToSendTwo.has_value());
468
468
  REQUIRE(dataToSendTwo->data.GetStreamSequenceNumber() == 1);
469
469
 
470
470
  q.PrepareResetStream(StreamId);
471
471
 
472
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
472
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
473
473
 
474
474
  REQUIRE(q.HasStreamsReadyToBeReset());
475
475
 
@@ -480,7 +480,7 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
480
480
 
481
481
  q.CommitResetStreams();
482
482
 
483
- const auto dataToSendThree = q.Produce(NowMs, OneFragmentPacketLength);
483
+ const auto dataToSendThree = q.Produce(NowUs, OneFragmentPacketLength);
484
484
 
485
485
  REQUIRE(dataToSendThree.has_value());
486
486
  REQUIRE(dataToSendThree->data.GetStreamSequenceNumber() == 0);
@@ -498,17 +498,17 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
498
498
 
499
499
  const std::vector<uint8_t> payload(50);
500
500
 
501
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
501
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
502
502
 
503
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
503
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
504
504
 
505
505
  REQUIRE(dataToSendOne.has_value());
506
506
  REQUIRE(dataToSendOne->data.GetStreamSequenceNumber() == 0);
507
507
  REQUIRE(dataToSendOne->outgoingMessageId == 0);
508
508
 
509
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
509
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
510
510
 
511
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
511
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
512
512
 
513
513
  REQUIRE(dataToSendTwo.has_value());
514
514
  REQUIRE(dataToSendTwo->data.GetStreamSequenceNumber() == 1);
@@ -523,9 +523,9 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
523
523
 
524
524
  q.CommitResetStreams();
525
525
 
526
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
526
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
527
527
 
528
- const auto dataToSendThree = q.Produce(NowMs, OneFragmentPacketLength);
528
+ const auto dataToSendThree = q.Produce(NowUs, OneFragmentPacketLength);
529
529
 
530
530
  REQUIRE(dataToSendThree.has_value());
531
531
  REQUIRE(dataToSendThree->data.GetStreamSequenceNumber() == 0);
@@ -544,16 +544,16 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
544
544
 
545
545
  const std::vector<uint8_t> payload(50);
546
546
 
547
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, payload));
548
- q.AddMessage(NowMs, RTC::SCTP::Message(3, Ppid, payload));
547
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, payload));
548
+ q.AddMessage(NowUs, RTC::SCTP::Message(3, Ppid, payload));
549
549
 
550
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
550
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
551
551
 
552
552
  REQUIRE(dataToSendOne.has_value());
553
553
  REQUIRE(dataToSendOne->data.GetStreamId() == 1);
554
554
  REQUIRE(dataToSendOne->data.GetStreamSequenceNumber() == 0);
555
555
 
556
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
556
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
557
557
 
558
558
  REQUIRE(dataToSendTwo.has_value());
559
559
  REQUIRE(dataToSendTwo->data.GetStreamId() == 3);
@@ -561,8 +561,8 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
561
561
 
562
562
  q.PrepareResetStream(3);
563
563
 
564
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, payload));
565
- q.AddMessage(NowMs, RTC::SCTP::Message(3, Ppid, payload));
564
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, payload));
565
+ q.AddMessage(NowUs, RTC::SCTP::Message(3, Ppid, payload));
566
566
 
567
567
  const auto streamsReadyToBeReset = q.GetStreamsReadyToBeReset();
568
568
 
@@ -571,13 +571,13 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
571
571
 
572
572
  q.CommitResetStreams();
573
573
 
574
- const auto dataToSendThree = q.Produce(NowMs, OneFragmentPacketLength);
574
+ const auto dataToSendThree = q.Produce(NowUs, OneFragmentPacketLength);
575
575
 
576
576
  REQUIRE(dataToSendThree.has_value());
577
577
  REQUIRE(dataToSendThree->data.GetStreamId() == 1);
578
578
  REQUIRE(dataToSendThree->data.GetStreamSequenceNumber() == 1);
579
579
 
580
- const auto dataToSendFour = q.Produce(NowMs, OneFragmentPacketLength);
580
+ const auto dataToSendFour = q.Produce(NowUs, OneFragmentPacketLength);
581
581
 
582
582
  REQUIRE(dataToSendFour.has_value());
583
583
  REQUIRE(dataToSendFour->data.GetStreamId() == 3);
@@ -596,22 +596,22 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
596
596
 
597
597
  const std::vector<uint8_t> payload(50);
598
598
 
599
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
600
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
599
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
600
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
601
601
 
602
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
602
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
603
603
 
604
604
  REQUIRE(dataToSendOne.has_value());
605
605
  REQUIRE(dataToSendOne->data.GetStreamSequenceNumber() == 0);
606
606
 
607
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
607
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
608
608
 
609
609
  REQUIRE(dataToSendTwo.has_value());
610
610
  REQUIRE(dataToSendTwo->data.GetStreamSequenceNumber() == 1);
611
611
 
612
612
  q.PrepareResetStream(1);
613
613
 
614
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
614
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
615
615
 
616
616
  const auto streamsReadyToBeReset = q.GetStreamsReadyToBeReset();
617
617
 
@@ -620,7 +620,7 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
620
620
 
621
621
  q.RollbackResetStreams();
622
622
 
623
- const auto dataToSendThree = q.Produce(NowMs, OneFragmentPacketLength);
623
+ const auto dataToSendThree = q.Produce(NowUs, OneFragmentPacketLength);
624
624
 
625
625
  REQUIRE(dataToSendThree.has_value());
626
626
  REQUIRE(dataToSendThree->data.GetStreamSequenceNumber() == 2);
@@ -638,25 +638,25 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
638
638
 
639
639
  const std::vector<uint8_t> payload(200);
640
640
 
641
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, payload));
642
- q.AddMessage(NowMs, RTC::SCTP::Message(2, Ppid, payload));
641
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, payload));
642
+ q.AddMessage(NowUs, RTC::SCTP::Message(2, Ppid, payload));
643
643
 
644
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
644
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
645
645
 
646
646
  REQUIRE(dataToSendOne.has_value());
647
647
  REQUIRE(dataToSendOne->data.GetStreamId() == 1);
648
648
 
649
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
649
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
650
650
 
651
651
  REQUIRE(dataToSendTwo.has_value());
652
652
  REQUIRE(dataToSendTwo->data.GetStreamId() == 1);
653
653
 
654
- const auto dataToSendThree = q.Produce(NowMs, OneFragmentPacketLength);
654
+ const auto dataToSendThree = q.Produce(NowUs, OneFragmentPacketLength);
655
655
 
656
656
  REQUIRE(dataToSendThree.has_value());
657
657
  REQUIRE(dataToSendThree->data.GetStreamId() == 2);
658
658
 
659
- const auto dataToSendFour = q.Produce(NowMs, OneFragmentPacketLength);
659
+ const auto dataToSendFour = q.Produce(NowUs, OneFragmentPacketLength);
660
660
 
661
661
  REQUIRE(dataToSendFour.has_value());
662
662
  REQUIRE(dataToSendFour->data.GetStreamId() == 2);
@@ -674,29 +674,29 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
674
674
 
675
675
  const std::vector<uint8_t> payload(TwoFragmentPacketLength);
676
676
 
677
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, payload));
678
- q.AddMessage(NowMs, RTC::SCTP::Message(2, Ppid, payload));
677
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, payload));
678
+ q.AddMessage(NowUs, RTC::SCTP::Message(2, Ppid, payload));
679
679
 
680
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
680
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
681
681
 
682
682
  REQUIRE(dataToSendOne.has_value());
683
683
  REQUIRE(dataToSendOne->data.GetStreamId() == 1);
684
684
  REQUIRE(dataToSendOne->data.GetPayloadLength() == OneFragmentPacketLength);
685
685
 
686
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
686
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
687
687
 
688
688
  REQUIRE(dataToSendTwo.has_value());
689
689
  REQUIRE(dataToSendTwo->data.GetStreamId() == 1);
690
690
  REQUIRE(
691
691
  dataToSendTwo->data.GetPayloadLength() == TwoFragmentPacketLength - OneFragmentPacketLength);
692
692
 
693
- const auto dataToSendThree = q.Produce(NowMs, OneFragmentPacketLength);
693
+ const auto dataToSendThree = q.Produce(NowUs, OneFragmentPacketLength);
694
694
 
695
695
  REQUIRE(dataToSendThree.has_value());
696
696
  REQUIRE(dataToSendThree->data.GetStreamId() == 2);
697
697
  REQUIRE(dataToSendThree->data.GetPayloadLength() == OneFragmentPacketLength);
698
698
 
699
- const auto dataToSendFour = q.Produce(NowMs, OneFragmentPacketLength);
699
+ const auto dataToSendFour = q.Produce(NowUs, OneFragmentPacketLength);
700
700
 
701
701
  REQUIRE(dataToSendFour.has_value());
702
702
  REQUIRE(dataToSendFour->data.GetStreamId() == 2);
@@ -714,58 +714,58 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
714
714
  DefaultStreamBufferedAmountLowThreshold,
715
715
  TotalBufferedAmountLowThreshold);
716
716
 
717
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(1)));
718
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(2)));
719
- q.AddMessage(NowMs, RTC::SCTP::Message(2, Ppid, std::vector<uint8_t>(3)));
720
- q.AddMessage(NowMs, RTC::SCTP::Message(2, Ppid, std::vector<uint8_t>(4)));
721
- q.AddMessage(NowMs, RTC::SCTP::Message(3, Ppid, std::vector<uint8_t>(5)));
722
- q.AddMessage(NowMs, RTC::SCTP::Message(3, Ppid, std::vector<uint8_t>(6)));
723
- q.AddMessage(NowMs, RTC::SCTP::Message(4, Ppid, std::vector<uint8_t>(7)));
724
- q.AddMessage(NowMs, RTC::SCTP::Message(4, Ppid, std::vector<uint8_t>(8)));
717
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(1)));
718
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(2)));
719
+ q.AddMessage(NowUs, RTC::SCTP::Message(2, Ppid, std::vector<uint8_t>(3)));
720
+ q.AddMessage(NowUs, RTC::SCTP::Message(2, Ppid, std::vector<uint8_t>(4)));
721
+ q.AddMessage(NowUs, RTC::SCTP::Message(3, Ppid, std::vector<uint8_t>(5)));
722
+ q.AddMessage(NowUs, RTC::SCTP::Message(3, Ppid, std::vector<uint8_t>(6)));
723
+ q.AddMessage(NowUs, RTC::SCTP::Message(4, Ppid, std::vector<uint8_t>(7)));
724
+ q.AddMessage(NowUs, RTC::SCTP::Message(4, Ppid, std::vector<uint8_t>(8)));
725
725
 
726
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
726
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
727
727
 
728
728
  REQUIRE(dataToSendOne.has_value());
729
729
  REQUIRE(dataToSendOne->data.GetStreamId() == 1);
730
730
  REQUIRE(dataToSendOne->data.GetPayloadLength() == 1);
731
731
 
732
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
732
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
733
733
 
734
734
  REQUIRE(dataToSendTwo.has_value());
735
735
  REQUIRE(dataToSendTwo->data.GetStreamId() == 2);
736
736
  REQUIRE(dataToSendTwo->data.GetPayloadLength() == 3);
737
737
 
738
- const auto dataToSendThree = q.Produce(NowMs, OneFragmentPacketLength);
738
+ const auto dataToSendThree = q.Produce(NowUs, OneFragmentPacketLength);
739
739
 
740
740
  REQUIRE(dataToSendThree.has_value());
741
741
  REQUIRE(dataToSendThree->data.GetStreamId() == 3);
742
742
  REQUIRE(dataToSendThree->data.GetPayloadLength() == 5);
743
743
 
744
- const auto dataToSendFour = q.Produce(NowMs, OneFragmentPacketLength);
744
+ const auto dataToSendFour = q.Produce(NowUs, OneFragmentPacketLength);
745
745
 
746
746
  REQUIRE(dataToSendFour.has_value());
747
747
  REQUIRE(dataToSendFour->data.GetStreamId() == 4);
748
748
  REQUIRE(dataToSendFour->data.GetPayloadLength() == 7);
749
749
 
750
- const auto dataToSendFive = q.Produce(NowMs, OneFragmentPacketLength);
750
+ const auto dataToSendFive = q.Produce(NowUs, OneFragmentPacketLength);
751
751
 
752
752
  REQUIRE(dataToSendFive.has_value());
753
753
  REQUIRE(dataToSendFive->data.GetStreamId() == 1);
754
754
  REQUIRE(dataToSendFive->data.GetPayloadLength() == 2);
755
755
 
756
- const auto dataToSendSix = q.Produce(NowMs, OneFragmentPacketLength);
756
+ const auto dataToSendSix = q.Produce(NowUs, OneFragmentPacketLength);
757
757
 
758
758
  REQUIRE(dataToSendSix.has_value());
759
759
  REQUIRE(dataToSendSix->data.GetStreamId() == 2);
760
760
  REQUIRE(dataToSendSix->data.GetPayloadLength() == 4);
761
761
 
762
- const auto dataToSendSeven = q.Produce(NowMs, OneFragmentPacketLength);
762
+ const auto dataToSendSeven = q.Produce(NowUs, OneFragmentPacketLength);
763
763
 
764
764
  REQUIRE(dataToSendSeven.has_value());
765
765
  REQUIRE(dataToSendSeven->data.GetStreamId() == 3);
766
766
  REQUIRE(dataToSendSeven->data.GetPayloadLength() == 6);
767
767
 
768
- const auto dataToSendEight = q.Produce(NowMs, OneFragmentPacketLength);
768
+ const auto dataToSendEight = q.Produce(NowUs, OneFragmentPacketLength);
769
769
 
770
770
  REQUIRE(dataToSendEight.has_value());
771
771
  REQUIRE(dataToSendEight->data.GetStreamId() == 4);
@@ -797,11 +797,11 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
797
797
  DefaultStreamBufferedAmountLowThreshold,
798
798
  TotalBufferedAmountLowThreshold);
799
799
 
800
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(1)));
800
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(1)));
801
801
 
802
802
  REQUIRE(q.GetStreamBufferedAmount(1) == 1);
803
803
 
804
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
804
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
805
805
 
806
806
  REQUIRE(associationListener.HasOnStreamBufferedAmountLowBeenCalledWithStreamId(1));
807
807
  REQUIRE(associationListener.CountOnStreamBufferedAmountLowCallsWithStreamId(1) == 1);
@@ -822,20 +822,20 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
822
822
  DefaultStreamBufferedAmountLowThreshold,
823
823
  TotalBufferedAmountLowThreshold);
824
824
 
825
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(1)));
825
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(1)));
826
826
 
827
827
  REQUIRE(q.GetStreamBufferedAmount(1) == 1);
828
828
 
829
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
829
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
830
830
 
831
831
  REQUIRE(associationListener.HasOnStreamBufferedAmountLowBeenCalledWithStreamId(1));
832
832
  REQUIRE(associationListener.CountOnStreamBufferedAmountLowCallsWithStreamId(1) == 1);
833
833
 
834
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(1)));
834
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(1)));
835
835
 
836
836
  REQUIRE(q.GetStreamBufferedAmount(1) == 1);
837
837
 
838
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
838
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
839
839
 
840
840
  REQUIRE(associationListener.HasOnStreamBufferedAmountLowBeenCalledWithStreamId(1));
841
841
  REQUIRE(associationListener.CountOnStreamBufferedAmountLowCallsWithStreamId(1) == 2);
@@ -858,12 +858,12 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
858
858
 
859
859
  q.SetStreamBufferedAmountLowThreshold(1, 1000);
860
860
 
861
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(10)));
861
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(10)));
862
862
 
863
863
  REQUIRE(q.GetStreamBufferedAmount(1) == 10);
864
864
 
865
865
  // Shouldn't trigger the event.
866
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
866
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
867
867
 
868
868
  REQUIRE(!associationListener.HasOnStreamBufferedAmountLowBeenCalledWithStreamId(1));
869
869
 
@@ -872,11 +872,11 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
872
872
  REQUIRE(dataToSendOne->data.GetPayloadLength() == 10);
873
873
  REQUIRE(q.GetStreamBufferedAmount(1) == 0);
874
874
 
875
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(20)));
875
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(20)));
876
876
 
877
877
  REQUIRE(q.GetStreamBufferedAmount(1) == 20);
878
878
 
879
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
879
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
880
880
 
881
881
  REQUIRE(!associationListener.HasOnStreamBufferedAmountLowBeenCalledWithStreamId(1));
882
882
 
@@ -900,23 +900,23 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
900
900
 
901
901
  const std::vector<uint8_t> payload(1000);
902
902
 
903
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, payload));
903
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, payload));
904
904
 
905
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
905
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
906
906
 
907
907
  REQUIRE(dataToSendOne.has_value());
908
908
  REQUIRE(dataToSendOne->data.GetStreamId() == 1);
909
909
  REQUIRE(dataToSendOne->data.GetPayloadLength() == OneFragmentPacketLength);
910
910
  REQUIRE(q.GetStreamBufferedAmount(1) == 900);
911
911
 
912
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
912
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
913
913
 
914
914
  REQUIRE(dataToSendTwo.has_value());
915
915
  REQUIRE(dataToSendTwo->data.GetPayloadLength() == OneFragmentPacketLength);
916
916
  REQUIRE(q.GetStreamBufferedAmount(1) == 800);
917
917
 
918
918
  // It goes beyond 700 bytes, it should trigger the event.
919
- const auto dataToSendThree = q.Produce(NowMs, OneFragmentPacketLength);
919
+ const auto dataToSendThree = q.Produce(NowUs, OneFragmentPacketLength);
920
920
 
921
921
  REQUIRE(associationListener.HasOnStreamBufferedAmountLowBeenCalledWithStreamId(1));
922
922
  REQUIRE(associationListener.CountOnStreamBufferedAmountLowCallsWithStreamId(1) == 1);
@@ -926,7 +926,7 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
926
926
  REQUIRE(q.GetStreamBufferedAmount(1) == 700);
927
927
 
928
928
  // Buffer decreases so it shouldn't emit the event.
929
- const auto dataToSendFour = q.Produce(NowMs, OneFragmentPacketLength);
929
+ const auto dataToSendFour = q.Produce(NowUs, OneFragmentPacketLength);
930
930
 
931
931
  REQUIRE(associationListener.CountOnStreamBufferedAmountLowCallsWithStreamId(1) == 1);
932
932
 
@@ -947,9 +947,9 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
947
947
 
948
948
  q.SetStreamBufferedAmountLowThreshold(1, 700);
949
949
 
950
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(1000)));
950
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(1000)));
951
951
 
952
- const auto dataToSendOne = q.Produce(NowMs, 400);
952
+ const auto dataToSendOne = q.Produce(NowUs, 400);
953
953
 
954
954
  REQUIRE(associationListener.HasOnStreamBufferedAmountLowBeenCalledWithStreamId(1));
955
955
  REQUIRE(associationListener.CountOnStreamBufferedAmountLowCallsWithStreamId(1) == 1);
@@ -959,11 +959,11 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
959
959
  REQUIRE(dataToSendOne->data.GetPayloadLength() == 400);
960
960
  REQUIRE(q.GetStreamBufferedAmount(1) == 600);
961
961
 
962
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(200)));
962
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(200)));
963
963
 
964
964
  REQUIRE(q.GetStreamBufferedAmount(1) == 800);
965
965
 
966
- const auto dataToSendTwo = q.Produce(NowMs, 200);
966
+ const auto dataToSendTwo = q.Produce(NowUs, 200);
967
967
 
968
968
  REQUIRE(associationListener.CountOnStreamBufferedAmountLowCallsWithStreamId(1) == 2);
969
969
 
@@ -983,7 +983,7 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
983
983
  DefaultStreamBufferedAmountLowThreshold,
984
984
  TotalBufferedAmountLowThreshold);
985
985
 
986
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, std::vector<uint8_t>(100)));
986
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, std::vector<uint8_t>(100)));
987
987
 
988
988
  // Modifying the threshold, still under buffered_amount, should not trigger
989
989
  // event.
@@ -1026,13 +1026,13 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
1026
1026
 
1027
1027
  const std::vector<uint8_t> payload(TotalBufferedAmountLowThreshold - 1);
1028
1028
 
1029
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
1029
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
1030
1030
 
1031
1031
  REQUIRE(q.GetTotalBufferedAmount() == payload.size());
1032
1032
 
1033
1033
  // Will not trigger if going above but never below.
1034
1034
  q.AddMessage(
1035
- NowMs, RTC::SCTP::Message(StreamId, Ppid, std::vector<uint8_t>(OneFragmentPacketLength)));
1035
+ NowUs, RTC::SCTP::Message(StreamId, Ppid, std::vector<uint8_t>(OneFragmentPacketLength)));
1036
1036
 
1037
1037
  REQUIRE(associationListener.CountOnTotalBufferedAmountLowCalls() == 0);
1038
1038
  REQUIRE(q.GetTotalBufferedAmount() > payload.size());
@@ -1050,15 +1050,15 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
1050
1050
 
1051
1051
  const std::vector<uint8_t> payload(TotalBufferedAmountLowThreshold);
1052
1052
 
1053
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, payload));
1053
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, payload));
1054
1054
 
1055
1055
  REQUIRE(q.GetTotalBufferedAmount() == payload.size());
1056
1056
 
1057
1057
  // Reaches it.
1058
- q.AddMessage(NowMs, RTC::SCTP::Message(StreamId, Ppid, std::vector<uint8_t>(1)));
1058
+ q.AddMessage(NowUs, RTC::SCTP::Message(StreamId, Ppid, std::vector<uint8_t>(1)));
1059
1059
 
1060
1060
  // Drain it a bit, will trigger.
1061
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketLength);
1061
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketLength);
1062
1062
 
1063
1063
  REQUIRE(associationListener.CountOnTotalBufferedAmountLowCalls() == 1);
1064
1064
 
@@ -1078,18 +1078,18 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
1078
1078
 
1079
1079
  constexpr size_t OneFragmentPacketSize = OneFragmentPacketLength;
1080
1080
 
1081
- q.AddMessage(NowMs, RTC::SCTP::Message(5, Ppid, std::vector<uint8_t>(1)));
1081
+ q.AddMessage(NowUs, RTC::SCTP::Message(5, Ppid, std::vector<uint8_t>(1)));
1082
1082
 
1083
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketSize);
1083
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketSize);
1084
1084
 
1085
1085
  REQUIRE(dataToSendOne.has_value());
1086
1086
  REQUIRE(dataToSendOne->data.GetStreamId() == 5);
1087
1087
  REQUIRE(dataToSendOne->data.GetPayloadLength() == 1);
1088
1088
 
1089
1089
  // Next, it should pick a different stream.
1090
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(OneFragmentPacketSize * 2)));
1090
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(OneFragmentPacketSize * 2)));
1091
1091
 
1092
- const auto dataToSendTwo = q.Produce(NowMs, OneFragmentPacketSize);
1092
+ const auto dataToSendTwo = q.Produce(NowUs, OneFragmentPacketSize);
1093
1093
 
1094
1094
  REQUIRE(dataToSendTwo.has_value());
1095
1095
  REQUIRE(dataToSendTwo->data.GetStreamId() == 1);
@@ -1097,22 +1097,22 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
1097
1097
 
1098
1098
  // It should still stay on the Stream1 now, even if might be tempted to switch
1099
1099
  // to this stream, as it's the stream following 5.
1100
- q.AddMessage(NowMs, RTC::SCTP::Message(6, Ppid, std::vector<uint8_t>(1)));
1100
+ q.AddMessage(NowUs, RTC::SCTP::Message(6, Ppid, std::vector<uint8_t>(1)));
1101
1101
 
1102
- const auto dataToSendThree = q.Produce(NowMs, OneFragmentPacketSize);
1102
+ const auto dataToSendThree = q.Produce(NowUs, OneFragmentPacketSize);
1103
1103
 
1104
1104
  REQUIRE(dataToSendThree.has_value());
1105
1105
  REQUIRE(dataToSendThree->data.GetStreamId() == 1);
1106
1106
  REQUIRE(dataToSendThree->data.GetPayloadLength() == OneFragmentPacketSize);
1107
1107
 
1108
1108
  // After stream 1 message is complete, it should move to stream 6.
1109
- const auto dataToSendFour = q.Produce(NowMs, OneFragmentPacketSize);
1109
+ const auto dataToSendFour = q.Produce(NowUs, OneFragmentPacketSize);
1110
1110
 
1111
1111
  REQUIRE(dataToSendFour.has_value());
1112
1112
  REQUIRE(dataToSendFour->data.GetStreamId() == 6);
1113
1113
  REQUIRE(dataToSendFour->data.GetPayloadLength() == 1);
1114
1114
 
1115
- REQUIRE(q.Produce(NowMs, OneFragmentPacketSize).has_value() == false);
1115
+ REQUIRE(q.Produce(NowUs, OneFragmentPacketSize).has_value() == false);
1116
1116
  }
1117
1117
 
1118
1118
  SECTION("streams have initial priority")
@@ -1127,7 +1127,7 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
1127
1127
 
1128
1128
  REQUIRE(q.GetStreamPriority(1) == DefaultPriority);
1129
1129
 
1130
- q.AddMessage(NowMs, RTC::SCTP::Message(2, Ppid, std::vector<uint8_t>(40)));
1130
+ q.AddMessage(NowUs, RTC::SCTP::Message(2, Ppid, std::vector<uint8_t>(40)));
1131
1131
 
1132
1132
  REQUIRE(q.GetStreamPriority(2) == DefaultPriority);
1133
1133
  }
@@ -1146,7 +1146,7 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
1146
1146
 
1147
1147
  REQUIRE(q.GetStreamPriority(1) == 42);
1148
1148
 
1149
- q.AddMessage(NowMs, RTC::SCTP::Message(2, Ppid, std::vector<uint8_t>(40)));
1149
+ q.AddMessage(NowUs, RTC::SCTP::Message(2, Ppid, std::vector<uint8_t>(40)));
1150
1150
  q.SetStreamPriority(2, 42);
1151
1151
 
1152
1152
  REQUIRE(q.GetStreamPriority(2) == 42);
@@ -1168,21 +1168,21 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
1168
1168
  q.SetStreamPriority(2, 20);
1169
1169
  q.SetStreamPriority(3, 30);
1170
1170
 
1171
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(40)));
1172
- q.AddMessage(NowMs, RTC::SCTP::Message(2, Ppid, std::vector<uint8_t>(20)));
1173
- q.AddMessage(NowMs, RTC::SCTP::Message(3, Ppid, std::vector<uint8_t>(10)));
1171
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, std::vector<uint8_t>(40)));
1172
+ q.AddMessage(NowUs, RTC::SCTP::Message(2, Ppid, std::vector<uint8_t>(20)));
1173
+ q.AddMessage(NowUs, RTC::SCTP::Message(3, Ppid, std::vector<uint8_t>(10)));
1174
1174
 
1175
1175
  const std::vector<uint16_t> expectedStreams = { 3, 2, 2, 1, 1, 1, 1 };
1176
1176
 
1177
1177
  for (const uint16_t streamId : expectedStreams)
1178
1178
  {
1179
- const auto dataToSend = q.Produce(NowMs, 10);
1179
+ const auto dataToSend = q.Produce(NowUs, 10);
1180
1180
 
1181
1181
  REQUIRE(dataToSend.has_value());
1182
1182
  REQUIRE(dataToSend->data.GetStreamId() == streamId);
1183
1183
  }
1184
1184
 
1185
- REQUIRE(q.Produce(NowMs, 1).has_value() == false);
1185
+ REQUIRE(q.Produce(NowUs, 1).has_value() == false);
1186
1186
  }
1187
1187
 
1188
1188
  SECTION("will send lifecycle expire when expired in send queue")
@@ -1202,9 +1202,9 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
1202
1202
  options.lifetimeMs = 1000;
1203
1203
  options.lifecycleId = 1;
1204
1204
 
1205
- q.AddMessage(NowMs, RTC::SCTP::Message(2, Ppid, payload), options);
1205
+ q.AddMessage(NowUs, RTC::SCTP::Message(2, Ppid, payload), options);
1206
1206
 
1207
- REQUIRE(q.Produce(NowMs + 1001, OneFragmentPacketLength).has_value() == false);
1207
+ REQUIRE(q.Produce(NowUs + (1001 * 1000), OneFragmentPacketLength).has_value() == false);
1208
1208
 
1209
1209
  REQUIRE(associationListener.HasOnAssociationLifecycleMessageExpiredSentBeenCalledWithLifecycleId(
1210
1210
  1, false));
@@ -1223,10 +1223,10 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
1223
1223
 
1224
1224
  const std::vector<uint8_t> payload(120);
1225
1225
 
1226
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, payload), { .lifecycleId = 1 });
1227
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, payload), { .lifecycleId = 2 });
1226
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, payload), { .lifecycleId = 1 });
1227
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, payload), { .lifecycleId = 2 });
1228
1228
 
1229
- const auto dataToSendOne = q.Produce(NowMs, 50);
1229
+ const auto dataToSendOne = q.Produce(NowUs, 50);
1230
1230
 
1231
1231
  REQUIRE(dataToSendOne.has_value());
1232
1232
  REQUIRE(dataToSendOne->data.GetStreamId() == 1);
@@ -1254,9 +1254,9 @@ SCENARIO("SCTP RoundRobinSendQueue", "[sctp][roundrobinsendqueue]")
1254
1254
 
1255
1255
  const std::vector<uint8_t> payload(OneFragmentPacketLength + 20);
1256
1256
 
1257
- q.AddMessage(NowMs, RTC::SCTP::Message(1, Ppid, payload), { .lifecycleId = 1 });
1257
+ q.AddMessage(NowUs, RTC::SCTP::Message(1, Ppid, payload), { .lifecycleId = 1 });
1258
1258
 
1259
- const auto dataToSendOne = q.Produce(NowMs, OneFragmentPacketLength);
1259
+ const auto dataToSendOne = q.Produce(NowUs, OneFragmentPacketLength);
1260
1260
 
1261
1261
  REQUIRE(dataToSendOne.has_value());
1262
1262
  REQUIRE(!dataToSendOne->data.IsEnd());