mediasoup 3.19.21 → 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 (649) 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 +2 -1
  44. package/node/lib/Worker.d.ts.map +1 -1
  45. package/node/lib/Worker.js +71 -25
  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 +13 -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 +13 -3
  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 +14 -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/ChannelMessageRegistrator.hpp +39 -0
  316. package/worker/include/Channel/ChannelMessageRegistratorInterface.hpp +32 -0
  317. package/worker/include/Channel/ChannelRequest.hpp +1 -1
  318. package/worker/include/Channel/ChannelSocket.hpp +1 -1
  319. package/worker/include/DepLibUV.hpp +1 -1
  320. package/worker/include/DepLibUring.hpp +3 -3
  321. package/worker/include/Logger.hpp +4 -4
  322. package/worker/include/MediaSoupErrors.hpp +1 -1
  323. package/worker/include/RTC/ActiveSpeakerObserver.hpp +11 -9
  324. package/worker/include/RTC/AudioLevelObserver.hpp +7 -7
  325. package/worker/include/RTC/Consumer.hpp +3 -3
  326. package/worker/include/RTC/DataConsumer.hpp +13 -17
  327. package/worker/include/RTC/DataProducer.hpp +6 -9
  328. package/worker/include/RTC/DirectTransport.hpp +4 -6
  329. package/worker/include/RTC/DtlsTransport.hpp +13 -11
  330. package/worker/include/RTC/ICE/IceServer.hpp +8 -5
  331. package/worker/include/RTC/ICE/StunPacket.hpp +1 -1
  332. package/worker/include/RTC/KeyFrameRequestManager.hpp +15 -12
  333. package/worker/include/RTC/NackGenerator.hpp +8 -6
  334. package/worker/include/RTC/PipeConsumer.hpp +1 -2
  335. package/worker/include/RTC/PipeTransport.hpp +4 -6
  336. package/worker/include/RTC/PlainTransport.hpp +4 -6
  337. package/worker/include/RTC/PortManager.hpp +1 -1
  338. package/worker/include/RTC/Producer.hpp +3 -3
  339. package/worker/include/RTC/RTCP/FeedbackPs.hpp +1 -1
  340. package/worker/include/RTC/RTCP/FeedbackRtp.hpp +1 -1
  341. package/worker/include/RTC/RTCP/FeedbackRtpNack.hpp +1 -1
  342. package/worker/include/RTC/RTCP/ReceiverReport.hpp +1 -1
  343. package/worker/include/RTC/RTP/Packet.hpp +2 -2
  344. package/worker/include/RTC/RTP/RtpStream.hpp +17 -12
  345. package/worker/include/RTC/RTP/RtpStreamRecv.hpp +8 -6
  346. package/worker/include/RTC/RTP/RtpStreamSend.hpp +4 -1
  347. package/worker/include/RTC/RTP/RtxStream.hpp +3 -1
  348. package/worker/include/RTC/RTP/SharedPacket.hpp +1 -1
  349. package/worker/include/RTC/RateCalculator.hpp +5 -2
  350. package/worker/include/RTC/Router.hpp +7 -8
  351. package/worker/include/RTC/RtpObserver.hpp +3 -3
  352. package/worker/include/RTC/SCTP/association/Association.hpp +53 -19
  353. package/worker/include/RTC/SCTP/association/AssociationListenerDeferrer.hpp +14 -6
  354. package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +18 -14
  355. package/worker/include/RTC/SCTP/association/PacketSender.hpp +3 -3
  356. package/worker/include/RTC/SCTP/association/StateCookie.hpp +1 -1
  357. package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +49 -35
  358. package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +114 -31
  359. package/worker/include/RTC/SCTP/association/{TCBContext.hpp → TransmissionControlBlockContextInterface.hpp} +14 -8
  360. package/worker/include/RTC/SCTP/packet/Chunk.hpp +3 -3
  361. package/worker/include/RTC/SCTP/packet/TLV.hpp +1 -1
  362. package/worker/include/RTC/SCTP/packet/UserData.hpp +61 -17
  363. package/worker/include/RTC/SCTP/packet/chunks/AnyDataChunk.hpp +1 -1
  364. package/worker/include/RTC/SCTP/packet/chunks/AnyForwardTsnChunk.hpp +9 -9
  365. package/worker/include/RTC/SCTP/packet/chunks/AnyInitChunk.hpp +1 -1
  366. package/worker/include/RTC/SCTP/packet/chunks/DataChunk.hpp +4 -2
  367. package/worker/include/RTC/SCTP/packet/chunks/ForwardTsnChunk.hpp +3 -3
  368. package/worker/include/RTC/SCTP/packet/chunks/IDataChunk.hpp +4 -2
  369. package/worker/include/RTC/SCTP/packet/chunks/IForwardTsnChunk.hpp +3 -3
  370. package/worker/include/RTC/SCTP/packet/chunks/InitAckChunk.hpp +1 -1
  371. package/worker/include/RTC/SCTP/packet/chunks/InitChunk.hpp +1 -1
  372. package/worker/include/RTC/SCTP/packet/chunks/SackChunk.hpp +10 -3
  373. package/worker/include/RTC/SCTP/packet/chunks/ShutdownChunk.hpp +1 -1
  374. package/worker/include/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.hpp +1 -1
  375. package/worker/include/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.hpp +1 -1
  376. package/worker/include/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.hpp +1 -1
  377. package/worker/include/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.hpp +1 -1
  378. package/worker/include/RTC/SCTP/packet/parameters/AddIncomingStreamsRequestParameter.hpp +1 -1
  379. package/worker/include/RTC/SCTP/packet/parameters/AddOutgoingStreamsRequestParameter.hpp +1 -1
  380. package/worker/include/RTC/SCTP/packet/parameters/CookiePreservativeParameter.hpp +1 -1
  381. package/worker/include/RTC/SCTP/packet/parameters/IncomingSsnResetRequestParameter.hpp +1 -1
  382. package/worker/include/RTC/SCTP/packet/parameters/OutgoingSsnResetRequestParameter.hpp +1 -1
  383. package/worker/include/RTC/SCTP/packet/parameters/ReconfigurationResponseParameter.hpp +1 -1
  384. package/worker/include/RTC/SCTP/packet/parameters/SsnTsnResetRequestParameter.hpp +1 -1
  385. package/worker/include/RTC/SCTP/packet/parameters/SupportedAddressTypesParameter.hpp +1 -1
  386. package/worker/include/RTC/SCTP/packet/parameters/SupportedExtensionsParameter.hpp +1 -1
  387. package/worker/include/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.hpp +1 -1
  388. package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +22 -2
  389. package/worker/include/RTC/SCTP/public/{AssociationListener.hpp → AssociationListenerInterface.hpp} +5 -5
  390. package/worker/include/RTC/SCTP/public/Message.hpp +26 -10
  391. package/worker/include/RTC/SCTP/public/SctpOptions.hpp +28 -19
  392. package/worker/include/RTC/SCTP/public/SctpTypes.hpp +21 -0
  393. package/worker/include/RTC/SCTP/rx/DataTracker.hpp +277 -0
  394. package/worker/include/RTC/SCTP/rx/InterleavedReassemblyStreams.hpp +116 -0
  395. package/worker/include/RTC/SCTP/rx/ReassemblyQueue.hpp +202 -0
  396. package/worker/include/RTC/SCTP/rx/ReassemblyStreamsInterface.hpp +83 -0
  397. package/worker/include/RTC/SCTP/rx/TraditionalReassemblyStreams.hpp +183 -0
  398. package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +595 -0
  399. package/worker/include/RTC/SCTP/tx/RetransmissionErrorCounter.hpp +3 -3
  400. package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +329 -0
  401. package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +11 -10
  402. package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +356 -0
  403. package/worker/include/RTC/SCTP/tx/SendQueueInterface.hpp +180 -0
  404. package/worker/include/RTC/SCTP/tx/StreamScheduler.hpp +235 -0
  405. package/worker/include/RTC/SenderBandwidthEstimator.hpp +5 -1
  406. package/worker/include/RTC/Serializable.hpp +11 -3
  407. package/worker/include/RTC/SimpleConsumer.hpp +1 -2
  408. package/worker/include/RTC/SimulcastConsumer.hpp +1 -2
  409. package/worker/include/RTC/SvcConsumer.hpp +1 -2
  410. package/worker/include/RTC/TcpServer.hpp +2 -2
  411. package/worker/include/RTC/Transport.hpp +65 -86
  412. package/worker/include/RTC/TransportCongestionControlClient.hpp +8 -5
  413. package/worker/include/RTC/TransportCongestionControlServer.hpp +8 -5
  414. package/worker/include/RTC/TransportTuple.hpp +1 -1
  415. package/worker/include/RTC/UdpSocket.hpp +1 -1
  416. package/worker/include/RTC/WebRtcServer.hpp +3 -3
  417. package/worker/include/RTC/WebRtcTransport.hpp +5 -7
  418. package/worker/include/Settings.hpp +2 -3
  419. package/worker/include/Shared.hpp +64 -0
  420. package/worker/include/SharedInterface.hpp +77 -0
  421. package/worker/include/Utils/UnwrappedSequenceNumber.hpp +270 -0
  422. package/worker/include/Utils.hpp +10 -4
  423. package/worker/include/Worker.hpp +6 -6
  424. package/worker/include/common.hpp +12 -12
  425. package/worker/include/handles/BackoffTimerHandle.hpp +28 -67
  426. package/worker/include/handles/BackoffTimerHandleInterface.hpp +123 -0
  427. package/worker/include/handles/TimerHandle.hpp +29 -20
  428. package/worker/include/handles/TimerHandleInterface.hpp +43 -0
  429. package/worker/meson.build +45 -29
  430. package/worker/meson_options.txt +2 -1
  431. package/worker/mocks/include/Channel/MockChannelMessageRegistrator.hpp +45 -0
  432. package/worker/mocks/include/MockShared.hpp +90 -0
  433. package/worker/mocks/include/RTC/SCTP/association/MockAssociationListener.hpp +308 -0
  434. package/worker/mocks/include/RTC/SCTP/association/MockTransmissionControlBlockContext.hpp +183 -0
  435. package/worker/mocks/include/RTC/SCTP/tx/MockSendQueue.hpp +262 -0
  436. package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +153 -0
  437. package/worker/mocks/include/handles/MockTimerHandle.hpp +74 -0
  438. package/worker/mocks/include/mockTypes.hpp +15 -0
  439. package/worker/mocks/src/Channel/MockChannelMessageRegistrator.cpp +128 -0
  440. package/worker/mocks/src/MockShared.cpp +46 -0
  441. package/worker/mocks/src/RTC/SCTP/association/MockTransmissionControlBlockContext.cpp +39 -0
  442. package/worker/mocks/src/handles/MockBackoffTimerHandle.cpp +127 -0
  443. package/worker/scripts/clang-scripts.mjs +5 -1
  444. package/worker/scripts/package-lock.json +6 -7
  445. package/worker/src/Channel/ChannelMessageRegistrator.cpp +125 -0
  446. package/worker/src/Channel/ChannelSocket.cpp +3 -4
  447. package/worker/src/DepLibUV.cpp +1 -1
  448. package/worker/src/DepLibUring.cpp +3 -1
  449. package/worker/src/Logger.cpp +1 -1
  450. package/worker/src/MediaSoupErrors.cpp +2 -0
  451. package/worker/src/RTC/ActiveSpeakerObserver.cpp +14 -14
  452. package/worker/src/RTC/AudioLevelObserver.cpp +12 -10
  453. package/worker/src/RTC/Consumer.cpp +28 -26
  454. package/worker/src/RTC/DataConsumer.cpp +61 -71
  455. package/worker/src/RTC/DataProducer.cpp +16 -11
  456. package/worker/src/RTC/DirectTransport.cpp +21 -20
  457. package/worker/src/RTC/DtlsTransport.cpp +4 -4
  458. package/worker/src/RTC/ICE/IceServer.cpp +6 -5
  459. package/worker/src/RTC/ICE/StunPacket.cpp +1 -1
  460. package/worker/src/RTC/KeyFrameRequestManager.cpp +15 -15
  461. package/worker/src/RTC/NackGenerator.cpp +6 -6
  462. package/worker/src/RTC/PipeConsumer.cpp +6 -5
  463. package/worker/src/RTC/PipeTransport.cpp +9 -22
  464. package/worker/src/RTC/PlainTransport.cpp +16 -28
  465. package/worker/src/RTC/Producer.cpp +40 -39
  466. package/worker/src/RTC/RTCP/FeedbackPsAfb.cpp +1 -1
  467. package/worker/src/RTC/RTCP/FeedbackPsRpsi.cpp +1 -2
  468. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +1 -1
  469. package/worker/src/RTC/RTCP/XR.cpp +1 -1
  470. package/worker/src/RTC/RTP/Packet.cpp +3 -1
  471. package/worker/src/RTC/RTP/ProbationGenerator.cpp +4 -4
  472. package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +1 -1
  473. package/worker/src/RTC/RTP/RtpStream.cpp +17 -10
  474. package/worker/src/RTC/RTP/RtpStreamRecv.cpp +16 -14
  475. package/worker/src/RTC/RTP/RtpStreamSend.cpp +12 -9
  476. package/worker/src/RTC/RTP/RtxStream.cpp +7 -7
  477. package/worker/src/RTC/RTP/SharedPacket.cpp +3 -3
  478. package/worker/src/RTC/RateCalculator.cpp +1 -2
  479. package/worker/src/RTC/Router.cpp +61 -38
  480. package/worker/src/RTC/RtpDictionaries/RtpCodecMimeType.cpp +1 -1
  481. package/worker/src/RTC/RtpObserver.cpp +2 -1
  482. package/worker/src/RTC/SCTP/LICENSE +44 -0
  483. package/worker/src/RTC/SCTP/association/Association.cpp +417 -411
  484. package/worker/src/RTC/SCTP/association/AssociationListenerDeferrer.cpp +46 -13
  485. package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +47 -43
  486. package/worker/src/RTC/SCTP/association/PacketSender.cpp +8 -8
  487. package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +113 -101
  488. package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +291 -62
  489. package/worker/src/RTC/SCTP/packet/Chunk.cpp +5 -1
  490. package/worker/src/RTC/SCTP/packet/Packet.cpp +8 -1
  491. package/worker/src/RTC/SCTP/packet/chunks/DataChunk.cpp +17 -0
  492. package/worker/src/RTC/SCTP/packet/chunks/ForwardTsnChunk.cpp +4 -4
  493. package/worker/src/RTC/SCTP/packet/chunks/IDataChunk.cpp +25 -0
  494. package/worker/src/RTC/SCTP/packet/chunks/IForwardTsnChunk.cpp +10 -7
  495. package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +21 -4
  496. package/worker/src/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.cpp +1 -1
  497. package/worker/src/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.cpp +1 -1
  498. package/worker/src/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.cpp +2 -2
  499. package/worker/src/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.cpp +1 -1
  500. package/worker/src/RTC/SCTP/public/Message.cpp +8 -0
  501. package/worker/src/RTC/SCTP/public/SctpOptions.cpp +90 -0
  502. package/worker/src/RTC/SCTP/rx/DataTracker.cpp +471 -0
  503. package/worker/src/RTC/SCTP/rx/InterleavedReassemblyStreams.cpp +327 -0
  504. package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +288 -0
  505. package/worker/src/RTC/SCTP/rx/TraditionalReassemblyStreams.cpp +453 -0
  506. package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +912 -0
  507. package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +786 -0
  508. package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +2 -2
  509. package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +752 -0
  510. package/worker/src/RTC/SCTP/tx/StreamScheduler.cpp +257 -0
  511. package/worker/src/RTC/SenderBandwidthEstimator.cpp +7 -5
  512. package/worker/src/RTC/SimpleConsumer.cpp +11 -11
  513. package/worker/src/RTC/SimulcastConsumer.cpp +16 -16
  514. package/worker/src/RTC/SrtpSession.cpp +1 -1
  515. package/worker/src/RTC/SvcConsumer.cpp +16 -16
  516. package/worker/src/RTC/TcpConnection.cpp +1 -1
  517. package/worker/src/RTC/Transport.cpp +497 -563
  518. package/worker/src/RTC/TransportCongestionControlClient.cpp +9 -8
  519. package/worker/src/RTC/TransportCongestionControlServer.cpp +5 -5
  520. package/worker/src/RTC/WebRtcServer.cpp +5 -4
  521. package/worker/src/RTC/WebRtcTransport.cpp +44 -39
  522. package/worker/src/Settings.cpp +9 -28
  523. package/worker/src/Shared.cpp +35 -0
  524. package/worker/src/Utils/Crypto.cpp +1 -1
  525. package/worker/src/Utils/String.cpp +1 -1
  526. package/worker/src/Worker.cpp +19 -48
  527. package/worker/src/handles/BackoffTimerHandle.cpp +34 -21
  528. package/worker/src/handles/TimerHandle.cpp +5 -4
  529. package/worker/src/handles/UdpSocketHandle.cpp +1 -1
  530. package/worker/src/lib.cpp +17 -16
  531. package/worker/subprojects/catch2.wrap +6 -6
  532. package/worker/tasks.py +1 -1
  533. package/worker/test/include/RTC/ICE/iceCommon.hpp +8 -7
  534. package/worker/test/include/RTC/RTP/rtpCommon.hpp +7 -6
  535. package/worker/test/include/RTC/SCTP/sctpCommon.hpp +16 -10
  536. package/worker/test/include/catch2Macros.hpp +31 -0
  537. package/worker/test/src/RTC/ICE/TestStunPacket.cpp +3 -3
  538. package/worker/test/src/RTC/ICE/iceCommon.cpp +2 -2
  539. package/worker/test/src/RTC/RTP/Codecs/TestVP8.cpp +1 -1
  540. package/worker/test/src/RTC/RTP/Codecs/TestVP9.cpp +1 -1
  541. package/worker/test/src/RTC/RTP/TestPacket.cpp +3 -3
  542. package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +16 -9
  543. package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +38 -23
  544. package/worker/test/src/RTC/RTP/TestSharedPacket.cpp +1 -1
  545. package/worker/test/src/RTC/RTP/rtpCommon.cpp +2 -2
  546. package/worker/test/src/RTC/SCTP/association/TestHeartbeatHandler.cpp +292 -0
  547. package/worker/test/src/RTC/SCTP/association/TestNegotiatedCapabilities.cpp +1 -1
  548. package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +1 -1
  549. package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +99 -0
  550. package/worker/test/src/RTC/SCTP/packet/TestChunk.cpp +1 -1
  551. package/worker/test/src/RTC/SCTP/packet/TestPacket.cpp +1 -1
  552. package/worker/test/src/RTC/SCTP/packet/chunks/TestAbortAssociationChunk.cpp +1 -1
  553. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieAckChunk.cpp +1 -1
  554. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieEchoChunk.cpp +1 -1
  555. package/worker/test/src/RTC/SCTP/packet/chunks/TestDataChunk.cpp +77 -7
  556. package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +35 -26
  557. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatAckChunk.cpp +1 -1
  558. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatRequestChunk.cpp +1 -1
  559. package/worker/test/src/RTC/SCTP/packet/chunks/TestIDataChunk.cpp +77 -7
  560. package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +59 -27
  561. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitAckChunk.cpp +1 -1
  562. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +1 -1
  563. package/worker/test/src/RTC/SCTP/packet/chunks/TestOperationErrorChunk.cpp +1 -1
  564. package/worker/test/src/RTC/SCTP/packet/chunks/TestReConfigChunk.cpp +1 -1
  565. package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +73 -35
  566. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownAckChunk.cpp +1 -1
  567. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownChunk.cpp +1 -1
  568. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownCompleteChunk.cpp +1 -1
  569. package/worker/test/src/RTC/SCTP/packet/chunks/TestUnknownChunk.cpp +1 -1
  570. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestCookieReceivedWhileShuttingDownErrorCause.cpp +1 -1
  571. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidMandatoryParameterErrorCause.cpp +1 -1
  572. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidStreamIdentifierErrorCause.cpp +1 -1
  573. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestMissingMandatoryParameterErrorCause.cpp +1 -1
  574. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestNoUserDataErrorCause.cpp +1 -1
  575. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestOutOfResourceErrorCause.cpp +1 -1
  576. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestProtocolViolationErrorCause.cpp +1 -1
  577. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestRestartOfAnAssociationWithNewAddressesErrorCause.cpp +1 -1
  578. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestStaleCookieErrorCause.cpp +1 -1
  579. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnknownErrorCause.cpp +1 -1
  580. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedChunkTypeErrorCause.cpp +1 -1
  581. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedParametersErrorCause.cpp +1 -1
  582. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnresolvableAddressErrorCause.cpp +1 -1
  583. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUserInitiatedAbortErrorCause.cpp +1 -1
  584. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddIncomingStreamsRequestParameter.cpp +1 -1
  585. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddOutgoingStreamsRequestParameter.cpp +1 -1
  586. package/worker/test/src/RTC/SCTP/packet/parameters/TestCookiePreservativeParameter.cpp +1 -1
  587. package/worker/test/src/RTC/SCTP/packet/parameters/TestForwardTsnSupportedParameter.cpp +1 -1
  588. package/worker/test/src/RTC/SCTP/packet/parameters/TestHeartbeatInfoParameter.cpp +1 -1
  589. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv4AddressParameter.cpp +1 -1
  590. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +1 -1
  591. package/worker/test/src/RTC/SCTP/packet/parameters/TestIncomingSsnResetRequestParameter.cpp +1 -1
  592. package/worker/test/src/RTC/SCTP/packet/parameters/TestOutgoingSsnResetRequestParameter.cpp +1 -1
  593. package/worker/test/src/RTC/SCTP/packet/parameters/TestReconfigurationResponseParameter.cpp +1 -1
  594. package/worker/test/src/RTC/SCTP/packet/parameters/TestSsnTsnResetRequestParameter.cpp +1 -1
  595. package/worker/test/src/RTC/SCTP/packet/parameters/TestStateCookieParameter.cpp +1 -1
  596. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedAddressTypesParameter.cpp +1 -1
  597. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedExtensionsParameter.cpp +1 -1
  598. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnknownParameter.cpp +1 -1
  599. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnrecognizedParameterParameter.cpp +1 -1
  600. package/worker/test/src/RTC/SCTP/packet/parameters/TestZeroChecksumAcceptableParameter.cpp +1 -1
  601. package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +1117 -0
  602. package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +565 -0
  603. package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +557 -0
  604. package/worker/test/src/RTC/SCTP/rx/TestTraditionalReassemblyStreams.cpp +555 -0
  605. package/worker/test/src/RTC/SCTP/sctpCommon.cpp +2 -2
  606. package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +1248 -0
  607. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionErrorCounter.cpp +4 -0
  608. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +2218 -0
  609. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionTimeout.cpp +33 -33
  610. package/worker/test/src/RTC/SCTP/tx/TestRoundRobinSendQueue.cpp +1130 -0
  611. package/worker/test/src/RTC/SCTP/tx/TestStreamScheduler.cpp +721 -0
  612. package/worker/test/src/RTC/TestKeyFrameRequestManager.cpp +20 -30
  613. package/worker/test/src/RTC/TestNackGenerator.cpp +11 -8
  614. package/worker/test/src/RTC/TestRateCalculator.cpp +6 -7
  615. package/worker/test/src/RTC/TestSimpleConsumer.cpp +11 -11
  616. package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +15 -3
  617. package/worker/test/src/Utils/TestByte.cpp +98 -0
  618. package/worker/test/src/{RTC/SCTP/common → Utils}/TestUnwrappedSequenceNumber.cpp +2 -2
  619. package/worker/test/src/testHelpers.cpp +1 -1
  620. package/worker/test/src/tests.cpp +0 -12
  621. package/node/lib/fbs/consumer/degrade-request.d.ts +0 -30
  622. package/node/lib/fbs/consumer/degrade-request.d.ts.map +0 -1
  623. package/node/lib/fbs/consumer/degrade-request.js +0 -91
  624. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts +0 -24
  625. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts.map +0 -1
  626. package/node/lib/fbs/consumer/enable-delay-and-loss-request.js +0 -69
  627. package/node/lib/fbs/producer/degrade-request.d.ts +0 -30
  628. package/node/lib/fbs/producer/degrade-request.d.ts.map +0 -1
  629. package/node/lib/fbs/producer/degrade-request.js +0 -91
  630. package/node/lib/fbs/worker/close-notification.d.ts +0 -18
  631. package/node/lib/fbs/worker/close-notification.d.ts.map +0 -1
  632. package/node/lib/fbs/worker/close-notification.js +0 -45
  633. package/node/lib/fbs/worker/close-request.d.ts +0 -18
  634. package/node/lib/fbs/worker/close-request.d.ts.map +0 -1
  635. package/node/lib/fbs/worker/close-request.js +0 -45
  636. package/node/lib/fbs/worker/close-worker-notification.d.ts +0 -18
  637. package/node/lib/fbs/worker/close-worker-notification.d.ts.map +0 -1
  638. package/node/lib/fbs/worker/close-worker-notification.js +0 -45
  639. package/worker/include/ChannelMessageRegistrator.hpp +0 -30
  640. package/worker/include/DepUsrSCTP.hpp +0 -48
  641. package/worker/include/RTC/SCTP/TODO_SCTP.md +0 -43
  642. package/worker/include/RTC/SCTP/common/UnwrappedSequenceNumber.hpp +0 -274
  643. package/worker/include/RTC/SctpAssociation.hpp +0 -147
  644. package/worker/include/RTC/Shared.hpp +0 -23
  645. package/worker/src/ChannelMessageRegistrator.cpp +0 -119
  646. package/worker/src/DepUsrSCTP.cpp +0 -277
  647. package/worker/src/RTC/SctpAssociation.cpp +0 -1175
  648. package/worker/src/RTC/Shared.cpp +0 -23
  649. package/worker/subprojects/usrsctp.wrap +0 -8
@@ -11,7 +11,7 @@ namespace RTC
11
11
 
12
12
  // NOLINTNEXTLINE(cppcoreguidelines-pro-type-member-init)
13
13
  DirectTransport::DirectTransport(
14
- RTC::Shared* shared,
14
+ SharedInterface* shared,
15
15
  const std::string& id,
16
16
  RTC::Transport::Listener* listener,
17
17
  const FBS::DirectTransport::DirectTransportOptions* options)
@@ -20,7 +20,7 @@ namespace RTC
20
20
  MS_TRACE();
21
21
 
22
22
  // NOTE: This may throw.
23
- this->shared->channelMessageRegistrator->RegisterHandler(
23
+ this->shared->GetChannelMessageRegistrator()->RegisterHandler(
24
24
  this->id,
25
25
  /*channelRequestHandler*/ this,
26
26
  /*channelNotificationHandler*/ this);
@@ -32,9 +32,9 @@ namespace RTC
32
32
 
33
33
  // Tell the Transport parent class that we are about to destroy
34
34
  // the class instance.
35
- Destroying();
35
+ SetDestroying();
36
36
 
37
- this->shared->channelMessageRegistrator->UnregisterHandler(this->id);
37
+ this->shared->GetChannelMessageRegistrator()->UnregisterHandler(this->id);
38
38
  }
39
39
 
40
40
  flatbuffers::Offset<FBS::DirectTransport::DumpResponse> DirectTransport::FillBuffer(
@@ -156,13 +156,13 @@ namespace RTC
156
156
  return;
157
157
  }
158
158
 
159
- const auto data = this->shared->channelNotifier->GetBufferBuilder().CreateVector(
159
+ const auto data = this->shared->GetChannelNotifier()->GetBufferBuilder().CreateVector(
160
160
  packet->GetBuffer(), packet->GetLength());
161
161
 
162
- auto notification =
163
- FBS::Consumer::CreateRtpNotification(this->shared->channelNotifier->GetBufferBuilder(), data);
162
+ auto notification = FBS::Consumer::CreateRtpNotification(
163
+ this->shared->GetChannelNotifier()->GetBufferBuilder(), data);
164
164
 
165
- this->shared->channelNotifier->Emit(
165
+ this->shared->GetChannelNotifier()->Emit(
166
166
  consumer->id,
167
167
  FBS::Notification::Event::CONSUMER_RTP,
168
168
  FBS::Notification::Body::Consumer_RtpNotification,
@@ -183,13 +183,13 @@ namespace RTC
183
183
  MS_TRACE();
184
184
 
185
185
  // Notify the Node DirectTransport.
186
- const auto data = this->shared->channelNotifier->GetBufferBuilder().CreateVector(
186
+ const auto data = this->shared->GetChannelNotifier()->GetBufferBuilder().CreateVector(
187
187
  packet->GetData(), packet->GetSize());
188
188
 
189
189
  auto notification = FBS::DirectTransport::CreateRtcpNotification(
190
- this->shared->channelNotifier->GetBufferBuilder(), data);
190
+ this->shared->GetChannelNotifier()->GetBufferBuilder(), data);
191
191
 
192
- this->shared->channelNotifier->Emit(
192
+ this->shared->GetChannelNotifier()->Emit(
193
193
  this->id,
194
194
  FBS::Notification::Event::DIRECTTRANSPORT_RTCP,
195
195
  FBS::Notification::Body::DirectTransport_RtcpNotification,
@@ -205,13 +205,13 @@ namespace RTC
205
205
 
206
206
  packet->Serialize(RTC::RTCP::SerializationBuffer);
207
207
 
208
- const auto data = this->shared->channelNotifier->GetBufferBuilder().CreateVector(
208
+ const auto data = this->shared->GetChannelNotifier()->GetBufferBuilder().CreateVector(
209
209
  packet->GetData(), packet->GetSize());
210
210
 
211
211
  auto notification = FBS::DirectTransport::CreateRtcpNotification(
212
- this->shared->channelNotifier->GetBufferBuilder(), data);
212
+ this->shared->GetChannelNotifier()->GetBufferBuilder(), data);
213
213
 
214
- this->shared->channelNotifier->Emit(
214
+ this->shared->GetChannelNotifier()->Emit(
215
215
  this->id,
216
216
  FBS::Notification::Event::DIRECTTRANSPORT_RTCP,
217
217
  FBS::Notification::Body::DirectTransport_RtcpNotification,
@@ -219,17 +219,18 @@ namespace RTC
219
219
  }
220
220
 
221
221
  void DirectTransport::SendMessage(
222
- RTC::DataConsumer* dataConsumer, const uint8_t* msg, size_t len, uint32_t ppid, onQueuedCallback* cb)
222
+ RTC::DataConsumer* dataConsumer, RTC::SCTP::Message message, onQueuedCallback* cb)
223
223
  {
224
224
  MS_TRACE();
225
225
 
226
226
  // Notify the Node DirectTransport.
227
- auto data = this->shared->channelNotifier->GetBufferBuilder().CreateVector(msg, len);
227
+ auto data = this->shared->GetChannelNotifier()->GetBufferBuilder().CreateVector(
228
+ message.GetPayload().data(), message.GetPayloadLength());
228
229
 
229
230
  auto notification = FBS::DataConsumer::CreateMessageNotification(
230
- this->shared->channelNotifier->GetBufferBuilder(), ppid, data);
231
+ this->shared->GetChannelNotifier()->GetBufferBuilder(), message.GetPayloadProtocolId(), data);
231
232
 
232
- this->shared->channelNotifier->Emit(
233
+ this->shared->GetChannelNotifier()->Emit(
233
234
  dataConsumer->id,
234
235
  FBS::Notification::Event::DATACONSUMER_MESSAGE,
235
236
  FBS::Notification::Body::DataConsumer_MessageNotification,
@@ -242,10 +243,10 @@ namespace RTC
242
243
  }
243
244
 
244
245
  // Increase send transmission.
245
- RTC::Transport::DataSent(len);
246
+ RTC::Transport::DataSent(message.GetPayloadLength());
246
247
  }
247
248
 
248
- bool DirectTransport::SendSctpData(const uint8_t* /*data*/, size_t /*len*/)
249
+ bool DirectTransport::SendData(const uint8_t* /*data*/, size_t /*len*/)
249
250
  {
250
251
  MS_TRACE();
251
252
 
@@ -709,8 +709,8 @@ namespace RTC
709
709
 
710
710
  /* Instance methods. */
711
711
 
712
- DtlsTransport::DtlsTransport(Listener* listener)
713
- : listener(listener), ssl(SSL_new(DtlsTransport::sslCtx))
712
+ DtlsTransport::DtlsTransport(Listener* listener, SharedInterface* shared)
713
+ : listener(listener), shared(shared), ssl(SSL_new(DtlsTransport::sslCtx))
714
714
  {
715
715
  MS_TRACE();
716
716
 
@@ -764,7 +764,7 @@ namespace RTC
764
764
  DTLS_set_timer_cb(this->ssl, onSslDtlsTimer);
765
765
 
766
766
  // Set the DTLS timer.
767
- this->timer = new TimerHandle(this);
767
+ this->timer = this->shared->CreateTimer(this);
768
768
 
769
769
  return;
770
770
 
@@ -1699,7 +1699,7 @@ namespace RTC
1699
1699
  }
1700
1700
 
1701
1701
  // NOLINTNEXTLINE(misc-no-recursion)
1702
- void DtlsTransport::OnTimer(TimerHandle* /*timer*/)
1702
+ void DtlsTransport::OnTimer(TimerHandleInterface* /*timer*/)
1703
1703
  {
1704
1704
  MS_TRACE();
1705
1705
 
@@ -12,7 +12,7 @@ namespace RTC
12
12
  /* Static. */
13
13
 
14
14
  static constexpr size_t StunResponseFactoryBufferLength{ 65536 };
15
- thread_local uint8_t StunResponseFactoryBuffer[StunResponseFactoryBufferLength];
15
+ static thread_local uint8_t StunResponseFactoryBuffer[StunResponseFactoryBufferLength];
16
16
  static constexpr size_t MaxTuples{ 8 };
17
17
  static constexpr uint8_t ConsentCheckMinTimeoutSec{ 10u };
18
18
  static constexpr uint8_t ConsentCheckMaxTimeoutSec{ 60u };
@@ -72,10 +72,11 @@ namespace RTC
72
72
 
73
73
  IceServer::IceServer(
74
74
  Listener* listener,
75
+ SharedInterface* shared,
75
76
  const std::string& usernameFragment,
76
77
  const std::string& password,
77
78
  uint8_t consentTimeoutSec)
78
- : listener(listener), usernameFragment(usernameFragment), password(password)
79
+ : listener(listener), shared(shared), usernameFragment(usernameFragment), password(password)
79
80
  {
80
81
  MS_TRACE();
81
82
 
@@ -559,7 +560,7 @@ namespace RTC
559
560
  }
560
561
  else
561
562
  {
562
- thread_local std::string_view errorReasonPhrase;
563
+ static thread_local std::string_view errorReasonPhrase;
563
564
 
564
565
  response->GetErrorCode(errorReasonPhrase);
565
566
 
@@ -935,7 +936,7 @@ namespace RTC
935
936
  // Create the ICE consent check timer if it doesn't exist.
936
937
  if (!this->consentCheckTimer)
937
938
  {
938
- this->consentCheckTimer = new TimerHandle(this);
939
+ this->consentCheckTimer = this->shared->CreateTimer(this);
939
940
  }
940
941
 
941
942
  this->consentCheckTimer->Start(this->consentTimeoutMs);
@@ -962,7 +963,7 @@ namespace RTC
962
963
  this->consentCheckTimer->Stop();
963
964
  }
964
965
 
965
- inline void IceServer::OnTimer(TimerHandle* timer)
966
+ inline void IceServer::OnTimer(TimerHandleInterface* timer)
966
967
  {
967
968
  MS_TRACE();
968
969
 
@@ -15,7 +15,7 @@ namespace RTC
15
15
  /* Static. */
16
16
 
17
17
  static constexpr size_t AttributeFactoryBufferLength{ 65536 };
18
- thread_local uint8_t AttributeFactoryBuffer[AttributeFactoryBufferLength];
18
+ static thread_local uint8_t AttributeFactoryBuffer[AttributeFactoryBufferLength];
19
19
 
20
20
  /* Class variables. */
21
21
 
@@ -8,8 +8,9 @@ static constexpr uint32_t KeyFrameRetransmissionWaitTime{ 1000u };
8
8
 
9
9
  /* PendingKeyFrameInfo methods. */
10
10
 
11
- RTC::PendingKeyFrameInfo::PendingKeyFrameInfo(PendingKeyFrameInfo::Listener* listener, uint32_t ssrc)
12
- : listener(listener), ssrc(ssrc), timer(new TimerHandle(this))
11
+ RTC::PendingKeyFrameInfo::PendingKeyFrameInfo(
12
+ PendingKeyFrameInfo::Listener* listener, SharedInterface* shared, uint32_t ssrc)
13
+ : listener(listener), ssrc(ssrc), timer(shared->CreateTimer(this))
13
14
  {
14
15
  MS_TRACE();
15
16
 
@@ -24,7 +25,7 @@ RTC::PendingKeyFrameInfo::~PendingKeyFrameInfo()
24
25
  delete this->timer;
25
26
  }
26
27
 
27
- inline void RTC::PendingKeyFrameInfo::OnTimer(TimerHandle* timer)
28
+ void RTC::PendingKeyFrameInfo::OnTimer(TimerHandleInterface* timer)
28
29
  {
29
30
  MS_TRACE();
30
31
 
@@ -37,8 +38,8 @@ inline void RTC::PendingKeyFrameInfo::OnTimer(TimerHandle* timer)
37
38
  /* KeyFrameRequestDelayer methods. */
38
39
 
39
40
  RTC::KeyFrameRequestDelayer::KeyFrameRequestDelayer(
40
- KeyFrameRequestDelayer::Listener* listener, uint32_t ssrc, uint32_t delay)
41
- : listener(listener), ssrc(ssrc), timer(new TimerHandle(this))
41
+ KeyFrameRequestDelayer::Listener* listener, SharedInterface* shared, uint32_t ssrc, uint32_t delay)
42
+ : listener(listener), ssrc(ssrc), timer(shared->CreateTimer(this))
42
43
  {
43
44
  MS_TRACE();
44
45
 
@@ -53,7 +54,7 @@ RTC::KeyFrameRequestDelayer::~KeyFrameRequestDelayer()
53
54
  delete this->timer;
54
55
  }
55
56
 
56
- inline void RTC::KeyFrameRequestDelayer::OnTimer(TimerHandle* timer)
57
+ void RTC::KeyFrameRequestDelayer::OnTimer(TimerHandleInterface* timer)
57
58
  {
58
59
  MS_TRACE();
59
60
 
@@ -66,8 +67,8 @@ inline void RTC::KeyFrameRequestDelayer::OnTimer(TimerHandle* timer)
66
67
  /* KeyFrameRequestManager methods. */
67
68
 
68
69
  RTC::KeyFrameRequestManager::KeyFrameRequestManager(
69
- KeyFrameRequestManager::Listener* listener, uint32_t keyFrameRequestDelay)
70
- : listener(listener), keyFrameRequestDelay(keyFrameRequestDelay)
70
+ KeyFrameRequestManager::Listener* listener, SharedInterface* shared, uint32_t keyFrameRequestDelay)
71
+ : listener(listener), shared(shared), keyFrameRequestDelay(keyFrameRequestDelay)
71
72
  {
72
73
  MS_TRACE();
73
74
  }
@@ -118,7 +119,7 @@ void RTC::KeyFrameRequestManager::KeyFrameNeeded(uint32_t ssrc)
118
119
  MS_DEBUG_DEV("creating a delayer for the given ssrc");
119
120
 
120
121
  this->mapSsrcKeyFrameRequestDelayer[ssrc] =
121
- new KeyFrameRequestDelayer(this, ssrc, this->keyFrameRequestDelay);
122
+ new KeyFrameRequestDelayer(this, this->shared, ssrc, this->keyFrameRequestDelay);
122
123
  }
123
124
  }
124
125
 
@@ -135,7 +136,7 @@ void RTC::KeyFrameRequestManager::KeyFrameNeeded(uint32_t ssrc)
135
136
  return;
136
137
  }
137
138
 
138
- this->mapSsrcPendingKeyFrameInfo[ssrc] = new PendingKeyFrameInfo(this, ssrc);
139
+ this->mapSsrcPendingKeyFrameInfo[ssrc] = new PendingKeyFrameInfo(this, this->shared, ssrc);
139
140
 
140
141
  this->listener->OnKeyFrameNeeded(this, ssrc);
141
142
  }
@@ -158,7 +159,7 @@ void RTC::KeyFrameRequestManager::ForceKeyFrameNeeded(uint32_t ssrc)
158
159
  }
159
160
 
160
161
  this->mapSsrcKeyFrameRequestDelayer[ssrc] =
161
- new KeyFrameRequestDelayer(this, ssrc, this->keyFrameRequestDelay);
162
+ new KeyFrameRequestDelayer(this, this->shared, ssrc, this->keyFrameRequestDelay);
162
163
  }
163
164
 
164
165
  auto it = this->mapSsrcPendingKeyFrameInfo.find(ssrc);
@@ -173,7 +174,7 @@ void RTC::KeyFrameRequestManager::ForceKeyFrameNeeded(uint32_t ssrc)
173
174
  }
174
175
  else
175
176
  {
176
- this->mapSsrcPendingKeyFrameInfo[ssrc] = new PendingKeyFrameInfo(this, ssrc);
177
+ this->mapSsrcPendingKeyFrameInfo[ssrc] = new PendingKeyFrameInfo(this, this->shared, ssrc);
177
178
  }
178
179
 
179
180
  this->listener->OnKeyFrameNeeded(this, ssrc);
@@ -198,7 +199,7 @@ void RTC::KeyFrameRequestManager::KeyFrameReceived(uint32_t ssrc)
198
199
  this->mapSsrcPendingKeyFrameInfo.erase(it);
199
200
  }
200
201
 
201
- inline void RTC::KeyFrameRequestManager::OnKeyFrameRequestTimeout(PendingKeyFrameInfo* pendingKeyFrameInfo)
202
+ void RTC::KeyFrameRequestManager::OnKeyFrameRequestTimeout(PendingKeyFrameInfo* pendingKeyFrameInfo)
202
203
  {
203
204
  MS_TRACE();
204
205
 
@@ -225,8 +226,7 @@ inline void RTC::KeyFrameRequestManager::OnKeyFrameRequestTimeout(PendingKeyFram
225
226
  this->listener->OnKeyFrameNeeded(this, pendingKeyFrameInfo->GetSsrc());
226
227
  }
227
228
 
228
- inline void RTC::KeyFrameRequestManager::OnKeyFrameDelayTimeout(
229
- KeyFrameRequestDelayer* keyFrameRequestDelayer)
229
+ void RTC::KeyFrameRequestManager::OnKeyFrameDelayTimeout(KeyFrameRequestDelayer* keyFrameRequestDelayer)
230
230
  {
231
231
  MS_TRACE();
232
232
 
@@ -2,7 +2,6 @@
2
2
  // #define MS_LOG_DEV_LEVEL 3
3
3
 
4
4
  #include "RTC/NackGenerator.hpp"
5
- #include "DepLibUV.hpp"
6
5
  #include "Logger.hpp"
7
6
 
8
7
  namespace RTC
@@ -17,10 +16,11 @@ namespace RTC
17
16
 
18
17
  /* Instance methods. */
19
18
 
20
- NackGenerator::NackGenerator(Listener* listener, unsigned int sendNackDelayMs)
19
+ NackGenerator::NackGenerator(Listener* listener, SharedInterface* shared, unsigned int sendNackDelayMs)
21
20
  : listener(listener),
21
+ shared(shared),
22
22
  sendNackDelayMs(sendNackDelayMs),
23
- timer(new TimerHandle(this)),
23
+ timer(shared->CreateTimer(this)),
24
24
  rtt(DefaultRtt)
25
25
  {
26
26
  MS_TRACE();
@@ -211,7 +211,7 @@ namespace RTC
211
211
  this->nackList.emplace(
212
212
  seq,
213
213
  NackInfo{
214
- DepLibUV::GetTimeMs(),
214
+ this->shared->GetTimeMs(),
215
215
  seq,
216
216
  seq,
217
217
  });
@@ -247,7 +247,7 @@ namespace RTC
247
247
  {
248
248
  MS_TRACE();
249
249
 
250
- const uint64_t nowMs = DepLibUV::GetTimeMs();
250
+ const uint64_t nowMs = this->shared->GetTimeMs();
251
251
  std::vector<uint16_t> nackBatch;
252
252
 
253
253
  auto it = this->nackList.begin();
@@ -365,7 +365,7 @@ namespace RTC
365
365
  }
366
366
  }
367
367
 
368
- inline void NackGenerator::OnTimer(TimerHandle* /*timer*/)
368
+ inline void NackGenerator::OnTimer(TimerHandleInterface* /*timer*/)
369
369
  {
370
370
  MS_TRACE();
371
371
 
@@ -4,8 +4,8 @@
4
4
  #include "RTC/PipeConsumer.hpp"
5
5
  #include "Logger.hpp"
6
6
  #include "MediaSoupErrors.hpp"
7
- #include "Utils.hpp"
8
7
  #include "RTC/RTP/Codecs/Tools.hpp"
8
+ #include "Utils.hpp"
9
9
  #ifdef MS_RTC_LOGGER_RTP
10
10
  #include "RTC/RtcLogger.hpp"
11
11
  #endif
@@ -58,7 +58,7 @@ namespace RTC
58
58
  /* Instance methods. */
59
59
 
60
60
  PipeConsumer::PipeConsumer(
61
- RTC::Shared* shared,
61
+ SharedInterface* shared,
62
62
  const std::string& id,
63
63
  const std::string& producerId,
64
64
  RTC::Consumer::Listener* listener,
@@ -82,7 +82,7 @@ namespace RTC
82
82
  CreateRtpStreams();
83
83
 
84
84
  // NOTE: This may throw.
85
- this->shared->channelMessageRegistrator->RegisterHandler(
85
+ this->shared->GetChannelMessageRegistrator()->RegisterHandler(
86
86
  this->id,
87
87
  /*channelRequestHandler*/ this,
88
88
  /*channelNotificationHandler*/ nullptr);
@@ -92,7 +92,7 @@ namespace RTC
92
92
  {
93
93
  MS_TRACE();
94
94
 
95
- this->shared->channelMessageRegistrator->UnregisterHandler(this->id);
95
+ this->shared->GetChannelMessageRegistrator()->UnregisterHandler(this->id);
96
96
 
97
97
  for (auto* rtpStream : this->rtpStreams)
98
98
  {
@@ -803,7 +803,8 @@ namespace RTC
803
803
  }
804
804
  }
805
805
 
806
- auto* rtpStream = new RTC::RTP::RtpStreamSend(this, params, this->rtpParameters.mid);
806
+ auto* rtpStream =
807
+ new RTC::RTP::RtpStreamSend(this, this->shared, params, this->rtpParameters.mid);
807
808
 
808
809
  // If the Consumer is paused, tell the RtpStreamSend.
809
810
  if (IsPaused() || IsProducerPaused())
@@ -4,9 +4,9 @@
4
4
  #include "RTC/PipeTransport.hpp"
5
5
  #include "Logger.hpp"
6
6
  #include "MediaSoupErrors.hpp"
7
+ #include "RTC/SCTP/packet/Packet.hpp"
7
8
  #include "Settings.hpp"
8
9
  #include "Utils.hpp"
9
- #include "RTC/SCTP/packet/Packet.hpp"
10
10
  #include <cstring> // std::memcpy()
11
11
 
12
12
  namespace RTC
@@ -24,7 +24,7 @@ namespace RTC
24
24
 
25
25
  // NOLINTNEXTLINE(cppcoreguidelines-pro-type-member-init)
26
26
  PipeTransport::PipeTransport(
27
- RTC::Shared* shared,
27
+ SharedInterface* shared,
28
28
  const std::string& id,
29
29
  RTC::Transport::Listener* listener,
30
30
  const FBS::PipeTransport::PipeTransportOptions* options)
@@ -122,7 +122,7 @@ namespace RTC
122
122
  udpSocket->GetRecvBufferSize());
123
123
 
124
124
  // NOTE: This may throw.
125
- this->shared->channelMessageRegistrator->RegisterHandler(
125
+ this->shared->GetChannelMessageRegistrator()->RegisterHandler(
126
126
  this->id,
127
127
  /*channelRequestHandler*/ this,
128
128
  /*channelNotificationHandler*/ this);
@@ -144,9 +144,9 @@ namespace RTC
144
144
 
145
145
  // Tell the Transport parent class that we are about to destroy
146
146
  // the class instance.
147
- Destroying();
147
+ SetDestroying();
148
148
 
149
- this->shared->channelMessageRegistrator->UnregisterHandler(this->id);
149
+ this->shared->GetChannelMessageRegistrator()->UnregisterHandler(this->id);
150
150
 
151
151
  delete this->udpSocket;
152
152
  this->udpSocket = nullptr;
@@ -579,22 +579,14 @@ namespace RTC
579
579
  }
580
580
 
581
581
  void PipeTransport::SendMessage(
582
- RTC::DataConsumer* dataConsumer, const uint8_t* msg, size_t len, uint32_t ppid, onQueuedCallback* cb)
582
+ RTC::DataConsumer* dataConsumer, RTC::SCTP::Message message, onQueuedCallback* cb)
583
583
  {
584
584
  MS_TRACE();
585
585
 
586
- if (Settings::configuration.useBuiltInSctpStack)
587
- {
588
- // TODO: SCTP
589
- }
590
- // TODO: Remove once we only use built-in SCTP stack.
591
- else
592
- {
593
- this->oldSctpAssociation->SendSctpMessage(dataConsumer, msg, len, ppid, cb);
594
- }
586
+ SendSctpMessage(dataConsumer, std::move(message), cb);
595
587
  }
596
588
 
597
- bool PipeTransport::SendSctpData(const uint8_t* data, size_t len)
589
+ bool PipeTransport::SendData(const uint8_t* data, size_t len)
598
590
  {
599
591
  MS_TRACE();
600
592
 
@@ -650,12 +642,7 @@ namespace RTC
650
642
  OnRtpDataReceived(tuple, data, len, bufferLen);
651
643
  }
652
644
  // Check if it's SCTP.
653
- else if (Settings::configuration.useBuiltInSctpStack && RTC::SCTP::Packet::IsSctp(data, len))
654
- {
655
- OnSctpDataReceived(tuple, data, len);
656
- }
657
- // TODO: Remove once we only use built-in SCTP stack.
658
- else if (!Settings::configuration.useBuiltInSctpStack && RTC::SctpAssociation::IsSctp(data, len))
645
+ else if (RTC::SCTP::Packet::IsSctp(data, len))
659
646
  {
660
647
  OnSctpDataReceived(tuple, data, len);
661
648
  }
@@ -4,9 +4,9 @@
4
4
  #include "RTC/PlainTransport.hpp"
5
5
  #include "Logger.hpp"
6
6
  #include "MediaSoupErrors.hpp"
7
+ #include "RTC/SCTP/packet/Packet.hpp"
7
8
  #include "Settings.hpp"
8
9
  #include "Utils.hpp"
9
- #include "RTC/SCTP/packet/Packet.hpp"
10
10
  #include <cstring> // std::memcpy()
11
11
 
12
12
  namespace RTC
@@ -32,7 +32,7 @@ namespace RTC
32
32
  /* Instance methods. */
33
33
 
34
34
  PlainTransport::PlainTransport(
35
- RTC::Shared* shared,
35
+ SharedInterface* shared,
36
36
  const std::string& id,
37
37
  RTC::Transport::Listener* listener,
38
38
  const FBS::PlainTransport::PlainTransportOptions* options)
@@ -243,7 +243,7 @@ namespace RTC
243
243
  }
244
244
 
245
245
  // NOTE: This may throw.
246
- this->shared->channelMessageRegistrator->RegisterHandler(
246
+ this->shared->GetChannelMessageRegistrator()->RegisterHandler(
247
247
  this->id,
248
248
  /*channelRequestHandler*/ this,
249
249
  /*channelNotificationHandler*/ this);
@@ -266,9 +266,9 @@ namespace RTC
266
266
 
267
267
  // Tell the Transport parent class that we are about to destroy
268
268
  // the class instance.
269
- Destroying();
269
+ SetDestroying();
270
270
 
271
- this->shared->channelMessageRegistrator->UnregisterHandler(this->id);
271
+ this->shared->GetChannelMessageRegistrator()->UnregisterHandler(this->id);
272
272
 
273
273
  delete this->udpSocket;
274
274
  this->udpSocket = nullptr;
@@ -899,22 +899,14 @@ namespace RTC
899
899
  }
900
900
 
901
901
  void PlainTransport::SendMessage(
902
- RTC::DataConsumer* dataConsumer, const uint8_t* msg, size_t len, uint32_t ppid, onQueuedCallback* cb)
902
+ RTC::DataConsumer* dataConsumer, RTC::SCTP::Message message, onQueuedCallback* cb)
903
903
  {
904
904
  MS_TRACE();
905
905
 
906
- if (Settings::configuration.useBuiltInSctpStack)
907
- {
908
- // TODO: SCTP
909
- }
910
- // TODO: Remove once we only use built-in SCTP stack.
911
- else
912
- {
913
- this->oldSctpAssociation->SendSctpMessage(dataConsumer, msg, len, ppid, cb);
914
- }
906
+ SendSctpMessage(dataConsumer, std::move(message), cb);
915
907
  }
916
908
 
917
- bool PlainTransport::SendSctpData(const uint8_t* data, size_t len)
909
+ bool PlainTransport::SendData(const uint8_t* data, size_t len)
918
910
  {
919
911
  MS_TRACE();
920
912
 
@@ -972,12 +964,7 @@ namespace RTC
972
964
  OnRtpDataReceived(tuple, data, len, bufferLen);
973
965
  }
974
966
  // Check if it's SCTP.
975
- else if (Settings::configuration.useBuiltInSctpStack && RTC::SCTP::Packet::IsSctp(data, len))
976
- {
977
- OnSctpDataReceived(tuple, data, len);
978
- }
979
- // TODO: Remove once we only use built-in SCTP stack.
980
- else if (!Settings::configuration.useBuiltInSctpStack && RTC::SctpAssociation::IsSctp(data, len))
967
+ else if (RTC::SCTP::Packet::IsSctp(data, len))
981
968
  {
982
969
  OnSctpDataReceived(tuple, data, len);
983
970
  }
@@ -1231,11 +1218,11 @@ namespace RTC
1231
1218
 
1232
1219
  inline void PlainTransport::EmitTuple() const
1233
1220
  {
1234
- auto tuple = this->tuple->FillBuffer(this->shared->channelNotifier->GetBufferBuilder());
1221
+ auto tuple = this->tuple->FillBuffer(this->shared->GetChannelNotifier()->GetBufferBuilder());
1235
1222
  auto notification = FBS::PlainTransport::CreateTupleNotification(
1236
- this->shared->channelNotifier->GetBufferBuilder(), tuple);
1223
+ this->shared->GetChannelNotifier()->GetBufferBuilder(), tuple);
1237
1224
 
1238
- this->shared->channelNotifier->Emit(
1225
+ this->shared->GetChannelNotifier()->Emit(
1239
1226
  this->id,
1240
1227
  FBS::Notification::Event::PLAINTRANSPORT_TUPLE,
1241
1228
  FBS::Notification::Body::PlainTransport_TupleNotification,
@@ -1244,11 +1231,12 @@ namespace RTC
1244
1231
 
1245
1232
  inline void PlainTransport::EmitRtcpTuple() const
1246
1233
  {
1247
- auto rtcpTuple = this->rtcpTuple->FillBuffer(this->shared->channelNotifier->GetBufferBuilder());
1234
+ auto rtcpTuple =
1235
+ this->rtcpTuple->FillBuffer(this->shared->GetChannelNotifier()->GetBufferBuilder());
1248
1236
  auto notification = FBS::PlainTransport::CreateRtcpTupleNotification(
1249
- this->shared->channelNotifier->GetBufferBuilder(), rtcpTuple);
1237
+ this->shared->GetChannelNotifier()->GetBufferBuilder(), rtcpTuple);
1250
1238
 
1251
- this->shared->channelNotifier->Emit(
1239
+ this->shared->GetChannelNotifier()->Emit(
1252
1240
  this->id,
1253
1241
  FBS::Notification::Event::PLAINTRANSPORT_RTCP_TUPLE,
1254
1242
  FBS::Notification::Body::PlainTransport_RtcpTupleNotification,