mediasoup 3.20.0 → 3.20.2

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 (360) hide show
  1. package/node/lib/Consumer.d.ts.map +1 -1
  2. package/node/lib/Consumer.js +5 -4
  3. package/node/lib/DataConsumer.d.ts +2 -3
  4. package/node/lib/DataConsumer.d.ts.map +1 -1
  5. package/node/lib/DataConsumer.js +10 -7
  6. package/node/lib/DataConsumerTypes.d.ts +5 -4
  7. package/node/lib/DataConsumerTypes.d.ts.map +1 -1
  8. package/node/lib/DataProducer.d.ts.map +1 -1
  9. package/node/lib/DataProducer.js +2 -1
  10. package/node/lib/PipeTransport.d.ts.map +1 -1
  11. package/node/lib/PipeTransport.js +5 -4
  12. package/node/lib/PlainTransport.d.ts.map +1 -1
  13. package/node/lib/PlainTransport.js +6 -5
  14. package/node/lib/Producer.d.ts.map +1 -1
  15. package/node/lib/Producer.js +4 -3
  16. package/node/lib/Router.js +1 -1
  17. package/node/lib/WebRtcTransport.d.ts.map +1 -1
  18. package/node/lib/WebRtcTransport.js +6 -5
  19. package/node/lib/fbs/consumer/degrade-request.d.ts +30 -0
  20. package/node/lib/fbs/consumer/degrade-request.d.ts.map +1 -0
  21. package/node/lib/fbs/consumer/degrade-request.js +124 -0
  22. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts +24 -0
  23. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts.map +1 -0
  24. package/node/lib/fbs/consumer/enable-delay-and-loss-request.js +102 -0
  25. package/node/lib/fbs/data-consumer/send-response.d.ts +21 -0
  26. package/node/lib/fbs/data-consumer/send-response.d.ts.map +1 -0
  27. package/node/lib/fbs/data-consumer/send-response.js +91 -0
  28. package/node/lib/fbs/data-consumer.d.ts +1 -0
  29. package/node/lib/fbs/data-consumer.d.ts.map +1 -1
  30. package/node/lib/fbs/data-consumer.js +4 -1
  31. package/node/lib/fbs/producer/degrade-request.d.ts +30 -0
  32. package/node/lib/fbs/producer/degrade-request.d.ts.map +1 -0
  33. package/node/lib/fbs/producer/degrade-request.js +124 -0
  34. package/node/lib/fbs/response/body.d.ts +7 -5
  35. package/node/lib/fbs/response/body.d.ts.map +1 -1
  36. package/node/lib/fbs/response/body.js +7 -3
  37. package/node/lib/fbs/response/response.d.ts +3 -2
  38. package/node/lib/fbs/response/response.d.ts.map +1 -1
  39. package/node/lib/fbs/sctp-parameters/num-sctp-streams.d.ts.map +1 -1
  40. package/node/lib/fbs/sctp-parameters/num-sctp-streams.js +5 -5
  41. package/node/lib/fbs/transport/sctp-negotiated-max-streams-notification.d.ts +24 -0
  42. package/node/lib/fbs/transport/sctp-negotiated-max-streams-notification.d.ts.map +1 -0
  43. package/node/lib/fbs/transport/sctp-negotiated-max-streams-notification.js +102 -0
  44. package/node/lib/fbs/transport/sctp-negotiated-options-notification.d.ts +24 -0
  45. package/node/lib/fbs/transport/sctp-negotiated-options-notification.d.ts.map +1 -0
  46. package/node/lib/fbs/transport/sctp-negotiated-options-notification.js +102 -0
  47. package/node/lib/fbs/worker/close-notification.d.ts +18 -0
  48. package/node/lib/fbs/worker/close-notification.d.ts.map +1 -0
  49. package/node/lib/fbs/worker/close-notification.js +78 -0
  50. package/node/lib/fbs/worker/close-request.d.ts +18 -0
  51. package/node/lib/fbs/worker/close-request.d.ts.map +1 -0
  52. package/node/lib/fbs/worker/close-request.js +78 -0
  53. package/node/lib/fbs/worker/close-worker-notification.d.ts +18 -0
  54. package/node/lib/fbs/worker/close-worker-notification.d.ts.map +1 -0
  55. package/node/lib/fbs/worker/close-worker-notification.js +78 -0
  56. package/node/lib/sctpParametersTypes.d.ts +23 -0
  57. package/node/lib/sctpParametersTypes.d.ts.map +1 -1
  58. package/node/lib/test/test-Consumer.js +194 -0
  59. package/node/lib/test/test-DataConsumer.js +6 -0
  60. package/node/lib/test/test-Router.js +11 -0
  61. package/node/lib/test/test-werift-sctp.js +7 -0
  62. package/npm-scripts.mjs +2 -2
  63. package/package.json +7 -6
  64. package/worker/Makefile +5 -1
  65. package/worker/deps/libwebrtc/meson.build +5 -1
  66. package/worker/fbs/dataConsumer.fbs +4 -0
  67. package/worker/fbs/response.fbs +1 -0
  68. package/worker/fuzzer/src/RTC/RTP/FuzzerPacket.cpp +2 -2
  69. package/worker/include/Channel/ChannelMessageRegistrator.hpp +4 -3
  70. package/worker/include/Channel/ChannelNotification.hpp +0 -4
  71. package/worker/include/Channel/ChannelRequest.hpp +3 -4
  72. package/worker/include/DepLibSRTP.hpp +2 -2
  73. package/worker/include/RTC/ActiveSpeakerObserver.hpp +2 -2
  74. package/worker/include/RTC/AudioLevelObserver.hpp +2 -2
  75. package/worker/include/RTC/Consumer.hpp +1 -1
  76. package/worker/include/RTC/DataConsumer.hpp +2 -2
  77. package/worker/include/RTC/DtlsTransport.hpp +4 -4
  78. package/worker/include/RTC/ICE/IceServer.hpp +2 -2
  79. package/worker/include/RTC/ICE/StunPacket.hpp +34 -34
  80. package/worker/include/RTC/KeyFrameRequestManager.hpp +3 -3
  81. package/worker/include/RTC/Parameters.hpp +2 -2
  82. package/worker/include/RTC/PipeConsumer.hpp +6 -5
  83. package/worker/include/RTC/PlainTransport.hpp +0 -1
  84. package/worker/include/RTC/PortManager.hpp +92 -12
  85. package/worker/include/RTC/Producer.hpp +7 -6
  86. package/worker/include/RTC/RTCP/Feedback.hpp +1 -2
  87. package/worker/include/RTC/RTCP/FeedbackRtpTransport.hpp +2 -2
  88. package/worker/include/RTC/RTCP/Packet.hpp +2 -2
  89. package/worker/include/RTC/RTCP/Sdes.hpp +1 -1
  90. package/worker/include/RTC/RTP/Codecs/DependencyDescriptor.hpp +2 -1
  91. package/worker/include/RTC/RTP/Packet.hpp +57 -57
  92. package/worker/include/RTC/RTP/ProbationGenerator.hpp +2 -2
  93. package/worker/include/RTC/RTP/SharedPacket.hpp +4 -4
  94. package/worker/include/RTC/Router.hpp +12 -11
  95. package/worker/include/RTC/RtcLogger.hpp +2 -2
  96. package/worker/include/RTC/RtpDictionaries.hpp +6 -6
  97. package/worker/include/RTC/RtpListener.hpp +4 -4
  98. package/worker/include/RTC/SCTP/association/Association.hpp +13 -13
  99. package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +2 -2
  100. package/worker/include/RTC/SCTP/association/NegotiatedCapabilities.hpp +2 -2
  101. package/worker/include/RTC/SCTP/association/PacketSender.hpp +3 -3
  102. package/worker/include/RTC/SCTP/association/StateCookie.hpp +9 -9
  103. package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +4 -4
  104. package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +24 -24
  105. package/worker/include/RTC/SCTP/association/TransmissionControlBlockContextInterface.hpp +4 -4
  106. package/worker/include/RTC/SCTP/packet/Chunk.hpp +86 -86
  107. package/worker/include/RTC/SCTP/packet/ErrorCause.hpp +18 -18
  108. package/worker/include/RTC/SCTP/packet/Packet.hpp +33 -33
  109. package/worker/include/RTC/SCTP/packet/Parameter.hpp +24 -24
  110. package/worker/include/RTC/SCTP/packet/TLV.hpp +13 -13
  111. package/worker/include/RTC/SCTP/packet/UserData.hpp +4 -4
  112. package/worker/include/RTC/SCTP/packet/chunks/AbortAssociationChunk.hpp +5 -5
  113. package/worker/include/RTC/SCTP/packet/chunks/AnyDataChunk.hpp +9 -9
  114. package/worker/include/RTC/SCTP/packet/chunks/AnyForwardTsnChunk.hpp +3 -3
  115. package/worker/include/RTC/SCTP/packet/chunks/CookieAckChunk.hpp +5 -5
  116. package/worker/include/RTC/SCTP/packet/chunks/CookieEchoChunk.hpp +5 -5
  117. package/worker/include/RTC/SCTP/packet/chunks/DataChunk.hpp +11 -11
  118. package/worker/include/RTC/SCTP/packet/chunks/ForwardTsnChunk.hpp +6 -6
  119. package/worker/include/RTC/SCTP/packet/chunks/HeartbeatAckChunk.hpp +6 -6
  120. package/worker/include/RTC/SCTP/packet/chunks/HeartbeatRequestChunk.hpp +6 -6
  121. package/worker/include/RTC/SCTP/packet/chunks/IDataChunk.hpp +6 -6
  122. package/worker/include/RTC/SCTP/packet/chunks/IForwardTsnChunk.hpp +7 -7
  123. package/worker/include/RTC/SCTP/packet/chunks/InitAckChunk.hpp +10 -10
  124. package/worker/include/RTC/SCTP/packet/chunks/InitChunk.hpp +8 -8
  125. package/worker/include/RTC/SCTP/packet/chunks/OperationErrorChunk.hpp +6 -6
  126. package/worker/include/RTC/SCTP/packet/chunks/ReConfigChunk.hpp +10 -10
  127. package/worker/include/RTC/SCTP/packet/chunks/SackChunk.hpp +5 -5
  128. package/worker/include/RTC/SCTP/packet/chunks/ShutdownAckChunk.hpp +5 -5
  129. package/worker/include/RTC/SCTP/packet/chunks/ShutdownChunk.hpp +5 -5
  130. package/worker/include/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.hpp +5 -5
  131. package/worker/include/RTC/SCTP/packet/chunks/UnknownChunk.hpp +2 -2
  132. package/worker/include/RTC/SCTP/packet/errorCauses/CookieReceivedWhileShuttingDownErrorCause.hpp +4 -4
  133. package/worker/include/RTC/SCTP/packet/errorCauses/InvalidMandatoryParameterErrorCause.hpp +4 -4
  134. package/worker/include/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.hpp +5 -5
  135. package/worker/include/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.hpp +5 -5
  136. package/worker/include/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.hpp +5 -5
  137. package/worker/include/RTC/SCTP/packet/errorCauses/OutOfResourceErrorCause.hpp +4 -4
  138. package/worker/include/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.hpp +4 -4
  139. package/worker/include/RTC/SCTP/packet/errorCauses/RestartOfAnAssociationWithNewAddressesErrorCause.hpp +4 -4
  140. package/worker/include/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.hpp +5 -5
  141. package/worker/include/RTC/SCTP/packet/errorCauses/UnknownErrorCause.hpp +2 -2
  142. package/worker/include/RTC/SCTP/packet/errorCauses/UnrecognizedChunkTypeErrorCause.hpp +4 -4
  143. package/worker/include/RTC/SCTP/packet/errorCauses/UnrecognizedParametersErrorCause.hpp +4 -4
  144. package/worker/include/RTC/SCTP/packet/errorCauses/UnresolvableAddressErrorCause.hpp +4 -4
  145. package/worker/include/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.hpp +4 -4
  146. package/worker/include/RTC/SCTP/packet/parameters/AddIncomingStreamsRequestParameter.hpp +5 -5
  147. package/worker/include/RTC/SCTP/packet/parameters/AddOutgoingStreamsRequestParameter.hpp +5 -5
  148. package/worker/include/RTC/SCTP/packet/parameters/CookiePreservativeParameter.hpp +5 -5
  149. package/worker/include/RTC/SCTP/packet/parameters/ForwardTsnSupportedParameter.hpp +4 -4
  150. package/worker/include/RTC/SCTP/packet/parameters/HeartbeatInfoParameter.hpp +3 -3
  151. package/worker/include/RTC/SCTP/packet/parameters/IPv4AddressParameter.hpp +4 -4
  152. package/worker/include/RTC/SCTP/packet/parameters/IPv6AddressParameter.hpp +5 -5
  153. package/worker/include/RTC/SCTP/packet/parameters/IncomingSsnResetRequestParameter.hpp +5 -5
  154. package/worker/include/RTC/SCTP/packet/parameters/OutgoingSsnResetRequestParameter.hpp +5 -5
  155. package/worker/include/RTC/SCTP/packet/parameters/ReconfigurationResponseParameter.hpp +7 -7
  156. package/worker/include/RTC/SCTP/packet/parameters/SsnTsnResetRequestParameter.hpp +5 -5
  157. package/worker/include/RTC/SCTP/packet/parameters/StateCookieParameter.hpp +5 -5
  158. package/worker/include/RTC/SCTP/packet/parameters/SupportedAddressTypesParameter.hpp +4 -4
  159. package/worker/include/RTC/SCTP/packet/parameters/SupportedExtensionsParameter.hpp +4 -4
  160. package/worker/include/RTC/SCTP/packet/parameters/UnknownParameter.hpp +2 -2
  161. package/worker/include/RTC/SCTP/packet/parameters/UnrecognizedParameterParameter.hpp +4 -4
  162. package/worker/include/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.hpp +7 -7
  163. package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +7 -7
  164. package/worker/include/RTC/SCTP/public/AssociationListenerInterface.hpp +26 -26
  165. package/worker/include/RTC/SCTP/public/AssociationMetrics.hpp +7 -7
  166. package/worker/include/RTC/SCTP/public/Message.hpp +1 -1
  167. package/worker/include/RTC/SCTP/public/SctpOptions.hpp +4 -4
  168. package/worker/include/RTC/SCTP/public/SctpTypes.hpp +10 -10
  169. package/worker/include/RTC/SCTP/rx/DataTracker.hpp +1 -1
  170. package/worker/include/RTC/SCTP/rx/ReassemblyStreamsInterface.hpp +1 -1
  171. package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +39 -39
  172. package/worker/include/RTC/SCTP/tx/RetransmissionErrorCounter.hpp +1 -1
  173. package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +14 -14
  174. package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +1 -1
  175. package/worker/include/RTC/SctpListener.hpp +2 -2
  176. package/worker/include/RTC/SimulcastConsumer.hpp +2 -1
  177. package/worker/include/RTC/TcpServer.hpp +3 -2
  178. package/worker/include/RTC/Transport.hpp +8 -8
  179. package/worker/include/RTC/UdpSocket.hpp +3 -2
  180. package/worker/include/RTC/WebRtcServer.hpp +4 -5
  181. package/worker/include/RTC/WebRtcTransport.hpp +2 -2
  182. package/worker/include/Settings.hpp +3 -3
  183. package/worker/include/Worker.hpp +3 -3
  184. package/worker/include/handles/TcpServerHandle.hpp +2 -2
  185. package/worker/meson.build +9 -4
  186. package/worker/mocks/include/Channel/MockChannelMessageRegistrator.hpp +4 -3
  187. package/worker/src/Channel/ChannelNotification.cpp +5 -4
  188. package/worker/src/Channel/ChannelRequest.cpp +9 -6
  189. package/worker/src/DepLibSRTP.cpp +1 -1
  190. package/worker/src/RTC/AudioLevelObserver.cpp +2 -2
  191. package/worker/src/RTC/DataConsumer.cpp +13 -3
  192. package/worker/src/RTC/DataProducer.cpp +1 -1
  193. package/worker/src/RTC/DtlsTransport.cpp +3 -3
  194. package/worker/src/RTC/ICE/IceServer.cpp +1 -1
  195. package/worker/src/RTC/ICE/StunPacket.cpp +77 -77
  196. package/worker/src/RTC/PipeTransport.cpp +5 -4
  197. package/worker/src/RTC/PlainTransport.cpp +9 -8
  198. package/worker/src/RTC/PortManager.cpp +174 -114
  199. package/worker/src/RTC/Producer.cpp +0 -1
  200. package/worker/src/RTC/RTCP/Feedback.cpp +6 -6
  201. package/worker/src/RTC/RTCP/FeedbackPs.cpp +1 -1
  202. package/worker/src/RTC/RTCP/FeedbackPsAfb.cpp +1 -1
  203. package/worker/src/RTC/RTCP/FeedbackPsPli.cpp +1 -1
  204. package/worker/src/RTC/RTCP/FeedbackPsRemb.cpp +2 -2
  205. package/worker/src/RTC/RTCP/FeedbackRtp.cpp +1 -1
  206. package/worker/src/RTC/RTCP/FeedbackRtpSrReq.cpp +1 -1
  207. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +2 -2
  208. package/worker/src/RTC/RTCP/Packet.cpp +2 -2
  209. package/worker/src/RTC/RTCP/Sdes.cpp +1 -1
  210. package/worker/src/RTC/RTP/Codecs/DependencyDescriptor.cpp +2 -1
  211. package/worker/src/RTC/RTP/Packet.cpp +68 -68
  212. package/worker/src/RTC/RTP/ProbationGenerator.cpp +3 -3
  213. package/worker/src/RTC/RTP/RtpStreamRecv.cpp +3 -3
  214. package/worker/src/RTC/RTP/RtxStream.cpp +2 -2
  215. package/worker/src/RTC/RTP/SharedPacket.cpp +4 -4
  216. package/worker/src/RTC/Router.cpp +5 -5
  217. package/worker/src/RTC/RtcLogger.cpp +1 -1
  218. package/worker/src/RTC/RtpDictionaries/RtpCodecMimeType.cpp +4 -4
  219. package/worker/src/RTC/RtpDictionaries/RtpParameters.cpp +2 -3
  220. package/worker/src/RTC/SCTP/association/Association.cpp +100 -97
  221. package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +6 -6
  222. package/worker/src/RTC/SCTP/association/NegotiatedCapabilities.cpp +3 -3
  223. package/worker/src/RTC/SCTP/association/PacketSender.cpp +1 -1
  224. package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +2 -2
  225. package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +5 -5
  226. package/worker/src/RTC/SCTP/packet/Chunk.cpp +52 -52
  227. package/worker/src/RTC/SCTP/packet/ErrorCause.cpp +14 -14
  228. package/worker/src/RTC/SCTP/packet/Packet.cpp +17 -17
  229. package/worker/src/RTC/SCTP/packet/Parameter.cpp +17 -17
  230. package/worker/src/RTC/SCTP/packet/TLV.cpp +8 -8
  231. package/worker/src/RTC/SCTP/packet/chunks/AbortAssociationChunk.cpp +3 -3
  232. package/worker/src/RTC/SCTP/packet/chunks/CookieAckChunk.cpp +2 -2
  233. package/worker/src/RTC/SCTP/packet/chunks/CookieEchoChunk.cpp +1 -1
  234. package/worker/src/RTC/SCTP/packet/chunks/DataChunk.cpp +2 -2
  235. package/worker/src/RTC/SCTP/packet/chunks/ForwardTsnChunk.cpp +2 -2
  236. package/worker/src/RTC/SCTP/packet/chunks/HeartbeatAckChunk.cpp +3 -3
  237. package/worker/src/RTC/SCTP/packet/chunks/HeartbeatRequestChunk.cpp +3 -3
  238. package/worker/src/RTC/SCTP/packet/chunks/IDataChunk.cpp +2 -2
  239. package/worker/src/RTC/SCTP/packet/chunks/IForwardTsnChunk.cpp +2 -2
  240. package/worker/src/RTC/SCTP/packet/chunks/InitAckChunk.cpp +4 -4
  241. package/worker/src/RTC/SCTP/packet/chunks/InitChunk.cpp +4 -4
  242. package/worker/src/RTC/SCTP/packet/chunks/OperationErrorChunk.cpp +3 -3
  243. package/worker/src/RTC/SCTP/packet/chunks/ReConfigChunk.cpp +3 -3
  244. package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +3 -3
  245. package/worker/src/RTC/SCTP/packet/chunks/ShutdownAckChunk.cpp +2 -2
  246. package/worker/src/RTC/SCTP/packet/chunks/ShutdownChunk.cpp +2 -2
  247. package/worker/src/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.cpp +2 -2
  248. package/worker/src/RTC/SCTP/packet/errorCauses/CookieReceivedWhileShuttingDownErrorCause.cpp +2 -2
  249. package/worker/src/RTC/SCTP/packet/errorCauses/InvalidMandatoryParameterErrorCause.cpp +2 -2
  250. package/worker/src/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.cpp +2 -2
  251. package/worker/src/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.cpp +4 -4
  252. package/worker/src/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.cpp +2 -2
  253. package/worker/src/RTC/SCTP/packet/errorCauses/OutOfResourceErrorCause.cpp +2 -2
  254. package/worker/src/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.cpp +1 -1
  255. package/worker/src/RTC/SCTP/packet/errorCauses/RestartOfAnAssociationWithNewAddressesErrorCause.cpp +1 -1
  256. package/worker/src/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.cpp +2 -2
  257. package/worker/src/RTC/SCTP/packet/errorCauses/UnrecognizedChunkTypeErrorCause.cpp +1 -1
  258. package/worker/src/RTC/SCTP/packet/errorCauses/UnrecognizedParametersErrorCause.cpp +1 -1
  259. package/worker/src/RTC/SCTP/packet/errorCauses/UnresolvableAddressErrorCause.cpp +1 -1
  260. package/worker/src/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.cpp +1 -1
  261. package/worker/src/RTC/SCTP/packet/parameters/AddIncomingStreamsRequestParameter.cpp +2 -2
  262. package/worker/src/RTC/SCTP/packet/parameters/AddOutgoingStreamsRequestParameter.cpp +2 -2
  263. package/worker/src/RTC/SCTP/packet/parameters/CookiePreservativeParameter.cpp +2 -2
  264. package/worker/src/RTC/SCTP/packet/parameters/ForwardTsnSupportedParameter.cpp +2 -2
  265. package/worker/src/RTC/SCTP/packet/parameters/HeartbeatInfoParameter.cpp +1 -1
  266. package/worker/src/RTC/SCTP/packet/parameters/IPv4AddressParameter.cpp +2 -2
  267. package/worker/src/RTC/SCTP/packet/parameters/IPv6AddressParameter.cpp +2 -2
  268. package/worker/src/RTC/SCTP/packet/parameters/IncomingSsnResetRequestParameter.cpp +2 -2
  269. package/worker/src/RTC/SCTP/packet/parameters/OutgoingSsnResetRequestParameter.cpp +2 -2
  270. package/worker/src/RTC/SCTP/packet/parameters/ReconfigurationResponseParameter.cpp +3 -3
  271. package/worker/src/RTC/SCTP/packet/parameters/SsnTsnResetRequestParameter.cpp +2 -2
  272. package/worker/src/RTC/SCTP/packet/parameters/StateCookieParameter.cpp +3 -3
  273. package/worker/src/RTC/SCTP/packet/parameters/SupportedAddressTypesParameter.cpp +3 -3
  274. package/worker/src/RTC/SCTP/packet/parameters/SupportedExtensionsParameter.cpp +1 -1
  275. package/worker/src/RTC/SCTP/packet/parameters/UnrecognizedParameterParameter.cpp +1 -1
  276. package/worker/src/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.cpp +3 -3
  277. package/worker/src/RTC/SCTP/rx/InterleavedReassemblyStreams.cpp +1 -0
  278. package/worker/src/RTC/SCTP/rx/TraditionalReassemblyStreams.cpp +1 -0
  279. package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +8 -8
  280. package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +1 -1
  281. package/worker/src/RTC/SvcConsumer.cpp +6 -2
  282. package/worker/src/RTC/TcpServer.cpp +4 -4
  283. package/worker/src/RTC/Transport.cpp +42 -19
  284. package/worker/src/RTC/UdpSocket.cpp +4 -4
  285. package/worker/src/RTC/WebRtcServer.cpp +8 -8
  286. package/worker/src/RTC/WebRtcTransport.cpp +9 -8
  287. package/worker/src/Settings.cpp +2 -2
  288. package/worker/src/lib.cpp +1 -2
  289. package/worker/subprojects/packagefiles/ankerl-unordered-dense/meson.build +5 -0
  290. package/worker/subprojects/unordered-dense.wrap +9 -0
  291. package/worker/tasks.py +293 -196
  292. package/worker/test/src/RTC/ICE/TestStunPacket.cpp +22 -22
  293. package/worker/test/src/RTC/ICE/iceCommon.cpp +1 -1
  294. package/worker/test/src/RTC/RTCP/TestFeedbackRtpEcn.cpp +8 -8
  295. package/worker/test/src/RTC/RTCP/TestFeedbackRtpNack.cpp +1 -1
  296. package/worker/test/src/RTC/RTCP/TestFeedbackRtpSrReq.cpp +1 -1
  297. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTllei.cpp +1 -1
  298. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTmmb.cpp +1 -1
  299. package/worker/test/src/RTC/RTCP/TestSenderReport.cpp +1 -1
  300. package/worker/test/src/RTC/RTP/TestPacket.cpp +26 -26
  301. package/worker/test/src/RTC/RTP/TestSharedPacket.cpp +1 -1
  302. package/worker/test/src/RTC/RTP/rtpCommon.cpp +1 -1
  303. package/worker/test/src/RTC/SCTP/association/TestNegotiatedCapabilities.cpp +4 -4
  304. package/worker/test/src/RTC/SCTP/packet/TestPacket.cpp +14 -14
  305. package/worker/test/src/RTC/SCTP/packet/chunks/TestAbortAssociationChunk.cpp +4 -4
  306. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieAckChunk.cpp +1 -1
  307. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieEchoChunk.cpp +1 -1
  308. package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +3 -3
  309. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatAckChunk.cpp +3 -3
  310. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatRequestChunk.cpp +9 -9
  311. package/worker/test/src/RTC/SCTP/packet/chunks/TestIDataChunk.cpp +2 -2
  312. package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +3 -3
  313. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitAckChunk.cpp +3 -3
  314. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +8 -8
  315. package/worker/test/src/RTC/SCTP/packet/chunks/TestOperationErrorChunk.cpp +7 -7
  316. package/worker/test/src/RTC/SCTP/packet/chunks/TestReConfigChunk.cpp +6 -6
  317. package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +2 -2
  318. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownAckChunk.cpp +1 -1
  319. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownCompleteChunk.cpp +1 -1
  320. package/worker/test/src/RTC/SCTP/packet/chunks/TestUnknownChunk.cpp +2 -2
  321. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestCookieReceivedWhileShuttingDownErrorCause.cpp +1 -1
  322. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidMandatoryParameterErrorCause.cpp +1 -1
  323. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidStreamIdentifierErrorCause.cpp +6 -6
  324. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestMissingMandatoryParameterErrorCause.cpp +11 -11
  325. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestNoUserDataErrorCause.cpp +6 -6
  326. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestOutOfResourceErrorCause.cpp +5 -5
  327. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestProtocolViolationErrorCause.cpp +2 -2
  328. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestRestartOfAnAssociationWithNewAddressesErrorCause.cpp +2 -2
  329. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestStaleCookieErrorCause.cpp +6 -6
  330. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnknownErrorCause.cpp +1 -1
  331. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedChunkTypeErrorCause.cpp +2 -2
  332. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedParametersErrorCause.cpp +1 -1
  333. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnresolvableAddressErrorCause.cpp +2 -2
  334. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUserInitiatedAbortErrorCause.cpp +2 -2
  335. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddIncomingStreamsRequestParameter.cpp +1 -1
  336. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddOutgoingStreamsRequestParameter.cpp +1 -1
  337. package/worker/test/src/RTC/SCTP/packet/parameters/TestCookiePreservativeParameter.cpp +7 -7
  338. package/worker/test/src/RTC/SCTP/packet/parameters/TestForwardTsnSupportedParameter.cpp +1 -1
  339. package/worker/test/src/RTC/SCTP/packet/parameters/TestHeartbeatInfoParameter.cpp +2 -2
  340. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv4AddressParameter.cpp +7 -7
  341. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +7 -7
  342. package/worker/test/src/RTC/SCTP/packet/parameters/TestIncomingSsnResetRequestParameter.cpp +2 -2
  343. package/worker/test/src/RTC/SCTP/packet/parameters/TestOutgoingSsnResetRequestParameter.cpp +2 -2
  344. package/worker/test/src/RTC/SCTP/packet/parameters/TestReconfigurationResponseParameter.cpp +5 -5
  345. package/worker/test/src/RTC/SCTP/packet/parameters/TestSsnTsnResetRequestParameter.cpp +1 -1
  346. package/worker/test/src/RTC/SCTP/packet/parameters/TestStateCookieParameter.cpp +1 -1
  347. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedAddressTypesParameter.cpp +6 -6
  348. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedExtensionsParameter.cpp +3 -3
  349. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnknownParameter.cpp +1 -1
  350. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnrecognizedParameterParameter.cpp +1 -1
  351. package/worker/test/src/RTC/SCTP/packet/parameters/TestZeroChecksumAcceptableParameter.cpp +1 -1
  352. package/worker/test/src/RTC/SCTP/sctpCommon.cpp +1 -1
  353. package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +3 -3
  354. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +1 -1
  355. package/worker/test/src/RTC/TestNackGenerator.cpp +1 -1
  356. package/worker/test/src/RTC/TestPortManager.cpp +126 -0
  357. package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +2 -2
  358. package/worker/test/src/RTC/TestTransportTuple.cpp +3 -2
  359. package/worker/test/src/Utils/TestCrypto.cpp +3 -3
  360. package/worker/test/src/Utils/TestString.cpp +1 -1
@@ -15,7 +15,7 @@ namespace RTC
15
15
  struct AssociationMetrics
16
16
  {
17
17
  /**
18
- * Number of SCTP Packets sent.
18
+ * Number of SCTP packets sent.
19
19
  */
20
20
  uint64_t txPacketsCount{ 0 };
21
21
 
@@ -25,7 +25,7 @@ namespace RTC
25
25
  uint64_t txMessagesCount{ 0 };
26
26
 
27
27
  /**
28
- * Number of SCTP Packets received.
28
+ * Number of SCTP packets received.
29
29
  */
30
30
  uint64_t rxPacketsCount{ 0 };
31
31
 
@@ -35,10 +35,10 @@ namespace RTC
35
35
  uint64_t rxMessagesCount{ 0 };
36
36
 
37
37
  /**
38
- * Number of Packets retransmitted. Since SCTP Packets can contain both
39
- * retransmitted DATA or I-DATA Chunks and Chunks that are transmitted for
38
+ * Number of packets retransmitted. Since SCTP packets can contain both
39
+ * retransmitted DATA or I-DATA chunks and chunks that are transmitted for
40
40
  * the first time, this represents an upper bound as it's incremented
41
- * every time a Packet contains a retransmitted DATA or I-DATA chunk.
41
+ * every time a packet contains a retransmitted DATA or I-DATA chunk.
42
42
  */
43
43
  uint64_t rtxPacketsCount{ 0 };
44
44
 
@@ -76,7 +76,7 @@ namespace RTC
76
76
 
77
77
  /**
78
78
  * SCTP implementation of the peer. Only detected when the peer sends an
79
- * INIT_ACK Chunk to us with a State Cookie.
79
+ * INIT-ACK chunk to us with a State Cookie.
80
80
  */
81
81
  Types::SctpImplementation peerImplementation{ Types::SctpImplementation::UNKNOWN };
82
82
 
@@ -102,7 +102,7 @@ namespace RTC
102
102
  bool usesPartialReliability{ false };
103
103
 
104
104
  /**
105
- * Whether Stream Schedulers and User Message Interleaving (I-DATA Chunks)
105
+ * Whether Stream Schedulers and User Message Interleaving (I-DATA chunks)
106
106
  * have been negotiated.
107
107
  *
108
108
  * @see RFC 8260.
@@ -70,7 +70,7 @@ namespace RTC
70
70
 
71
71
  /**
72
72
  * Useful to extract the payload and its ownership when destructing the
73
- * Message.
73
+ * message.
74
74
  *
75
75
  * @remarks
76
76
  * - && at the end means that it can only be called from a rvalue.
@@ -41,7 +41,7 @@ namespace RTC
41
41
  uint16_t announcedMaxInboundStreams{ 65535 };
42
42
 
43
43
  /**
44
- * Maximum size of an SCTP Packet. It doesn't include any overhead of
44
+ * Maximum size of an SCTP packet. It doesn't include any overhead of
45
45
  * DTLS, TURN, UDP or IP headers.
46
46
  */
47
47
  size_t mtu{ RTC::Consts::MaxSafeMtuSizeForSctp };
@@ -147,7 +147,7 @@ namespace RTC
147
147
 
148
148
  /**
149
149
  * The maximum time when a SACK will be sent from the arrival of an
150
- * unacknowledged Packet. Whatever is smallest of RTO/2 and this will be
150
+ * unacknowledged packet. Whatever is smallest of RTO/2 and this will be
151
151
  * used.
152
152
  */
153
153
  uint64_t delayedAckMaxTimeoutMs{ 200 };
@@ -220,7 +220,7 @@ namespace RTC
220
220
  size_t maxBurst{ 4 };
221
221
 
222
222
  /**
223
- * Maximum data retransmit attempts (for DATA, I_DATA and other Chunks).
223
+ * Maximum data retransmit attempts (for DATA, I-DATA and other chunks).
224
224
  * Set to std::nullopt for no limit.
225
225
  */
226
226
  std::optional<uint16_t> maxRetransmissions{ 10 };
@@ -240,7 +240,7 @@ namespace RTC
240
240
  bool enablePartialReliability{ true };
241
241
 
242
242
  /**
243
- * Enable Stream Schedulers and User Message Interleaving (I-DATA Chunks).
243
+ * Enable Stream Schedulers and User Message Interleaving (I-DATA chunks).
244
244
  *
245
245
  * @see RFC 8260.
246
246
  */
@@ -25,25 +25,25 @@ namespace RTC
25
25
  */
26
26
  NEW,
27
27
  /**
28
- * The Association is closed.
28
+ * The association is closed.
29
29
  */
30
30
  CLOSED,
31
31
  /**
32
- * The Association has initiated a connection, which is not yet
32
+ * The association has initiated a connection, which is not yet
33
33
  * established.
34
34
  *
35
35
  * @remarks
36
- * - For incoming connections and for reconnections when the Association
37
- * is already connected, the Association will not transition to this
36
+ * - For incoming connections and for reconnections when the association
37
+ * is already connected, the association will not transition to this
38
38
  * state.
39
39
  */
40
40
  CONNECTING,
41
41
  /**
42
- * The Association is connected and the connection is established.
42
+ * The association is connected and the connection is established.
43
43
  */
44
44
  CONNECTED,
45
45
  /**
46
- * The Association is shutting down, and the connection is not yet closed.
46
+ * The association is shutting down, and the connection is not yet closed.
47
47
  */
48
48
  SHUTTING_DOWN
49
49
  };
@@ -98,7 +98,7 @@ namespace RTC
98
98
  TOO_MANY_RETRIES,
99
99
  /**
100
100
  * A command was received that is only possible to execute when the
101
- * Association is connected, which it is not.
101
+ * association is connected, which it is not.
102
102
  */
103
103
  NOT_CONNECTED,
104
104
  /**
@@ -166,7 +166,7 @@ namespace RTC
166
166
 
167
167
  case ErrorKind::PROTOCOL_VIOLATION:
168
168
  {
169
- return "PROTOCOL_VIOLATION";
169
+ return "PROTOCOL-VIOLATION";
170
170
  }
171
171
 
172
172
  case ErrorKind::RESOURCE_EXHAUSTION:
@@ -292,13 +292,13 @@ namespace RTC
292
292
  ERROR_MESSAGE_TOO_LARGE,
293
293
 
294
294
  /**
295
- * The message could not be enqueued as the Association is out of
295
+ * The message could not be enqueued as the association is out of
296
296
  * resources. This mainly indicates that the send queue is full.
297
297
  */
298
298
  ERROR_RESOURCE_EXHAUSTION,
299
299
 
300
300
  /**
301
- * The message could not be sent as the Association is shutting down.
301
+ * The message could not be sent as the association is shutting down.
302
302
  */
303
303
  ERROR_SHUTTING_DOWN
304
304
  };
@@ -246,7 +246,7 @@ namespace RTC
246
246
  bool WillIncreaseCumAckTsn(uint32_t tsn) const;
247
247
 
248
248
  /**
249
- * Adds a SACK chunk with selective ack to the given Packet.
249
+ * Adds a SACK chunk with selective ack to the given packet.
250
250
  *
251
251
  * @remarks
252
252
  * - It will clear `this->duplicates`, so every SACK chunk that is
@@ -73,7 +73,7 @@ namespace RTC
73
73
  /**
74
74
  * Called for incoming (possibly deferred) RE-CONFIG chunks asking for
75
75
  * either a few streams, or all streams (when the list is empty) to be
76
- * reset - to have their next SSN or Message ID to be zero.
76
+ * reset - to have their next SSN or message ID to be zero.
77
77
  */
78
78
  virtual void ResetStreams(std::span<const uint16_t> streamIds) = 0;
79
79
  };
@@ -38,26 +38,26 @@ namespace RTC
38
38
  enum class State : uint8_t
39
39
  {
40
40
  /**
41
- * The Chunk has been sent but not received yet (from the sender's point
42
- * of view, as no SACK has been received yet that reference this Chunk).
41
+ * The chunk has been sent but not received yet (from the sender's point
42
+ * of view, as no SACK has been received yet that reference this chunk).
43
43
  */
44
44
  IN_FLIGHT,
45
45
  /**
46
- * A SACK has been received which explicitly marked this Chunk as missing.
46
+ * A SACK has been received which explicitly marked this chunk as missing.
47
47
  * It's now NACKED and may be retransmitted if NACKED enough times.
48
48
  */
49
49
  NACKED,
50
50
  /**
51
- * A Chunk that will be retransmitted when possible.
51
+ * A chunk that will be retransmitted when possible.
52
52
  */
53
53
  TO_BE_RETRANSMITTED,
54
54
  /**
55
- * A SACK has been received which explicitly marked this Chunk as
55
+ * A SACK has been received which explicitly marked this chunk as
56
56
  * received.
57
57
  */
58
58
  ACKED,
59
59
  /**
60
- * A Chunk whose message has expired or has been retransmitted too many
60
+ * A chunk whose message has expired or has been retransmitted too many
61
61
  * times (RFC3758). It will not be retransmitted anymore.
62
62
  */
63
63
  ABANDONED,
@@ -128,16 +128,16 @@ namespace RTC
128
128
  enum class Lifecycle : uint8_t
129
129
  {
130
130
  /**
131
- * The Chunk is alive (sent, received, etc).
131
+ * The chunk is alive (sent, received, etc).
132
132
  */
133
133
  ACTIVE,
134
134
  /**
135
- * The Chunk is scheduled to be retransmitted, and will then
135
+ * The chunk is scheduled to be retransmitted, and will then
136
136
  * transition to become active.
137
137
  */
138
138
  TO_BE_RETRANSMITTED,
139
139
  /**
140
- * The Chunk has been abandoned. This is a terminal state.
140
+ * The chunk has been abandoned. This is a terminal state.
141
141
  */
142
142
  ABANDONED
143
143
  };
@@ -145,15 +145,15 @@ namespace RTC
145
145
  enum class AckState : uint8_t
146
146
  {
147
147
  /**
148
- * The Chunk is in-flight.
148
+ * The chunk is in-flight.
149
149
  */
150
150
  UNACKED,
151
151
  /**
152
- * The Chunk has been received and acknowledged.
152
+ * The chunk has been received and acknowledged.
153
153
  */
154
154
  ACKED,
155
155
  /**
156
- * The Chunk has been nacked and is possibly lost.
156
+ * The chunk has been nacked and is possibly lost.
157
157
  */
158
158
  NACKED
159
159
  };
@@ -232,7 +232,7 @@ namespace RTC
232
232
  }
233
233
 
234
234
  /**
235
- * Indicates if this Chunk should be retransmitted.
235
+ * Indicates if this chunk should be retransmitted.
236
236
  */
237
237
  bool ShouldBeRetransmitted() const
238
238
  {
@@ -240,7 +240,7 @@ namespace RTC
240
240
  }
241
241
 
242
242
  /**
243
- * Indicates if this Chunk has ever been retransmitted.
243
+ * Indicates if this chunk has ever been retransmitted.
244
244
  */
245
245
  bool HasBeenRetransmitted() const
246
246
  {
@@ -248,7 +248,7 @@ namespace RTC
248
248
  }
249
249
 
250
250
  /**
251
- * Given the current time, and the current state of this DATA Chunk, it
251
+ * Given the current time, and the current state of this DATA chunk, it
252
252
  * will indicate if it has expired (SCTP Partial Reliability Extension).
253
253
  */
254
254
  bool HasExpired(uint64_t nowMs) const
@@ -277,16 +277,16 @@ namespace RTC
277
277
  // An optional lifecycle id, which may only be set for the last
278
278
  // fragment.
279
279
  const std::optional<uint64_t> lifecycleId;
280
- // Indicates the life cycle status of this Chunk.
280
+ // Indicates the life cycle status of this chunk.
281
281
  Lifecycle lifecycle{ Lifecycle::ACTIVE };
282
- // Indicates the presence of this Chunk, if it's in flight (UNACKED),
282
+ // Indicates the presence of this chunk, if it's in flight (UNACKED),
283
283
  // has been received (ACKED) or is possibly lost (NACKED).
284
284
  AckState ackState{ AckState::UNACKED };
285
- // The number of times the DATA Chunk has been nacked (by having
285
+ // The number of times the DATA chunk has been nacked (by having
286
286
  // received a SACK which doesn't include it). Will be cleared on
287
287
  // retransmissions.
288
288
  uint8_t nackCount{ 0 };
289
- // The number of times the DATA Chunk has been retransmitted.
289
+ // The number of times the DATA chunk has been retransmitted.
290
290
  uint16_t numRetransmissions{ 0 };
291
291
  };
292
292
 
@@ -303,15 +303,15 @@ namespace RTC
303
303
  bool isInFastRecovery);
304
304
 
305
305
  /**
306
- * Returns as many of the Chunks that are eligible for fast retransmissions
306
+ * Returns as many of the chunks that are eligible for fast retransmissions
307
307
  * and that would fit in a single packet of `maxLength`. The eligible
308
- * Chunks that didn't fit will be marked for (normal) retransmission and
308
+ * chunks that didn't fit will be marked for (normal) retransmission and
309
309
  * will not be returned if this method is called again.
310
310
  */
311
311
  std::vector<std::pair<uint32_t /*tsn*/, UserData>> GetChunksToBeFastRetransmitted(size_t maxLength);
312
312
 
313
313
  /**
314
- * Given `maxLength` of space left in a packet, which Chunks can be added
314
+ * Given `maxLength` of space left in a packet, which chunks can be added
315
315
  * to it?
316
316
  */
317
317
  std::vector<std::pair<uint32_t /*tsn*/, UserData>> GetChunksToBeRetransmitted(size_t maxLength);
@@ -333,7 +333,7 @@ namespace RTC
333
333
  }
334
334
 
335
335
  /**
336
- * Returns the number of DATA Chunks that are in-flight (not acked or
336
+ * Returns the number of DATA chunks that are in-flight (not acked or
337
337
  * nacked).
338
338
  */
339
339
  size_t GetUnackedItems() const
@@ -343,7 +343,7 @@ namespace RTC
343
343
 
344
344
  /**
345
345
  * Given the current time `nowMs`, expire and abandon outstanding (sent
346
- * at least once) Chunks that have a limited lifetime.
346
+ * at least once) chunks that have a limited lifetime.
347
347
  */
348
348
  void ExpireOutstandingChunks(uint64_t nowMs);
349
349
 
@@ -393,25 +393,25 @@ namespace RTC
393
393
  void NackAll();
394
394
 
395
395
  /**
396
- * Adds a FORWARD-TSN Chunk to the given Packet and returns it.
396
+ * Adds a FORWARD-TSN chunk to the given packet and returns it.
397
397
  */
398
398
  const ForwardTsnChunk* AddForwardTsn(Packet* packet) const;
399
399
 
400
400
  /**
401
- * Adds an I-FORWARD-TSN Chunk to the given Packet and returns it.
401
+ * Adds an I-FORWARD-TSN chunk to the given packet and returns it.
402
402
  */
403
403
  const IForwardTsnChunk* AddIForwardTsn(Packet* packet) const;
404
404
 
405
405
  /**
406
406
  * Given the current time and a TSN, it returns the measured RTT between
407
- * when the Chunk was sent and now. It takes into acccount Karn's
408
- * algorithm, so if the Chunk has ever been retransmitted, it will return
407
+ * when the chunk was sent and now. It takes into acccount Karn's
408
+ * algorithm, so if the chunk has ever been retransmitted, it will return
409
409
  * `std::nullopt`.
410
410
  */
411
411
  std::optional<uint64_t> MeasureRtt(uint64_t nowMs, Types::UnwrappedTsn tsn) const;
412
412
 
413
413
  /**
414
- * Returns true if the next Chunk that is not acked by the peer has been
414
+ * Returns true if the next chunk that is not acked by the peer has been
415
415
  * abandoned, which means that a FORWARD-TSN should be sent.
416
416
  */
417
417
  bool ShouldSendForwardTsn() const;
@@ -424,7 +424,7 @@ namespace RTC
424
424
 
425
425
  #ifdef MS_TEST
426
426
  /**
427
- * Returns the internal state of all queued Chunks.
427
+ * Returns the internal state of all queued chunks.
428
428
  *
429
429
  * @remarks
430
430
  * - Used in tests.
@@ -434,7 +434,7 @@ namespace RTC
434
434
 
435
435
  private:
436
436
  /**
437
- * Returns how large a Chunk will be, serialized, carrying the data.
437
+ * Returns how large a chunk will be, serialized, carrying the data.
438
438
  */
439
439
  size_t GetSerializedChunkLength(const UserData& data) const;
440
440
 
@@ -450,7 +450,7 @@ namespace RTC
450
450
  void RemoveAcked(Types::UnwrappedTsn cumulativeTsnAck, AckInfo& ackInfo);
451
451
 
452
452
  /**
453
- * Will mark the Chunks covered by the `gapAckBlocks` from an incoming
453
+ * Will mark the chunks covered by the `gapAckBlocks` from an incoming
454
454
  * SACK as "acked" and update `ackInfo` by adding new TSNs to
455
455
  * `this->cumulativeTsnAck`.
456
456
  */
@@ -460,7 +460,7 @@ namespace RTC
460
460
  AckInfo& ackInfo);
461
461
 
462
462
  /**
463
- * Mark Chunks reported as "missing", as "nacked" or "to be retransmitted"
463
+ * Mark chunks reported as "missing", as "nacked" or "to be retransmitted"
464
464
  * depending how many times this has happened. Only packets up until
465
465
  * `ackInfo.highestTsnAcked` (highest TSN newly acknowledged) are
466
466
  * nacked/retransmitted. The method will set `ackInfo.hasPacketLoss`.
@@ -473,7 +473,7 @@ namespace RTC
473
473
  AckInfo& ackInfo);
474
474
 
475
475
  /**
476
- * Process the acknowledgement of the Chunk referenced by `item` and
476
+ * Process the acknowledgement of the chunk referenced by `item` and
477
477
  * updates state in `ackInfo` and the object's state.
478
478
  */
479
479
  void AckChunk(AckInfo& ackInfo, Types::UnwrappedTsn tsn, Item& item);
@@ -498,7 +498,7 @@ namespace RTC
498
498
  /**
499
499
  * Given that a message fragment, `item` has been abandoned, abandon all
500
500
  * other fragments that share the same message - both never-before-sent
501
- * fragments that are still in the SendQueue and outstanding Chunks.
501
+ * fragments that are still in the SendQueue and outstanding chunks.
502
502
  */
503
503
  void AbandonAllFor(const OutstandingData::Item& item);
504
504
 
@@ -508,7 +508,7 @@ namespace RTC
508
508
  void AssertIsConsistent() const;
509
509
 
510
510
  private:
511
- // The size of the data Chunk (DATA/I-DATA) header that is used.
511
+ // The size of the data chunk (DATA/I-DATA) header that is used.
512
512
  const size_t dataChunkHeaderLength;
513
513
  // The last cumulative TSN ack number.
514
514
  Types::UnwrappedTsn lastCumulativeTsnAck;
@@ -524,12 +524,12 @@ namespace RTC
524
524
  // The number of bytes that are in-flight, as sent on the wire (as
525
525
  // packets).
526
526
  size_t unackedPacketBytes{ 0 };
527
- // The number of DATA Chunks that are in-flight (sent but not yet acked
527
+ // The number of DATA chunks that are in-flight (sent but not yet acked
528
528
  // or nacked).
529
529
  size_t unackedItems{ 0 };
530
- // Data Chunks that are eligible for fast retransmission.
530
+ // Data chunks that are eligible for fast retransmission.
531
531
  std::set<Types::UnwrappedTsn> toBeFastRetransmitted;
532
- // Data Chunks that are to be retransmitted.
532
+ // Data chunks that are to be retransmitted.
533
533
  std::set<Types::UnwrappedTsn> toBeRetransmitted;
534
534
  // Wben a stream reset has begun, the "next TSN to assign" is added to
535
535
  // this set, and removed when the cum-ack TSN reaches it. This is used
@@ -11,7 +11,7 @@ namespace RTC
11
11
  {
12
12
  /**
13
13
  * The RetransmissionErrorCounter is a simple counter with a limit, and when
14
- * the limit is exceeded, the counter is exhausted and the Association will
14
+ * the limit is exceeded, the counter is exhausted and the association will
15
15
  * be closed. It's incremented on retransmission errors, such as the T3-RTX
16
16
  * timer expiring, but also missing heartbeats and stream reset requests.
17
17
  */
@@ -90,23 +90,23 @@ namespace RTC
90
90
  }
91
91
 
92
92
  /**
93
- * Returns a list of Chunks to "fast retransmit" that would fit in
93
+ * Returns a list of chunks to "fast retransmit" that would fit in
94
94
  * `maxLength` (bytes). The current value of `cwnd` is ignored.
95
95
  */
96
96
  std::vector<std::pair<uint32_t /*tsn*/, UserData>> GetChunksForFastRetransmit(size_t maxLength);
97
97
 
98
98
  /**
99
- * Returns a list of Chunks to send that would fit in `maxLength`
99
+ * Returns a list of chunks to send that would fit in `maxLength`
100
100
  * (bytes). This may be further limited by the congestion control windows.
101
101
  * Note that `ShouldSendForwardTsn()` must be called prior to this method,
102
- * to abandon expired Chunks, as this method will not expire any Chunks.
102
+ * to abandon expired chunks, as this method will not expire any chunks.
103
103
  */
104
104
  std::vector<std::pair<uint32_t /*tsn*/, UserData>> GetChunksToSend(
105
105
  uint64_t nowMs, size_t maxLength);
106
106
 
107
107
  #ifdef MS_TEST
108
108
  /**
109
- * Returns the internal state of all queued Chunks.
109
+ * Returns the internal state of all queued chunks.
110
110
  *
111
111
  * @remarks
112
112
  * - Used in tests.
@@ -118,7 +118,7 @@ namespace RTC
118
118
  #endif
119
119
 
120
120
  /**
121
- * Returns the next TSN that will be allocated for sent DATA Chunks.
121
+ * Returns the next TSN that will be allocated for sent DATA chunks.
122
122
  */
123
123
  uint32_t GetNextTsn() const
124
124
  {
@@ -182,14 +182,14 @@ namespace RTC
182
182
  }
183
183
 
184
184
  /**
185
- * Given the current time `nowMs`, it will evaluate if there are Chunks
185
+ * Given the current time `nowMs`, it will evaluate if there are chunks
186
186
  * that have expired and that need to be discarded. It returns true if a
187
187
  * FORWARD-TSN should be sent.
188
188
  */
189
189
  bool ShouldSendForwardTsn(uint64_t nowMs);
190
190
 
191
191
  /**
192
- * Adds a FORWARD-TSN Chunk to the given Packet and returns it.
192
+ * Adds a FORWARD-TSN chunk to the given packet and returns it.
193
193
  */
194
194
  const ForwardTsnChunk* AddForwardTsn(Packet* packet) const
195
195
  {
@@ -197,7 +197,7 @@ namespace RTC
197
197
  }
198
198
 
199
199
  /**
200
- * Adds an I-FORWARD-TSN Chunk to the given Packet and returns it.
200
+ * Adds an I-FORWARD-TSN chunk to the given packet and returns it.
201
201
  */
202
202
  const IForwardTsnChunk* AddIForwardTsn(Packet* packet) const
203
203
  {
@@ -229,7 +229,7 @@ namespace RTC
229
229
  }
230
230
 
231
231
  /**
232
- * Indicates if the provided SACK Chunk is valid given what has previously
232
+ * Indicates if the provided SACK chunk is valid given what has previously
233
233
  * been received. If it returns false, the SACK is most likely a duplicate
234
234
  * of something already seen, so this returning false doesn't necessarily
235
235
  * mean that the SACK is illegal.
@@ -237,7 +237,7 @@ namespace RTC
237
237
  bool IsSackChunkValid(const SackChunk* sackChunk) const;
238
238
 
239
239
  /**
240
- * When a SACK Chunk is received, this method will be called which may
240
+ * When a SACK chunk is received, this method will be called which may
241
241
  * call into the `RetransmissionTimeout` to update the RTO.
242
242
  */
243
243
  void UpdateRttMs(uint64_t nowMs, Types::UnwrappedTsn cumulativeTsnAck);
@@ -249,7 +249,7 @@ namespace RTC
249
249
  void MayExitFastRecovery(Types::UnwrappedTsn cumulativeTsnAck);
250
250
 
251
251
  /**
252
- * If Chunks have been ACKed, stop the retransmission timer.
252
+ * If chunks have been ACKed, stop the retransmission timer.
253
253
  *
254
254
  * @remarks
255
255
  * - This method is NOT defined in dcsctp! See bug report:
@@ -259,13 +259,13 @@ namespace RTC
259
259
 
260
260
  /**
261
261
  * Update the congestion control algorithm given as the cumulative ack TSN
262
- * value has increased, as reported in an incoming SACK Chunk.
262
+ * value has increased, as reported in an incoming SACK chunk.
263
263
  */
264
264
  void HandleIncreasedCumulativeTsnAck(size_t unackedPacketBytes, size_t totalBytesAcked);
265
265
 
266
266
  /**
267
267
  * Update the congestion control algorithm, given as packet loss has been
268
- * detected, as reported in an incoming SACK Chunk.
268
+ * detected, as reported in an incoming SACK chunk.
269
269
  */
270
270
  void HandlePacketLoss(Types::UnwrappedTsn highestTsnAcked);
271
271
 
@@ -318,7 +318,7 @@ namespace RTC
318
318
  std::optional<Types::UnwrappedTsn> fastRecoveryExitTsn{ std::nullopt };
319
319
  // The send queue.
320
320
  SendQueueInterface& sendQueue;
321
- // All the outstanding data Chunks that are in-flight and that have not
321
+ // All the outstanding data chunks that are in-flight and that have not
322
322
  // been cumulative acked. Note that it also contains chunks that have been
323
323
  // acked in gap-ack-blocks.
324
324
  OutstandingData outstandingData;
@@ -243,7 +243,7 @@ namespace RTC
243
243
  // been fragmented.
244
244
  size_t remainingOffset{ 0 };
245
245
  size_t remainingLength;
246
- // If set, an allocated Message ID and SSN. Will be allocated when the
246
+ // If set, an allocated message ID and SSN. Will be allocated when the
247
247
  // first fragment is sent.
248
248
  std::optional<uint32_t> mid{ std::nullopt };
249
249
  std::optional<uint16_t> ssn{ std::nullopt };
@@ -3,7 +3,7 @@
3
3
 
4
4
  #include "common.hpp"
5
5
  #include "RTC/DataProducer.hpp"
6
- #include <unordered_map>
6
+ #include <ankerl/unordered_dense.h>
7
7
 
8
8
  namespace RTC
9
9
  {
@@ -18,7 +18,7 @@ namespace RTC
18
18
 
19
19
  public:
20
20
  // Table of streamId / DataProducer pairs.
21
- std::unordered_map<uint16_t, RTC::DataProducer*> streamIdTable;
21
+ ankerl::unordered_dense::map<uint16_t, RTC::DataProducer*> streamIdTable;
22
22
  };
23
23
  } // namespace RTC
24
24
 
@@ -4,6 +4,7 @@
4
4
  #include "RTC/Consumer.hpp"
5
5
  #include "RTC/RTP/Codecs/PayloadDescriptorHandler.hpp"
6
6
  #include "RTC/SeqManager.hpp"
7
+ #include <ankerl/unordered_dense.h>
7
8
  #include <map>
8
9
 
9
10
  namespace RTC
@@ -111,7 +112,7 @@ namespace RTC
111
112
  // Allocated by this.
112
113
  RTC::RTP::RtpStreamSend* rtpStream{ nullptr };
113
114
  // Others.
114
- absl::flat_hash_map<uint32_t, int16_t> mapMappedSsrcSpatialLayer;
115
+ ankerl::unordered_dense::map<uint32_t, int16_t> mapMappedSsrcSpatialLayer;
115
116
  std::vector<RTC::RTP::RtpStreamSend*> rtpStreams;
116
117
  std::vector<RTC::RTP::RtpStreamRecv*> producerRtpStreams; // Indexed by spatial layer.
117
118
  bool syncRequired{ false };
@@ -4,6 +4,7 @@
4
4
  #include "common.hpp"
5
5
  #include "handles/TcpConnectionHandle.hpp"
6
6
  #include "handles/TcpServerHandle.hpp"
7
+ #include "RTC/PortManager.hpp"
7
8
  #include "RTC/TcpConnection.hpp"
8
9
  #include "RTC/Transport.hpp"
9
10
  #include <string>
@@ -37,7 +38,7 @@ namespace RTC
37
38
  uint16_t minPort,
38
39
  uint16_t maxPort,
39
40
  RTC::Transport::SocketFlags& flags,
40
- uint64_t& portRangeHash);
41
+ RTC::PortManager::PortRangeKey& portRangeKey);
41
42
  ~TcpServer() override;
42
43
 
43
44
  /* Pure virtual methods inherited from ::TcpServerHandle. */
@@ -50,7 +51,7 @@ namespace RTC
50
51
  Listener* listener{ nullptr };
51
52
  RTC::TcpConnection::Listener* connListener{ nullptr };
52
53
  bool fixedPort{ false };
53
- uint64_t portRangeHash{ 0u };
54
+ RTC::PortManager::PortRangeKey portRangeKey{};
54
55
  };
55
56
  } // namespace RTC
56
57
 
@@ -30,7 +30,7 @@
30
30
  #include "handles/TimerHandleInterface.hpp"
31
31
  #include "RTC/TransportCongestionControlClient.hpp"
32
32
  #include "RTC/TransportCongestionControlServer.hpp"
33
- #include <absl/container/flat_hash_map.h>
33
+ #include <ankerl/unordered_dense.h>
34
34
  #include <string>
35
35
  #include <vector>
36
36
 
@@ -338,13 +338,13 @@ namespace RTC
338
338
  // Passed by argument.
339
339
  Listener* listener{ nullptr };
340
340
  // Allocated by this.
341
- absl::flat_hash_map<std::string, RTC::Producer*> mapProducers;
342
- absl::flat_hash_map<std::string, RTC::Consumer*> mapConsumers;
343
- absl::flat_hash_map<std::string, RTC::DataProducer*> mapDataProducers;
344
- absl::flat_hash_map<std::string, RTC::DataConsumer*> mapDataConsumers;
345
- absl::flat_hash_map<uint16_t, RTC::DataConsumer*> mapSctpStreamIdDataConsumers;
346
- absl::flat_hash_map<uint32_t, RTC::Consumer*> mapSsrcConsumer;
347
- absl::flat_hash_map<uint32_t, RTC::Consumer*> mapRtxSsrcConsumer;
341
+ ankerl::unordered_dense::map<std::string, RTC::Producer*> mapProducers;
342
+ ankerl::unordered_dense::map<std::string, RTC::Consumer*> mapConsumers;
343
+ ankerl::unordered_dense::map<std::string, RTC::DataProducer*> mapDataProducers;
344
+ ankerl::unordered_dense::map<std::string, RTC::DataConsumer*> mapDataConsumers;
345
+ ankerl::unordered_dense::map<uint16_t, RTC::DataConsumer*> mapSctpStreamIdDataConsumers;
346
+ ankerl::unordered_dense::map<uint32_t, RTC::Consumer*> mapSsrcConsumer;
347
+ ankerl::unordered_dense::map<uint32_t, RTC::Consumer*> mapRtxSsrcConsumer;
348
348
  TimerHandleInterface* rtcpTimer{ nullptr };
349
349
  // Allocated by this.
350
350
  std::unique_ptr<RTC::SCTP::AssociationInterface> sctpAssociation{ nullptr };