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
@@ -4,8 +4,9 @@
4
4
  #include "common.hpp"
5
5
  #include "Channel/ChannelRequest.hpp"
6
6
  #include "Channel/ChannelSocket.hpp"
7
+ #include "RTC/SCTP/public/Message.hpp"
7
8
  #include "RTC/SctpDictionaries.hpp"
8
- #include "RTC/Shared.hpp"
9
+ #include "SharedInterface.hpp"
9
10
  #include <absl/container/flat_hash_set.h>
10
11
  #include <string>
11
12
 
@@ -24,13 +25,13 @@ namespace RTC
24
25
 
25
26
  public:
26
27
  virtual void OnDataConsumerSendMessage(
27
- RTC::DataConsumer* dataConsumer,
28
- const uint8_t* msg,
29
- size_t len,
30
- uint32_t ppid,
31
- onQueuedCallback* cb) = 0;
28
+ RTC::DataConsumer* dataConsumer, RTC::SCTP::Message message, onQueuedCallback* cb) = 0;
32
29
  virtual void OnDataConsumerNeedBufferedAmount(
33
- RTC::DataConsumer* dataConsumer, uint32_t& bufferedAmount) = 0;
30
+ const RTC::DataConsumer* dataConsumer, uint32_t& bufferedAmount) const = 0;
31
+ virtual void OnDataConsumerNeedBufferedAmountLowThreshold(
32
+ const RTC::DataConsumer* dataConsumer, uint32_t& bufferedAmountLowThreshold) const = 0;
33
+ virtual void OnDataConsumerSetBufferedAmountLowThreshold(
34
+ const RTC::DataConsumer* dataConsumer, uint32_t bytes) const = 0;
34
35
  virtual void OnDataConsumerDataProducerClosed(RTC::DataConsumer* dataConsumer) = 0;
35
36
  };
36
37
 
@@ -43,7 +44,7 @@ namespace RTC
43
44
 
44
45
  public:
45
46
  DataConsumer(
46
- RTC::Shared* shared,
47
+ SharedInterface* shared,
47
48
  const std::string& id,
48
49
  const std::string& dataProducerId,
49
50
  RTC::DataConsumer::Listener* listener,
@@ -92,13 +93,11 @@ namespace RTC
92
93
  void DataProducerResumed();
93
94
  void SctpAssociationConnected();
94
95
  void SctpAssociationClosed();
95
- void SetSctpAssociationBufferedAmount(uint32_t bufferedAmount);
96
- void SctpAssociationSendBufferFull();
96
+ void SctpBufferedAmountLow(uint32_t bufferedAmount) const;
97
+ void SctpSendBufferFull() const;
97
98
  void DataProducerClosed();
98
99
  bool SendMessage(
99
- const uint8_t* msg,
100
- size_t len,
101
- uint32_t ppid,
100
+ RTC::SCTP::Message message,
102
101
  std::vector<uint16_t>& subchannels,
103
102
  std::optional<uint16_t> requiredSubchannel,
104
103
  const onQueuedCallback* cb = nullptr);
@@ -114,7 +113,7 @@ namespace RTC
114
113
 
115
114
  private:
116
115
  // Passed by argument.
117
- RTC::Shared* shared{ nullptr };
116
+ SharedInterface* shared{ nullptr };
118
117
  RTC::DataConsumer::Listener* listener{ nullptr };
119
118
  size_t maxMessageSize{ 0u };
120
119
  // Others.
@@ -130,9 +129,6 @@ namespace RTC
130
129
  bool dataProducerClosed{ false };
131
130
  size_t messagesSent{ 0u };
132
131
  size_t bytesSent{ 0u };
133
- uint32_t bufferedAmount{ 0u };
134
- uint32_t bufferedAmountLowThreshold{ 0u };
135
- bool forceTriggerBufferedAmountLow{ false };
136
132
  };
137
133
  } // namespace RTC
138
134
 
@@ -4,8 +4,9 @@
4
4
  #include "common.hpp"
5
5
  #include "Channel/ChannelRequest.hpp"
6
6
  #include "Channel/ChannelSocket.hpp"
7
+ #include "RTC/SCTP/public/Message.hpp"
7
8
  #include "RTC/SctpDictionaries.hpp"
8
- #include "RTC/Shared.hpp"
9
+ #include "SharedInterface.hpp"
9
10
  #include <string>
10
11
  #include <vector>
11
12
 
@@ -24,9 +25,7 @@ namespace RTC
24
25
  virtual void OnDataProducerReceiveData(RTC::DataProducer* producer, size_t len) = 0;
25
26
  virtual void OnDataProducerMessageReceived(
26
27
  RTC::DataProducer* dataProducer,
27
- const uint8_t* msg,
28
- size_t len,
29
- uint32_t ppid,
28
+ RTC::SCTP::Message message,
30
29
  std::vector<uint16_t>& subchannels,
31
30
  std::optional<uint16_t> requiredSubchannel) = 0;
32
31
  virtual void OnDataProducerPaused(RTC::DataProducer* dataProducer) = 0;
@@ -42,7 +41,7 @@ namespace RTC
42
41
 
43
42
  public:
44
43
  DataProducer(
45
- RTC::Shared* shared,
44
+ SharedInterface* shared,
46
45
  const std::string& id,
47
46
  size_t maxMessageSize,
48
47
  RTC::DataProducer::Listener* listener,
@@ -67,9 +66,7 @@ namespace RTC
67
66
  return this->paused;
68
67
  }
69
68
  void ReceiveMessage(
70
- const uint8_t* msg,
71
- size_t len,
72
- uint32_t ppid,
69
+ RTC::SCTP::Message message,
73
70
  std::vector<uint16_t>& subchannels,
74
71
  std::optional<uint16_t> requiredSubchannel);
75
72
 
@@ -87,7 +84,7 @@ namespace RTC
87
84
 
88
85
  private:
89
86
  // Passed by argument.
90
- RTC::Shared* shared{ nullptr };
87
+ SharedInterface* shared{ nullptr };
91
88
  size_t maxMessageSize{ 0u };
92
89
  RTC::DataProducer::Listener* listener{ nullptr };
93
90
  // Others.
@@ -1,8 +1,8 @@
1
1
  #ifndef MS_RTC_DIRECT_TRANSPORT_HPP
2
2
  #define MS_RTC_DIRECT_TRANSPORT_HPP
3
3
 
4
- #include "RTC/Shared.hpp"
5
4
  #include "RTC/Transport.hpp"
5
+ #include "SharedInterface.hpp"
6
6
 
7
7
  namespace RTC
8
8
  {
@@ -10,7 +10,7 @@ namespace RTC
10
10
  {
11
11
  public:
12
12
  DirectTransport(
13
- RTC::Shared* shared,
13
+ SharedInterface* shared,
14
14
  const std::string& id,
15
15
  RTC::Transport::Listener* listener,
16
16
  const FBS::DirectTransport::DirectTransportOptions* options);
@@ -32,11 +32,9 @@ namespace RTC
32
32
  void SendRtcpCompoundPacket(RTC::RTCP::CompoundPacket* packet) override;
33
33
  void SendMessage(
34
34
  RTC::DataConsumer* dataConsumer,
35
- const uint8_t* msg,
36
- size_t len,
37
- uint32_t ppid,
35
+ RTC::SCTP::Message message,
38
36
  onQueuedCallback* cb = nullptr) override;
39
- bool SendSctpData(const uint8_t* data, size_t len) override;
37
+ bool SendData(const uint8_t* data, size_t len) override;
40
38
  void RecvStreamClosed(uint32_t ssrc) override;
41
39
  void SendStreamClosed(uint32_t ssrc) override;
42
40
 
@@ -3,8 +3,9 @@
3
3
 
4
4
  #include "common.hpp"
5
5
  #include "FBS/webRtcTransport.h"
6
+ #include "handles/TimerHandleInterface.hpp"
6
7
  #include "RTC/SrtpSession.hpp"
7
- #include "handles/TimerHandle.hpp"
8
+ #include "SharedInterface.hpp"
8
9
  #include <openssl/bio.h>
9
10
  #include <openssl/ssl.h>
10
11
  #include <openssl/x509.h>
@@ -14,7 +15,7 @@
14
15
 
15
16
  namespace RTC
16
17
  {
17
- class DtlsTransport : public TimerHandle::Listener
18
+ class DtlsTransport : public TimerHandleInterface::Listener
18
19
  {
19
20
  public:
20
21
  enum class DtlsState : uint8_t
@@ -124,18 +125,18 @@ namespace RTC
124
125
  static void GenerateFingerprints();
125
126
 
126
127
  private:
127
- thread_local static X509* certificate;
128
- thread_local static EVP_PKEY* privateKey;
129
- thread_local static SSL_CTX* sslCtx;
130
- thread_local static uint8_t sslReadBuffer[];
128
+ static thread_local X509* certificate;
129
+ static thread_local EVP_PKEY* privateKey;
130
+ static thread_local SSL_CTX* sslCtx;
131
+ static thread_local uint8_t sslReadBuffer[];
131
132
  static const absl::flat_hash_map<std::string, Role> String2Role;
132
133
  static const absl::flat_hash_map<std::string, FingerprintAlgorithm> String2FingerprintAlgorithm;
133
134
  static const absl::flat_hash_map<FingerprintAlgorithm, std::string> FingerprintAlgorithm2String;
134
- thread_local static std::vector<Fingerprint> localFingerprints;
135
+ static thread_local std::vector<Fingerprint> localFingerprints;
135
136
  static const std::vector<SrtpCryptoSuiteMapEntry> SrtpCryptoSuites;
136
137
 
137
138
  public:
138
- explicit DtlsTransport(Listener* listener);
139
+ explicit DtlsTransport(Listener* listener, SharedInterface* shared);
139
140
  ~DtlsTransport() override;
140
141
 
141
142
  public:
@@ -195,18 +196,19 @@ namespace RTC
195
196
  public:
196
197
  void OnSslInfo(int where, int ret);
197
198
 
198
- /* Pure virtual methods inherited from TimerHandle::Listener. */
199
+ /* Pure virtual methods inherited from TimerHandleInterface::Listener. */
199
200
  public:
200
- void OnTimer(TimerHandle* timer) override;
201
+ void OnTimer(TimerHandleInterface* timer) override;
201
202
 
202
203
  private:
203
204
  // Passed by argument.
204
205
  Listener* listener{ nullptr };
206
+ SharedInterface* shared{ nullptr };
205
207
  // Allocated by this.
206
208
  SSL* ssl{ nullptr };
207
209
  BIO* sslBioFromNetwork{ nullptr }; // The BIO from which ssl reads.
208
210
  BIO* sslBioToNetwork{ nullptr }; // The BIO in which ssl writes.
209
- TimerHandle* timer{ nullptr };
211
+ TimerHandleInterface* timer{ nullptr };
210
212
  // Others.
211
213
  DtlsState state{ DtlsState::NEW };
212
214
  std::optional<Role> localRole;
@@ -3,9 +3,10 @@
3
3
 
4
4
  #include "common.hpp"
5
5
  #include "FBS/webRtcTransport.h"
6
+ #include "handles/TimerHandleInterface.hpp"
6
7
  #include "RTC/ICE/StunPacket.hpp"
7
8
  #include "RTC/TransportTuple.hpp"
8
- #include "handles/TimerHandle.hpp"
9
+ #include "SharedInterface.hpp"
9
10
  #include <list>
10
11
  #include <string>
11
12
  #include <unordered_map>
@@ -14,7 +15,7 @@ namespace RTC
14
15
  {
15
16
  namespace ICE
16
17
  {
17
- class IceServer : public TimerHandle::Listener
18
+ class IceServer : public TimerHandleInterface::Listener
18
19
  {
19
20
  public:
20
21
  enum class IceState : uint8_t
@@ -65,6 +66,7 @@ namespace RTC
65
66
  public:
66
67
  IceServer(
67
68
  Listener* listener,
69
+ SharedInterface* shared,
68
70
  const std::string& usernameFragment,
69
71
  const std::string& password,
70
72
  uint8_t consentTimeoutSec);
@@ -129,13 +131,14 @@ namespace RTC
129
131
  void RestartConsentCheck();
130
132
  void StopConsentCheck();
131
133
 
132
- /* Pure virtual methods inherited from TimerHandle::Listener. */
134
+ /* Pure virtual methods inherited from TimerHandleInterface::Listener. */
133
135
  public:
134
- void OnTimer(TimerHandle* timer) override;
136
+ void OnTimer(TimerHandleInterface* timer) override;
135
137
 
136
138
  private:
137
139
  // Passed by argument.
138
140
  Listener* listener{ nullptr };
141
+ SharedInterface* shared{ nullptr };
139
142
  std::string usernameFragment;
140
143
  std::string password;
141
144
  uint16_t consentTimeoutMs{ 30000u };
@@ -146,7 +149,7 @@ namespace RTC
146
149
  uint32_t remoteNomination{ 0u };
147
150
  std::list<RTC::TransportTuple> tuples;
148
151
  RTC::TransportTuple* selectedTuple{ nullptr };
149
- TimerHandle* consentCheckTimer{ nullptr };
152
+ TimerHandleInterface* consentCheckTimer{ nullptr };
150
153
  bool isRemovingTuples{ false };
151
154
  };
152
155
  } // namespace ICE
@@ -2,8 +2,8 @@
2
2
  #define MS_RTC_ICE_STUN_PACKET_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "Utils.hpp"
6
5
  #include "RTC/Serializable.hpp"
6
+ #include "Utils.hpp"
7
7
  #include <string_view>
8
8
  #include <unordered_map>
9
9
 
@@ -1,12 +1,13 @@
1
1
  #ifndef MS_KEY_FRAME_REQUEST_MANAGER_HPP
2
2
  #define MS_KEY_FRAME_REQUEST_MANAGER_HPP
3
3
 
4
- #include "handles/TimerHandle.hpp"
4
+ #include "handles/TimerHandleInterface.hpp"
5
+ #include "SharedInterface.hpp"
5
6
  #include <absl/container/flat_hash_map.h>
6
7
 
7
8
  namespace RTC
8
9
  {
9
- class PendingKeyFrameInfo : public TimerHandle::Listener
10
+ class PendingKeyFrameInfo : public TimerHandleInterface::Listener
10
11
  {
11
12
  public:
12
13
  class Listener
@@ -19,7 +20,7 @@ namespace RTC
19
20
  };
20
21
 
21
22
  public:
22
- PendingKeyFrameInfo(Listener* listener, uint32_t ssrc);
23
+ PendingKeyFrameInfo(Listener* listener, SharedInterface* shared, uint32_t ssrc);
23
24
  ~PendingKeyFrameInfo() override;
24
25
 
25
26
  uint32_t GetSsrc() const
@@ -39,18 +40,18 @@ namespace RTC
39
40
  this->timer->Restart();
40
41
  }
41
42
 
42
- /* Pure virtual methods inherited from TimerHandle::Listener. */
43
+ /* Pure virtual methods inherited from TimerHandleInterface::Listener. */
43
44
  public:
44
- void OnTimer(TimerHandle* timer) override;
45
+ void OnTimer(TimerHandleInterface* timer) override;
45
46
 
46
47
  private:
47
48
  Listener* listener{ nullptr };
48
49
  uint32_t ssrc;
49
- TimerHandle* timer{ nullptr };
50
+ TimerHandleInterface* timer{ nullptr };
50
51
  bool retryOnTimeout{ true };
51
52
  };
52
53
 
53
- class KeyFrameRequestDelayer : public TimerHandle::Listener
54
+ class KeyFrameRequestDelayer : public TimerHandleInterface::Listener
54
55
  {
55
56
  public:
56
57
  class Listener
@@ -63,7 +64,7 @@ namespace RTC
63
64
  };
64
65
 
65
66
  public:
66
- KeyFrameRequestDelayer(Listener* listener, uint32_t ssrc, uint32_t delay);
67
+ KeyFrameRequestDelayer(Listener* listener, SharedInterface* shared, uint32_t ssrc, uint32_t delay);
67
68
  ~KeyFrameRequestDelayer() override;
68
69
 
69
70
  uint32_t GetSsrc() const
@@ -79,14 +80,14 @@ namespace RTC
79
80
  this->keyFrameRequested = flag;
80
81
  }
81
82
 
82
- /* Pure virtual methods inherited from TimerHandle::Listener. */
83
+ /* Pure virtual methods inherited from TimerHandleInterface::Listener. */
83
84
  public:
84
- void OnTimer(TimerHandle* timer) override;
85
+ void OnTimer(TimerHandleInterface* timer) override;
85
86
 
86
87
  private:
87
88
  Listener* listener{ nullptr };
88
89
  uint32_t ssrc;
89
- TimerHandle* timer{ nullptr };
90
+ TimerHandleInterface* timer{ nullptr };
90
91
  bool keyFrameRequested{ false };
91
92
  };
92
93
 
@@ -104,7 +105,8 @@ namespace RTC
104
105
  };
105
106
 
106
107
  public:
107
- explicit KeyFrameRequestManager(Listener* listener, uint32_t keyFrameRequestDelay);
108
+ explicit KeyFrameRequestManager(
109
+ Listener* listener, SharedInterface* shared, uint32_t keyFrameRequestDelay);
108
110
  ~KeyFrameRequestManager() override;
109
111
 
110
112
  void KeyFrameNeeded(uint32_t ssrc);
@@ -121,6 +123,7 @@ namespace RTC
121
123
 
122
124
  private:
123
125
  Listener* listener{ nullptr };
126
+ SharedInterface* shared{ nullptr };
124
127
  uint32_t keyFrameRequestDelay{ 0u }; // 0 means disabled.
125
128
  absl::flat_hash_map<uint32_t, PendingKeyFrameInfo*> mapSsrcPendingKeyFrameInfo;
126
129
  absl::flat_hash_map<uint32_t, KeyFrameRequestDelayer*> mapSsrcKeyFrameRequestDelayer;
@@ -2,16 +2,17 @@
2
2
  #define MS_RTC_NACK_GENERATOR_HPP
3
3
 
4
4
  #include "common.hpp"
5
+ #include "handles/TimerHandleInterface.hpp"
5
6
  #include "RTC/RTP/Packet.hpp"
6
7
  #include "RTC/SeqManager.hpp"
7
- #include "handles/TimerHandle.hpp"
8
+ #include "SharedInterface.hpp"
8
9
  #include <map>
9
10
  #include <set>
10
11
  #include <vector>
11
12
 
12
13
  namespace RTC
13
14
  {
14
- class NackGenerator : public TimerHandle::Listener
15
+ class NackGenerator : public TimerHandleInterface::Listener
15
16
  {
16
17
  public:
17
18
  class Listener
@@ -47,7 +48,7 @@ namespace RTC
47
48
  };
48
49
 
49
50
  public:
50
- explicit NackGenerator(Listener* listener, unsigned int sendNackDelayMs);
51
+ explicit NackGenerator(Listener* listener, SharedInterface* shared, unsigned int sendNackDelayMs);
51
52
  ~NackGenerator() override;
52
53
 
53
54
  bool ReceivePacket(const RTC::RTP::Packet* packet, bool isRecovered);
@@ -67,16 +68,17 @@ namespace RTC
67
68
  std::vector<uint16_t> GetNackBatch(NackFilter filter);
68
69
  void MayRunTimer() const;
69
70
 
70
- /* Pure virtual methods inherited from TimerHandle::Listener. */
71
+ /* Pure virtual methods inherited from TimerHandleInterface::Listener. */
71
72
  public:
72
- void OnTimer(TimerHandle* timer) override;
73
+ void OnTimer(TimerHandleInterface* timer) override;
73
74
 
74
75
  private:
75
76
  // Passed by argument.
76
77
  Listener* listener{ nullptr };
78
+ SharedInterface* shared{ nullptr };
77
79
  unsigned int sendNackDelayMs{ 0u };
78
80
  // Allocated by this.
79
- TimerHandle* timer{ nullptr };
81
+ TimerHandleInterface* timer{ nullptr };
80
82
  // Others.
81
83
  std::map<uint16_t, NackInfo, RTC::SeqManager<uint16_t>::SeqLowerThan> nackList;
82
84
  std::set<uint16_t, RTC::SeqManager<uint16_t>::SeqLowerThan> keyFrameList;
@@ -3,7 +3,6 @@
3
3
 
4
4
  #include "RTC/Consumer.hpp"
5
5
  #include "RTC/SeqManager.hpp"
6
- #include "RTC/Shared.hpp"
7
6
  #include <map>
8
7
 
9
8
  namespace RTC
@@ -19,7 +18,7 @@ namespace RTC
19
18
 
20
19
  public:
21
20
  PipeConsumer(
22
- RTC::Shared* shared,
21
+ SharedInterface* shared,
23
22
  const std::string& id,
24
23
  const std::string& producerId,
25
24
  RTC::Consumer::Listener* listener,
@@ -2,11 +2,11 @@
2
2
  #define MS_RTC_PIPE_TRANSPORT_HPP
3
3
 
4
4
  #include "FBS/pipeTransport.h"
5
- #include "RTC/Shared.hpp"
6
5
  #include "RTC/SrtpSession.hpp"
7
6
  #include "RTC/Transport.hpp"
8
7
  #include "RTC/TransportTuple.hpp"
9
8
  #include "RTC/UdpSocket.hpp"
9
+ #include "SharedInterface.hpp"
10
10
 
11
11
  namespace RTC
12
12
  {
@@ -19,7 +19,7 @@ namespace RTC
19
19
 
20
20
  public:
21
21
  PipeTransport(
22
- RTC::Shared* shared,
22
+ SharedInterface* shared,
23
23
  const std::string& id,
24
24
  RTC::Transport::Listener* listener,
25
25
  const FBS::PipeTransport::PipeTransportOptions* options);
@@ -50,11 +50,9 @@ namespace RTC
50
50
  void SendRtcpCompoundPacket(RTC::RTCP::CompoundPacket* packet) override;
51
51
  void SendMessage(
52
52
  RTC::DataConsumer* dataConsumer,
53
- const uint8_t* msg,
54
- size_t len,
55
- uint32_t ppid,
53
+ RTC::SCTP::Message message,
56
54
  onQueuedCallback* cb = nullptr) override;
57
- bool SendSctpData(const uint8_t* data, size_t len) override;
55
+ bool SendData(const uint8_t* data, size_t len) override;
58
56
  void RecvStreamClosed(uint32_t ssrc) override;
59
57
  void SendStreamClosed(uint32_t ssrc) override;
60
58
  void OnPacketReceived(RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen);
@@ -2,11 +2,11 @@
2
2
  #define MS_RTC_PLAIN_TRANSPORT_HPP
3
3
 
4
4
  #include "FBS/plainTransport.h"
5
- #include "RTC/Shared.hpp"
6
5
  #include "RTC/SrtpSession.hpp"
7
6
  #include "RTC/Transport.hpp"
8
7
  #include "RTC/TransportTuple.hpp"
9
8
  #include "RTC/UdpSocket.hpp"
9
+ #include "SharedInterface.hpp"
10
10
  #include <absl/container/flat_hash_map.h>
11
11
 
12
12
  namespace RTC
@@ -15,7 +15,7 @@ namespace RTC
15
15
  {
16
16
  public:
17
17
  PlainTransport(
18
- RTC::Shared* shared,
18
+ SharedInterface* shared,
19
19
  const std::string& id,
20
20
  RTC::Transport::Listener* listener,
21
21
  const FBS::PlainTransport::PlainTransportOptions* options);
@@ -44,11 +44,9 @@ namespace RTC
44
44
  void SendRtcpCompoundPacket(RTC::RTCP::CompoundPacket* packet) override;
45
45
  void SendMessage(
46
46
  RTC::DataConsumer* dataConsumer,
47
- const uint8_t* msg,
48
- size_t len,
49
- uint32_t ppid,
47
+ RTC::SCTP::Message message,
50
48
  onQueuedCallback* cb = nullptr) override;
51
- bool SendSctpData(const uint8_t* data, size_t len) override;
49
+ bool SendData(const uint8_t* data, size_t len) override;
52
50
  void RecvStreamClosed(uint32_t ssrc) override;
53
51
  void SendStreamClosed(uint32_t ssrc) override;
54
52
  void OnPacketReceived(RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen);
@@ -78,7 +78,7 @@ namespace RTC
78
78
  static uint8_t ConvertSocketFlags(RTC::Transport::SocketFlags& flags, Protocol protocol, int family);
79
79
 
80
80
  private:
81
- thread_local static absl::flat_hash_map<uint64_t, PortRange> mapPortRanges;
81
+ static thread_local absl::flat_hash_map<uint64_t, PortRange> mapPortRanges;
82
82
  };
83
83
  } // namespace RTC
84
84
 
@@ -13,7 +13,7 @@
13
13
  #include "RTC/RTP/Packet.hpp"
14
14
  #include "RTC/RTP/RtpStreamRecv.hpp"
15
15
  #include "RTC/RtpDictionaries.hpp"
16
- #include "RTC/Shared.hpp"
16
+ #include "SharedInterface.hpp"
17
17
  #include <string>
18
18
  #include <vector>
19
19
 
@@ -94,7 +94,7 @@ namespace RTC
94
94
 
95
95
  public:
96
96
  Producer(
97
- RTC::Shared* shared,
97
+ SharedInterface* shared,
98
98
  const std::string& id,
99
99
  RTC::Producer::Listener* listener,
100
100
  const FBS::Transport::ProduceRequest* data);
@@ -179,7 +179,7 @@ namespace RTC
179
179
 
180
180
  private:
181
181
  // Passed by argument.
182
- RTC::Shared* shared{ nullptr };
182
+ SharedInterface* shared{ nullptr };
183
183
  RTC::Producer::Listener* listener{ nullptr };
184
184
  // Allocated by this.
185
185
  absl::flat_hash_map<uint32_t, RTC::RTP::RtpStreamRecv*> mapSsrcRtpStream;
@@ -3,7 +3,7 @@
3
3
 
4
4
  #include "common.hpp"
5
5
  #include "RTC/RTCP/Feedback.hpp"
6
- #include "RTC/RTCP/FeedbackItem.hpp" // IWYU pragma: keep
6
+ #include "RTC/RTCP/FeedbackItem.hpp"
7
7
  #include <vector>
8
8
 
9
9
  namespace RTC
@@ -3,7 +3,7 @@
3
3
 
4
4
  #include "common.hpp"
5
5
  #include "RTC/RTCP/Feedback.hpp"
6
- #include "RTC/RTCP/FeedbackItem.hpp" // IWYU pragma: keep
6
+ #include "RTC/RTCP/FeedbackItem.hpp"
7
7
  #include <vector>
8
8
 
9
9
  namespace RTC
@@ -2,8 +2,8 @@
2
2
  #define MS_RTC_RTCP_FEEDBACK_RTP_NACK_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "Utils.hpp"
6
5
  #include "RTC/RTCP/FeedbackRtp.hpp"
6
+ #include "Utils.hpp"
7
7
 
8
8
  /* RFC 4585
9
9
  * Generic NACK message (NACK)
@@ -2,8 +2,8 @@
2
2
  #define MS_RTC_RTCP_RECEIVER_REPORT_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "Utils.hpp"
6
5
  #include "RTC/RTCP/Packet.hpp"
6
+ #include "Utils.hpp"
7
7
  #include <vector>
8
8
 
9
9
  namespace RTC
@@ -2,13 +2,13 @@
2
2
  #define MS_RTC_RTP_PACKET_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "Utils.hpp"
6
5
  #include "FBS/rtpPacket.h"
7
6
  #include "RTC/RTP/Codecs/DependencyDescriptor.hpp"
8
7
  #include "RTC/RTP/Codecs/PayloadDescriptorHandler.hpp"
9
8
  #include "RTC/RTP/HeaderExtensionIds.hpp"
10
9
  #include "RTC/RtpDictionaries.hpp"
11
10
  #include "RTC/Serializable.hpp"
11
+ #include "Utils.hpp"
12
12
  #ifdef MS_RTC_LOGGER_RTP
13
13
  #include "RTC/RtcLogger.hpp"
14
14
  #endif
@@ -229,7 +229,7 @@ namespace RTC
229
229
  static uint32_t GetNextMediasoupPacketId();
230
230
 
231
231
  private:
232
- thread_local static uint32_t nextMediasoupPacketId;
232
+ static thread_local uint32_t nextMediasoupPacketId;
233
233
 
234
234
  private:
235
235
  /**