mediasoup 3.19.22 → 3.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/node/lib/ActiveSpeakerObserver.js +34 -1
  2. package/node/lib/AudioLevelObserver.js +35 -2
  3. package/node/lib/Channel.d.ts.map +1 -1
  4. package/node/lib/Channel.js +37 -5
  5. package/node/lib/Consumer.js +39 -6
  6. package/node/lib/DataConsumer.d.ts.map +1 -1
  7. package/node/lib/DataConsumer.js +39 -5
  8. package/node/lib/DataConsumerTypes.d.ts +1 -0
  9. package/node/lib/DataConsumerTypes.d.ts.map +1 -1
  10. package/node/lib/DataProducer.js +37 -4
  11. package/node/lib/DirectTransport.js +37 -4
  12. package/node/lib/DirectTransportTypes.d.ts +7 -2
  13. package/node/lib/DirectTransportTypes.d.ts.map +1 -1
  14. package/node/lib/Logger.js +4 -1
  15. package/node/lib/PipeTransport.d.ts +3 -1
  16. package/node/lib/PipeTransport.d.ts.map +1 -1
  17. package/node/lib/PipeTransport.js +56 -5
  18. package/node/lib/PipeTransportTypes.d.ts +28 -8
  19. package/node/lib/PipeTransportTypes.d.ts.map +1 -1
  20. package/node/lib/PlainTransport.d.ts +3 -1
  21. package/node/lib/PlainTransport.d.ts.map +1 -1
  22. package/node/lib/PlainTransport.js +54 -3
  23. package/node/lib/PlainTransportTypes.d.ts +27 -7
  24. package/node/lib/PlainTransportTypes.d.ts.map +1 -1
  25. package/node/lib/Producer.js +40 -7
  26. package/node/lib/Router.d.ts +5 -5
  27. package/node/lib/Router.d.ts.map +1 -1
  28. package/node/lib/Router.js +81 -36
  29. package/node/lib/RouterTypes.d.ts +25 -3
  30. package/node/lib/RouterTypes.d.ts.map +1 -1
  31. package/node/lib/RtpObserver.js +36 -3
  32. package/node/lib/Transport.d.ts +3 -1
  33. package/node/lib/Transport.d.ts.map +1 -1
  34. package/node/lib/Transport.js +74 -22
  35. package/node/lib/TransportTypes.d.ts +2 -1
  36. package/node/lib/TransportTypes.d.ts.map +1 -1
  37. package/node/lib/WebRtcServer.js +36 -3
  38. package/node/lib/WebRtcTransport.d.ts +3 -1
  39. package/node/lib/WebRtcTransport.d.ts.map +1 -1
  40. package/node/lib/WebRtcTransport.js +55 -4
  41. package/node/lib/WebRtcTransportTypes.d.ts +27 -7
  42. package/node/lib/WebRtcTransportTypes.d.ts.map +1 -1
  43. package/node/lib/Worker.d.ts +1 -1
  44. package/node/lib/Worker.d.ts.map +1 -1
  45. package/node/lib/Worker.js +63 -31
  46. package/node/lib/WorkerTypes.d.ts +0 -4
  47. package/node/lib/WorkerTypes.d.ts.map +1 -1
  48. package/node/lib/enhancedEvents.d.ts +2 -2
  49. package/node/lib/enhancedEvents.d.ts.map +1 -1
  50. package/node/lib/enhancedEvents.js +0 -2
  51. package/node/lib/fbs/active-speaker-observer/active-speaker-observer-options.js +34 -1
  52. package/node/lib/fbs/active-speaker-observer/dominant-speaker-notification.js +34 -1
  53. package/node/lib/fbs/audio-level-observer/audio-level-observer-options.js +34 -1
  54. package/node/lib/fbs/audio-level-observer/volume.js +34 -1
  55. package/node/lib/fbs/audio-level-observer/volumes-notification.js +34 -1
  56. package/node/lib/fbs/common/string-string-array.js +34 -1
  57. package/node/lib/fbs/common/string-string.js +34 -1
  58. package/node/lib/fbs/common/string-uint8.js +34 -1
  59. package/node/lib/fbs/common/uint16-string.js +34 -1
  60. package/node/lib/fbs/common/uint32-string.js +34 -1
  61. package/node/lib/fbs/consumer/base-consumer-dump.js +34 -1
  62. package/node/lib/fbs/consumer/consumer-dump.js +34 -1
  63. package/node/lib/fbs/consumer/consumer-layers.js +34 -1
  64. package/node/lib/fbs/consumer/consumer-score.js +34 -1
  65. package/node/lib/fbs/consumer/dump-response.js +34 -1
  66. package/node/lib/fbs/consumer/enable-trace-event-request.js +34 -1
  67. package/node/lib/fbs/consumer/fir-trace-info.js +34 -1
  68. package/node/lib/fbs/consumer/get-stats-response.js +34 -1
  69. package/node/lib/fbs/consumer/key-frame-trace-info.js +34 -1
  70. package/node/lib/fbs/consumer/layers-change-notification.js +34 -1
  71. package/node/lib/fbs/consumer/pli-trace-info.js +34 -1
  72. package/node/lib/fbs/consumer/rtp-notification.js +34 -1
  73. package/node/lib/fbs/consumer/rtp-trace-info.js +34 -1
  74. package/node/lib/fbs/consumer/score-notification.js +34 -1
  75. package/node/lib/fbs/consumer/set-preferred-layers-request.js +34 -1
  76. package/node/lib/fbs/consumer/set-preferred-layers-response.js +34 -1
  77. package/node/lib/fbs/consumer/set-priority-request.js +34 -1
  78. package/node/lib/fbs/consumer/set-priority-response.js +34 -1
  79. package/node/lib/fbs/consumer/trace-notification.js +34 -1
  80. package/node/lib/fbs/data-consumer/add-subchannel-request.js +34 -1
  81. package/node/lib/fbs/data-consumer/add-subchannel-response.js +34 -1
  82. package/node/lib/fbs/data-consumer/buffered-amount-low-notification.js +34 -1
  83. package/node/lib/fbs/data-consumer/dump-response.d.ts +5 -2
  84. package/node/lib/fbs/data-consumer/dump-response.d.ts.map +1 -1
  85. package/node/lib/fbs/data-consumer/dump-response.js +60 -16
  86. package/node/lib/fbs/data-consumer/get-buffered-amount-response.js +34 -1
  87. package/node/lib/fbs/data-consumer/get-stats-response.js +34 -1
  88. package/node/lib/fbs/data-consumer/message-notification.js +34 -1
  89. package/node/lib/fbs/data-consumer/remove-subchannel-request.js +34 -1
  90. package/node/lib/fbs/data-consumer/remove-subchannel-response.js +34 -1
  91. package/node/lib/fbs/data-consumer/send-request.js +34 -1
  92. package/node/lib/fbs/data-consumer/set-buffered-amount-low-threshold-request.js +34 -1
  93. package/node/lib/fbs/data-consumer/set-subchannels-request.js +34 -1
  94. package/node/lib/fbs/data-consumer/set-subchannels-response.js +34 -1
  95. package/node/lib/fbs/data-consumer/type.d.ts +5 -0
  96. package/node/lib/fbs/data-consumer/type.d.ts.map +1 -0
  97. package/node/lib/fbs/data-consumer/type.js +10 -0
  98. package/node/lib/fbs/data-consumer.d.ts +1 -0
  99. package/node/lib/fbs/data-consumer.d.ts.map +1 -1
  100. package/node/lib/fbs/data-consumer.js +3 -1
  101. package/node/lib/fbs/data-producer/dump-response.js +34 -1
  102. package/node/lib/fbs/data-producer/get-stats-response.js +34 -1
  103. package/node/lib/fbs/data-producer/send-notification.js +34 -1
  104. package/node/lib/fbs/direct-transport/direct-transport-options.js +34 -1
  105. package/node/lib/fbs/direct-transport/dump-response.js +34 -1
  106. package/node/lib/fbs/direct-transport/get-stats-response.js +34 -1
  107. package/node/lib/fbs/direct-transport/rtcp-notification.js +34 -1
  108. package/node/lib/fbs/lib-uring/dump.js +34 -1
  109. package/node/lib/fbs/log/log.js +34 -1
  110. package/node/lib/fbs/message/message.js +34 -1
  111. package/node/lib/fbs/notification/body.d.ts +24 -22
  112. package/node/lib/fbs/notification/body.d.ts.map +1 -1
  113. package/node/lib/fbs/notification/body.js +24 -20
  114. package/node/lib/fbs/notification/event.d.ts +27 -26
  115. package/node/lib/fbs/notification/event.d.ts.map +1 -1
  116. package/node/lib/fbs/notification/event.js +27 -26
  117. package/node/lib/fbs/notification/notification.d.ts +3 -2
  118. package/node/lib/fbs/notification/notification.d.ts.map +1 -1
  119. package/node/lib/fbs/notification/notification.js +34 -1
  120. package/node/lib/fbs/pipe-transport/connect-request.js +34 -1
  121. package/node/lib/fbs/pipe-transport/connect-response.js +34 -1
  122. package/node/lib/fbs/pipe-transport/dump-response.js +34 -1
  123. package/node/lib/fbs/pipe-transport/get-stats-response.js +34 -1
  124. package/node/lib/fbs/pipe-transport/pipe-transport-options.js +34 -1
  125. package/node/lib/fbs/plain-transport/connect-request.js +34 -1
  126. package/node/lib/fbs/plain-transport/connect-response.js +34 -1
  127. package/node/lib/fbs/plain-transport/dump-response.js +34 -1
  128. package/node/lib/fbs/plain-transport/get-stats-response.js +34 -1
  129. package/node/lib/fbs/plain-transport/plain-transport-options.js +34 -1
  130. package/node/lib/fbs/plain-transport/rtcp-tuple-notification.js +34 -1
  131. package/node/lib/fbs/plain-transport/tuple-notification.js +34 -1
  132. package/node/lib/fbs/producer/dump-response.js +34 -1
  133. package/node/lib/fbs/producer/enable-trace-event-request.js +34 -1
  134. package/node/lib/fbs/producer/fir-trace-info.js +34 -1
  135. package/node/lib/fbs/producer/get-stats-response.js +34 -1
  136. package/node/lib/fbs/producer/key-frame-trace-info.js +34 -1
  137. package/node/lib/fbs/producer/pli-trace-info.js +34 -1
  138. package/node/lib/fbs/producer/rtp-trace-info.js +34 -1
  139. package/node/lib/fbs/producer/score-notification.js +34 -1
  140. package/node/lib/fbs/producer/score.js +34 -1
  141. package/node/lib/fbs/producer/send-notification.js +34 -1
  142. package/node/lib/fbs/producer/sr-trace-info.js +34 -1
  143. package/node/lib/fbs/producer/trace-notification.js +34 -1
  144. package/node/lib/fbs/producer/video-orientation-change-notification.js +34 -1
  145. package/node/lib/fbs/request/request.js +34 -1
  146. package/node/lib/fbs/response/response.js +34 -1
  147. package/node/lib/fbs/router/close-rtp-observer-request.js +34 -1
  148. package/node/lib/fbs/router/close-transport-request.js +34 -1
  149. package/node/lib/fbs/router/create-active-speaker-observer-request.js +34 -1
  150. package/node/lib/fbs/router/create-audio-level-observer-request.js +34 -1
  151. package/node/lib/fbs/router/create-direct-transport-request.js +34 -1
  152. package/node/lib/fbs/router/create-pipe-transport-request.js +34 -1
  153. package/node/lib/fbs/router/create-plain-transport-request.js +34 -1
  154. package/node/lib/fbs/router/create-web-rtc-transport-request.js +34 -1
  155. package/node/lib/fbs/router/dump-response.js +34 -1
  156. package/node/lib/fbs/rtp-observer/add-producer-request.js +34 -1
  157. package/node/lib/fbs/rtp-observer/remove-producer-request.js +34 -1
  158. package/node/lib/fbs/rtp-packet/dump.js +34 -1
  159. package/node/lib/fbs/rtp-parameters/boolean.js +34 -1
  160. package/node/lib/fbs/rtp-parameters/codec-mapping.js +34 -1
  161. package/node/lib/fbs/rtp-parameters/double.js +34 -1
  162. package/node/lib/fbs/rtp-parameters/encoding-mapping.js +34 -1
  163. package/node/lib/fbs/rtp-parameters/integer32-array.js +34 -1
  164. package/node/lib/fbs/rtp-parameters/integer32.js +34 -1
  165. package/node/lib/fbs/rtp-parameters/parameter.js +34 -1
  166. package/node/lib/fbs/rtp-parameters/rtcp-feedback.js +34 -1
  167. package/node/lib/fbs/rtp-parameters/rtcp-parameters.js +34 -1
  168. package/node/lib/fbs/rtp-parameters/rtp-codec-parameters.js +34 -1
  169. package/node/lib/fbs/rtp-parameters/rtp-encoding-parameters.js +34 -1
  170. package/node/lib/fbs/rtp-parameters/rtp-header-extension-parameters.js +34 -1
  171. package/node/lib/fbs/rtp-parameters/rtp-mapping.js +34 -1
  172. package/node/lib/fbs/rtp-parameters/rtp-parameters.js +34 -1
  173. package/node/lib/fbs/rtp-parameters/rtx.js +34 -1
  174. package/node/lib/fbs/rtp-parameters/string.js +34 -1
  175. package/node/lib/fbs/rtp-stream/base-stats.js +34 -1
  176. package/node/lib/fbs/rtp-stream/bitrate-by-layer.js +34 -1
  177. package/node/lib/fbs/rtp-stream/dump.js +34 -1
  178. package/node/lib/fbs/rtp-stream/params.js +34 -1
  179. package/node/lib/fbs/rtp-stream/recv-stats.js +34 -1
  180. package/node/lib/fbs/rtp-stream/send-stats.js +34 -1
  181. package/node/lib/fbs/rtp-stream/stats.js +34 -1
  182. package/node/lib/fbs/rtx-stream/params.js +34 -1
  183. package/node/lib/fbs/rtx-stream/rtx-dump.js +34 -1
  184. package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.d.ts +24 -0
  185. package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.d.ts.map +1 -0
  186. package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.js +102 -0
  187. package/node/lib/fbs/sctp-association.d.ts +1 -0
  188. package/node/lib/fbs/sctp-association.d.ts.map +1 -1
  189. package/node/lib/fbs/sctp-association.js +4 -1
  190. package/node/lib/fbs/sctp-parameters/num-sctp-streams.js +34 -1
  191. package/node/lib/fbs/sctp-parameters/sctp-parameters.d.ts +14 -14
  192. package/node/lib/fbs/sctp-parameters/sctp-parameters.d.ts.map +1 -1
  193. package/node/lib/fbs/sctp-parameters/sctp-parameters.js +73 -40
  194. package/node/lib/fbs/sctp-parameters/sctp-stream-parameters.js +34 -1
  195. package/node/lib/fbs/sctp-parameters.d.ts +0 -1
  196. package/node/lib/fbs/sctp-parameters.d.ts.map +1 -1
  197. package/node/lib/fbs/sctp-parameters.js +1 -4
  198. package/node/lib/fbs/srtp-parameters/srtp-parameters.js +34 -1
  199. package/node/lib/fbs/transport/bwe-trace-info.js +34 -1
  200. package/node/lib/fbs/transport/close-consumer-request.js +34 -1
  201. package/node/lib/fbs/transport/close-data-consumer-request.js +34 -1
  202. package/node/lib/fbs/transport/close-data-producer-request.js +34 -1
  203. package/node/lib/fbs/transport/close-producer-request.js +34 -1
  204. package/node/lib/fbs/transport/consume-data-request.d.ts +1 -1
  205. package/node/lib/fbs/transport/consume-data-request.js +35 -2
  206. package/node/lib/fbs/transport/consume-request.js +34 -1
  207. package/node/lib/fbs/transport/consume-response.js +34 -1
  208. package/node/lib/fbs/transport/dump.d.ts +7 -4
  209. package/node/lib/fbs/transport/dump.d.ts.map +1 -1
  210. package/node/lib/fbs/transport/dump.js +66 -22
  211. package/node/lib/fbs/transport/enable-trace-event-request.js +34 -1
  212. package/node/lib/fbs/transport/listen-info.js +34 -1
  213. package/node/lib/fbs/transport/options.d.ts +14 -14
  214. package/node/lib/fbs/transport/options.d.ts.map +1 -1
  215. package/node/lib/fbs/transport/options.js +92 -51
  216. package/node/lib/fbs/transport/port-range.js +34 -1
  217. package/node/lib/fbs/transport/produce-data-request.js +34 -1
  218. package/node/lib/fbs/transport/produce-request.js +34 -1
  219. package/node/lib/fbs/transport/produce-response.js +34 -1
  220. package/node/lib/fbs/transport/recv-rtp-header-extensions.js +34 -1
  221. package/node/lib/fbs/transport/restart-ice-response.js +34 -1
  222. package/node/lib/fbs/transport/rtp-listener.js +34 -1
  223. package/node/lib/fbs/transport/sctp-listener.js +34 -1
  224. package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.d.ts +22 -0
  225. package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.d.ts.map +1 -0
  226. package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.js +93 -0
  227. package/node/lib/fbs/transport/sctp-state-change-notification.js +34 -1
  228. package/node/lib/fbs/transport/send-rtcp-notification.js +34 -1
  229. package/node/lib/fbs/transport/set-max-incoming-bitrate-request.js +34 -1
  230. package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.js +34 -1
  231. package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.js +34 -1
  232. package/node/lib/fbs/transport/socket-flags.js +34 -1
  233. package/node/lib/fbs/transport/stats.js +34 -1
  234. package/node/lib/fbs/transport/trace-notification.js +34 -1
  235. package/node/lib/fbs/transport/tuple.js +34 -1
  236. package/node/lib/fbs/transport.d.ts +1 -0
  237. package/node/lib/fbs/transport.d.ts.map +1 -1
  238. package/node/lib/fbs/transport.js +5 -2
  239. package/node/lib/fbs/web-rtc-server/dump-response.js +34 -1
  240. package/node/lib/fbs/web-rtc-server/ice-user-name-fragment.js +34 -1
  241. package/node/lib/fbs/web-rtc-server/ip-port.js +34 -1
  242. package/node/lib/fbs/web-rtc-server/tuple-hash.js +34 -1
  243. package/node/lib/fbs/web-rtc-transport/connect-request.js +34 -1
  244. package/node/lib/fbs/web-rtc-transport/connect-response.js +34 -1
  245. package/node/lib/fbs/web-rtc-transport/dtls-parameters.js +34 -1
  246. package/node/lib/fbs/web-rtc-transport/dtls-state-change-notification.js +34 -1
  247. package/node/lib/fbs/web-rtc-transport/dump-response.js +34 -1
  248. package/node/lib/fbs/web-rtc-transport/fingerprint.js +34 -1
  249. package/node/lib/fbs/web-rtc-transport/get-stats-response.js +34 -1
  250. package/node/lib/fbs/web-rtc-transport/ice-candidate.js +34 -1
  251. package/node/lib/fbs/web-rtc-transport/ice-parameters.js +34 -1
  252. package/node/lib/fbs/web-rtc-transport/ice-selected-tuple-change-notification.js +34 -1
  253. package/node/lib/fbs/web-rtc-transport/ice-state-change-notification.js +34 -1
  254. package/node/lib/fbs/web-rtc-transport/listen-individual.js +34 -1
  255. package/node/lib/fbs/web-rtc-transport/listen-server.js +34 -1
  256. package/node/lib/fbs/web-rtc-transport/web-rtc-transport-options.js +34 -1
  257. package/node/lib/fbs/worker/channel-message-handlers.js +34 -1
  258. package/node/lib/fbs/worker/close-router-request.js +34 -1
  259. package/node/lib/fbs/worker/close-web-rtc-server-request.js +34 -1
  260. package/node/lib/fbs/worker/create-router-request.js +34 -1
  261. package/node/lib/fbs/worker/create-web-rtc-server-request.js +34 -1
  262. package/node/lib/fbs/worker/dump-response.js +34 -1
  263. package/node/lib/fbs/worker/resource-usage-response.js +34 -1
  264. package/node/lib/fbs/worker/update-settings-request.js +34 -1
  265. package/node/lib/index.d.ts +1 -1
  266. package/node/lib/index.d.ts.map +1 -1
  267. package/node/lib/index.js +37 -5
  268. package/node/lib/ortc.js +36 -3
  269. package/node/lib/rtpParametersFbsUtils.js +34 -1
  270. package/node/lib/rtpStreamStatsFbsUtils.js +35 -2
  271. package/node/lib/sctpParametersFbsUtils.d.ts +2 -2
  272. package/node/lib/sctpParametersFbsUtils.d.ts.map +1 -1
  273. package/node/lib/sctpParametersFbsUtils.js +44 -7
  274. package/node/lib/sctpParametersTypes.d.ts +10 -46
  275. package/node/lib/sctpParametersTypes.d.ts.map +1 -1
  276. package/node/lib/srtpParametersFbsUtils.js +34 -1
  277. package/node/lib/test/test-ActiveSpeakerObserver.js +35 -2
  278. package/node/lib/test/test-AudioLevelObserver.js +35 -2
  279. package/node/lib/test/test-Consumer.js +37 -4
  280. package/node/lib/test/test-DataConsumer.js +35 -2
  281. package/node/lib/test/test-DataProducer.js +35 -2
  282. package/node/lib/test/test-DirectTransport.js +36 -8
  283. package/node/lib/test/test-PipeTransport.js +35 -2
  284. package/node/lib/test/test-PlainTransport.js +45 -12
  285. package/node/lib/test/test-Producer.js +37 -4
  286. package/node/lib/test/test-Router.js +35 -2
  287. package/node/lib/test/test-WebRtcServer.js +34 -1
  288. package/node/lib/test/test-WebRtcTransport.js +51 -22
  289. package/node/lib/test/test-Worker.js +37 -4
  290. package/node/lib/test/test-mediasoup.js +36 -3
  291. package/node/lib/test/test-multiopus.js +35 -2
  292. package/node/lib/test/test-ortc.js +34 -1
  293. package/node/lib/test/test-werift-sctp.js +39 -5
  294. package/npm-scripts.mjs +2 -2
  295. package/package.json +11 -11
  296. package/worker/deps/libwebrtc/LICENSE +5 -0
  297. package/worker/deps/libwebrtc/README.md +3 -3
  298. package/worker/deps/libwebrtc/libwebrtc/mediasoup_helpers.h +13 -10
  299. package/worker/fbs/dataConsumer.fbs +7 -2
  300. package/worker/fbs/dataProducer.fbs +1 -0
  301. package/worker/fbs/notification.fbs +2 -0
  302. package/worker/fbs/sctpAssociation.fbs +4 -0
  303. package/worker/fbs/sctpParameters.fbs +5 -12
  304. package/worker/fbs/transport.fbs +12 -8
  305. package/worker/fuzzer/src/RTC/FuzzerDtlsTransport.cpp +5 -1
  306. package/worker/fuzzer/src/RTC/FuzzerRateCalculator.cpp +2 -2
  307. package/worker/fuzzer/src/RTC/FuzzerSeqManager.cpp +1 -1
  308. package/worker/fuzzer/src/RTC/FuzzerTrendCalculator.cpp +5 -5
  309. package/worker/fuzzer/src/RTC/ICE/FuzzerStunPacket.cpp +9 -6
  310. package/worker/fuzzer/src/RTC/RTP/FuzzerRetransmissionBuffer.cpp +1 -1
  311. package/worker/fuzzer/src/RTC/RTP/FuzzerRtpStreamSend.cpp +6 -2
  312. package/worker/fuzzer/src/RTC/SCTP/association/FuzzerStateCookie.cpp +1 -1
  313. package/worker/fuzzer/src/RTC/SCTP/packet/FuzzerPacket.cpp +5 -2
  314. package/worker/fuzzer/src/fuzzer.cpp +3 -10
  315. package/worker/include/Channel/ChannelRequest.hpp +1 -1
  316. package/worker/include/DepLibUV.hpp +1 -1
  317. package/worker/include/DepLibUring.hpp +3 -3
  318. package/worker/include/Logger.hpp +4 -4
  319. package/worker/include/MediaSoupErrors.hpp +1 -1
  320. package/worker/include/RTC/ActiveSpeakerObserver.hpp +6 -4
  321. package/worker/include/RTC/AudioLevelObserver.hpp +2 -2
  322. package/worker/include/RTC/Consumer.hpp +1 -1
  323. package/worker/include/RTC/DataConsumer.hpp +11 -15
  324. package/worker/include/RTC/DataProducer.hpp +4 -7
  325. package/worker/include/RTC/DirectTransport.hpp +3 -5
  326. package/worker/include/RTC/DtlsTransport.hpp +7 -7
  327. package/worker/include/RTC/ICE/IceServer.hpp +2 -2
  328. package/worker/include/RTC/ICE/StunPacket.hpp +1 -1
  329. package/worker/include/RTC/KeyFrameRequestManager.hpp +1 -1
  330. package/worker/include/RTC/NackGenerator.hpp +3 -2
  331. package/worker/include/RTC/PipeTransport.hpp +3 -5
  332. package/worker/include/RTC/PlainTransport.hpp +3 -5
  333. package/worker/include/RTC/PortManager.hpp +1 -1
  334. package/worker/include/RTC/Producer.hpp +1 -1
  335. package/worker/include/RTC/RTCP/FeedbackPs.hpp +1 -1
  336. package/worker/include/RTC/RTCP/FeedbackRtp.hpp +1 -1
  337. package/worker/include/RTC/RTCP/FeedbackRtpNack.hpp +1 -1
  338. package/worker/include/RTC/RTCP/ReceiverReport.hpp +1 -1
  339. package/worker/include/RTC/RTP/Packet.hpp +2 -2
  340. package/worker/include/RTC/RTP/RtpStream.hpp +11 -12
  341. package/worker/include/RTC/RTP/RtpStreamRecv.hpp +3 -2
  342. package/worker/include/RTC/RTP/RtxStream.hpp +3 -1
  343. package/worker/include/RTC/RTP/SharedPacket.hpp +1 -1
  344. package/worker/include/RTC/RateCalculator.hpp +5 -2
  345. package/worker/include/RTC/Router.hpp +5 -6
  346. package/worker/include/RTC/RtpObserver.hpp +1 -1
  347. package/worker/include/RTC/SCTP/association/Association.hpp +46 -15
  348. package/worker/include/RTC/SCTP/association/AssociationListenerDeferrer.hpp +14 -6
  349. package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +12 -11
  350. package/worker/include/RTC/SCTP/association/PacketSender.hpp +3 -3
  351. package/worker/include/RTC/SCTP/association/StateCookie.hpp +1 -1
  352. package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +26 -26
  353. package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +58 -48
  354. package/worker/include/RTC/SCTP/association/{TCBContext.hpp → TransmissionControlBlockContextInterface.hpp} +11 -6
  355. package/worker/include/RTC/SCTP/packet/Chunk.hpp +3 -3
  356. package/worker/include/RTC/SCTP/packet/TLV.hpp +1 -1
  357. package/worker/include/RTC/SCTP/packet/UserData.hpp +39 -31
  358. package/worker/include/RTC/SCTP/packet/chunks/AnyDataChunk.hpp +1 -1
  359. package/worker/include/RTC/SCTP/packet/chunks/AnyForwardTsnChunk.hpp +9 -9
  360. package/worker/include/RTC/SCTP/packet/chunks/AnyInitChunk.hpp +1 -1
  361. package/worker/include/RTC/SCTP/packet/chunks/DataChunk.hpp +4 -2
  362. package/worker/include/RTC/SCTP/packet/chunks/ForwardTsnChunk.hpp +3 -3
  363. package/worker/include/RTC/SCTP/packet/chunks/IDataChunk.hpp +4 -2
  364. package/worker/include/RTC/SCTP/packet/chunks/IForwardTsnChunk.hpp +3 -3
  365. package/worker/include/RTC/SCTP/packet/chunks/InitAckChunk.hpp +1 -1
  366. package/worker/include/RTC/SCTP/packet/chunks/InitChunk.hpp +1 -1
  367. package/worker/include/RTC/SCTP/packet/chunks/SackChunk.hpp +10 -3
  368. package/worker/include/RTC/SCTP/packet/chunks/ShutdownChunk.hpp +1 -1
  369. package/worker/include/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.hpp +1 -1
  370. package/worker/include/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.hpp +1 -1
  371. package/worker/include/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.hpp +1 -1
  372. package/worker/include/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.hpp +1 -1
  373. package/worker/include/RTC/SCTP/packet/parameters/AddIncomingStreamsRequestParameter.hpp +1 -1
  374. package/worker/include/RTC/SCTP/packet/parameters/AddOutgoingStreamsRequestParameter.hpp +1 -1
  375. package/worker/include/RTC/SCTP/packet/parameters/CookiePreservativeParameter.hpp +1 -1
  376. package/worker/include/RTC/SCTP/packet/parameters/IncomingSsnResetRequestParameter.hpp +1 -1
  377. package/worker/include/RTC/SCTP/packet/parameters/OutgoingSsnResetRequestParameter.hpp +1 -1
  378. package/worker/include/RTC/SCTP/packet/parameters/ReconfigurationResponseParameter.hpp +1 -1
  379. package/worker/include/RTC/SCTP/packet/parameters/SsnTsnResetRequestParameter.hpp +1 -1
  380. package/worker/include/RTC/SCTP/packet/parameters/SupportedAddressTypesParameter.hpp +1 -1
  381. package/worker/include/RTC/SCTP/packet/parameters/SupportedExtensionsParameter.hpp +1 -1
  382. package/worker/include/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.hpp +1 -1
  383. package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +22 -2
  384. package/worker/include/RTC/SCTP/public/{AssociationListener.hpp → AssociationListenerInterface.hpp} +5 -5
  385. package/worker/include/RTC/SCTP/public/Message.hpp +26 -10
  386. package/worker/include/RTC/SCTP/public/SctpOptions.hpp +29 -21
  387. package/worker/include/RTC/SCTP/public/SctpTypes.hpp +21 -0
  388. package/worker/include/RTC/SCTP/rx/DataTracker.hpp +277 -0
  389. package/worker/include/RTC/SCTP/rx/InterleavedReassemblyStreams.hpp +116 -0
  390. package/worker/include/RTC/SCTP/rx/ReassemblyQueue.hpp +202 -0
  391. package/worker/include/RTC/SCTP/rx/ReassemblyStreamsInterface.hpp +83 -0
  392. package/worker/include/RTC/SCTP/rx/TraditionalReassemblyStreams.hpp +183 -0
  393. package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +48 -57
  394. package/worker/include/RTC/SCTP/tx/RetransmissionErrorCounter.hpp +3 -3
  395. package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +36 -43
  396. package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +6 -6
  397. package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +356 -0
  398. package/worker/include/RTC/SCTP/tx/SendQueueInterface.hpp +180 -0
  399. package/worker/include/RTC/SCTP/tx/StreamScheduler.hpp +235 -0
  400. package/worker/include/RTC/SenderBandwidthEstimator.hpp +5 -1
  401. package/worker/include/RTC/Serializable.hpp +3 -3
  402. package/worker/include/RTC/TcpServer.hpp +2 -2
  403. package/worker/include/RTC/Transport.hpp +59 -80
  404. package/worker/include/RTC/TransportCongestionControlClient.hpp +2 -2
  405. package/worker/include/RTC/TransportCongestionControlServer.hpp +2 -2
  406. package/worker/include/RTC/TransportTuple.hpp +1 -1
  407. package/worker/include/RTC/UdpSocket.hpp +1 -1
  408. package/worker/include/RTC/WebRtcServer.hpp +1 -1
  409. package/worker/include/RTC/WebRtcTransport.hpp +3 -5
  410. package/worker/include/Settings.hpp +2 -3
  411. package/worker/include/Shared.hpp +31 -7
  412. package/worker/include/SharedInterface.hpp +37 -4
  413. package/worker/include/Utils/UnwrappedSequenceNumber.hpp +270 -0
  414. package/worker/include/Utils.hpp +4 -4
  415. package/worker/include/Worker.hpp +4 -4
  416. package/worker/include/common.hpp +12 -12
  417. package/worker/include/handles/BackoffTimerHandle.hpp +8 -9
  418. package/worker/include/handles/BackoffTimerHandleInterface.hpp +10 -3
  419. package/worker/include/handles/TimerHandle.hpp +0 -7
  420. package/worker/meson.build +33 -34
  421. package/worker/mocks/include/MockShared.hpp +56 -9
  422. package/worker/mocks/include/RTC/SCTP/association/MockAssociationListener.hpp +308 -0
  423. package/worker/mocks/include/RTC/SCTP/association/MockTransmissionControlBlockContext.hpp +183 -0
  424. package/worker/mocks/include/RTC/SCTP/tx/MockSendQueue.hpp +262 -0
  425. package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +153 -0
  426. package/worker/mocks/include/handles/MockTimerHandle.hpp +74 -0
  427. package/worker/mocks/include/mockTypes.hpp +15 -0
  428. package/worker/mocks/src/MockShared.cpp +30 -10
  429. package/worker/mocks/src/RTC/SCTP/association/MockTransmissionControlBlockContext.cpp +39 -0
  430. package/worker/mocks/src/handles/MockBackoffTimerHandle.cpp +127 -0
  431. package/worker/scripts/clang-scripts.mjs +1 -0
  432. package/worker/scripts/package-lock.json +6 -7
  433. package/worker/src/Channel/ChannelSocket.cpp +2 -3
  434. package/worker/src/DepLibUV.cpp +1 -1
  435. package/worker/src/DepLibUring.cpp +3 -1
  436. package/worker/src/Logger.cpp +1 -1
  437. package/worker/src/MediaSoupErrors.cpp +2 -0
  438. package/worker/src/RTC/ActiveSpeakerObserver.cpp +7 -7
  439. package/worker/src/RTC/Consumer.cpp +5 -6
  440. package/worker/src/RTC/DataConsumer.cpp +54 -64
  441. package/worker/src/RTC/DataProducer.cpp +13 -8
  442. package/worker/src/RTC/DirectTransport.cpp +7 -6
  443. package/worker/src/RTC/ICE/IceServer.cpp +2 -2
  444. package/worker/src/RTC/ICE/StunPacket.cpp +1 -1
  445. package/worker/src/RTC/NackGenerator.cpp +3 -3
  446. package/worker/src/RTC/PipeConsumer.cpp +1 -1
  447. package/worker/src/RTC/PipeTransport.cpp +6 -19
  448. package/worker/src/RTC/PlainTransport.cpp +6 -19
  449. package/worker/src/RTC/Producer.cpp +10 -11
  450. package/worker/src/RTC/RTCP/FeedbackPsAfb.cpp +1 -1
  451. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +1 -1
  452. package/worker/src/RTC/RTCP/XR.cpp +1 -1
  453. package/worker/src/RTC/RTP/Packet.cpp +3 -1
  454. package/worker/src/RTC/RTP/ProbationGenerator.cpp +4 -4
  455. package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +1 -1
  456. package/worker/src/RTC/RTP/RtpStream.cpp +9 -9
  457. package/worker/src/RTC/RTP/RtpStreamRecv.cpp +11 -10
  458. package/worker/src/RTC/RTP/RtpStreamSend.cpp +7 -7
  459. package/worker/src/RTC/RTP/RtxStream.cpp +7 -7
  460. package/worker/src/RTC/RTP/SharedPacket.cpp +3 -3
  461. package/worker/src/RTC/RateCalculator.cpp +1 -2
  462. package/worker/src/RTC/Router.cpp +58 -35
  463. package/worker/src/RTC/RtpDictionaries/RtpCodecMimeType.cpp +1 -1
  464. package/worker/src/RTC/SCTP/LICENSE +44 -0
  465. package/worker/src/RTC/SCTP/association/Association.cpp +348 -322
  466. package/worker/src/RTC/SCTP/association/AssociationListenerDeferrer.cpp +46 -13
  467. package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +26 -28
  468. package/worker/src/RTC/SCTP/association/PacketSender.cpp +8 -8
  469. package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +71 -56
  470. package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +176 -66
  471. package/worker/src/RTC/SCTP/packet/Chunk.cpp +5 -1
  472. package/worker/src/RTC/SCTP/packet/Packet.cpp +8 -1
  473. package/worker/src/RTC/SCTP/packet/chunks/DataChunk.cpp +17 -0
  474. package/worker/src/RTC/SCTP/packet/chunks/ForwardTsnChunk.cpp +4 -4
  475. package/worker/src/RTC/SCTP/packet/chunks/IDataChunk.cpp +25 -0
  476. package/worker/src/RTC/SCTP/packet/chunks/IForwardTsnChunk.cpp +10 -7
  477. package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +21 -4
  478. package/worker/src/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.cpp +1 -1
  479. package/worker/src/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.cpp +1 -1
  480. package/worker/src/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.cpp +2 -2
  481. package/worker/src/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.cpp +1 -1
  482. package/worker/src/RTC/SCTP/public/Message.cpp +8 -0
  483. package/worker/src/RTC/SCTP/public/SctpOptions.cpp +90 -0
  484. package/worker/src/RTC/SCTP/rx/DataTracker.cpp +471 -0
  485. package/worker/src/RTC/SCTP/rx/InterleavedReassemblyStreams.cpp +327 -0
  486. package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +288 -0
  487. package/worker/src/RTC/SCTP/rx/TraditionalReassemblyStreams.cpp +453 -0
  488. package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +81 -74
  489. package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +85 -98
  490. package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +1 -1
  491. package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +752 -0
  492. package/worker/src/RTC/SCTP/tx/StreamScheduler.cpp +257 -0
  493. package/worker/src/RTC/SenderBandwidthEstimator.cpp +7 -5
  494. package/worker/src/RTC/SimpleConsumer.cpp +3 -4
  495. package/worker/src/RTC/SimulcastConsumer.cpp +5 -6
  496. package/worker/src/RTC/SrtpSession.cpp +1 -1
  497. package/worker/src/RTC/SvcConsumer.cpp +5 -6
  498. package/worker/src/RTC/TcpConnection.cpp +1 -1
  499. package/worker/src/RTC/Transport.cpp +475 -551
  500. package/worker/src/RTC/TransportCongestionControlClient.cpp +5 -6
  501. package/worker/src/RTC/TransportCongestionControlServer.cpp +1 -2
  502. package/worker/src/RTC/WebRtcServer.cpp +1 -1
  503. package/worker/src/RTC/WebRtcTransport.cpp +5 -13
  504. package/worker/src/Settings.cpp +9 -28
  505. package/worker/src/Shared.cpp +3 -3
  506. package/worker/src/Utils/Crypto.cpp +1 -1
  507. package/worker/src/Utils/String.cpp +1 -1
  508. package/worker/src/Worker.cpp +10 -26
  509. package/worker/src/handles/BackoffTimerHandle.cpp +24 -6
  510. package/worker/src/handles/UdpSocketHandle.cpp +1 -1
  511. package/worker/src/lib.cpp +5 -17
  512. package/worker/subprojects/catch2.wrap +6 -6
  513. package/worker/test/include/RTC/ICE/iceCommon.hpp +7 -7
  514. package/worker/test/include/RTC/RTP/rtpCommon.hpp +6 -6
  515. package/worker/test/include/RTC/SCTP/sctpCommon.hpp +10 -10
  516. package/worker/test/include/catch2Macros.hpp +31 -0
  517. package/worker/test/src/RTC/ICE/TestStunPacket.cpp +3 -3
  518. package/worker/test/src/RTC/ICE/iceCommon.cpp +2 -2
  519. package/worker/test/src/RTC/RTP/Codecs/TestVP8.cpp +1 -1
  520. package/worker/test/src/RTC/RTP/Codecs/TestVP9.cpp +1 -1
  521. package/worker/test/src/RTC/RTP/TestPacket.cpp +3 -3
  522. package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +6 -6
  523. package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +6 -2
  524. package/worker/test/src/RTC/RTP/TestSharedPacket.cpp +1 -1
  525. package/worker/test/src/RTC/RTP/rtpCommon.cpp +2 -2
  526. package/worker/test/src/RTC/SCTP/association/TestHeartbeatHandler.cpp +292 -0
  527. package/worker/test/src/RTC/SCTP/association/TestNegotiatedCapabilities.cpp +1 -1
  528. package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +1 -1
  529. package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +99 -0
  530. package/worker/test/src/RTC/SCTP/packet/TestChunk.cpp +1 -1
  531. package/worker/test/src/RTC/SCTP/packet/TestPacket.cpp +1 -1
  532. package/worker/test/src/RTC/SCTP/packet/chunks/TestAbortAssociationChunk.cpp +1 -1
  533. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieAckChunk.cpp +1 -1
  534. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieEchoChunk.cpp +1 -1
  535. package/worker/test/src/RTC/SCTP/packet/chunks/TestDataChunk.cpp +77 -7
  536. package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +35 -26
  537. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatAckChunk.cpp +1 -1
  538. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatRequestChunk.cpp +1 -1
  539. package/worker/test/src/RTC/SCTP/packet/chunks/TestIDataChunk.cpp +77 -7
  540. package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +59 -27
  541. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitAckChunk.cpp +1 -1
  542. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +1 -1
  543. package/worker/test/src/RTC/SCTP/packet/chunks/TestOperationErrorChunk.cpp +1 -1
  544. package/worker/test/src/RTC/SCTP/packet/chunks/TestReConfigChunk.cpp +1 -1
  545. package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +73 -35
  546. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownAckChunk.cpp +1 -1
  547. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownChunk.cpp +1 -1
  548. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownCompleteChunk.cpp +1 -1
  549. package/worker/test/src/RTC/SCTP/packet/chunks/TestUnknownChunk.cpp +1 -1
  550. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestCookieReceivedWhileShuttingDownErrorCause.cpp +1 -1
  551. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidMandatoryParameterErrorCause.cpp +1 -1
  552. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidStreamIdentifierErrorCause.cpp +1 -1
  553. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestMissingMandatoryParameterErrorCause.cpp +1 -1
  554. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestNoUserDataErrorCause.cpp +1 -1
  555. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestOutOfResourceErrorCause.cpp +1 -1
  556. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestProtocolViolationErrorCause.cpp +1 -1
  557. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestRestartOfAnAssociationWithNewAddressesErrorCause.cpp +1 -1
  558. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestStaleCookieErrorCause.cpp +1 -1
  559. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnknownErrorCause.cpp +1 -1
  560. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedChunkTypeErrorCause.cpp +1 -1
  561. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedParametersErrorCause.cpp +1 -1
  562. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnresolvableAddressErrorCause.cpp +1 -1
  563. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUserInitiatedAbortErrorCause.cpp +1 -1
  564. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddIncomingStreamsRequestParameter.cpp +1 -1
  565. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddOutgoingStreamsRequestParameter.cpp +1 -1
  566. package/worker/test/src/RTC/SCTP/packet/parameters/TestCookiePreservativeParameter.cpp +1 -1
  567. package/worker/test/src/RTC/SCTP/packet/parameters/TestForwardTsnSupportedParameter.cpp +1 -1
  568. package/worker/test/src/RTC/SCTP/packet/parameters/TestHeartbeatInfoParameter.cpp +1 -1
  569. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv4AddressParameter.cpp +1 -1
  570. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +1 -1
  571. package/worker/test/src/RTC/SCTP/packet/parameters/TestIncomingSsnResetRequestParameter.cpp +1 -1
  572. package/worker/test/src/RTC/SCTP/packet/parameters/TestOutgoingSsnResetRequestParameter.cpp +1 -1
  573. package/worker/test/src/RTC/SCTP/packet/parameters/TestReconfigurationResponseParameter.cpp +1 -1
  574. package/worker/test/src/RTC/SCTP/packet/parameters/TestSsnTsnResetRequestParameter.cpp +1 -1
  575. package/worker/test/src/RTC/SCTP/packet/parameters/TestStateCookieParameter.cpp +1 -1
  576. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedAddressTypesParameter.cpp +1 -1
  577. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedExtensionsParameter.cpp +1 -1
  578. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnknownParameter.cpp +1 -1
  579. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnrecognizedParameterParameter.cpp +1 -1
  580. package/worker/test/src/RTC/SCTP/packet/parameters/TestZeroChecksumAcceptableParameter.cpp +1 -1
  581. package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +1117 -0
  582. package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +565 -0
  583. package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +557 -0
  584. package/worker/test/src/RTC/SCTP/rx/TestTraditionalReassemblyStreams.cpp +555 -0
  585. package/worker/test/src/RTC/SCTP/sctpCommon.cpp +2 -2
  586. package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +475 -423
  587. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionErrorCounter.cpp +4 -0
  588. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +2218 -0
  589. package/worker/test/src/RTC/SCTP/tx/TestRoundRobinSendQueue.cpp +1130 -0
  590. package/worker/test/src/RTC/SCTP/tx/TestStreamScheduler.cpp +721 -0
  591. package/worker/test/src/RTC/TestKeyFrameRequestManager.cpp +9 -27
  592. package/worker/test/src/RTC/TestNackGenerator.cpp +7 -8
  593. package/worker/test/src/RTC/TestRateCalculator.cpp +6 -7
  594. package/worker/test/src/RTC/TestSimpleConsumer.cpp +7 -3
  595. package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +8 -3
  596. package/worker/test/src/{RTC/SCTP/common → Utils}/TestUnwrappedSequenceNumber.cpp +2 -2
  597. package/worker/test/src/testHelpers.cpp +1 -1
  598. package/worker/test/src/tests.cpp +0 -12
  599. package/node/lib/fbs/consumer/degrade-request.d.ts +0 -30
  600. package/node/lib/fbs/consumer/degrade-request.d.ts.map +0 -1
  601. package/node/lib/fbs/consumer/degrade-request.js +0 -91
  602. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts +0 -24
  603. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts.map +0 -1
  604. package/node/lib/fbs/consumer/enable-delay-and-loss-request.js +0 -69
  605. package/node/lib/fbs/producer/degrade-request.d.ts +0 -30
  606. package/node/lib/fbs/producer/degrade-request.d.ts.map +0 -1
  607. package/node/lib/fbs/producer/degrade-request.js +0 -91
  608. package/node/lib/fbs/worker/close-notification.d.ts +0 -18
  609. package/node/lib/fbs/worker/close-notification.d.ts.map +0 -1
  610. package/node/lib/fbs/worker/close-notification.js +0 -45
  611. package/node/lib/fbs/worker/close-request.d.ts +0 -18
  612. package/node/lib/fbs/worker/close-request.d.ts.map +0 -1
  613. package/node/lib/fbs/worker/close-request.js +0 -45
  614. package/node/lib/fbs/worker/close-worker-notification.d.ts +0 -18
  615. package/node/lib/fbs/worker/close-worker-notification.d.ts.map +0 -1
  616. package/node/lib/fbs/worker/close-worker-notification.js +0 -45
  617. package/worker/include/DepUsrSCTP.hpp +0 -49
  618. package/worker/include/RTC/SCTP/TODO_SCTP.md +0 -55
  619. package/worker/include/RTC/SCTP/common/UnwrappedSequenceNumber.hpp +0 -274
  620. package/worker/include/RTC/SctpAssociation.hpp +0 -147
  621. package/worker/src/DepUsrSCTP.cpp +0 -283
  622. package/worker/src/RTC/SctpAssociation.cpp +0 -1175
  623. package/worker/subprojects/usrsctp.wrap +0 -8
@@ -3,7 +3,6 @@
3
3
  #define USE_TREND_CALCULATOR
4
4
 
5
5
  #include "RTC/TransportCongestionControlClient.hpp"
6
- #include "DepLibUV.hpp"
7
6
  #include "Logger.hpp"
8
7
  #include <libwebrtc/api/transport/network_types.h> // webrtc::TargetRateConstraints
9
8
  #include <limits> // std::numeric_limits
@@ -116,7 +115,7 @@ namespace RTC
116
115
  MS_TRACE();
117
116
 
118
117
  #ifdef USE_TREND_CALCULATOR
119
- auto nowMs = DepLibUV::GetTimeMsInt64();
118
+ const auto nowMs = this->shared->GetTimeMsInt64();
120
119
  #endif
121
120
 
122
121
  this->bitrates.desiredBitrate = 0u;
@@ -309,7 +308,7 @@ namespace RTC
309
308
  MS_TRACE();
310
309
 
311
310
  #ifdef USE_TREND_CALCULATOR
312
- auto nowMs = DepLibUV::GetTimeMsInt64();
311
+ const auto nowMs = this->shared->GetTimeMsInt64();
313
312
  #endif
314
313
 
315
314
  // Manage it via trending and increase it a bit to avoid immediate oscillations.
@@ -411,7 +410,7 @@ namespace RTC
411
410
 
412
411
  webrtc::TargetRateConstraints constraints;
413
412
 
414
- constraints.at_time = webrtc::Timestamp::ms(DepLibUV::GetTimeMs());
413
+ constraints.at_time = webrtc::Timestamp::ms(this->shared->GetTimeMs());
415
414
  constraints.min_data_rate = webrtc::DataRate::bps(this->bitrates.minBitrate);
416
415
  constraints.max_data_rate = webrtc::DataRate::bps(this->bitrates.maxBitrate);
417
416
  constraints.starting_rate = webrtc::DataRate::bps(this->bitrates.startBitrate);
@@ -437,14 +436,14 @@ namespace RTC
437
436
  {
438
437
  MS_TRACE();
439
438
 
440
- this->lastAvailableBitrateEventAtMs = DepLibUV::GetTimeMs();
439
+ this->lastAvailableBitrateEventAtMs = this->shared->GetTimeMs();
441
440
  }
442
441
 
443
442
  void TransportCongestionControlClient::MayEmitAvailableBitrateEvent(uint32_t previousAvailableBitrate)
444
443
  {
445
444
  MS_TRACE();
446
445
 
447
- const uint64_t nowMs = DepLibUV::GetTimeMsInt64();
446
+ const uint64_t nowMs = this->shared->GetTimeMsInt64();
448
447
  bool notify{ false };
449
448
 
450
449
  // Ignore if first event.
@@ -2,7 +2,6 @@
2
2
  // #define MS_LOG_DEV_LEVEL 3
3
3
 
4
4
  #include "RTC/TransportCongestionControlServer.hpp"
5
- #include "DepLibUV.hpp"
6
5
  #include "Logger.hpp"
7
6
  #include "RTC/RTCP/FeedbackPsRemb.hpp"
8
7
 
@@ -287,7 +286,7 @@ namespace RTC
287
286
  // This is to ensure that we send N REMB packets with bitrate 0 (unlimited).
288
287
  this->unlimitedRembCounter = UnlimitedRembNumPackets;
289
288
 
290
- auto nowMs = DepLibUV::GetTimeMs();
289
+ auto nowMs = this->shared->GetTimeMs();
291
290
 
292
291
  MaySendLimitationRembFeedback(nowMs);
293
292
  }
@@ -4,9 +4,9 @@
4
4
 
5
5
  #include "Logger.hpp"
6
6
  #include "MediaSoupErrors.hpp"
7
+ #include "RTC/WebRtcServer.hpp"
7
8
  #include "Settings.hpp"
8
9
  #include "Utils.hpp"
9
- #include "RTC/WebRtcServer.hpp"
10
10
  #include <cmath> // std::pow()
11
11
 
12
12
  namespace RTC
@@ -2,11 +2,11 @@
2
2
  // #define MS_LOG_DEV_LEVEL 3
3
3
 
4
4
  #include "RTC/WebRtcTransport.hpp"
5
+ #include "FBS/webRtcTransport.h"
5
6
  #include "Logger.hpp"
6
7
  #include "MediaSoupErrors.hpp"
7
8
  #include "Settings.hpp"
8
9
  #include "Utils.hpp"
9
- #include "FBS/webRtcTransport.h"
10
10
  #include <cmath> // std::pow()
11
11
 
12
12
  namespace RTC
@@ -339,7 +339,7 @@ namespace RTC
339
339
  // We need to tell the Transport parent class that we are about to destroy
340
340
  // the class instance. This is because child's destructor runs before
341
341
  // parent's destructor. See comment in Transport::OnSctpAssociationSendData().
342
- Destroying();
342
+ SetDestroying();
343
343
 
344
344
  this->shared->GetChannelMessageRegistrator()->UnregisterHandler(this->id);
345
345
 
@@ -860,22 +860,14 @@ namespace RTC
860
860
  }
861
861
 
862
862
  void WebRtcTransport::SendMessage(
863
- RTC::DataConsumer* dataConsumer, const uint8_t* msg, size_t len, uint32_t ppid, onQueuedCallback* cb)
863
+ RTC::DataConsumer* dataConsumer, RTC::SCTP::Message message, onQueuedCallback* cb)
864
864
  {
865
865
  MS_TRACE();
866
866
 
867
- if (Settings::configuration.useBuiltInSctpStack)
868
- {
869
- // TODO: SCTP
870
- }
871
- // TODO: Remove once we only use built-in SCTP stack.
872
- else
873
- {
874
- this->oldSctpAssociation->SendSctpMessage(dataConsumer, msg, len, ppid, cb);
875
- }
867
+ SendSctpMessage(dataConsumer, std::move(message), cb);
876
868
  }
877
869
 
878
- bool WebRtcTransport::SendSctpData(const uint8_t* data, size_t len)
870
+ bool WebRtcTransport::SendData(const uint8_t* data, size_t len)
879
871
  {
880
872
  MS_TRACE();
881
873
 
@@ -52,16 +52,15 @@ void Settings::SetConfiguration(int argc, char* argv[])
52
52
  // clang-format off
53
53
  struct option options[] =
54
54
  {
55
- { "logLevel", optional_argument, nullptr, 'l' },
56
- { "logTags", optional_argument, nullptr, 't' },
57
- { "rtcMinPort", optional_argument, nullptr, 'm' },
58
- { "rtcMaxPort", optional_argument, nullptr, 'M' },
59
- { "dtlsCertificateFile", optional_argument, nullptr, 'c' },
60
- { "dtlsPrivateKeyFile", optional_argument, nullptr, 'p' },
61
- { "libwebrtcFieldTrials", optional_argument, nullptr, 'W' },
62
- { "disableLiburing", optional_argument, nullptr, 'd' },
63
- { "useBuiltInSctpStack", optional_argument, nullptr, 's' },
64
- { nullptr, 0, nullptr, 0 }
55
+ { .name="logLevel", .has_arg=optional_argument, .flag=nullptr, .val='l' },
56
+ { .name="logTags", .has_arg=optional_argument, .flag=nullptr, .val='t' },
57
+ { .name="rtcMinPort", .has_arg=optional_argument, .flag=nullptr, .val='m' },
58
+ { .name="rtcMaxPort", .has_arg=optional_argument, .flag=nullptr, .val='M' },
59
+ { .name="dtlsCertificateFile", .has_arg=optional_argument, .flag=nullptr, .val='c' },
60
+ { .name="dtlsPrivateKeyFile", .has_arg=optional_argument, .flag=nullptr, .val='p' },
61
+ { .name="libwebrtcFieldTrials", .has_arg=optional_argument, .flag=nullptr, .val='W' },
62
+ { .name="disableLiburing", .has_arg=optional_argument, .flag=nullptr, .val='d' },
63
+ { .name=nullptr, .has_arg=0, .flag=nullptr, .val=0 }
65
64
  };
66
65
  // clang-format on
67
66
  std::string stringValue;
@@ -172,22 +171,6 @@ void Settings::SetConfiguration(int argc, char* argv[])
172
171
  break;
173
172
  }
174
173
 
175
- case 's':
176
- {
177
- stringValue = std::string(optarg);
178
-
179
- if (stringValue == "true")
180
- {
181
- Settings::configuration.useBuiltInSctpStack = true;
182
- }
183
- else
184
- {
185
- Settings::configuration.useBuiltInSctpStack = false;
186
- }
187
-
188
- break;
189
- }
190
-
191
174
  // Invalid option.
192
175
  case '?':
193
176
  {
@@ -400,8 +383,6 @@ void Settings::PrintConfiguration()
400
383
  info, " libwebrtcFieldTrials: %s", Settings::configuration.libwebrtcFieldTrials.c_str());
401
384
  }
402
385
  MS_DEBUG_TAG(info, " disableLiburing: %s", Settings::configuration.disableLiburing ? "yes" : "no");
403
- MS_DEBUG_TAG(
404
- info, " useBuiltInSctpStack: %s", Settings::configuration.useBuiltInSctpStack ? "yes" : "no");
405
386
 
406
387
  MS_DEBUG_TAG(info, "</configuration>");
407
388
  }
@@ -2,9 +2,9 @@
2
2
  // #define MS_LOG_DEV_LEVEL 3
3
3
 
4
4
  #include "Shared.hpp"
5
- #include "Logger.hpp"
6
5
  #include "handles/BackoffTimerHandle.hpp"
7
6
  #include "handles/TimerHandle.hpp"
7
+ #include "Logger.hpp"
8
8
 
9
9
  Shared::Shared(
10
10
  Channel::ChannelMessageRegistrator* channelMessageRegistrator,
@@ -19,7 +19,7 @@ Shared::~Shared()
19
19
  MS_TRACE();
20
20
  }
21
21
 
22
- TimerHandleInterface* Shared::CreateTimer(TimerHandleInterface::Listener* listener) const
22
+ TimerHandleInterface* Shared::CreateTimer(TimerHandleInterface::Listener* listener)
23
23
  {
24
24
  MS_TRACE();
25
25
 
@@ -27,7 +27,7 @@ TimerHandleInterface* Shared::CreateTimer(TimerHandleInterface::Listener* listen
27
27
  }
28
28
 
29
29
  BackoffTimerHandleInterface* Shared::CreateBackoffTimer(
30
- const BackoffTimerHandleInterface::BackoffTimerHandleOptions& options) const
30
+ const BackoffTimerHandleInterface::BackoffTimerHandleOptions& options)
31
31
  {
32
32
  MS_TRACE();
33
33
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  namespace Utils
10
10
  {
11
- /* Static variables. */
11
+ /* Class variables. */
12
12
 
13
13
  thread_local std::mt19937_64 Crypto::rng;
14
14
  thread_local EVP_MAC* Crypto::mac{ nullptr };
@@ -19,7 +19,7 @@
19
19
  /* Static. */
20
20
 
21
21
  static constexpr size_t BufferOutSize{ 65536 };
22
- thread_local uint8_t BufferOut[BufferOutSize];
22
+ static thread_local uint8_t BufferOut[BufferOutSize];
23
23
  static const uint8_t Base64Table[65] =
24
24
  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
25
25
 
@@ -5,14 +5,12 @@
5
5
  #ifdef MS_LIBURING_SUPPORTED
6
6
  #include "DepLibUring.hpp"
7
7
  #endif
8
+ #include "FBS/response.h"
9
+ #include "FBS/worker.h"
8
10
  #include "DepLibUV.hpp"
9
- // TODO: Remove once we only use built-in SCTP stack.
10
- #include "DepUsrSCTP.hpp"
11
11
  #include "Logger.hpp"
12
12
  #include "MediaSoupErrors.hpp"
13
13
  #include "Settings.hpp"
14
- #include "FBS/response.h"
15
- #include "FBS/worker.h"
16
14
 
17
15
  /* Instance methods. */
18
16
 
@@ -35,13 +33,6 @@ Worker::Worker(::Channel::ChannelSocket* channel, SharedInterface* shared)
35
33
  }
36
34
  #endif
37
35
 
38
- // TODO: Remove once we only use built-in SCTP stack.
39
- if (!Settings::configuration.useBuiltInSctpStack)
40
- {
41
- // Create the Checker instance in DepUsrSCTP.
42
- DepUsrSCTP::CreateChecker(this->shared);
43
- }
44
-
45
36
  #ifdef MS_LIBURING_SUPPORTED
46
37
  if (DepLibUring::IsEnabled())
47
38
  {
@@ -52,7 +43,7 @@ Worker::Worker(::Channel::ChannelSocket* channel, SharedInterface* shared)
52
43
 
53
44
  // Tell the Node process that we are running.
54
45
  this->shared->GetChannelNotifier()->Emit(
55
- std::to_string(Logger::pid), FBS::Notification::Event::WORKER_RUNNING);
46
+ std::to_string(Logger::Pid), FBS::Notification::Event::WORKER_RUNNING);
56
47
 
57
48
  MS_DEBUG_DEV("starting libuv loop");
58
49
  DepLibUV::RunLoop();
@@ -101,13 +92,6 @@ void Worker::Close()
101
92
  }
102
93
  this->mapWebRtcServers.clear();
103
94
 
104
- // TODO: Remove once we only use built-in SCTP stack.
105
- if (!Settings::configuration.useBuiltInSctpStack)
106
- {
107
- // Close the Checker instance in DepUsrSCTP.
108
- DepUsrSCTP::CloseChecker();
109
- }
110
-
111
95
  #ifdef MS_LIBURING_SUPPORTED
112
96
  if (DepLibUring::IsEnabled())
113
97
  {
@@ -153,7 +137,7 @@ flatbuffers::Offset<FBS::Worker::DumpResponse> Worker::FillBuffer(
153
137
  {
154
138
  return FBS::Worker::CreateDumpResponseDirect(
155
139
  builder,
156
- Logger::pid,
140
+ Logger::Pid,
157
141
  &webRtcServerIds,
158
142
  &routerIds,
159
143
  channelMessageHandlers,
@@ -162,11 +146,11 @@ flatbuffers::Offset<FBS::Worker::DumpResponse> Worker::FillBuffer(
162
146
  else
163
147
  {
164
148
  return FBS::Worker::CreateDumpResponseDirect(
165
- builder, Logger::pid, &webRtcServerIds, &routerIds, channelMessageHandlers);
149
+ builder, Logger::Pid, &webRtcServerIds, &routerIds, channelMessageHandlers);
166
150
  }
167
151
  #else
168
152
  return FBS::Worker::CreateDumpResponseDirect(
169
- builder, Logger::pid, &webRtcServerIds, &routerIds, channelMessageHandlers);
153
+ builder, Logger::Pid, &webRtcServerIds, &routerIds, channelMessageHandlers);
170
154
  #endif
171
155
  }
172
156
 
@@ -232,7 +216,7 @@ flatbuffers::Offset<FBS::Worker::ResourceUsageResponse> Worker::FillBufferResour
232
216
  uvRusage.ru_nivcsw);
233
217
  }
234
218
 
235
- RTC::WebRtcServer* Worker::GetWebRtcServer(const std::string& webRtcServerId) const
219
+ RTC::WebRtcServer* Worker::AssertAndGetWebRtcServerById(const std::string& webRtcServerId) const
236
220
  {
237
221
  auto it = this->mapWebRtcServers.find(webRtcServerId);
238
222
 
@@ -244,7 +228,7 @@ RTC::WebRtcServer* Worker::GetWebRtcServer(const std::string& webRtcServerId) co
244
228
  return it->second;
245
229
  }
246
230
 
247
- RTC::Router* Worker::GetRouter(const std::string& routerId) const
231
+ RTC::Router* Worker::AssertAndGetRouterById(const std::string& routerId) const
248
232
  {
249
233
  MS_TRACE();
250
234
 
@@ -348,7 +332,7 @@ void Worker::HandleRequest(Channel::ChannelRequest* request)
348
332
 
349
333
  try
350
334
  {
351
- webRtcServer = GetWebRtcServer(webRtcServerId);
335
+ webRtcServer = AssertAndGetWebRtcServerById(webRtcServerId);
352
336
  }
353
337
  catch (const MediaSoupError& error)
354
338
  {
@@ -403,7 +387,7 @@ void Worker::HandleRequest(Channel::ChannelRequest* request)
403
387
 
404
388
  try
405
389
  {
406
- router = GetRouter(routerId);
390
+ router = AssertAndGetRouterById(routerId);
407
391
  }
408
392
  catch (const MediaSoupError& error)
409
393
  {
@@ -8,8 +8,9 @@
8
8
 
9
9
  /* Instance methods. */
10
10
 
11
- BackoffTimerHandle::BackoffTimerHandle(const BackoffTimerHandleOptions& options)
11
+ BackoffTimerHandle::BackoffTimerHandle(BackoffTimerHandleOptions options)
12
12
  : listener(options.listener),
13
+ label(std::move(options.label)),
13
14
  baseTimeoutMs(options.baseTimeoutMs),
14
15
  backoffAlgorithm(options.backoffAlgorithm),
15
16
  maxBackoffTimeoutMs(options.maxBackoffTimeoutMs),
@@ -17,8 +18,24 @@ BackoffTimerHandle::BackoffTimerHandle(const BackoffTimerHandleOptions& options)
17
18
  {
18
19
  MS_TRACE();
19
20
 
20
- // NOTE: This may throw.
21
- SetBaseTimeoutMs(baseTimeoutMs);
21
+ if (!this->listener)
22
+ {
23
+ MS_THROW_TYPE_ERROR("options.listener must be given");
24
+ }
25
+
26
+ if (this->label.empty())
27
+ {
28
+ MS_THROW_TYPE_ERROR("options.label must be given");
29
+ }
30
+
31
+ if (this->baseTimeoutMs > BackoffTimerHandleInterface::MaxTimeoutMs)
32
+ {
33
+ MS_THROW_ERROR(
34
+ "[%s] base timeout (%" PRIu64 " ms) cannot be greater than %" PRIu64 " ms",
35
+ this->label.c_str(),
36
+ this->baseTimeoutMs,
37
+ BackoffTimerHandleInterface::MaxTimeoutMs);
38
+ }
22
39
 
23
40
  this->timer = new TimerHandle(this);
24
41
  }
@@ -58,7 +75,8 @@ void BackoffTimerHandle::SetBaseTimeoutMs(uint64_t baseTimeoutMs)
58
75
  if (baseTimeoutMs > BackoffTimerHandleInterface::MaxTimeoutMs)
59
76
  {
60
77
  MS_THROW_ERROR(
61
- "base timeout (%" PRIu64 " ms) cannot be greater than %" PRIu64 " ms",
78
+ "[%s] base timeout (%" PRIu64 " ms) cannot be greater than %" PRIu64 " ms",
79
+ this->label.c_str(),
62
80
  baseTimeoutMs,
63
81
  BackoffTimerHandleInterface::MaxTimeoutMs);
64
82
  }
@@ -108,7 +126,7 @@ void BackoffTimerHandle::OnTimer(TimerHandleInterface* /*timer*/)
108
126
  this->expirationCount++;
109
127
 
110
128
  // Compute whether the BackoffTimer should still be running after this timeout
111
- // expiration so the parent can check IsRunning() within the OnTimer()
129
+ // expiration so the parent can check IsRunning() within the `OnBackoffTimer()`
112
130
  // callback.
113
131
  this->running =
114
132
  !this->maxRestarts.has_value() || this->expirationCount <= this->maxRestarts.value();
@@ -118,7 +136,7 @@ void BackoffTimerHandle::OnTimer(TimerHandleInterface* /*timer*/)
118
136
 
119
137
  // Call the listener by passing base timeout as reference so the parent has
120
138
  // a chance to change it and affect the next timeout.
121
- this->listener->OnTimer(this, baseTimeoutMs, stop);
139
+ this->listener->OnBackoffTimer(this, baseTimeoutMs, stop);
122
140
 
123
141
  // If the parent has set `stop` to true it means that it has deleted the
124
142
  // instance, so stop here.
@@ -17,7 +17,7 @@ static constexpr size_t ReadBufferSize{ 65536 };
17
17
  // it to structs (e.g. RTP::Packet::FixedHeader) that require 4-byte alignment.
18
18
  // Without this, accessing multi-byte fields would be undefined behavior on
19
19
  // strict-alignment architectures.
20
- alignas(4) thread_local uint8_t ReadBuffer[ReadBufferSize];
20
+ alignas(4) static thread_local uint8_t ReadBuffer[ReadBufferSize];
21
21
 
22
22
  /* Static methods for UV callbacks. */
23
23
 
@@ -7,22 +7,20 @@
7
7
  #ifdef MS_LIBURING_SUPPORTED
8
8
  #include "DepLibUring.hpp"
9
9
  #endif
10
+ #include "Channel/ChannelMessageRegistrator.hpp"
11
+ #include "Channel/ChannelNotifier.hpp"
12
+ #include "Channel/ChannelSocket.hpp"
10
13
  #include "DepLibUV.hpp"
11
14
  #include "DepLibWebRTC.hpp"
12
15
  #include "DepOpenSSL.hpp"
13
- // TODO: Remove once we only use built-in SCTP stack.
14
- #include "DepUsrSCTP.hpp"
15
16
  #include "Logger.hpp"
16
17
  #include "MediaSoupErrors.hpp"
18
+ #include "RTC/DtlsTransport.hpp"
19
+ #include "RTC/SrtpSession.hpp"
17
20
  #include "Settings.hpp"
18
21
  #include "Shared.hpp"
19
22
  #include "Utils.hpp"
20
23
  #include "Worker.hpp"
21
- #include "Channel/ChannelMessageRegistrator.hpp"
22
- #include "Channel/ChannelNotifier.hpp"
23
- #include "Channel/ChannelSocket.hpp"
24
- #include "RTC/DtlsTransport.hpp"
25
- #include "RTC/SrtpSession.hpp"
26
24
  #include <absl/container/flat_hash_map.h>
27
25
  #include <csignal> // sigaction()
28
26
  #include <string>
@@ -156,11 +154,6 @@ extern "C" int mediasoup_worker_run(
156
154
  // Initialize static stuff.
157
155
  DepOpenSSL::ClassInit();
158
156
  DepLibSRTP::ClassInit();
159
- // TODO: Remove once we only use built-in SCTP stack.
160
- if (!Settings::configuration.useBuiltInSctpStack)
161
- {
162
- DepUsrSCTP::ClassInit();
163
- }
164
157
  #ifdef MS_LIBURING_SUPPORTED
165
158
  DepLibUring::ClassInit();
166
159
  #endif
@@ -187,11 +180,6 @@ extern "C" int mediasoup_worker_run(
187
180
  DepLibUring::ClassDestroy();
188
181
  #endif
189
182
  RTC::DtlsTransport::ClassDestroy();
190
- // TODO: Remove once we only use built-in SCTP stack.
191
- if (!Settings::configuration.useBuiltInSctpStack)
192
- {
193
- DepUsrSCTP::ClassDestroy();
194
- }
195
183
  DepLibUV::ClassDestroy();
196
184
 
197
185
  return 0;
@@ -1,10 +1,10 @@
1
1
  [wrap-file]
2
- directory = Catch2-3.13.0
3
- source_url = https://github.com/catchorg/Catch2/archive/v3.13.0.tar.gz
4
- source_filename = Catch2-3.13.0.tar.gz
5
- source_hash = 650795f6501af514f806e78c554729847b98db6935e69076f36bb03ed2e985ef
6
- source_fallback_url = https://wrapdb.mesonbuild.com/v2/catch2_3.13.0-1/get_source/Catch2-3.13.0.tar.gz
7
- wrapdb_version = 3.13.0-1
2
+ directory = Catch2-3.14.0
3
+ source_url = https://github.com/catchorg/Catch2/archive/v3.14.0.tar.gz
4
+ source_filename = Catch2-3.14.0.tar.gz
5
+ source_hash = ba2a939efead3c833c499cf487e185762f419a71d30158cd1b43c6079c586490
6
+ source_fallback_url = https://wrapdb.mesonbuild.com/v2/catch2_3.14.0-1/get_source/Catch2-3.14.0.tar.gz
7
+ wrapdb_version = 3.14.0-1
8
8
 
9
9
  [provide]
10
10
  catch2 = catch2_dep
@@ -2,13 +2,13 @@
2
2
  #define MS_TEST_RTC_ICE_COMMON_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "MediaSoupErrors.hpp" // IWYU pragma: export
6
- #include "Utils.hpp" // IWYU pragma: export
7
- #include "testHelpers.hpp" // IWYU pragma: export
8
- #include "RTC/ICE/StunPacket.hpp" // IWYU pragma: export
9
- #include <catch2/catch_test_macros.hpp> // IWYU pragma: export
10
- #include <cstdlib> // std::malloc(), std::free()
11
- #include <cstring> // std::memcpy()
5
+ #include "MediaSoupErrors.hpp"
6
+ #include "RTC/ICE/StunPacket.hpp"
7
+ #include "Utils.hpp"
8
+ #include "test/include/testHelpers.hpp"
9
+ #include <catch2/catch_test_macros.hpp>
10
+ #include <cstdlib> // std::malloc(), std::free()
11
+ #include <cstring> // std::memcpy()
12
12
  #include <string_view>
13
13
 
14
14
  namespace iceCommon
@@ -2,12 +2,12 @@
2
2
  #define MS_TEST_RTC_RTP_COMMON_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "MediaSoupErrors.hpp" // IWYU pragma: export
6
- #include "testHelpers.hpp" // IWYU pragma: export
7
- #include "RTC/RTP/Packet.hpp" // IWYU pragma: export
8
- #include <catch2/catch_test_macros.hpp> // IWYU pragma: export
9
- #include <cstdlib> // std::malloc(), std::free()
10
- #include <cstring> // std::memcpy()
5
+ #include "MediaSoupErrors.hpp"
6
+ #include "RTC/RTP/Packet.hpp"
7
+ #include "test/include/testHelpers.hpp"
8
+ #include <catch2/catch_test_macros.hpp>
9
+ #include <cstdlib> // std::malloc(), std::free()
10
+ #include <cstring> // std::memcpy()
11
11
 
12
12
  namespace rtpCommon
13
13
  {
@@ -2,16 +2,16 @@
2
2
  #define MS_TEST_RTC_SCTP_COMMON_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "MediaSoupErrors.hpp" // IWYU pragma: export
6
- #include "Utils.hpp" // IWYU pragma: export
7
- #include "testHelpers.hpp" // IWYU pragma: export
8
- #include "RTC/SCTP/packet/Chunk.hpp" // IWYU pragma: export
9
- #include "RTC/SCTP/packet/ErrorCause.hpp" // IWYU pragma: export
10
- #include "RTC/SCTP/packet/Packet.hpp" // IWYU pragma: export
11
- #include "RTC/SCTP/packet/Parameter.hpp" // IWYU pragma: export
12
- #include "RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.hpp" // IWYU pragma: export
13
- #include "RTC/SCTP/packet/parameters/HeartbeatInfoParameter.hpp" // IWYU pragma: export
14
- #include <catch2/catch_test_macros.hpp> // IWYU pragma: export
5
+ #include "MediaSoupErrors.hpp"
6
+ #include "RTC/SCTP/packet/Chunk.hpp"
7
+ #include "RTC/SCTP/packet/ErrorCause.hpp"
8
+ #include "RTC/SCTP/packet/Packet.hpp"
9
+ #include "RTC/SCTP/packet/Parameter.hpp"
10
+ #include "RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.hpp"
11
+ #include "RTC/SCTP/packet/parameters/HeartbeatInfoParameter.hpp"
12
+ #include "Utils.hpp"
13
+ #include "test/include/testHelpers.hpp"
14
+ #include <catch2/catch_test_macros.hpp>
15
15
 
16
16
  namespace sctpCommon
17
17
  {
@@ -0,0 +1,31 @@
1
+ #ifndef MS_CATCH2_MACROS_HPP
2
+ #define MS_CATCH2_MACROS_HPP
3
+
4
+ #include <catch2/catch_test_macros.hpp>
5
+
6
+ /**
7
+ * `VerificationResult` struct is defined in mocks/include/mockTypes.hpp.
8
+ */
9
+ // clang-format off
10
+ #define REQUIRE_VERIFICATION_RESULT(verificationResult) \
11
+ do \
12
+ { \
13
+ const auto& result = (verificationResult); \
14
+ \
15
+ if (!(result.ok)) \
16
+ { \
17
+ FAIL(result.errorMessage); \
18
+ } \
19
+ } while (false)
20
+
21
+ // clang-format off
22
+ #define REQUIRE_WITH_MESSAGE(condition, errorMessage) \
23
+ do \
24
+ { \
25
+ if (!(condition)) \
26
+ { \
27
+ FAIL(errorMessage); \
28
+ } \
29
+ } while (false)
30
+
31
+ #endif
@@ -1,8 +1,8 @@
1
1
  #include "common.hpp"
2
- #include "Utils.hpp"
3
- #include "testHelpers.hpp"
4
2
  #include "RTC/ICE/StunPacket.hpp"
5
- #include "RTC/ICE/iceCommon.hpp"
3
+ #include "Utils.hpp"
4
+ #include "test/include/RTC/ICE/iceCommon.hpp"
5
+ #include "test/include/testHelpers.hpp"
6
6
  #include <uv.h>
7
7
  #include <catch2/catch_test_macros.hpp>
8
8
  #include <cstring> // std::memset()
@@ -1,5 +1,5 @@
1
- #include "RTC/ICE/iceCommon.hpp" // in worker/test/include/
2
- #include <cstring> // std::memset
1
+ #include "test/include/RTC/ICE/iceCommon.hpp" // in worker/test/include/
2
+ #include <cstring> // std::memset
3
3
 
4
4
  namespace iceCommon
5
5
  {
@@ -1,7 +1,7 @@
1
1
  #include "common.hpp"
2
2
  #include "RTC/RTP/Codecs/VP8.hpp"
3
3
  #include "RTC/RTP/Packet.hpp"
4
- #include "RTC/RTP/rtpCommon.hpp"
4
+ #include "test/include/RTC/RTP/rtpCommon.hpp"
5
5
  #include <catch2/catch_test_macros.hpp>
6
6
  #include <cstring> // std::memcmp(), std::memcpy()
7
7
 
@@ -1,7 +1,7 @@
1
1
  #include "common.hpp"
2
2
  #include "RTC/RTP/Codecs/VP9.hpp"
3
3
  #include "RTC/RTP/Packet.hpp"
4
- #include "RTC/RTP/rtpCommon.hpp"
4
+ #include "test/include/RTC/RTP/rtpCommon.hpp"
5
5
  #include <catch2/catch_test_macros.hpp>
6
6
  #include <cstring> // std::memcmp()
7
7
 
@@ -1,10 +1,10 @@
1
1
  #include "common.hpp"
2
- #include "Utils.hpp"
3
- #include "testHelpers.hpp"
4
2
  #include "RTC/RTP/HeaderExtensionIds.hpp"
5
3
  #include "RTC/RTP/Packet.hpp"
6
- #include "RTC/RTP/rtpCommon.hpp"
7
4
  #include "RTC/RtpDictionaries.hpp"
5
+ #include "Utils.hpp"
6
+ #include "test/include/RTC/RTP/rtpCommon.hpp"
7
+ #include "test/include/testHelpers.hpp"
8
8
  #include <catch2/catch_test_macros.hpp>
9
9
  #include <cstring> // std::memset()
10
10
  #include <string>