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
@@ -4,17 +4,19 @@
4
4
  #include "RTC/KeyFrameRequestManager.hpp"
5
5
  #include "Logger.hpp"
6
6
 
7
- static constexpr uint32_t KeyFrameRetransmissionWaitTime{ 1000u };
7
+ static constexpr int64_t KeyFrameRetransmissionWaitMs{ 1000 };
8
8
 
9
9
  /* PendingKeyFrameInfo methods. */
10
10
 
11
11
  RTC::PendingKeyFrameInfo::PendingKeyFrameInfo(
12
12
  PendingKeyFrameInfo::Listener* listener, SharedInterface* shared, uint32_t ssrc)
13
- : listener(listener), ssrc(ssrc), timer(shared->CreateTimer(this))
13
+ : listener(listener),
14
+ ssrc(ssrc),
15
+ timer(shared->CreateTimer(this, "key-frame-request-manager-pending-key-frame-info"))
14
16
  {
15
17
  MS_TRACE();
16
18
 
17
- this->timer->Start(KeyFrameRetransmissionWaitTime);
19
+ this->timer->Start(KeyFrameRetransmissionWaitMs);
18
20
  }
19
21
 
20
22
  RTC::PendingKeyFrameInfo::~PendingKeyFrameInfo()
@@ -38,12 +40,14 @@ void RTC::PendingKeyFrameInfo::OnTimer(TimerHandleInterface* timer)
38
40
  /* KeyFrameRequestDelayer methods. */
39
41
 
40
42
  RTC::KeyFrameRequestDelayer::KeyFrameRequestDelayer(
41
- KeyFrameRequestDelayer::Listener* listener, SharedInterface* shared, uint32_t ssrc, uint32_t delay)
42
- : listener(listener), ssrc(ssrc), timer(shared->CreateTimer(this))
43
+ KeyFrameRequestDelayer::Listener* listener, SharedInterface* shared, uint32_t ssrc, int64_t delayMs)
44
+ : listener(listener),
45
+ ssrc(ssrc),
46
+ timer(shared->CreateTimer(this, "key-frame-request-manager-key-frame-request-delayer"))
43
47
  {
44
48
  MS_TRACE();
45
49
 
46
- this->timer->Start(delay);
50
+ this->timer->Start(delayMs);
47
51
  }
48
52
 
49
53
  RTC::KeyFrameRequestDelayer::~KeyFrameRequestDelayer()
@@ -67,8 +71,8 @@ void RTC::KeyFrameRequestDelayer::OnTimer(TimerHandleInterface* timer)
67
71
  /* KeyFrameRequestManager methods. */
68
72
 
69
73
  RTC::KeyFrameRequestManager::KeyFrameRequestManager(
70
- KeyFrameRequestManager::Listener* listener, SharedInterface* shared, uint32_t keyFrameRequestDelay)
71
- : listener(listener), shared(shared), keyFrameRequestDelay(keyFrameRequestDelay)
74
+ KeyFrameRequestManager::Listener* listener, SharedInterface* shared, int64_t keyFrameRequestDelayMs)
75
+ : listener(listener), shared(shared), keyFrameRequestDelayMs(keyFrameRequestDelayMs)
72
76
  {
73
77
  MS_TRACE();
74
78
  }
@@ -98,7 +102,7 @@ void RTC::KeyFrameRequestManager::KeyFrameNeeded(uint32_t ssrc)
98
102
  {
99
103
  MS_TRACE();
100
104
 
101
- if (this->keyFrameRequestDelay > 0u)
105
+ if (this->keyFrameRequestDelayMs > 0)
102
106
  {
103
107
  auto it = this->mapSsrcKeyFrameRequestDelayer.find(ssrc);
104
108
 
@@ -119,7 +123,7 @@ void RTC::KeyFrameRequestManager::KeyFrameNeeded(uint32_t ssrc)
119
123
  MS_DEBUG_DEV("creating a delayer for the given ssrc");
120
124
 
121
125
  this->mapSsrcKeyFrameRequestDelayer[ssrc] =
122
- new KeyFrameRequestDelayer(this, this->shared, ssrc, this->keyFrameRequestDelay);
126
+ new KeyFrameRequestDelayer(this, this->shared, ssrc, this->keyFrameRequestDelayMs);
123
127
  }
124
128
  }
125
129
 
@@ -145,7 +149,7 @@ void RTC::KeyFrameRequestManager::ForceKeyFrameNeeded(uint32_t ssrc)
145
149
  {
146
150
  MS_TRACE();
147
151
 
148
- if (this->keyFrameRequestDelay > 0u)
152
+ if (this->keyFrameRequestDelayMs > 0)
149
153
  {
150
154
  // Create/replace a delayer for this ssrc.
151
155
  auto it = this->mapSsrcKeyFrameRequestDelayer.find(ssrc);
@@ -159,7 +163,7 @@ void RTC::KeyFrameRequestManager::ForceKeyFrameNeeded(uint32_t ssrc)
159
163
  }
160
164
 
161
165
  this->mapSsrcKeyFrameRequestDelayer[ssrc] =
162
- new KeyFrameRequestDelayer(this, this->shared, ssrc, this->keyFrameRequestDelay);
166
+ new KeyFrameRequestDelayer(this, this->shared, ssrc, this->keyFrameRequestDelayMs);
163
167
  }
164
168
 
165
169
  auto it = this->mapSsrcPendingKeyFrameInfo.find(ssrc);
@@ -8,20 +8,20 @@ namespace RTC
8
8
  {
9
9
  /* Static. */
10
10
 
11
- static constexpr size_t MaxPacketAge{ 10000u };
12
- static constexpr size_t MaxNackPackets{ 1000u };
13
- static constexpr uint32_t DefaultRtt{ 100u };
14
- static constexpr uint8_t MaxNackRetries{ 10u };
15
- static constexpr uint64_t TimerInterval{ 40u };
11
+ static constexpr size_t MaxPacketAge{ 10000 };
12
+ static constexpr size_t MaxNackPackets{ 1000 };
13
+ static constexpr int64_t DefaultRttMs{ 100 };
14
+ static constexpr uint8_t MaxNackRetries{ 10 };
15
+ static constexpr int64_t TimerIntervalMs{ 40 };
16
16
 
17
17
  /* Instance methods. */
18
18
 
19
- NackGenerator::NackGenerator(Listener* listener, SharedInterface* shared, uint32_t sendNackDelayMs)
19
+ NackGenerator::NackGenerator(Listener* listener, SharedInterface* shared, int64_t sendNackDelayMs)
20
20
  : listener(listener),
21
21
  shared(shared),
22
22
  sendNackDelayMs(sendNackDelayMs),
23
- timer(shared->CreateTimer(this)),
24
- rtt(DefaultRtt)
23
+ timer(shared->CreateTimer(this, "nack-generator")),
24
+ rttMs(DefaultRttMs)
25
25
  {
26
26
  MS_TRACE();
27
27
  }
@@ -247,7 +247,7 @@ namespace RTC
247
247
  {
248
248
  MS_TRACE();
249
249
 
250
- const uint64_t nowMs = this->shared->GetTimeMs();
250
+ const int64_t nowMs = this->shared->GetTimeMs();
251
251
  std::vector<uint16_t> nackBatch;
252
252
 
253
253
  auto it = this->nackList.begin();
@@ -266,7 +266,7 @@ namespace RTC
266
266
  if (
267
267
  filter == NackFilter::SEQ && nackInfo.sentAtMs == 0 &&
268
268
  (nackInfo.sendAtSeq == this->lastSeq ||
269
- SeqManager<uint16_t>::IsSeqHigherThan(this->lastSeq, nackInfo.sendAtSeq)))
269
+ SeqManager<uint16_t>::IsSeqHigherThan(this->lastSeq, nackInfo.sendAtSeq)))
270
270
  {
271
271
  nackBatch.emplace_back(seq);
272
272
  nackInfo.retries++;
@@ -293,7 +293,7 @@ namespace RTC
293
293
  if (
294
294
  filter == NackFilter::TIME &&
295
295
  (nackInfo.sentAtMs == 0 ||
296
- nowMs - nackInfo.sentAtMs >= (this->rtt > 0u ? this->rtt : DefaultRtt)))
296
+ nowMs - nackInfo.sentAtMs >= (this->rttMs > 0 ? this->rttMs : DefaultRttMs)))
297
297
  {
298
298
  nackBatch.emplace_back(seq);
299
299
  nackInfo.retries++;
@@ -363,7 +363,7 @@ namespace RTC
363
363
  }
364
364
  else
365
365
  {
366
- this->timer->Start(TimerInterval);
366
+ this->timer->Start(TimerIntervalMs);
367
367
  }
368
368
  }
369
369
 
@@ -73,28 +73,28 @@ namespace RTC
73
73
  // Do nothing.
74
74
  }
75
75
 
76
- uint32_t PipeProducerStreamManager::IncreaseLayer(
77
- uint32_t /*bitrate*/, bool /*considerLoss*/, float /*lossPercentage*/, uint64_t /*nowMs*/)
76
+ int64_t PipeProducerStreamManager::IncreaseLayer(
77
+ int64_t /*bitrate*/, bool /*considerLoss*/, float /*lossPercentage*/, int64_t /*nowMs*/)
78
78
  {
79
79
  MS_TRACE();
80
80
 
81
81
  // Pipe does not play the BWE game.
82
- return 0u;
82
+ return 0;
83
83
  }
84
84
 
85
- void PipeProducerStreamManager::ApplyLayers(uint64_t /*rtpStreamActiveMs*/)
85
+ void PipeProducerStreamManager::ApplyLayers(int64_t /*rtpStreamActiveMs*/)
86
86
  {
87
87
  MS_TRACE();
88
88
 
89
89
  // Pipe does not play the BWE game.
90
90
  }
91
91
 
92
- uint32_t PipeProducerStreamManager::GetDesiredBitrate(uint64_t /*nowMs*/) const
92
+ int64_t PipeProducerStreamManager::GetDesiredBitrate(int64_t /*nowMs*/) const
93
93
  {
94
94
  MS_TRACE();
95
95
 
96
96
  // Pipe does not play the BWE game.
97
- return 0u;
97
+ return 0;
98
98
  }
99
99
 
100
100
  ProducerStreamManager::RtpPacketProcessResult PipeProducerStreamManager::ProcessRtpPacket(
@@ -80,6 +80,7 @@ namespace RTC
80
80
 
81
81
  this->udpSocket = new RTC::UdpSocket(
82
82
  this,
83
+ this->shared,
83
84
  this->listenInfo.ip,
84
85
  this->listenInfo.portRange.min,
85
86
  this->listenInfo.portRange.max,
@@ -89,7 +90,7 @@ namespace RTC
89
90
  else if (this->listenInfo.port != 0)
90
91
  {
91
92
  this->udpSocket = new RTC::UdpSocket(
92
- this, this->listenInfo.ip, this->listenInfo.port, this->listenInfo.flags);
93
+ this, this->shared, this->listenInfo.ip, this->listenInfo.port, this->listenInfo.flags);
93
94
  }
94
95
  // NOTE: This is temporal to allow deprecated usage of worker port range.
95
96
  // In the future this should throw since |port| or |portRange| will be
@@ -100,6 +101,7 @@ namespace RTC
100
101
 
101
102
  this->udpSocket = new RTC::UdpSocket(
102
103
  this,
104
+ this->shared,
103
105
  this->listenInfo.ip,
104
106
  Settings::configuration.rtcMinPort,
105
107
  Settings::configuration.rtcMaxPort,
@@ -632,7 +634,7 @@ namespace RTC
632
634
  }
633
635
 
634
636
  inline void PipeTransport::OnPacketReceived(
635
- RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen)
637
+ RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen, int64_t receivedAtUs)
636
638
  {
637
639
  MS_TRACE();
638
640
 
@@ -642,17 +644,17 @@ namespace RTC
642
644
  // Check if it's RTCP.
643
645
  if (RTC::RTCP::Packet::IsRtcp(data, len))
644
646
  {
645
- OnRtcpDataReceived(tuple, data, len);
647
+ OnRtcpDataReceived(tuple, data, len, receivedAtUs);
646
648
  }
647
649
  // Check if it's RTP.
648
650
  else if (RTC::RTP::Packet::IsRtp(data, len))
649
651
  {
650
- OnRtpDataReceived(tuple, data, len, bufferLen);
652
+ OnRtpDataReceived(tuple, data, len, bufferLen, receivedAtUs);
651
653
  }
652
654
  // Check if it's SCTP.
653
655
  else if (RTC::SCTP::Packet::IsSctp(data, len))
654
656
  {
655
- OnSctpDataReceived(tuple, data, len);
657
+ OnSctpDataReceived(tuple, data, len, receivedAtUs);
656
658
  }
657
659
  else
658
660
  {
@@ -661,7 +663,7 @@ namespace RTC
661
663
  }
662
664
 
663
665
  inline void PipeTransport::OnRtpDataReceived(
664
- RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen)
666
+ RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen, int64_t receivedAtUs)
665
667
  {
666
668
  MS_TRACE();
667
669
 
@@ -717,11 +719,11 @@ namespace RTC
717
719
  }
718
720
 
719
721
  // Pass the packet to the parent transport.
720
- RTC::Transport::ReceiveRtpPacket(packet);
722
+ RTC::Transport::ReceiveRtpPacket(packet, receivedAtUs);
721
723
  }
722
724
 
723
725
  inline void PipeTransport::OnRtcpDataReceived(
724
- RTC::TransportTuple* tuple, const uint8_t* data, size_t len)
726
+ RTC::TransportTuple* tuple, const uint8_t* data, size_t len, int64_t receivedAtUs)
725
727
  {
726
728
  MS_TRACE();
727
729
 
@@ -754,11 +756,11 @@ namespace RTC
754
756
  }
755
757
 
756
758
  // Pass the packet to the parent transport.
757
- RTC::Transport::ReceiveRtcpPacket(packet);
759
+ RTC::Transport::ReceiveRtcpPacket(packet, receivedAtUs);
758
760
  }
759
761
 
760
762
  inline void PipeTransport::OnSctpDataReceived(
761
- RTC::TransportTuple* tuple, const uint8_t* data, size_t len)
763
+ RTC::TransportTuple* tuple, const uint8_t* data, size_t len, int64_t receivedAtUs)
762
764
  {
763
765
  MS_TRACE();
764
766
 
@@ -776,7 +778,7 @@ namespace RTC
776
778
  }
777
779
 
778
780
  // Pass it to the parent transport.
779
- RTC::Transport::ReceiveSctpData(data, len);
781
+ RTC::Transport::ReceiveSctpData(data, len, receivedAtUs);
780
782
  }
781
783
 
782
784
  inline void PipeTransport::OnUdpSocketPacketReceived(
@@ -784,12 +786,13 @@ namespace RTC
784
786
  const uint8_t* data,
785
787
  size_t len,
786
788
  size_t bufferLen,
787
- const struct sockaddr* remoteAddr)
789
+ const struct sockaddr* remoteAddr,
790
+ int64_t receivedAtUs)
788
791
  {
789
792
  MS_TRACE();
790
793
 
791
794
  RTC::TransportTuple tuple(socket, remoteAddr);
792
795
 
793
- OnPacketReceived(&tuple, data, len, bufferLen);
796
+ OnPacketReceived(&tuple, data, len, bufferLen, receivedAtUs);
794
797
  }
795
798
  } // namespace RTC
@@ -22,11 +22,11 @@ namespace RTC
22
22
  static constexpr size_t SrtpAesGcm256MasterKeyLength{ 32 };
23
23
  static constexpr size_t SrtpAesGcm256MasterSaltLength{ 12 };
24
24
  static constexpr size_t SrtpAesGcm256MasterLength{ SrtpAesGcm256MasterKeyLength +
25
- SrtpAesGcm256MasterSaltLength };
25
+ SrtpAesGcm256MasterSaltLength };
26
26
  static constexpr size_t SrtpAesGcm128MasterKeyLength{ 16 };
27
27
  static constexpr size_t SrtpAesGcm128MasterSaltLength{ 12 };
28
28
  static constexpr size_t SrtpAesGcm128MasterLength{ SrtpAesGcm128MasterKeyLength +
29
- SrtpAesGcm128MasterSaltLength };
29
+ SrtpAesGcm128MasterSaltLength };
30
30
 
31
31
  /* Class variables. */
32
32
 
@@ -159,6 +159,7 @@ namespace RTC
159
159
 
160
160
  this->udpSocket = new RTC::UdpSocket(
161
161
  this,
162
+ this->shared,
162
163
  this->listenInfo.ip,
163
164
  this->listenInfo.portRange.min,
164
165
  this->listenInfo.portRange.max,
@@ -168,7 +169,7 @@ namespace RTC
168
169
  else if (this->listenInfo.port != 0)
169
170
  {
170
171
  this->udpSocket = new RTC::UdpSocket(
171
- this, this->listenInfo.ip, this->listenInfo.port, this->listenInfo.flags);
172
+ this, this->shared, this->listenInfo.ip, this->listenInfo.port, this->listenInfo.flags);
172
173
  }
173
174
  // NOTE: This is temporal to allow deprecated usage of worker port range.
174
175
  // In the future this should throw since |port| or |portRange| will be
@@ -179,6 +180,7 @@ namespace RTC
179
180
 
180
181
  this->udpSocket = new RTC::UdpSocket(
181
182
  this,
183
+ this->shared,
182
184
  this->listenInfo.ip,
183
185
  Settings::configuration.rtcMinPort,
184
186
  Settings::configuration.rtcMaxPort,
@@ -206,6 +208,7 @@ namespace RTC
206
208
 
207
209
  this->rtcpUdpSocket = new RTC::UdpSocket(
208
210
  this,
211
+ this->shared,
209
212
  this->rtcpListenInfo.ip,
210
213
  this->rtcpListenInfo.portRange.min,
211
214
  this->rtcpListenInfo.portRange.max,
@@ -215,7 +218,11 @@ namespace RTC
215
218
  else if (this->rtcpListenInfo.port != 0)
216
219
  {
217
220
  this->rtcpUdpSocket = new RTC::UdpSocket(
218
- this, this->rtcpListenInfo.ip, this->rtcpListenInfo.port, this->rtcpListenInfo.flags);
221
+ this,
222
+ this->shared,
223
+ this->rtcpListenInfo.ip,
224
+ this->rtcpListenInfo.port,
225
+ this->rtcpListenInfo.flags);
219
226
  }
220
227
  // NOTE: This is temporal to allow deprecated usage of worker port range.
221
228
  // In the future this should throw since |port| or |portRange| will be
@@ -226,6 +233,7 @@ namespace RTC
226
233
 
227
234
  this->rtcpUdpSocket = new RTC::UdpSocket(
228
235
  this,
236
+ this->shared,
229
237
  this->rtcpListenInfo.ip,
230
238
  Settings::configuration.rtcMinPort,
231
239
  Settings::configuration.rtcMaxPort,
@@ -956,7 +964,7 @@ namespace RTC
956
964
  }
957
965
 
958
966
  inline void PlainTransport::OnPacketReceived(
959
- RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen)
967
+ RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen, int64_t receivedAtUs)
960
968
  {
961
969
  MS_TRACE();
962
970
 
@@ -966,17 +974,17 @@ namespace RTC
966
974
  // Check if it's RTCP.
967
975
  if (RTC::RTCP::Packet::IsRtcp(data, len))
968
976
  {
969
- OnRtcpDataReceived(tuple, data, len);
977
+ OnRtcpDataReceived(tuple, data, len, receivedAtUs);
970
978
  }
971
979
  // Check if it's RTP.
972
980
  else if (RTC::RTP::Packet::IsRtp(data, len))
973
981
  {
974
- OnRtpDataReceived(tuple, data, len, bufferLen);
982
+ OnRtpDataReceived(tuple, data, len, bufferLen, receivedAtUs);
975
983
  }
976
984
  // Check if it's SCTP.
977
985
  else if (RTC::SCTP::Packet::IsSctp(data, len))
978
986
  {
979
- OnSctpDataReceived(tuple, data, len);
987
+ OnSctpDataReceived(tuple, data, len, receivedAtUs);
980
988
  }
981
989
  else
982
990
  {
@@ -985,7 +993,7 @@ namespace RTC
985
993
  }
986
994
 
987
995
  inline void PlainTransport::OnRtpDataReceived(
988
- RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen)
996
+ RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen, int64_t receivedAtUs)
989
997
  {
990
998
  MS_TRACE();
991
999
 
@@ -1077,11 +1085,11 @@ namespace RTC
1077
1085
  }
1078
1086
 
1079
1087
  // Pass the packet to the parent transport.
1080
- RTC::Transport::ReceiveRtpPacket(packet);
1088
+ RTC::Transport::ReceiveRtpPacket(packet, receivedAtUs);
1081
1089
  }
1082
1090
 
1083
1091
  inline void PlainTransport::OnRtcpDataReceived(
1084
- RTC::TransportTuple* tuple, const uint8_t* data, size_t len)
1092
+ RTC::TransportTuple* tuple, const uint8_t* data, size_t len, int64_t receivedAtUs)
1085
1093
  {
1086
1094
  MS_TRACE();
1087
1095
 
@@ -1175,11 +1183,11 @@ namespace RTC
1175
1183
  }
1176
1184
 
1177
1185
  // Pass the packet to the parent transport.
1178
- RTC::Transport::ReceiveRtcpPacket(packet);
1186
+ RTC::Transport::ReceiveRtcpPacket(packet, receivedAtUs);
1179
1187
  }
1180
1188
 
1181
1189
  inline void PlainTransport::OnSctpDataReceived(
1182
- RTC::TransportTuple* tuple, const uint8_t* data, size_t len)
1190
+ RTC::TransportTuple* tuple, const uint8_t* data, size_t len, int64_t receivedAtUs)
1183
1191
  {
1184
1192
  MS_TRACE();
1185
1193
 
@@ -1223,7 +1231,7 @@ namespace RTC
1223
1231
  }
1224
1232
 
1225
1233
  // Pass it to the parent transport.
1226
- RTC::Transport::ReceiveSctpData(data, len);
1234
+ RTC::Transport::ReceiveSctpData(data, len, receivedAtUs);
1227
1235
  }
1228
1236
 
1229
1237
  inline void PlainTransport::EmitTuple() const
@@ -1262,12 +1270,13 @@ namespace RTC
1262
1270
  const uint8_t* data,
1263
1271
  size_t len,
1264
1272
  size_t bufferLen,
1265
- const struct sockaddr* remoteAddr)
1273
+ const struct sockaddr* remoteAddr,
1274
+ int64_t receivedAtUs)
1266
1275
  {
1267
1276
  MS_TRACE();
1268
1277
 
1269
1278
  RTC::TransportTuple tuple(socket, remoteAddr);
1270
1279
 
1271
- OnPacketReceived(&tuple, data, len, bufferLen);
1280
+ OnPacketReceived(&tuple, data, len, bufferLen, receivedAtUs);
1272
1281
  }
1273
1282
  } // namespace RTC