mediasoup 3.26.0 → 3.27.1

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 (322) hide show
  1. package/CHANGELOG.md +16 -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/FBS/meson.build +25 -0
  49. package/worker/fbs/meson.build +15 -18
  50. package/worker/fbs/rtpParameters.fbs +1 -2
  51. package/worker/fbs/rtpStream.fbs +3 -3
  52. package/worker/fbs/transport.fbs +23 -23
  53. package/worker/fuzzer/include/RTC/FuzzerDtlsTransport.hpp +4 -1
  54. package/worker/fuzzer/src/FuzzerUtils.cpp +5 -3
  55. package/worker/fuzzer/src/RTC/FuzzerDtlsTransport.cpp +8 -5
  56. package/worker/fuzzer/src/RTC/FuzzerRateCalculator.cpp +3 -3
  57. package/worker/fuzzer/src/RTC/FuzzerTrendCalculator.cpp +6 -6
  58. package/worker/fuzzer/src/RTC/RTCP/FuzzerFeedbackRtpTransport.cpp +3 -3
  59. package/worker/fuzzer/src/RTC/RTP/FuzzerPacket.cpp +2 -2
  60. package/worker/fuzzer/src/RTC/RTP/FuzzerRetransmissionBuffer.cpp +5 -5
  61. package/worker/fuzzer/src/RTC/RTP/FuzzerRtpStreamSend.cpp +3 -3
  62. package/worker/fuzzer/src/fuzzer.cpp +4 -0
  63. package/worker/include/Channel/ChannelNotification.hpp +3 -3
  64. package/worker/include/Channel/ChannelRequest.hpp +1 -1
  65. package/worker/include/Channel/ChannelSocket.hpp +11 -0
  66. package/worker/include/DepLibUV.hpp +16 -33
  67. package/worker/include/RTC/ActiveSpeakerObserver.hpp +11 -11
  68. package/worker/include/RTC/AudioLevelObserver.hpp +4 -4
  69. package/worker/include/RTC/BWE/AcknowledgedBitrateEstimatorInterface.hpp +55 -0
  70. package/worker/include/RTC/BWE/AimdRateControl.hpp +190 -0
  71. package/worker/include/RTC/BWE/BweTypes.hpp +211 -0
  72. package/worker/include/RTC/BWE/DelayBasedBwe.hpp +173 -0
  73. package/worker/include/RTC/BWE/FeedbackAdapter.hpp +72 -0
  74. package/worker/include/RTC/BWE/InterArrivalDelta.hpp +106 -0
  75. package/worker/include/RTC/BWE/LinkCapacityEstimator.hpp +84 -0
  76. package/worker/include/RTC/BWE/LossBasedController.hpp +520 -0
  77. package/worker/include/RTC/BWE/RobustThroughputEstimator.hpp +94 -0
  78. package/worker/include/RTC/BWE/SendPacketHistory.hpp +137 -0
  79. package/worker/include/RTC/BWE/TargetRateController.hpp +306 -0
  80. package/worker/include/RTC/BWE/TrendlineEstimator.hpp +143 -0
  81. package/worker/include/RTC/BWE/Utils.hpp +39 -0
  82. package/worker/include/RTC/Consts.hpp +6 -6
  83. package/worker/include/RTC/Consumer.hpp +14 -12
  84. package/worker/include/RTC/DataConsumer.hpp +3 -3
  85. package/worker/include/RTC/DataProducer.hpp +3 -3
  86. package/worker/include/RTC/DtlsTransport.hpp +5 -2
  87. package/worker/include/RTC/ICE/IceCandidate.hpp +2 -2
  88. package/worker/include/RTC/ICE/IceServer.hpp +3 -3
  89. package/worker/include/RTC/KeyFrameRequestManager.hpp +3 -3
  90. package/worker/include/RTC/NEW_RTCP/packet/Packet.hpp +1 -1
  91. package/worker/include/RTC/NackGenerator.hpp +12 -12
  92. package/worker/include/RTC/PipeProducerStreamManager.hpp +3 -4
  93. package/worker/include/RTC/PipeTransport.hpp +18 -5
  94. package/worker/include/RTC/PlainTransport.hpp +18 -5
  95. package/worker/include/RTC/PortManager.hpp +4 -4
  96. package/worker/include/RTC/Producer.hpp +21 -12
  97. package/worker/include/RTC/ProducerStreamManager.hpp +12 -6
  98. package/worker/include/RTC/RTCP/Bye.hpp +2 -2
  99. package/worker/include/RTC/RTCP/FeedbackPsRemb.hpp +4 -4
  100. package/worker/include/RTC/RTCP/FeedbackRtpTmmb.hpp +3 -3
  101. package/worker/include/RTC/RTCP/FeedbackRtpTransport.hpp +54 -39
  102. package/worker/include/RTC/RTCP/Packet.hpp +3 -3
  103. package/worker/include/RTC/RTCP/ReceiverReport.hpp +3 -3
  104. package/worker/include/RTC/RTCP/Sdes.hpp +2 -2
  105. package/worker/include/RTC/RTCP/XR.hpp +2 -2
  106. package/worker/include/RTC/RTCP/XrDelaySinceLastRr.hpp +1 -1
  107. package/worker/include/RTC/RTP/Codecs/H264.hpp +1 -1
  108. package/worker/include/RTC/RTP/Codecs/Opus.hpp +2 -2
  109. package/worker/include/RTC/RTP/Codecs/PayloadDescriptorHandler.hpp +3 -3
  110. package/worker/include/RTC/RTP/Codecs/VP8.hpp +2 -2
  111. package/worker/include/RTC/RTP/Codecs/VP9.hpp +2 -2
  112. package/worker/include/RTC/RTP/HeaderExtensionIds.hpp +12 -12
  113. package/worker/include/RTC/RTP/Packet.hpp +13 -13
  114. package/worker/include/RTC/RTP/ProbationGenerator.hpp +1 -1
  115. package/worker/include/RTC/RTP/RetransmissionBuffer.hpp +7 -7
  116. package/worker/include/RTC/RTP/RtpStream.hpp +37 -51
  117. package/worker/include/RTC/RTP/RtpStreamRecv.hpp +59 -41
  118. package/worker/include/RTC/RTP/RtpStreamSend.hpp +20 -14
  119. package/worker/include/RTC/RTP/RtxStream.hpp +12 -13
  120. package/worker/include/RTC/RateCalculator.hpp +50 -44
  121. package/worker/include/RTC/RemoteCaptureTimeEstimator.hpp +5 -4
  122. package/worker/include/RTC/RemoteClockOffsetEstimator.hpp +11 -11
  123. package/worker/include/RTC/Router.hpp +6 -0
  124. package/worker/include/RTC/RtcLogger.hpp +1 -1
  125. package/worker/include/RTC/RtpDictionaries.hpp +10 -10
  126. package/worker/include/RTC/SCTP/association/Association.hpp +56 -28
  127. package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +4 -4
  128. package/worker/include/RTC/SCTP/association/StateCookie.hpp +14 -14
  129. package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +38 -2
  130. package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +12 -12
  131. package/worker/include/RTC/SCTP/association/TransmissionControlBlockContextInterface.hpp +4 -4
  132. package/worker/include/RTC/SCTP/packet/TLV.hpp +1 -1
  133. package/worker/include/RTC/SCTP/packet/parameters/StateCookieParameter.hpp +3 -3
  134. package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +4 -1
  135. package/worker/include/RTC/SCTP/public/AssociationMetrics.hpp +1 -1
  136. package/worker/include/RTC/SCTP/public/SctpOptions.hpp +12 -12
  137. package/worker/include/RTC/SCTP/public/SctpTypes.hpp +6 -6
  138. package/worker/include/RTC/SCTP/rx/ReassemblyQueue.hpp +10 -0
  139. package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +15 -16
  140. package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +7 -8
  141. package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +20 -16
  142. package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +5 -6
  143. package/worker/include/RTC/SCTP/tx/SendQueueInterface.hpp +2 -2
  144. package/worker/include/RTC/SCTP/tx/StreamScheduler.hpp +5 -5
  145. package/worker/include/RTC/SctpDictionaries.hpp +3 -3
  146. package/worker/include/RTC/Serializable.hpp +1 -1
  147. package/worker/include/RTC/SimpleProducerStreamManager.hpp +3 -4
  148. package/worker/include/RTC/SimulcastProducerStreamManager.hpp +6 -7
  149. package/worker/include/RTC/SvcProducerStreamManager.hpp +6 -5
  150. package/worker/include/RTC/TcpConnection.hpp +9 -3
  151. package/worker/include/RTC/TcpServer.hpp +3 -0
  152. package/worker/include/RTC/Transport.hpp +52 -45
  153. package/worker/include/RTC/TransportCongestionControlClient.hpp +30 -25
  154. package/worker/include/RTC/TransportCongestionControlServer.hpp +17 -17
  155. package/worker/include/RTC/TrendCalculator.hpp +5 -5
  156. package/worker/include/RTC/UdpSocket.hpp +11 -2
  157. package/worker/include/RTC/WebRtcServer.hpp +20 -5
  158. package/worker/include/RTC/WebRtcTransport.hpp +35 -10
  159. package/worker/include/Settings.hpp +4 -2
  160. package/worker/include/Shared.hpp +5 -20
  161. package/worker/include/SharedInterface.hpp +6 -28
  162. package/worker/include/Utils.hpp +40 -21
  163. package/worker/include/common.hpp +4 -0
  164. package/worker/include/handles/BackoffTimerHandle.hpp +4 -4
  165. package/worker/include/handles/BackoffTimerHandleInterface.hpp +5 -5
  166. package/worker/include/handles/TcpConnectionHandle.hpp +6 -6
  167. package/worker/include/handles/TcpServerHandle.hpp +1 -1
  168. package/worker/include/handles/TimerHandle.hpp +15 -9
  169. package/worker/include/handles/TimerHandleInterface.hpp +10 -4
  170. package/worker/include/handles/UdpSocketHandle.hpp +3 -3
  171. package/worker/include/handles/UnixStreamSocketHandle.hpp +2 -2
  172. package/worker/meson.build +87 -36
  173. package/worker/meson_options.txt +1 -0
  174. package/worker/mocks/include/MockShared.hpp +24 -23
  175. package/worker/mocks/include/RTC/SCTP/association/MockTransmissionControlBlockContext.hpp +51 -27
  176. package/worker/mocks/include/RTC/SCTP/tx/MockSendQueue.hpp +11 -11
  177. package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +10 -10
  178. package/worker/mocks/include/handles/MockTimerHandle.hpp +60 -22
  179. package/worker/mocks/src/MockShared.cpp +51 -5
  180. package/worker/mocks/src/handles/MockBackoffTimerHandle.cpp +29 -15
  181. package/worker/mocks/src/handles/MockTimerHandle.cpp +117 -0
  182. package/worker/scripts/clang-scripts.mjs +2 -2
  183. package/worker/src/Channel/ChannelNotification.cpp +5 -6
  184. package/worker/src/Channel/ChannelSocket.cpp +20 -2
  185. package/worker/src/DepLibUV.cpp +4 -5
  186. package/worker/src/RTC/ActiveSpeakerObserver.cpp +59 -47
  187. package/worker/src/RTC/AudioLevelObserver.cpp +7 -7
  188. package/worker/src/RTC/BWE/AimdRateControl.cpp +468 -0
  189. package/worker/src/RTC/BWE/BweTypes.cpp +61 -0
  190. package/worker/src/RTC/BWE/DelayBasedBwe.cpp +275 -0
  191. package/worker/src/RTC/BWE/FeedbackAdapter.cpp +148 -0
  192. package/worker/src/RTC/BWE/InterArrivalDelta.cpp +181 -0
  193. package/worker/src/RTC/BWE/LinkCapacityEstimator.cpp +133 -0
  194. package/worker/src/RTC/BWE/LossBasedController.cpp +1046 -0
  195. package/worker/src/RTC/BWE/RobustThroughputEstimator.cpp +245 -0
  196. package/worker/src/RTC/BWE/SendPacketHistory.cpp +184 -0
  197. package/worker/src/RTC/BWE/TargetRateController.cpp +435 -0
  198. package/worker/src/RTC/BWE/TrendlineEstimator.cpp +311 -0
  199. package/worker/src/RTC/BWE/Utils.cpp +54 -0
  200. package/worker/src/RTC/Consumer.cpp +48 -35
  201. package/worker/src/RTC/DataConsumer.cpp +4 -4
  202. package/worker/src/RTC/DataProducer.cpp +3 -3
  203. package/worker/src/RTC/DirectTransport.cpp +2 -2
  204. package/worker/src/RTC/DtlsTransport.cpp +14 -11
  205. package/worker/src/RTC/ICE/IceServer.cpp +2 -2
  206. package/worker/src/RTC/KeyFrameRequestManager.cpp +16 -12
  207. package/worker/src/RTC/NackGenerator.cpp +12 -12
  208. package/worker/src/RTC/PipeProducerStreamManager.cpp +6 -6
  209. package/worker/src/RTC/PipeTransport.cpp +16 -13
  210. package/worker/src/RTC/PlainTransport.cpp +25 -16
  211. package/worker/src/RTC/Producer.cpp +50 -36
  212. package/worker/src/RTC/RTCP/FeedbackPsRemb.cpp +13 -6
  213. package/worker/src/RTC/RTCP/FeedbackRtpTmmb.cpp +14 -5
  214. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +76 -50
  215. package/worker/src/RTC/RTP/Codecs/VP8.cpp +1 -1
  216. package/worker/src/RTC/RTP/Codecs/VP9.cpp +4 -4
  217. package/worker/src/RTC/RTP/Packet.cpp +9 -10
  218. package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +6 -6
  219. package/worker/src/RTC/RTP/RtpStream.cpp +19 -19
  220. package/worker/src/RTC/RTP/RtpStreamRecv.cpp +146 -81
  221. package/worker/src/RTC/RTP/RtpStreamSend.cpp +49 -44
  222. package/worker/src/RTC/RTP/RtxStream.cpp +7 -10
  223. package/worker/src/RTC/RateCalculator.cpp +99 -136
  224. package/worker/src/RTC/RemoteCaptureTimeEstimator.cpp +13 -13
  225. package/worker/src/RTC/RemoteClockOffsetEstimator.cpp +18 -17
  226. package/worker/src/RTC/Router.cpp +18 -1
  227. package/worker/src/RTC/RtpDictionaries/RtpEncodingParameters.cpp +5 -2
  228. package/worker/src/RTC/SCTP/association/Association.cpp +146 -103
  229. package/worker/src/RTC/SCTP/association/AssociationListenerDeferrer.cpp +4 -4
  230. package/worker/src/RTC/SCTP/association/Capabilities.cpp +1 -1
  231. package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +25 -18
  232. package/worker/src/RTC/SCTP/association/StateCookie.cpp +7 -6
  233. package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +122 -14
  234. package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +28 -26
  235. package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +0 -1
  236. package/worker/src/RTC/SCTP/packet/parameters/StateCookieParameter.cpp +2 -2
  237. package/worker/src/RTC/SCTP/public/AssociationMetrics.cpp +2 -2
  238. package/worker/src/RTC/SCTP/public/SctpOptions.cpp +13 -13
  239. package/worker/src/RTC/SCTP/rx/DataTracker.cpp +1 -1
  240. package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +5 -5
  241. package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +15 -15
  242. package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +15 -15
  243. package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +29 -26
  244. package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +12 -11
  245. package/worker/src/RTC/SCTP/tx/StreamScheduler.cpp +4 -4
  246. package/worker/src/RTC/SctpDictionaries/SctpStreamParameters.cpp +2 -2
  247. package/worker/src/RTC/SimpleProducerStreamManager.cpp +10 -10
  248. package/worker/src/RTC/SimulcastProducerStreamManager.cpp +39 -37
  249. package/worker/src/RTC/SvcProducerStreamManager.cpp +39 -25
  250. package/worker/src/RTC/TcpConnection.cpp +9 -3
  251. package/worker/src/RTC/TcpServer.cpp +7 -2
  252. package/worker/src/RTC/Transport.cpp +266 -307
  253. package/worker/src/RTC/TransportCongestionControlClient.cpp +78 -71
  254. package/worker/src/RTC/TransportCongestionControlServer.cpp +38 -40
  255. package/worker/src/RTC/TrendCalculator.cpp +3 -3
  256. package/worker/src/RTC/UdpSocket.cpp +14 -3
  257. package/worker/src/RTC/WebRtcServer.cpp +20 -14
  258. package/worker/src/RTC/WebRtcTransport.cpp +35 -30
  259. package/worker/src/Settings.cpp +10 -0
  260. package/worker/src/Shared.cpp +2 -2
  261. package/worker/src/Utils/Crypto.cpp +2 -2
  262. package/worker/src/Worker.cpp +5 -1
  263. package/worker/src/handles/BackoffTimerHandle.cpp +24 -11
  264. package/worker/src/handles/TimerHandle.cpp +74 -25
  265. package/worker/src/lib.cpp +6 -0
  266. package/worker/tasks.py +197 -45
  267. package/worker/test/include/RTC/BWE/helpers/LinkSimulator.hpp +117 -0
  268. package/worker/test/src/RTC/BWE/TestAimdRateControl.cpp +400 -0
  269. package/worker/test/src/RTC/BWE/TestDelayBasedBwe.cpp +568 -0
  270. package/worker/test/src/RTC/BWE/TestFeedbackAdapter.cpp +546 -0
  271. package/worker/test/src/RTC/BWE/TestInterArrivalDelta.cpp +301 -0
  272. package/worker/test/src/RTC/BWE/TestLinkCapacityEstimator.cpp +115 -0
  273. package/worker/test/src/RTC/BWE/TestLossBasedController.cpp +1199 -0
  274. package/worker/test/src/RTC/BWE/TestRobustThroughputEstimator.cpp +433 -0
  275. package/worker/test/src/RTC/BWE/TestSendPacketHistory.cpp +259 -0
  276. package/worker/test/src/RTC/BWE/TestTargetRateController.cpp +337 -0
  277. package/worker/test/src/RTC/BWE/TestTrendlineEstimator.cpp +182 -0
  278. package/worker/test/src/RTC/BWE/TestUtils.cpp +61 -0
  279. package/worker/test/src/RTC/BWE/helpers/LinkSimulator.cpp +171 -0
  280. package/worker/test/src/RTC/RTCP/TestFeedbackPsRemb.cpp +1 -1
  281. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTmmb.cpp +1 -1
  282. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTransport.cpp +246 -208
  283. package/worker/test/src/RTC/RTP/TestPacket.cpp +11 -11
  284. package/worker/test/src/RTC/RTP/TestRetransmissionBuffer.cpp +12 -12
  285. package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +23 -16
  286. package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +13 -13
  287. package/worker/test/src/RTC/SCTP/association/TestAssociation.cpp +27 -22
  288. package/worker/test/src/RTC/SCTP/association/TestHeartbeatHandler.cpp +21 -15
  289. package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +6 -6
  290. package/worker/test/src/RTC/SCTP/association/TestStreamResetHandler.cpp +128 -13
  291. package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +3 -3
  292. package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +2 -2
  293. package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +23 -23
  294. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +1 -1
  295. package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +1 -1
  296. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +1 -1
  297. package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +37 -37
  298. package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +10 -10
  299. package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +1 -1
  300. package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +93 -93
  301. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +247 -247
  302. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionTimeout.cpp +100 -80
  303. package/worker/test/src/RTC/SCTP/tx/TestRoundRobinSendQueue.cpp +163 -163
  304. package/worker/test/src/RTC/SCTP/tx/TestStreamScheduler.cpp +76 -77
  305. package/worker/test/src/RTC/TestConsumer.cpp +8 -3
  306. package/worker/test/src/RTC/TestKeyFrameRequestManager.cpp +3 -3
  307. package/worker/test/src/RTC/TestNackGenerator.cpp +3 -3
  308. package/worker/test/src/RTC/TestPipeProducerStreamManager.cpp +5 -5
  309. package/worker/test/src/RTC/TestRateCalculator.cpp +110 -14
  310. package/worker/test/src/RTC/TestRemoteCaptureTimeEstimator.cpp +22 -17
  311. package/worker/test/src/RTC/TestRemoteClockOffsetEstimator.cpp +87 -85
  312. package/worker/test/src/RTC/TestSimpleProducerStreamManager.cpp +54 -47
  313. package/worker/test/src/RTC/TestSimulcastProducerStreamManager.cpp +83 -69
  314. package/worker/test/src/RTC/TestSvcProducerStreamManager.cpp +76 -65
  315. package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +72 -66
  316. package/worker/test/src/RTC/TestTransportTuple.cpp +19 -4
  317. package/worker/test/src/TestDepLibUV.cpp +19 -0
  318. package/worker/test/src/Utils/TestTime.cpp +57 -26
  319. package/worker/test/src/testHelpers.cpp +1 -1
  320. package/worker/test/src/tests.cpp +6 -0
  321. package/worker/include/RTC/SenderBandwidthEstimator.hpp +0 -118
  322. package/worker/src/RTC/SenderBandwidthEstimator.cpp +0 -269
@@ -42,21 +42,25 @@ namespace RTC
42
42
  class FeedbackRtpTransportPacket : public FeedbackRtpPacket
43
43
  {
44
44
  public:
45
- static constexpr int64_t BaseTimeTick = 64;
46
- static constexpr int64_t TimeWrapPeriod = BaseTimeTick * (1ll << 24);
45
+ // Receive deltas are expressed in multiples of this.
46
+ static constexpr int64_t DeltaTickUs = 250;
47
+ // The reference time is expressed in multiples of this.
48
+ static constexpr int64_t BaseTimeTickUs = DeltaTickUs * (1 << 8);
49
+ // Period after which the reference time wraps around.
50
+ static constexpr int64_t TimeWrapPeriodUs = BaseTimeTickUs * (1ll << 24);
47
51
 
48
52
  public:
49
- struct PacketResult
53
+ struct PacketStatus
50
54
  {
51
- PacketResult(uint16_t sequenceNumber, bool received)
55
+ PacketStatus(uint16_t sequenceNumber, bool received)
52
56
  : sequenceNumber(sequenceNumber), received(received)
53
57
  {
54
58
  }
55
59
 
56
60
  uint16_t sequenceNumber; // Wide sequence number.
57
- int16_t delta{ 0 }; // Delta.
61
+ int16_t delta{ 0 }; // Delta in DeltaTickUs units.
58
62
  bool received{ false }; // Packet received or not.
59
- int64_t receivedAtMs{ 0 }; // Received time (ms) in remote timestamp reference.
63
+ int64_t receivedAtUs{ 0 }; // Received time (us) in remote timestamp reference.
60
64
  };
61
65
 
62
66
  public:
@@ -100,8 +104,8 @@ namespace RTC
100
104
  virtual void Dump(int indentation = 0) const = 0;
101
105
  virtual uint16_t GetCount() const = 0;
102
106
  virtual uint16_t GetReceivedStatusCount() const = 0;
103
- virtual void FillResults(
104
- std::vector<struct PacketResult>& packetResults, uint16_t& currentSequenceNumber) const = 0;
107
+ virtual void FillStatuses(
108
+ std::vector<struct PacketStatus>& packetStatuses, uint16_t& currentSequenceNumber) const = 0;
105
109
  virtual size_t Serialize(uint8_t* buffer) = 0;
106
110
  };
107
111
 
@@ -127,14 +131,14 @@ namespace RTC
127
131
  return this->count;
128
132
  }
129
133
  uint16_t GetReceivedStatusCount() const override;
130
- void FillResults(
131
- std::vector<struct PacketResult>& packetResults,
134
+ void FillStatuses(
135
+ std::vector<struct PacketStatus>& packetStatuses,
132
136
  uint16_t& currentSequenceNumber) const override;
133
137
  size_t Serialize(uint8_t* buffer) override;
134
138
 
135
139
  private:
136
140
  Status status{ Status::None };
137
- uint16_t count{ 0u };
141
+ uint16_t count{ 0 };
138
142
  };
139
143
 
140
144
  private:
@@ -155,8 +159,8 @@ namespace RTC
155
159
  return this->statuses.size();
156
160
  }
157
161
  uint16_t GetReceivedStatusCount() const override;
158
- void FillResults(
159
- std::vector<struct PacketResult>& packetResults,
162
+ void FillStatuses(
163
+ std::vector<struct PacketStatus>& packetStatuses,
160
164
  uint16_t& currentSequenceNumber) const override;
161
165
  size_t Serialize(uint8_t* buffer) override;
162
166
 
@@ -182,8 +186,8 @@ namespace RTC
182
186
  return this->statuses.size();
183
187
  }
184
188
  uint16_t GetReceivedStatusCount() const override;
185
- void FillResults(
186
- std::vector<struct PacketResult>& packetResults,
189
+ void FillStatuses(
190
+ std::vector<struct PacketStatus>& packetStatuses,
187
191
  uint16_t& currentSequenceNumber) const override;
188
192
  size_t Serialize(uint8_t* buffer) override;
189
193
 
@@ -200,6 +204,17 @@ namespace RTC
200
204
  public:
201
205
  static FeedbackRtpTransportPacket* Parse(const uint8_t* data, size_t len);
202
206
 
207
+ private:
208
+ /**
209
+ * Turn a number of whole base time ticks elapsed into the reference time
210
+ * that stands for it.
211
+ *
212
+ * @remarks
213
+ * - The reference time is a 24 bits signed integer, so it's kept sign
214
+ * extended, which is how parsing it back gives it.
215
+ */
216
+ static int32_t TicksToReferenceTime(int64_t baseTimeTicks);
217
+
203
218
  private:
204
219
  static const ankerl::unordered_dense::map<Status, std::string> Status2String;
205
220
 
@@ -216,8 +231,8 @@ namespace RTC
216
231
  {
217
232
  return this->baseSet;
218
233
  }
219
- void SetBase(uint16_t sequenceNumber, uint64_t timestamp);
220
- AddPacketResult AddPacket(uint16_t sequenceNumber, uint64_t timestamp, size_t maxRtcpPacketLen);
234
+ void SetBase(uint16_t sequenceNumber, int64_t timestampUs);
235
+ AddPacketResult AddPacket(uint16_t sequenceNumber, int64_t timestampUs, size_t maxRtcpPacketLen);
221
236
  // Just for locally generated packets.
222
237
  void Finish();
223
238
  bool IsFull() const
@@ -247,27 +262,27 @@ namespace RTC
247
262
  {
248
263
  return this->referenceTime;
249
264
  }
250
- // NOTE: We only use this for testing purpose.
251
- void SetReferenceTime(int64_t referenceTime)
252
- {
253
- this->referenceTime = (referenceTime % TimeWrapPeriod) / BaseTimeTick;
254
- }
255
- int64_t GetReferenceTimestamp() const // Reference time in ms.
265
+ /**
266
+ * @remarks
267
+ * - Only used for testing purposes.
268
+ */
269
+ void SetReferenceTimeUs(int64_t referenceTimeUs);
270
+ int64_t GetReferenceTimestampUs() const // Reference time in us.
256
271
  {
257
- return TimeWrapPeriod + (static_cast<int64_t>(this->referenceTime) * BaseTimeTick);
272
+ return TimeWrapPeriodUs + (static_cast<int64_t>(this->referenceTime) * BaseTimeTickUs);
258
273
  }
259
- int64_t GetBaseDelta(const int64_t previousTimestampMs) const
274
+ int64_t GetBaseDeltaUs(const int64_t previousTimestampUs) const
260
275
  {
261
- int64_t delta = GetReferenceTimestamp() - previousTimestampMs;
276
+ int64_t delta = GetReferenceTimestampUs() - previousTimestampUs;
262
277
 
263
278
  // Compensate for wrap around.
264
- if (std::abs(delta - TimeWrapPeriod) < std::abs(delta))
279
+ if (std::abs(delta - TimeWrapPeriodUs) < std::abs(delta))
265
280
  {
266
- delta -= TimeWrapPeriod;
281
+ delta -= TimeWrapPeriodUs;
267
282
  }
268
- else if (std::abs(delta + TimeWrapPeriod) < std::abs(delta))
283
+ else if (std::abs(delta + TimeWrapPeriodUs) < std::abs(delta))
269
284
  {
270
- delta += TimeWrapPeriod;
285
+ delta += TimeWrapPeriodUs;
271
286
  }
272
287
 
273
288
  return delta;
@@ -284,11 +299,11 @@ namespace RTC
284
299
  {
285
300
  return this->latestSequenceNumber;
286
301
  }
287
- uint64_t GetLatestTimestamp() const // Just for locally generated packets.
302
+ int64_t GetLatestTimestampUs() const // Just for locally generated packets.
288
303
  {
289
- return this->latestTimestamp;
304
+ return this->latestTimestampUs;
290
305
  }
291
- std::vector<struct PacketResult> GetPacketResults() const;
306
+ std::vector<struct PacketStatus> GetPacketStatuses() const;
292
307
  uint8_t GetPacketFractionLost() const;
293
308
 
294
309
  /* Pure virtual methods inherited from Packet. */
@@ -324,20 +339,20 @@ namespace RTC
324
339
  private:
325
340
  // Whether baseSequenceNumber has been set.
326
341
  bool baseSet{ false };
327
- uint16_t baseSequenceNumber{ 0u };
342
+ uint16_t baseSequenceNumber{ 0 };
328
343
  // 24 bits signed integer.
329
344
  int32_t referenceTime{ 0 };
330
345
  // Just for locally generated packets.
331
- uint16_t latestSequenceNumber{ 0u };
346
+ uint16_t latestSequenceNumber{ 0 };
332
347
  // Just for locally generated packets.
333
- uint64_t latestTimestamp{ 0u };
334
- uint16_t packetStatusCount{ 0u };
335
- uint8_t feedbackPacketCount{ 0u };
348
+ int64_t latestTimestampUs{ 0 };
349
+ uint16_t packetStatusCount{ 0 };
350
+ uint8_t feedbackPacketCount{ 0 };
336
351
  std::vector<Chunk*> chunks;
337
352
  std::vector<int16_t> deltas;
338
353
  // Just for locally generated packets.
339
354
  Context context;
340
- size_t deltasAndChunksSize{ 0u };
355
+ size_t deltasAndChunksSize{ 0 };
341
356
  size_t size{ 0 };
342
357
  bool isCorrect{ true };
343
358
  };
@@ -20,8 +20,8 @@ namespace RTC
20
20
  // capture system but an estimation that moves. Refreshing it for audio less often
21
21
  // than for video would make receivers combine measurements taken at different
22
22
  // instants, and that difference is lip sync error.
23
- constexpr uint16_t MaxAudioIntervalMs{ 1000 };
24
- constexpr uint16_t MaxVideoIntervalMs{ 1000 };
23
+ constexpr int64_t MaxAudioIntervalMs{ 1000 };
24
+ constexpr int64_t MaxVideoIntervalMs{ 1000 };
25
25
 
26
26
  enum class Type : uint8_t
27
27
  {
@@ -118,7 +118,7 @@ namespace RTC
118
118
  }
119
119
  virtual size_t GetCount() const
120
120
  {
121
- return 0u;
121
+ return 0;
122
122
  }
123
123
  virtual size_t GetSize() const = 0;
124
124
 
@@ -113,7 +113,7 @@ namespace RTC
113
113
 
114
114
  private:
115
115
  Header* header{ nullptr };
116
- uint8_t raw[HeaderSize]{ 0u };
116
+ uint8_t raw[HeaderSize]{ 0 };
117
117
  };
118
118
 
119
119
  class ReceiverReportPacket : public Packet
@@ -193,7 +193,7 @@ namespace RTC
193
193
  // A serialized packet can contain a maximum of 31 reports.
194
194
  // If number of reports exceeds 31 then the required number of packets
195
195
  // will be serialized which will take the size calculated below.
196
- size_t size = (Packet::CommonHeaderSize + 4u /* this->ssrc */) *
196
+ size_t size = (Packet::CommonHeaderSize + 4 /* this->ssrc */) *
197
197
  ((this->GetCount() / maxReportsPerPacket) + 1);
198
198
  size += ReceiverReport::HeaderSize * this->GetCount();
199
199
 
@@ -202,7 +202,7 @@ namespace RTC
202
202
 
203
203
  private:
204
204
  // SSRC of packet sender.
205
- uint32_t ssrc{ 0u };
205
+ uint32_t ssrc{ 0 };
206
206
  std::vector<ReceiverReport*> reports;
207
207
  };
208
208
  } // namespace RTCP
@@ -122,7 +122,7 @@ namespace RTC
122
122
  size_t Serialize(uint8_t* buffer);
123
123
  size_t GetSize() const
124
124
  {
125
- size_t size = 4u /*ssrc*/;
125
+ size_t size = 4 /*ssrc*/;
126
126
 
127
127
  for (auto* item : this->items)
128
128
  {
@@ -158,7 +158,7 @@ namespace RTC
158
158
  }
159
159
 
160
160
  private:
161
- uint32_t ssrc{ 0u };
161
+ uint32_t ssrc{ 0 };
162
162
  std::vector<SdesItem*> items;
163
163
  };
164
164
 
@@ -143,7 +143,7 @@ namespace RTC
143
143
  }
144
144
  size_t GetSize() const override
145
145
  {
146
- size_t size = Packet::CommonHeaderSize + 4u /*ssrc*/;
146
+ size_t size = Packet::CommonHeaderSize + 4 /*ssrc*/;
147
147
 
148
148
  for (auto* report : this->reports)
149
149
  {
@@ -154,7 +154,7 @@ namespace RTC
154
154
  }
155
155
 
156
156
  private:
157
- uint32_t ssrc{ 0u };
157
+ uint32_t ssrc{ 0 };
158
158
  std::vector<ExtendedReportBlock*> reports;
159
159
  };
160
160
  } // namespace RTCP
@@ -151,7 +151,7 @@ namespace RTC
151
151
  size_t Serialize(uint8_t* buffer) override;
152
152
  size_t GetSize() const override
153
153
  {
154
- size_t size{ 4u }; // Common header.
154
+ size_t size{ 4 }; // Common header.
155
155
 
156
156
  for (auto* ssrcInfo : this->ssrcInfos)
157
157
  {
@@ -84,7 +84,7 @@ namespace RTC
84
84
  }
85
85
  uint8_t GetSpatialLayer() const override
86
86
  {
87
- return 0u;
87
+ return 0;
88
88
  }
89
89
  uint8_t GetTemporalLayer() const override
90
90
  {
@@ -80,11 +80,11 @@ namespace RTC
80
80
  }
81
81
  uint8_t GetSpatialLayer() const override
82
82
  {
83
- return 0u;
83
+ return 0;
84
84
  }
85
85
  uint8_t GetTemporalLayer() const override
86
86
  {
87
- return 0u;
87
+ return 0;
88
88
  }
89
89
  bool IsKeyFrame() const override
90
90
  {
@@ -29,7 +29,7 @@ namespace RTC
29
29
 
30
30
  class PictureIdList
31
31
  {
32
- static constexpr uint16_t MaxCurrentLayerPictureIdNum{ 1000u };
32
+ static constexpr uint16_t MaxCurrentLayerPictureIdNum{ 1000 };
33
33
 
34
34
  public:
35
35
  explicit PictureIdList() = default;
@@ -93,8 +93,8 @@ namespace RTC
93
93
  public:
94
94
  struct Params
95
95
  {
96
- uint8_t spatialLayers{ 1u };
97
- uint8_t temporalLayers{ 1u };
96
+ uint8_t spatialLayers{ 1 };
97
+ uint8_t temporalLayers{ 1 };
98
98
  bool ksvc{ false };
99
99
  };
100
100
 
@@ -158,11 +158,11 @@ namespace RTC
158
158
  void Restore(RTP::Packet* packet) override;
159
159
  uint8_t GetSpatialLayer() const override
160
160
  {
161
- return 0u;
161
+ return 0;
162
162
  }
163
163
  uint8_t GetTemporalLayer() const override
164
164
  {
165
- return this->payloadDescriptor->hasTlIndex ? this->payloadDescriptor->tlIndex : 0u;
165
+ return this->payloadDescriptor->hasTlIndex ? this->payloadDescriptor->tlIndex : 0;
166
166
  }
167
167
  bool IsKeyFrame() const override
168
168
  {
@@ -141,11 +141,11 @@ namespace RTC
141
141
  }
142
142
  uint8_t GetSpatialLayer() const override
143
143
  {
144
- return this->payloadDescriptor->hasSlIndex ? this->payloadDescriptor->slIndex : 0u;
144
+ return this->payloadDescriptor->hasSlIndex ? this->payloadDescriptor->slIndex : 0;
145
145
  }
146
146
  uint8_t GetTemporalLayer() const override
147
147
  {
148
- return this->payloadDescriptor->hasTlIndex ? this->payloadDescriptor->tlIndex : 0u;
148
+ return this->payloadDescriptor->hasTlIndex ? this->payloadDescriptor->tlIndex : 0;
149
149
  }
150
150
  bool IsKeyFrame() const override
151
151
  {
@@ -12,18 +12,18 @@ namespace RTC
12
12
  struct HeaderExtensionIds
13
13
  {
14
14
  // 0 means no id.
15
- uint8_t mid{ 0u };
16
- uint8_t rid{ 0u };
17
- uint8_t rrid{ 0u };
18
- uint8_t absSendTime{ 0u };
19
- uint8_t transportWideCc01{ 0u };
20
- uint8_t ssrcAudioLevel{ 0u };
21
- uint8_t dependencyDescriptor{ 0u };
22
- uint8_t videoOrientation{ 0u };
23
- uint8_t timeOffset{ 0u };
24
- uint8_t absCaptureTime{ 0u };
25
- uint8_t playoutDelay{ 0u };
26
- uint8_t mediasoupPacketId{ 0u };
15
+ uint8_t mid{ 0 };
16
+ uint8_t rid{ 0 };
17
+ uint8_t rrid{ 0 };
18
+ uint8_t absSendTime{ 0 };
19
+ uint8_t transportWideCc01{ 0 };
20
+ uint8_t ssrcAudioLevel{ 0 };
21
+ uint8_t dependencyDescriptor{ 0 };
22
+ uint8_t videoOrientation{ 0 };
23
+ uint8_t timeOffset{ 0 };
24
+ uint8_t absCaptureTime{ 0 };
25
+ uint8_t playoutDelay{ 0 };
26
+ uint8_t mediasoupPacketId{ 0 };
27
27
  };
28
28
  } // namespace RTP
29
29
  } // namespace RTC
@@ -527,10 +527,10 @@ namespace RTC
527
527
 
528
528
  /**
529
529
  * @remarks
530
- * - Contrary to `ReadAbsSendTime()` method, given `ms` is internally
531
- * converted to ABS Send Time.
530
+ * - `sentAtUs` is converted internally to the 3 bytes ABS Send Time format,
531
+ * unlike `ReadAbsSendTime()`, which exposes the raw extension value.
532
532
  */
533
- bool UpdateAbsSendTime(uint64_t ms) const;
533
+ bool UpdateAbsSendTime(int64_t sentAtUs) const;
534
534
 
535
535
  bool ReadTransportWideCc01(uint16_t& wideSeqNumber) const;
536
536
 
@@ -819,7 +819,7 @@ namespace RTC
819
819
  {
820
820
  if (!this->payloadDescriptorHandler)
821
821
  {
822
- return 0u;
822
+ return 0;
823
823
  }
824
824
 
825
825
  return this->payloadDescriptorHandler->GetSpatialLayer();
@@ -832,26 +832,26 @@ namespace RTC
832
832
  {
833
833
  if (!this->payloadDescriptorHandler)
834
834
  {
835
- return 0u;
835
+ return 0;
836
836
  }
837
837
 
838
838
  return this->payloadDescriptorHandler->GetTemporalLayer();
839
839
  }
840
840
 
841
841
  /**
842
- * Capture time (in ms) of the packet.
842
+ * Capture time (in us) of the packet.
843
843
  */
844
- std::optional<uint64_t> GetCaptureMs() const
844
+ std::optional<int64_t> GetCaptureAtUs() const
845
845
  {
846
- return this->captureMs;
846
+ return this->captureAtUs;
847
847
  }
848
848
 
849
849
  /**
850
- * Set the capture time (in ms) of the packet.
850
+ * Set the capture time (in us) of the packet.
851
851
  */
852
- void SetCaptureMs(uint64_t captureMs)
852
+ void SetCaptureAtUs(int64_t captureAtUs)
853
853
  {
854
- this->captureMs = captureMs;
854
+ this->captureAtUs = captureAtUs;
855
855
  }
856
856
 
857
857
  private:
@@ -967,7 +967,7 @@ namespace RTC
967
967
  // each entry is the offset (in bytes) from the beginning of the header
968
968
  // extension value to the beginning of the extension.
969
969
  std::array<ssize_t, 14> oneByteExtensions{ -1, -1, -1, -1, -1, -1, -1,
970
- -1, -1, -1, -1, -1, -1, -1 };
970
+ -1, -1, -1, -1, -1, -1, -1 };
971
971
  // Ordered map of Two Bytes Extensions. Key is the id 1 of the extension,
972
972
  // each entry is the offset (in bytes) from the beginning of the header
973
973
  // extension value to the beginning of the extension.
@@ -977,7 +977,7 @@ namespace RTC
977
977
  // Codec related.
978
978
  std::shared_ptr<Codecs::PayloadDescriptorHandler> payloadDescriptorHandler;
979
979
  // Capture time of the packet.
980
- std::optional<uint64_t> captureMs;
980
+ std::optional<int64_t> captureAtUs;
981
981
  };
982
982
  } // namespace RTP
983
983
  } // namespace RTC
@@ -22,7 +22,7 @@ namespace RTC
22
22
  /**
23
23
  * Codec payload type of the probation RTP stream.
24
24
  */
25
- static const uint8_t PayloadType{ 127u };
25
+ static const uint8_t PayloadType{ 127 };
26
26
 
27
27
  public:
28
28
  explicit ProbationGenerator();
@@ -27,24 +27,24 @@ namespace RTC
27
27
  // Payload descriptor encoder.
28
28
  std::unique_ptr<RTP::Codecs::PayloadDescriptor::Encoder> encoder{ nullptr };
29
29
  // Correct SSRC since original packet may not have the same.
30
- uint32_t ssrc{ 0u };
30
+ uint32_t ssrc{ 0 };
31
31
  // Correct sequence number since original packet may not have the same.
32
- uint16_t sequenceNumber{ 0u };
32
+ uint16_t sequenceNumber{ 0 };
33
33
  // Correct timestamp since original packet may not have the same.
34
- uint32_t timestamp{ 0u };
34
+ uint32_t timestamp{ 0 };
35
35
  // Correct marker bit since original packet may not have the same.
36
36
  bool marker{ false };
37
37
  // Last time this packet was resent.
38
- uint64_t resentAtMs{ 0u };
38
+ int64_t resentAtMs{ 0 };
39
39
  // Number of times this packet was resent.
40
- uint8_t sentTimes{ 0u };
40
+ uint8_t sentTimes{ 0 };
41
41
  };
42
42
 
43
43
  private:
44
44
  static Item* FillItem(Item* item, RTP::Packet* packet, const RTP::SharedPacket& sharedPacket);
45
45
 
46
46
  public:
47
- RetransmissionBuffer(uint16_t maxItems, uint32_t maxRetransmissionDelayMs, uint32_t clockRate);
47
+ RetransmissionBuffer(uint16_t maxItems, int64_t maxRetransmissionDelayMs, uint32_t clockRate);
48
48
  ~RetransmissionBuffer();
49
49
 
50
50
  void Dump(int indentation = 0) const;
@@ -67,7 +67,7 @@ namespace RTC
67
67
  private:
68
68
  // Given as argument.
69
69
  uint16_t maxItems;
70
- uint32_t maxRetransmissionDelayMs;
70
+ int64_t maxRetransmissionDelayMs;
71
71
  uint32_t clockRate;
72
72
  };
73
73
  } // namespace RTP