mediasoup 3.19.22 → 3.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/node/lib/ActiveSpeakerObserver.js +34 -1
  2. package/node/lib/AudioLevelObserver.js +35 -2
  3. package/node/lib/Channel.d.ts.map +1 -1
  4. package/node/lib/Channel.js +37 -5
  5. package/node/lib/Consumer.js +39 -6
  6. package/node/lib/DataConsumer.d.ts.map +1 -1
  7. package/node/lib/DataConsumer.js +39 -5
  8. package/node/lib/DataConsumerTypes.d.ts +1 -0
  9. package/node/lib/DataConsumerTypes.d.ts.map +1 -1
  10. package/node/lib/DataProducer.js +37 -4
  11. package/node/lib/DirectTransport.js +37 -4
  12. package/node/lib/DirectTransportTypes.d.ts +7 -2
  13. package/node/lib/DirectTransportTypes.d.ts.map +1 -1
  14. package/node/lib/Logger.js +4 -1
  15. package/node/lib/PipeTransport.d.ts +3 -1
  16. package/node/lib/PipeTransport.d.ts.map +1 -1
  17. package/node/lib/PipeTransport.js +56 -5
  18. package/node/lib/PipeTransportTypes.d.ts +28 -8
  19. package/node/lib/PipeTransportTypes.d.ts.map +1 -1
  20. package/node/lib/PlainTransport.d.ts +3 -1
  21. package/node/lib/PlainTransport.d.ts.map +1 -1
  22. package/node/lib/PlainTransport.js +54 -3
  23. package/node/lib/PlainTransportTypes.d.ts +27 -7
  24. package/node/lib/PlainTransportTypes.d.ts.map +1 -1
  25. package/node/lib/Producer.js +40 -7
  26. package/node/lib/Router.d.ts +5 -5
  27. package/node/lib/Router.d.ts.map +1 -1
  28. package/node/lib/Router.js +81 -36
  29. package/node/lib/RouterTypes.d.ts +25 -3
  30. package/node/lib/RouterTypes.d.ts.map +1 -1
  31. package/node/lib/RtpObserver.js +36 -3
  32. package/node/lib/Transport.d.ts +3 -1
  33. package/node/lib/Transport.d.ts.map +1 -1
  34. package/node/lib/Transport.js +74 -22
  35. package/node/lib/TransportTypes.d.ts +2 -1
  36. package/node/lib/TransportTypes.d.ts.map +1 -1
  37. package/node/lib/WebRtcServer.js +36 -3
  38. package/node/lib/WebRtcTransport.d.ts +3 -1
  39. package/node/lib/WebRtcTransport.d.ts.map +1 -1
  40. package/node/lib/WebRtcTransport.js +55 -4
  41. package/node/lib/WebRtcTransportTypes.d.ts +27 -7
  42. package/node/lib/WebRtcTransportTypes.d.ts.map +1 -1
  43. package/node/lib/Worker.d.ts +1 -1
  44. package/node/lib/Worker.d.ts.map +1 -1
  45. package/node/lib/Worker.js +63 -31
  46. package/node/lib/WorkerTypes.d.ts +0 -4
  47. package/node/lib/WorkerTypes.d.ts.map +1 -1
  48. package/node/lib/enhancedEvents.d.ts +2 -2
  49. package/node/lib/enhancedEvents.d.ts.map +1 -1
  50. package/node/lib/enhancedEvents.js +0 -2
  51. package/node/lib/fbs/active-speaker-observer/active-speaker-observer-options.js +34 -1
  52. package/node/lib/fbs/active-speaker-observer/dominant-speaker-notification.js +34 -1
  53. package/node/lib/fbs/audio-level-observer/audio-level-observer-options.js +34 -1
  54. package/node/lib/fbs/audio-level-observer/volume.js +34 -1
  55. package/node/lib/fbs/audio-level-observer/volumes-notification.js +34 -1
  56. package/node/lib/fbs/common/string-string-array.js +34 -1
  57. package/node/lib/fbs/common/string-string.js +34 -1
  58. package/node/lib/fbs/common/string-uint8.js +34 -1
  59. package/node/lib/fbs/common/uint16-string.js +34 -1
  60. package/node/lib/fbs/common/uint32-string.js +34 -1
  61. package/node/lib/fbs/consumer/base-consumer-dump.js +34 -1
  62. package/node/lib/fbs/consumer/consumer-dump.js +34 -1
  63. package/node/lib/fbs/consumer/consumer-layers.js +34 -1
  64. package/node/lib/fbs/consumer/consumer-score.js +34 -1
  65. package/node/lib/fbs/consumer/dump-response.js +34 -1
  66. package/node/lib/fbs/consumer/enable-trace-event-request.js +34 -1
  67. package/node/lib/fbs/consumer/fir-trace-info.js +34 -1
  68. package/node/lib/fbs/consumer/get-stats-response.js +34 -1
  69. package/node/lib/fbs/consumer/key-frame-trace-info.js +34 -1
  70. package/node/lib/fbs/consumer/layers-change-notification.js +34 -1
  71. package/node/lib/fbs/consumer/pli-trace-info.js +34 -1
  72. package/node/lib/fbs/consumer/rtp-notification.js +34 -1
  73. package/node/lib/fbs/consumer/rtp-trace-info.js +34 -1
  74. package/node/lib/fbs/consumer/score-notification.js +34 -1
  75. package/node/lib/fbs/consumer/set-preferred-layers-request.js +34 -1
  76. package/node/lib/fbs/consumer/set-preferred-layers-response.js +34 -1
  77. package/node/lib/fbs/consumer/set-priority-request.js +34 -1
  78. package/node/lib/fbs/consumer/set-priority-response.js +34 -1
  79. package/node/lib/fbs/consumer/trace-notification.js +34 -1
  80. package/node/lib/fbs/data-consumer/add-subchannel-request.js +34 -1
  81. package/node/lib/fbs/data-consumer/add-subchannel-response.js +34 -1
  82. package/node/lib/fbs/data-consumer/buffered-amount-low-notification.js +34 -1
  83. package/node/lib/fbs/data-consumer/dump-response.d.ts +5 -2
  84. package/node/lib/fbs/data-consumer/dump-response.d.ts.map +1 -1
  85. package/node/lib/fbs/data-consumer/dump-response.js +60 -16
  86. package/node/lib/fbs/data-consumer/get-buffered-amount-response.js +34 -1
  87. package/node/lib/fbs/data-consumer/get-stats-response.js +34 -1
  88. package/node/lib/fbs/data-consumer/message-notification.js +34 -1
  89. package/node/lib/fbs/data-consumer/remove-subchannel-request.js +34 -1
  90. package/node/lib/fbs/data-consumer/remove-subchannel-response.js +34 -1
  91. package/node/lib/fbs/data-consumer/send-request.js +34 -1
  92. package/node/lib/fbs/data-consumer/set-buffered-amount-low-threshold-request.js +34 -1
  93. package/node/lib/fbs/data-consumer/set-subchannels-request.js +34 -1
  94. package/node/lib/fbs/data-consumer/set-subchannels-response.js +34 -1
  95. package/node/lib/fbs/data-consumer/type.d.ts +5 -0
  96. package/node/lib/fbs/data-consumer/type.d.ts.map +1 -0
  97. package/node/lib/fbs/data-consumer/type.js +10 -0
  98. package/node/lib/fbs/data-consumer.d.ts +1 -0
  99. package/node/lib/fbs/data-consumer.d.ts.map +1 -1
  100. package/node/lib/fbs/data-consumer.js +3 -1
  101. package/node/lib/fbs/data-producer/dump-response.js +34 -1
  102. package/node/lib/fbs/data-producer/get-stats-response.js +34 -1
  103. package/node/lib/fbs/data-producer/send-notification.js +34 -1
  104. package/node/lib/fbs/direct-transport/direct-transport-options.js +34 -1
  105. package/node/lib/fbs/direct-transport/dump-response.js +34 -1
  106. package/node/lib/fbs/direct-transport/get-stats-response.js +34 -1
  107. package/node/lib/fbs/direct-transport/rtcp-notification.js +34 -1
  108. package/node/lib/fbs/lib-uring/dump.js +34 -1
  109. package/node/lib/fbs/log/log.js +34 -1
  110. package/node/lib/fbs/message/message.js +34 -1
  111. package/node/lib/fbs/notification/body.d.ts +24 -22
  112. package/node/lib/fbs/notification/body.d.ts.map +1 -1
  113. package/node/lib/fbs/notification/body.js +24 -20
  114. package/node/lib/fbs/notification/event.d.ts +27 -26
  115. package/node/lib/fbs/notification/event.d.ts.map +1 -1
  116. package/node/lib/fbs/notification/event.js +27 -26
  117. package/node/lib/fbs/notification/notification.d.ts +3 -2
  118. package/node/lib/fbs/notification/notification.d.ts.map +1 -1
  119. package/node/lib/fbs/notification/notification.js +34 -1
  120. package/node/lib/fbs/pipe-transport/connect-request.js +34 -1
  121. package/node/lib/fbs/pipe-transport/connect-response.js +34 -1
  122. package/node/lib/fbs/pipe-transport/dump-response.js +34 -1
  123. package/node/lib/fbs/pipe-transport/get-stats-response.js +34 -1
  124. package/node/lib/fbs/pipe-transport/pipe-transport-options.js +34 -1
  125. package/node/lib/fbs/plain-transport/connect-request.js +34 -1
  126. package/node/lib/fbs/plain-transport/connect-response.js +34 -1
  127. package/node/lib/fbs/plain-transport/dump-response.js +34 -1
  128. package/node/lib/fbs/plain-transport/get-stats-response.js +34 -1
  129. package/node/lib/fbs/plain-transport/plain-transport-options.js +34 -1
  130. package/node/lib/fbs/plain-transport/rtcp-tuple-notification.js +34 -1
  131. package/node/lib/fbs/plain-transport/tuple-notification.js +34 -1
  132. package/node/lib/fbs/producer/dump-response.js +34 -1
  133. package/node/lib/fbs/producer/enable-trace-event-request.js +34 -1
  134. package/node/lib/fbs/producer/fir-trace-info.js +34 -1
  135. package/node/lib/fbs/producer/get-stats-response.js +34 -1
  136. package/node/lib/fbs/producer/key-frame-trace-info.js +34 -1
  137. package/node/lib/fbs/producer/pli-trace-info.js +34 -1
  138. package/node/lib/fbs/producer/rtp-trace-info.js +34 -1
  139. package/node/lib/fbs/producer/score-notification.js +34 -1
  140. package/node/lib/fbs/producer/score.js +34 -1
  141. package/node/lib/fbs/producer/send-notification.js +34 -1
  142. package/node/lib/fbs/producer/sr-trace-info.js +34 -1
  143. package/node/lib/fbs/producer/trace-notification.js +34 -1
  144. package/node/lib/fbs/producer/video-orientation-change-notification.js +34 -1
  145. package/node/lib/fbs/request/request.js +34 -1
  146. package/node/lib/fbs/response/response.js +34 -1
  147. package/node/lib/fbs/router/close-rtp-observer-request.js +34 -1
  148. package/node/lib/fbs/router/close-transport-request.js +34 -1
  149. package/node/lib/fbs/router/create-active-speaker-observer-request.js +34 -1
  150. package/node/lib/fbs/router/create-audio-level-observer-request.js +34 -1
  151. package/node/lib/fbs/router/create-direct-transport-request.js +34 -1
  152. package/node/lib/fbs/router/create-pipe-transport-request.js +34 -1
  153. package/node/lib/fbs/router/create-plain-transport-request.js +34 -1
  154. package/node/lib/fbs/router/create-web-rtc-transport-request.js +34 -1
  155. package/node/lib/fbs/router/dump-response.js +34 -1
  156. package/node/lib/fbs/rtp-observer/add-producer-request.js +34 -1
  157. package/node/lib/fbs/rtp-observer/remove-producer-request.js +34 -1
  158. package/node/lib/fbs/rtp-packet/dump.js +34 -1
  159. package/node/lib/fbs/rtp-parameters/boolean.js +34 -1
  160. package/node/lib/fbs/rtp-parameters/codec-mapping.js +34 -1
  161. package/node/lib/fbs/rtp-parameters/double.js +34 -1
  162. package/node/lib/fbs/rtp-parameters/encoding-mapping.js +34 -1
  163. package/node/lib/fbs/rtp-parameters/integer32-array.js +34 -1
  164. package/node/lib/fbs/rtp-parameters/integer32.js +34 -1
  165. package/node/lib/fbs/rtp-parameters/parameter.js +34 -1
  166. package/node/lib/fbs/rtp-parameters/rtcp-feedback.js +34 -1
  167. package/node/lib/fbs/rtp-parameters/rtcp-parameters.js +34 -1
  168. package/node/lib/fbs/rtp-parameters/rtp-codec-parameters.js +34 -1
  169. package/node/lib/fbs/rtp-parameters/rtp-encoding-parameters.js +34 -1
  170. package/node/lib/fbs/rtp-parameters/rtp-header-extension-parameters.js +34 -1
  171. package/node/lib/fbs/rtp-parameters/rtp-mapping.js +34 -1
  172. package/node/lib/fbs/rtp-parameters/rtp-parameters.js +34 -1
  173. package/node/lib/fbs/rtp-parameters/rtx.js +34 -1
  174. package/node/lib/fbs/rtp-parameters/string.js +34 -1
  175. package/node/lib/fbs/rtp-stream/base-stats.js +34 -1
  176. package/node/lib/fbs/rtp-stream/bitrate-by-layer.js +34 -1
  177. package/node/lib/fbs/rtp-stream/dump.js +34 -1
  178. package/node/lib/fbs/rtp-stream/params.js +34 -1
  179. package/node/lib/fbs/rtp-stream/recv-stats.js +34 -1
  180. package/node/lib/fbs/rtp-stream/send-stats.js +34 -1
  181. package/node/lib/fbs/rtp-stream/stats.js +34 -1
  182. package/node/lib/fbs/rtx-stream/params.js +34 -1
  183. package/node/lib/fbs/rtx-stream/rtx-dump.js +34 -1
  184. package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.d.ts +24 -0
  185. package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.d.ts.map +1 -0
  186. package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.js +102 -0
  187. package/node/lib/fbs/sctp-association.d.ts +1 -0
  188. package/node/lib/fbs/sctp-association.d.ts.map +1 -1
  189. package/node/lib/fbs/sctp-association.js +4 -1
  190. package/node/lib/fbs/sctp-parameters/num-sctp-streams.js +34 -1
  191. package/node/lib/fbs/sctp-parameters/sctp-parameters.d.ts +14 -14
  192. package/node/lib/fbs/sctp-parameters/sctp-parameters.d.ts.map +1 -1
  193. package/node/lib/fbs/sctp-parameters/sctp-parameters.js +73 -40
  194. package/node/lib/fbs/sctp-parameters/sctp-stream-parameters.js +34 -1
  195. package/node/lib/fbs/sctp-parameters.d.ts +0 -1
  196. package/node/lib/fbs/sctp-parameters.d.ts.map +1 -1
  197. package/node/lib/fbs/sctp-parameters.js +1 -4
  198. package/node/lib/fbs/srtp-parameters/srtp-parameters.js +34 -1
  199. package/node/lib/fbs/transport/bwe-trace-info.js +34 -1
  200. package/node/lib/fbs/transport/close-consumer-request.js +34 -1
  201. package/node/lib/fbs/transport/close-data-consumer-request.js +34 -1
  202. package/node/lib/fbs/transport/close-data-producer-request.js +34 -1
  203. package/node/lib/fbs/transport/close-producer-request.js +34 -1
  204. package/node/lib/fbs/transport/consume-data-request.d.ts +1 -1
  205. package/node/lib/fbs/transport/consume-data-request.js +35 -2
  206. package/node/lib/fbs/transport/consume-request.js +34 -1
  207. package/node/lib/fbs/transport/consume-response.js +34 -1
  208. package/node/lib/fbs/transport/dump.d.ts +7 -4
  209. package/node/lib/fbs/transport/dump.d.ts.map +1 -1
  210. package/node/lib/fbs/transport/dump.js +66 -22
  211. package/node/lib/fbs/transport/enable-trace-event-request.js +34 -1
  212. package/node/lib/fbs/transport/listen-info.js +34 -1
  213. package/node/lib/fbs/transport/options.d.ts +14 -14
  214. package/node/lib/fbs/transport/options.d.ts.map +1 -1
  215. package/node/lib/fbs/transport/options.js +92 -51
  216. package/node/lib/fbs/transport/port-range.js +34 -1
  217. package/node/lib/fbs/transport/produce-data-request.js +34 -1
  218. package/node/lib/fbs/transport/produce-request.js +34 -1
  219. package/node/lib/fbs/transport/produce-response.js +34 -1
  220. package/node/lib/fbs/transport/recv-rtp-header-extensions.js +34 -1
  221. package/node/lib/fbs/transport/restart-ice-response.js +34 -1
  222. package/node/lib/fbs/transport/rtp-listener.js +34 -1
  223. package/node/lib/fbs/transport/sctp-listener.js +34 -1
  224. package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.d.ts +22 -0
  225. package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.d.ts.map +1 -0
  226. package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.js +93 -0
  227. package/node/lib/fbs/transport/sctp-state-change-notification.js +34 -1
  228. package/node/lib/fbs/transport/send-rtcp-notification.js +34 -1
  229. package/node/lib/fbs/transport/set-max-incoming-bitrate-request.js +34 -1
  230. package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.js +34 -1
  231. package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.js +34 -1
  232. package/node/lib/fbs/transport/socket-flags.js +34 -1
  233. package/node/lib/fbs/transport/stats.js +34 -1
  234. package/node/lib/fbs/transport/trace-notification.js +34 -1
  235. package/node/lib/fbs/transport/tuple.js +34 -1
  236. package/node/lib/fbs/transport.d.ts +1 -0
  237. package/node/lib/fbs/transport.d.ts.map +1 -1
  238. package/node/lib/fbs/transport.js +5 -2
  239. package/node/lib/fbs/web-rtc-server/dump-response.js +34 -1
  240. package/node/lib/fbs/web-rtc-server/ice-user-name-fragment.js +34 -1
  241. package/node/lib/fbs/web-rtc-server/ip-port.js +34 -1
  242. package/node/lib/fbs/web-rtc-server/tuple-hash.js +34 -1
  243. package/node/lib/fbs/web-rtc-transport/connect-request.js +34 -1
  244. package/node/lib/fbs/web-rtc-transport/connect-response.js +34 -1
  245. package/node/lib/fbs/web-rtc-transport/dtls-parameters.js +34 -1
  246. package/node/lib/fbs/web-rtc-transport/dtls-state-change-notification.js +34 -1
  247. package/node/lib/fbs/web-rtc-transport/dump-response.js +34 -1
  248. package/node/lib/fbs/web-rtc-transport/fingerprint.js +34 -1
  249. package/node/lib/fbs/web-rtc-transport/get-stats-response.js +34 -1
  250. package/node/lib/fbs/web-rtc-transport/ice-candidate.js +34 -1
  251. package/node/lib/fbs/web-rtc-transport/ice-parameters.js +34 -1
  252. package/node/lib/fbs/web-rtc-transport/ice-selected-tuple-change-notification.js +34 -1
  253. package/node/lib/fbs/web-rtc-transport/ice-state-change-notification.js +34 -1
  254. package/node/lib/fbs/web-rtc-transport/listen-individual.js +34 -1
  255. package/node/lib/fbs/web-rtc-transport/listen-server.js +34 -1
  256. package/node/lib/fbs/web-rtc-transport/web-rtc-transport-options.js +34 -1
  257. package/node/lib/fbs/worker/channel-message-handlers.js +34 -1
  258. package/node/lib/fbs/worker/close-router-request.js +34 -1
  259. package/node/lib/fbs/worker/close-web-rtc-server-request.js +34 -1
  260. package/node/lib/fbs/worker/create-router-request.js +34 -1
  261. package/node/lib/fbs/worker/create-web-rtc-server-request.js +34 -1
  262. package/node/lib/fbs/worker/dump-response.js +34 -1
  263. package/node/lib/fbs/worker/resource-usage-response.js +34 -1
  264. package/node/lib/fbs/worker/update-settings-request.js +34 -1
  265. package/node/lib/index.d.ts +1 -1
  266. package/node/lib/index.d.ts.map +1 -1
  267. package/node/lib/index.js +37 -5
  268. package/node/lib/ortc.js +36 -3
  269. package/node/lib/rtpParametersFbsUtils.js +34 -1
  270. package/node/lib/rtpStreamStatsFbsUtils.js +35 -2
  271. package/node/lib/sctpParametersFbsUtils.d.ts +2 -2
  272. package/node/lib/sctpParametersFbsUtils.d.ts.map +1 -1
  273. package/node/lib/sctpParametersFbsUtils.js +44 -7
  274. package/node/lib/sctpParametersTypes.d.ts +10 -46
  275. package/node/lib/sctpParametersTypes.d.ts.map +1 -1
  276. package/node/lib/srtpParametersFbsUtils.js +34 -1
  277. package/node/lib/test/test-ActiveSpeakerObserver.js +35 -2
  278. package/node/lib/test/test-AudioLevelObserver.js +35 -2
  279. package/node/lib/test/test-Consumer.js +37 -4
  280. package/node/lib/test/test-DataConsumer.js +35 -2
  281. package/node/lib/test/test-DataProducer.js +35 -2
  282. package/node/lib/test/test-DirectTransport.js +36 -8
  283. package/node/lib/test/test-PipeTransport.js +35 -2
  284. package/node/lib/test/test-PlainTransport.js +45 -12
  285. package/node/lib/test/test-Producer.js +37 -4
  286. package/node/lib/test/test-Router.js +35 -2
  287. package/node/lib/test/test-WebRtcServer.js +34 -1
  288. package/node/lib/test/test-WebRtcTransport.js +51 -22
  289. package/node/lib/test/test-Worker.js +37 -4
  290. package/node/lib/test/test-mediasoup.js +36 -3
  291. package/node/lib/test/test-multiopus.js +35 -2
  292. package/node/lib/test/test-ortc.js +34 -1
  293. package/node/lib/test/test-werift-sctp.js +39 -5
  294. package/npm-scripts.mjs +2 -2
  295. package/package.json +11 -11
  296. package/worker/deps/libwebrtc/LICENSE +5 -0
  297. package/worker/deps/libwebrtc/README.md +3 -3
  298. package/worker/deps/libwebrtc/libwebrtc/mediasoup_helpers.h +13 -10
  299. package/worker/fbs/dataConsumer.fbs +7 -2
  300. package/worker/fbs/dataProducer.fbs +1 -0
  301. package/worker/fbs/notification.fbs +2 -0
  302. package/worker/fbs/sctpAssociation.fbs +4 -0
  303. package/worker/fbs/sctpParameters.fbs +5 -12
  304. package/worker/fbs/transport.fbs +12 -8
  305. package/worker/fuzzer/src/RTC/FuzzerDtlsTransport.cpp +5 -1
  306. package/worker/fuzzer/src/RTC/FuzzerRateCalculator.cpp +2 -2
  307. package/worker/fuzzer/src/RTC/FuzzerSeqManager.cpp +1 -1
  308. package/worker/fuzzer/src/RTC/FuzzerTrendCalculator.cpp +5 -5
  309. package/worker/fuzzer/src/RTC/ICE/FuzzerStunPacket.cpp +9 -6
  310. package/worker/fuzzer/src/RTC/RTP/FuzzerRetransmissionBuffer.cpp +1 -1
  311. package/worker/fuzzer/src/RTC/RTP/FuzzerRtpStreamSend.cpp +6 -2
  312. package/worker/fuzzer/src/RTC/SCTP/association/FuzzerStateCookie.cpp +1 -1
  313. package/worker/fuzzer/src/RTC/SCTP/packet/FuzzerPacket.cpp +5 -2
  314. package/worker/fuzzer/src/fuzzer.cpp +3 -10
  315. package/worker/include/Channel/ChannelRequest.hpp +1 -1
  316. package/worker/include/DepLibUV.hpp +1 -1
  317. package/worker/include/DepLibUring.hpp +3 -3
  318. package/worker/include/Logger.hpp +4 -4
  319. package/worker/include/MediaSoupErrors.hpp +1 -1
  320. package/worker/include/RTC/ActiveSpeakerObserver.hpp +6 -4
  321. package/worker/include/RTC/AudioLevelObserver.hpp +2 -2
  322. package/worker/include/RTC/Consumer.hpp +1 -1
  323. package/worker/include/RTC/DataConsumer.hpp +11 -15
  324. package/worker/include/RTC/DataProducer.hpp +4 -7
  325. package/worker/include/RTC/DirectTransport.hpp +3 -5
  326. package/worker/include/RTC/DtlsTransport.hpp +7 -7
  327. package/worker/include/RTC/ICE/IceServer.hpp +2 -2
  328. package/worker/include/RTC/ICE/StunPacket.hpp +1 -1
  329. package/worker/include/RTC/KeyFrameRequestManager.hpp +1 -1
  330. package/worker/include/RTC/NackGenerator.hpp +3 -2
  331. package/worker/include/RTC/PipeTransport.hpp +3 -5
  332. package/worker/include/RTC/PlainTransport.hpp +3 -5
  333. package/worker/include/RTC/PortManager.hpp +1 -1
  334. package/worker/include/RTC/Producer.hpp +1 -1
  335. package/worker/include/RTC/RTCP/FeedbackPs.hpp +1 -1
  336. package/worker/include/RTC/RTCP/FeedbackRtp.hpp +1 -1
  337. package/worker/include/RTC/RTCP/FeedbackRtpNack.hpp +1 -1
  338. package/worker/include/RTC/RTCP/ReceiverReport.hpp +1 -1
  339. package/worker/include/RTC/RTP/Packet.hpp +2 -2
  340. package/worker/include/RTC/RTP/RtpStream.hpp +11 -12
  341. package/worker/include/RTC/RTP/RtpStreamRecv.hpp +3 -2
  342. package/worker/include/RTC/RTP/RtxStream.hpp +3 -1
  343. package/worker/include/RTC/RTP/SharedPacket.hpp +1 -1
  344. package/worker/include/RTC/RateCalculator.hpp +5 -2
  345. package/worker/include/RTC/Router.hpp +5 -6
  346. package/worker/include/RTC/RtpObserver.hpp +1 -1
  347. package/worker/include/RTC/SCTP/association/Association.hpp +46 -15
  348. package/worker/include/RTC/SCTP/association/AssociationListenerDeferrer.hpp +14 -6
  349. package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +12 -11
  350. package/worker/include/RTC/SCTP/association/PacketSender.hpp +3 -3
  351. package/worker/include/RTC/SCTP/association/StateCookie.hpp +1 -1
  352. package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +26 -26
  353. package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +58 -48
  354. package/worker/include/RTC/SCTP/association/{TCBContext.hpp → TransmissionControlBlockContextInterface.hpp} +11 -6
  355. package/worker/include/RTC/SCTP/packet/Chunk.hpp +3 -3
  356. package/worker/include/RTC/SCTP/packet/TLV.hpp +1 -1
  357. package/worker/include/RTC/SCTP/packet/UserData.hpp +39 -31
  358. package/worker/include/RTC/SCTP/packet/chunks/AnyDataChunk.hpp +1 -1
  359. package/worker/include/RTC/SCTP/packet/chunks/AnyForwardTsnChunk.hpp +9 -9
  360. package/worker/include/RTC/SCTP/packet/chunks/AnyInitChunk.hpp +1 -1
  361. package/worker/include/RTC/SCTP/packet/chunks/DataChunk.hpp +4 -2
  362. package/worker/include/RTC/SCTP/packet/chunks/ForwardTsnChunk.hpp +3 -3
  363. package/worker/include/RTC/SCTP/packet/chunks/IDataChunk.hpp +4 -2
  364. package/worker/include/RTC/SCTP/packet/chunks/IForwardTsnChunk.hpp +3 -3
  365. package/worker/include/RTC/SCTP/packet/chunks/InitAckChunk.hpp +1 -1
  366. package/worker/include/RTC/SCTP/packet/chunks/InitChunk.hpp +1 -1
  367. package/worker/include/RTC/SCTP/packet/chunks/SackChunk.hpp +10 -3
  368. package/worker/include/RTC/SCTP/packet/chunks/ShutdownChunk.hpp +1 -1
  369. package/worker/include/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.hpp +1 -1
  370. package/worker/include/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.hpp +1 -1
  371. package/worker/include/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.hpp +1 -1
  372. package/worker/include/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.hpp +1 -1
  373. package/worker/include/RTC/SCTP/packet/parameters/AddIncomingStreamsRequestParameter.hpp +1 -1
  374. package/worker/include/RTC/SCTP/packet/parameters/AddOutgoingStreamsRequestParameter.hpp +1 -1
  375. package/worker/include/RTC/SCTP/packet/parameters/CookiePreservativeParameter.hpp +1 -1
  376. package/worker/include/RTC/SCTP/packet/parameters/IncomingSsnResetRequestParameter.hpp +1 -1
  377. package/worker/include/RTC/SCTP/packet/parameters/OutgoingSsnResetRequestParameter.hpp +1 -1
  378. package/worker/include/RTC/SCTP/packet/parameters/ReconfigurationResponseParameter.hpp +1 -1
  379. package/worker/include/RTC/SCTP/packet/parameters/SsnTsnResetRequestParameter.hpp +1 -1
  380. package/worker/include/RTC/SCTP/packet/parameters/SupportedAddressTypesParameter.hpp +1 -1
  381. package/worker/include/RTC/SCTP/packet/parameters/SupportedExtensionsParameter.hpp +1 -1
  382. package/worker/include/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.hpp +1 -1
  383. package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +22 -2
  384. package/worker/include/RTC/SCTP/public/{AssociationListener.hpp → AssociationListenerInterface.hpp} +5 -5
  385. package/worker/include/RTC/SCTP/public/Message.hpp +26 -10
  386. package/worker/include/RTC/SCTP/public/SctpOptions.hpp +29 -21
  387. package/worker/include/RTC/SCTP/public/SctpTypes.hpp +21 -0
  388. package/worker/include/RTC/SCTP/rx/DataTracker.hpp +277 -0
  389. package/worker/include/RTC/SCTP/rx/InterleavedReassemblyStreams.hpp +116 -0
  390. package/worker/include/RTC/SCTP/rx/ReassemblyQueue.hpp +202 -0
  391. package/worker/include/RTC/SCTP/rx/ReassemblyStreamsInterface.hpp +83 -0
  392. package/worker/include/RTC/SCTP/rx/TraditionalReassemblyStreams.hpp +183 -0
  393. package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +48 -57
  394. package/worker/include/RTC/SCTP/tx/RetransmissionErrorCounter.hpp +3 -3
  395. package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +36 -43
  396. package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +6 -6
  397. package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +356 -0
  398. package/worker/include/RTC/SCTP/tx/SendQueueInterface.hpp +180 -0
  399. package/worker/include/RTC/SCTP/tx/StreamScheduler.hpp +235 -0
  400. package/worker/include/RTC/SenderBandwidthEstimator.hpp +5 -1
  401. package/worker/include/RTC/Serializable.hpp +3 -3
  402. package/worker/include/RTC/TcpServer.hpp +2 -2
  403. package/worker/include/RTC/Transport.hpp +59 -80
  404. package/worker/include/RTC/TransportCongestionControlClient.hpp +2 -2
  405. package/worker/include/RTC/TransportCongestionControlServer.hpp +2 -2
  406. package/worker/include/RTC/TransportTuple.hpp +1 -1
  407. package/worker/include/RTC/UdpSocket.hpp +1 -1
  408. package/worker/include/RTC/WebRtcServer.hpp +1 -1
  409. package/worker/include/RTC/WebRtcTransport.hpp +3 -5
  410. package/worker/include/Settings.hpp +2 -3
  411. package/worker/include/Shared.hpp +31 -7
  412. package/worker/include/SharedInterface.hpp +37 -4
  413. package/worker/include/Utils/UnwrappedSequenceNumber.hpp +270 -0
  414. package/worker/include/Utils.hpp +4 -4
  415. package/worker/include/Worker.hpp +4 -4
  416. package/worker/include/common.hpp +12 -12
  417. package/worker/include/handles/BackoffTimerHandle.hpp +8 -9
  418. package/worker/include/handles/BackoffTimerHandleInterface.hpp +10 -3
  419. package/worker/include/handles/TimerHandle.hpp +0 -7
  420. package/worker/meson.build +33 -34
  421. package/worker/mocks/include/MockShared.hpp +56 -9
  422. package/worker/mocks/include/RTC/SCTP/association/MockAssociationListener.hpp +308 -0
  423. package/worker/mocks/include/RTC/SCTP/association/MockTransmissionControlBlockContext.hpp +183 -0
  424. package/worker/mocks/include/RTC/SCTP/tx/MockSendQueue.hpp +262 -0
  425. package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +153 -0
  426. package/worker/mocks/include/handles/MockTimerHandle.hpp +74 -0
  427. package/worker/mocks/include/mockTypes.hpp +15 -0
  428. package/worker/mocks/src/MockShared.cpp +30 -10
  429. package/worker/mocks/src/RTC/SCTP/association/MockTransmissionControlBlockContext.cpp +39 -0
  430. package/worker/mocks/src/handles/MockBackoffTimerHandle.cpp +127 -0
  431. package/worker/scripts/clang-scripts.mjs +1 -0
  432. package/worker/scripts/package-lock.json +6 -7
  433. package/worker/src/Channel/ChannelSocket.cpp +2 -3
  434. package/worker/src/DepLibUV.cpp +1 -1
  435. package/worker/src/DepLibUring.cpp +3 -1
  436. package/worker/src/Logger.cpp +1 -1
  437. package/worker/src/MediaSoupErrors.cpp +2 -0
  438. package/worker/src/RTC/ActiveSpeakerObserver.cpp +7 -7
  439. package/worker/src/RTC/Consumer.cpp +5 -6
  440. package/worker/src/RTC/DataConsumer.cpp +54 -64
  441. package/worker/src/RTC/DataProducer.cpp +13 -8
  442. package/worker/src/RTC/DirectTransport.cpp +7 -6
  443. package/worker/src/RTC/ICE/IceServer.cpp +2 -2
  444. package/worker/src/RTC/ICE/StunPacket.cpp +1 -1
  445. package/worker/src/RTC/NackGenerator.cpp +3 -3
  446. package/worker/src/RTC/PipeConsumer.cpp +1 -1
  447. package/worker/src/RTC/PipeTransport.cpp +6 -19
  448. package/worker/src/RTC/PlainTransport.cpp +6 -19
  449. package/worker/src/RTC/Producer.cpp +10 -11
  450. package/worker/src/RTC/RTCP/FeedbackPsAfb.cpp +1 -1
  451. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +1 -1
  452. package/worker/src/RTC/RTCP/XR.cpp +1 -1
  453. package/worker/src/RTC/RTP/Packet.cpp +3 -1
  454. package/worker/src/RTC/RTP/ProbationGenerator.cpp +4 -4
  455. package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +1 -1
  456. package/worker/src/RTC/RTP/RtpStream.cpp +9 -9
  457. package/worker/src/RTC/RTP/RtpStreamRecv.cpp +11 -10
  458. package/worker/src/RTC/RTP/RtpStreamSend.cpp +7 -7
  459. package/worker/src/RTC/RTP/RtxStream.cpp +7 -7
  460. package/worker/src/RTC/RTP/SharedPacket.cpp +3 -3
  461. package/worker/src/RTC/RateCalculator.cpp +1 -2
  462. package/worker/src/RTC/Router.cpp +58 -35
  463. package/worker/src/RTC/RtpDictionaries/RtpCodecMimeType.cpp +1 -1
  464. package/worker/src/RTC/SCTP/LICENSE +44 -0
  465. package/worker/src/RTC/SCTP/association/Association.cpp +348 -322
  466. package/worker/src/RTC/SCTP/association/AssociationListenerDeferrer.cpp +46 -13
  467. package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +26 -28
  468. package/worker/src/RTC/SCTP/association/PacketSender.cpp +8 -8
  469. package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +71 -56
  470. package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +176 -66
  471. package/worker/src/RTC/SCTP/packet/Chunk.cpp +5 -1
  472. package/worker/src/RTC/SCTP/packet/Packet.cpp +8 -1
  473. package/worker/src/RTC/SCTP/packet/chunks/DataChunk.cpp +17 -0
  474. package/worker/src/RTC/SCTP/packet/chunks/ForwardTsnChunk.cpp +4 -4
  475. package/worker/src/RTC/SCTP/packet/chunks/IDataChunk.cpp +25 -0
  476. package/worker/src/RTC/SCTP/packet/chunks/IForwardTsnChunk.cpp +10 -7
  477. package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +21 -4
  478. package/worker/src/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.cpp +1 -1
  479. package/worker/src/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.cpp +1 -1
  480. package/worker/src/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.cpp +2 -2
  481. package/worker/src/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.cpp +1 -1
  482. package/worker/src/RTC/SCTP/public/Message.cpp +8 -0
  483. package/worker/src/RTC/SCTP/public/SctpOptions.cpp +90 -0
  484. package/worker/src/RTC/SCTP/rx/DataTracker.cpp +471 -0
  485. package/worker/src/RTC/SCTP/rx/InterleavedReassemblyStreams.cpp +327 -0
  486. package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +288 -0
  487. package/worker/src/RTC/SCTP/rx/TraditionalReassemblyStreams.cpp +453 -0
  488. package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +81 -74
  489. package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +85 -98
  490. package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +1 -1
  491. package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +752 -0
  492. package/worker/src/RTC/SCTP/tx/StreamScheduler.cpp +257 -0
  493. package/worker/src/RTC/SenderBandwidthEstimator.cpp +7 -5
  494. package/worker/src/RTC/SimpleConsumer.cpp +3 -4
  495. package/worker/src/RTC/SimulcastConsumer.cpp +5 -6
  496. package/worker/src/RTC/SrtpSession.cpp +1 -1
  497. package/worker/src/RTC/SvcConsumer.cpp +5 -6
  498. package/worker/src/RTC/TcpConnection.cpp +1 -1
  499. package/worker/src/RTC/Transport.cpp +475 -551
  500. package/worker/src/RTC/TransportCongestionControlClient.cpp +5 -6
  501. package/worker/src/RTC/TransportCongestionControlServer.cpp +1 -2
  502. package/worker/src/RTC/WebRtcServer.cpp +1 -1
  503. package/worker/src/RTC/WebRtcTransport.cpp +5 -13
  504. package/worker/src/Settings.cpp +9 -28
  505. package/worker/src/Shared.cpp +3 -3
  506. package/worker/src/Utils/Crypto.cpp +1 -1
  507. package/worker/src/Utils/String.cpp +1 -1
  508. package/worker/src/Worker.cpp +10 -26
  509. package/worker/src/handles/BackoffTimerHandle.cpp +24 -6
  510. package/worker/src/handles/UdpSocketHandle.cpp +1 -1
  511. package/worker/src/lib.cpp +5 -17
  512. package/worker/subprojects/catch2.wrap +6 -6
  513. package/worker/test/include/RTC/ICE/iceCommon.hpp +7 -7
  514. package/worker/test/include/RTC/RTP/rtpCommon.hpp +6 -6
  515. package/worker/test/include/RTC/SCTP/sctpCommon.hpp +10 -10
  516. package/worker/test/include/catch2Macros.hpp +31 -0
  517. package/worker/test/src/RTC/ICE/TestStunPacket.cpp +3 -3
  518. package/worker/test/src/RTC/ICE/iceCommon.cpp +2 -2
  519. package/worker/test/src/RTC/RTP/Codecs/TestVP8.cpp +1 -1
  520. package/worker/test/src/RTC/RTP/Codecs/TestVP9.cpp +1 -1
  521. package/worker/test/src/RTC/RTP/TestPacket.cpp +3 -3
  522. package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +6 -6
  523. package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +6 -2
  524. package/worker/test/src/RTC/RTP/TestSharedPacket.cpp +1 -1
  525. package/worker/test/src/RTC/RTP/rtpCommon.cpp +2 -2
  526. package/worker/test/src/RTC/SCTP/association/TestHeartbeatHandler.cpp +292 -0
  527. package/worker/test/src/RTC/SCTP/association/TestNegotiatedCapabilities.cpp +1 -1
  528. package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +1 -1
  529. package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +99 -0
  530. package/worker/test/src/RTC/SCTP/packet/TestChunk.cpp +1 -1
  531. package/worker/test/src/RTC/SCTP/packet/TestPacket.cpp +1 -1
  532. package/worker/test/src/RTC/SCTP/packet/chunks/TestAbortAssociationChunk.cpp +1 -1
  533. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieAckChunk.cpp +1 -1
  534. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieEchoChunk.cpp +1 -1
  535. package/worker/test/src/RTC/SCTP/packet/chunks/TestDataChunk.cpp +77 -7
  536. package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +35 -26
  537. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatAckChunk.cpp +1 -1
  538. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatRequestChunk.cpp +1 -1
  539. package/worker/test/src/RTC/SCTP/packet/chunks/TestIDataChunk.cpp +77 -7
  540. package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +59 -27
  541. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitAckChunk.cpp +1 -1
  542. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +1 -1
  543. package/worker/test/src/RTC/SCTP/packet/chunks/TestOperationErrorChunk.cpp +1 -1
  544. package/worker/test/src/RTC/SCTP/packet/chunks/TestReConfigChunk.cpp +1 -1
  545. package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +73 -35
  546. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownAckChunk.cpp +1 -1
  547. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownChunk.cpp +1 -1
  548. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownCompleteChunk.cpp +1 -1
  549. package/worker/test/src/RTC/SCTP/packet/chunks/TestUnknownChunk.cpp +1 -1
  550. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestCookieReceivedWhileShuttingDownErrorCause.cpp +1 -1
  551. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidMandatoryParameterErrorCause.cpp +1 -1
  552. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidStreamIdentifierErrorCause.cpp +1 -1
  553. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestMissingMandatoryParameterErrorCause.cpp +1 -1
  554. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestNoUserDataErrorCause.cpp +1 -1
  555. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestOutOfResourceErrorCause.cpp +1 -1
  556. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestProtocolViolationErrorCause.cpp +1 -1
  557. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestRestartOfAnAssociationWithNewAddressesErrorCause.cpp +1 -1
  558. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestStaleCookieErrorCause.cpp +1 -1
  559. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnknownErrorCause.cpp +1 -1
  560. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedChunkTypeErrorCause.cpp +1 -1
  561. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedParametersErrorCause.cpp +1 -1
  562. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnresolvableAddressErrorCause.cpp +1 -1
  563. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUserInitiatedAbortErrorCause.cpp +1 -1
  564. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddIncomingStreamsRequestParameter.cpp +1 -1
  565. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddOutgoingStreamsRequestParameter.cpp +1 -1
  566. package/worker/test/src/RTC/SCTP/packet/parameters/TestCookiePreservativeParameter.cpp +1 -1
  567. package/worker/test/src/RTC/SCTP/packet/parameters/TestForwardTsnSupportedParameter.cpp +1 -1
  568. package/worker/test/src/RTC/SCTP/packet/parameters/TestHeartbeatInfoParameter.cpp +1 -1
  569. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv4AddressParameter.cpp +1 -1
  570. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +1 -1
  571. package/worker/test/src/RTC/SCTP/packet/parameters/TestIncomingSsnResetRequestParameter.cpp +1 -1
  572. package/worker/test/src/RTC/SCTP/packet/parameters/TestOutgoingSsnResetRequestParameter.cpp +1 -1
  573. package/worker/test/src/RTC/SCTP/packet/parameters/TestReconfigurationResponseParameter.cpp +1 -1
  574. package/worker/test/src/RTC/SCTP/packet/parameters/TestSsnTsnResetRequestParameter.cpp +1 -1
  575. package/worker/test/src/RTC/SCTP/packet/parameters/TestStateCookieParameter.cpp +1 -1
  576. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedAddressTypesParameter.cpp +1 -1
  577. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedExtensionsParameter.cpp +1 -1
  578. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnknownParameter.cpp +1 -1
  579. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnrecognizedParameterParameter.cpp +1 -1
  580. package/worker/test/src/RTC/SCTP/packet/parameters/TestZeroChecksumAcceptableParameter.cpp +1 -1
  581. package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +1117 -0
  582. package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +565 -0
  583. package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +557 -0
  584. package/worker/test/src/RTC/SCTP/rx/TestTraditionalReassemblyStreams.cpp +555 -0
  585. package/worker/test/src/RTC/SCTP/sctpCommon.cpp +2 -2
  586. package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +475 -423
  587. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionErrorCounter.cpp +4 -0
  588. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +2218 -0
  589. package/worker/test/src/RTC/SCTP/tx/TestRoundRobinSendQueue.cpp +1130 -0
  590. package/worker/test/src/RTC/SCTP/tx/TestStreamScheduler.cpp +721 -0
  591. package/worker/test/src/RTC/TestKeyFrameRequestManager.cpp +9 -27
  592. package/worker/test/src/RTC/TestNackGenerator.cpp +7 -8
  593. package/worker/test/src/RTC/TestRateCalculator.cpp +6 -7
  594. package/worker/test/src/RTC/TestSimpleConsumer.cpp +7 -3
  595. package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +8 -3
  596. package/worker/test/src/{RTC/SCTP/common → Utils}/TestUnwrappedSequenceNumber.cpp +2 -2
  597. package/worker/test/src/testHelpers.cpp +1 -1
  598. package/worker/test/src/tests.cpp +0 -12
  599. package/node/lib/fbs/consumer/degrade-request.d.ts +0 -30
  600. package/node/lib/fbs/consumer/degrade-request.d.ts.map +0 -1
  601. package/node/lib/fbs/consumer/degrade-request.js +0 -91
  602. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts +0 -24
  603. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts.map +0 -1
  604. package/node/lib/fbs/consumer/enable-delay-and-loss-request.js +0 -69
  605. package/node/lib/fbs/producer/degrade-request.d.ts +0 -30
  606. package/node/lib/fbs/producer/degrade-request.d.ts.map +0 -1
  607. package/node/lib/fbs/producer/degrade-request.js +0 -91
  608. package/node/lib/fbs/worker/close-notification.d.ts +0 -18
  609. package/node/lib/fbs/worker/close-notification.d.ts.map +0 -1
  610. package/node/lib/fbs/worker/close-notification.js +0 -45
  611. package/node/lib/fbs/worker/close-request.d.ts +0 -18
  612. package/node/lib/fbs/worker/close-request.d.ts.map +0 -1
  613. package/node/lib/fbs/worker/close-request.js +0 -45
  614. package/node/lib/fbs/worker/close-worker-notification.d.ts +0 -18
  615. package/node/lib/fbs/worker/close-worker-notification.d.ts.map +0 -1
  616. package/node/lib/fbs/worker/close-worker-notification.js +0 -45
  617. package/worker/include/DepUsrSCTP.hpp +0 -49
  618. package/worker/include/RTC/SCTP/TODO_SCTP.md +0 -55
  619. package/worker/include/RTC/SCTP/common/UnwrappedSequenceNumber.hpp +0 -274
  620. package/worker/include/RTC/SctpAssociation.hpp +0 -147
  621. package/worker/src/DepUsrSCTP.cpp +0 -283
  622. package/worker/src/RTC/SctpAssociation.cpp +0 -1175
  623. package/worker/subprojects/usrsctp.wrap +0 -8
@@ -5,11 +5,7 @@
5
5
  #include "DepLibUV.hpp"
6
6
  #include "DepLibWebRTC.hpp"
7
7
  #include "DepOpenSSL.hpp"
8
- // TODO: Remove once we only use built-in SCTP stack.
9
- #include "DepUsrSCTP.hpp"
10
8
  #include "FuzzerUtils.hpp"
11
- #include "Settings.hpp"
12
- #include "Utils.hpp"
13
9
  #include "RTC/DtlsTransport.hpp"
14
10
  #include "RTC/FuzzerDtlsTransport.hpp"
15
11
  #include "RTC/FuzzerRateCalculator.hpp"
@@ -29,6 +25,8 @@
29
25
  #include "RTC/RTP/FuzzerRtpStreamSend.hpp"
30
26
  #include "RTC/SCTP/FuzzerStateCookie.hpp"
31
27
  #include "RTC/SCTP/packet/FuzzerPacket.hpp"
28
+ #include "Settings.hpp"
29
+ #include "Utils.hpp"
32
30
  #include <cstdlib> // std::getenv()
33
31
  #include <iostream>
34
32
  #include <sstream> // std::istringstream()
@@ -146,11 +144,6 @@ namespace
146
144
  DepLibUV::ClassInit();
147
145
  DepOpenSSL::ClassInit();
148
146
  DepLibSRTP::ClassInit();
149
- // TODO: Remove once we only use built-in SCTP stack.
150
- if (!Settings::configuration.useBuiltInSctpStack)
151
- {
152
- DepUsrSCTP::ClassInit();
153
- }
154
147
  DepLibWebRTC::ClassInit();
155
148
  Utils::Crypto::ClassInit();
156
149
  RTC::DtlsTransport::ClassInit();
@@ -163,7 +156,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t len)
163
156
  {
164
157
  // Trick to initialize our stuff just once.
165
158
  // NOLINTNEXTLINE(readability-identifier-naming)
166
- thread_local const int unused = init();
159
+ static thread_local const int unused = init();
167
160
 
168
161
  // Avoid [-Wunused-variable].
169
162
  (void)unused;
@@ -21,7 +21,7 @@ namespace Channel
21
21
  using Method = FBS::Request::Method;
22
22
 
23
23
  public:
24
- thread_local static flatbuffers::FlatBufferBuilder bufferBuilder;
24
+ static thread_local flatbuffers::FlatBufferBuilder bufferBuilder;
25
25
  static const absl::flat_hash_map<FBS::Request::Method, const char*> Method2String;
26
26
 
27
27
  public:
@@ -41,7 +41,7 @@ public:
41
41
  }
42
42
 
43
43
  private:
44
- thread_local static uv_loop_t* loop;
44
+ static thread_local uv_loop_t* loop;
45
45
  };
46
46
 
47
47
  #endif
@@ -1,8 +1,8 @@
1
1
  #ifndef MS_DEP_LIBURING_HPP
2
2
  #define MS_DEP_LIBURING_HPP
3
3
 
4
- #include "DepLibUV.hpp"
5
4
  #include "FBS/liburing.h"
5
+ #include <uv.h>
6
6
  #include <functional>
7
7
  #include <liburing.h>
8
8
  #include <queue>
@@ -52,8 +52,8 @@ public:
52
52
  class LibUring;
53
53
 
54
54
  // Whether liburing is enabled or not after runtime checks.
55
- thread_local static bool enabled;
56
- thread_local static LibUring* liburing;
55
+ static thread_local bool enabled;
56
+ static thread_local LibUring* liburing;
57
57
 
58
58
  public:
59
59
  // Singleton.
@@ -96,9 +96,9 @@
96
96
  #define MS_LOGGER_HPP
97
97
 
98
98
  #include "common.hpp"
99
+ #include "Channel/ChannelSocket.hpp"
99
100
  #include "LogLevel.hpp"
100
101
  #include "Settings.hpp"
101
- #include "Channel/ChannelSocket.hpp"
102
102
  #include <cstdio> // std::snprintf(), std::fprintf(), stdout, stderr
103
103
  #include <cstdlib> // std::abort()
104
104
  #include <cstring>
@@ -156,10 +156,10 @@ public:
156
156
  static void ClassInit(Channel::ChannelSocket* channel);
157
157
 
158
158
  public:
159
- static const uint64_t pid;
160
- thread_local static Channel::ChannelSocket* channel;
159
+ static const uint64_t Pid;
160
+ static thread_local Channel::ChannelSocket* channel;
161
161
  static const size_t BufferSize {50000};
162
- thread_local static char buffer[];
162
+ static thread_local char buffer[];
163
163
  };
164
164
 
165
165
  /* Logging macros. */
@@ -14,7 +14,7 @@ public:
14
14
 
15
15
  public:
16
16
  static const size_t BufferSize{ 2000 };
17
- thread_local static char buffer[];
17
+ static thread_local char buffer[];
18
18
  };
19
19
 
20
20
  class MediaSoupTypeError : public MediaSoupError
@@ -1,9 +1,9 @@
1
1
  #ifndef MS_RTC_ACTIVE_SPEAKER_OBSERVER_HPP
2
2
  #define MS_RTC_ACTIVE_SPEAKER_OBSERVER_HPP
3
3
 
4
- #include "SharedInterface.hpp"
5
- #include "RTC/RtpObserver.hpp"
6
4
  #include "handles/TimerHandleInterface.hpp"
5
+ #include "RTC/RtpObserver.hpp"
6
+ #include "SharedInterface.hpp"
7
7
  #include <absl/container/flat_hash_map.h>
8
8
  #include <vector>
9
9
 
@@ -20,7 +20,9 @@ namespace RTC
20
20
  class Speaker
21
21
  {
22
22
  public:
23
- Speaker();
23
+ explicit Speaker(SharedInterface* shared);
24
+
25
+ public:
24
26
  void EvalActivityScores();
25
27
  double GetActivityScore(uint8_t interval) const;
26
28
  void LevelChanged(uint32_t level, uint64_t now);
@@ -56,7 +58,7 @@ namespace RTC
56
58
  class ProducerSpeaker
57
59
  {
58
60
  public:
59
- explicit ProducerSpeaker(RTC::Producer* producer);
61
+ ProducerSpeaker(SharedInterface* shared, RTC::Producer* producer);
60
62
  ~ProducerSpeaker();
61
63
 
62
64
  public:
@@ -1,9 +1,9 @@
1
1
  #ifndef MS_RTC_AUDIO_LEVEL_OBSERVER_HPP
2
2
  #define MS_RTC_AUDIO_LEVEL_OBSERVER_HPP
3
3
 
4
- #include "SharedInterface.hpp"
5
- #include "RTC/RtpObserver.hpp"
6
4
  #include "handles/TimerHandleInterface.hpp"
5
+ #include "RTC/RtpObserver.hpp"
6
+ #include "SharedInterface.hpp"
7
7
  #include <absl/container/flat_hash_map.h>
8
8
 
9
9
  namespace RTC
@@ -2,7 +2,6 @@
2
2
  #define MS_RTC_CONSUMER_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "SharedInterface.hpp"
6
5
  #include "Channel/ChannelRequest.hpp"
7
6
  #include "Channel/ChannelSocket.hpp"
8
7
  #include "FBS/consumer.h"
@@ -17,6 +16,7 @@
17
16
  #include "RTC/RTP/RtpStreamSend.hpp"
18
17
  #include "RTC/RTP/SharedPacket.hpp"
19
18
  #include "RTC/RtpDictionaries.hpp"
19
+ #include "SharedInterface.hpp"
20
20
  #include <absl/container/flat_hash_set.h>
21
21
  #include <string>
22
22
  #include <vector>
@@ -2,10 +2,11 @@
2
2
  #define MS_RTC_DATA_CONSUMER_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "SharedInterface.hpp"
6
5
  #include "Channel/ChannelRequest.hpp"
7
6
  #include "Channel/ChannelSocket.hpp"
7
+ #include "RTC/SCTP/public/Message.hpp"
8
8
  #include "RTC/SctpDictionaries.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
 
@@ -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);
@@ -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
 
@@ -2,10 +2,11 @@
2
2
  #define MS_RTC_DATA_PRODUCER_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "SharedInterface.hpp"
6
5
  #include "Channel/ChannelRequest.hpp"
7
6
  #include "Channel/ChannelSocket.hpp"
7
+ #include "RTC/SCTP/public/Message.hpp"
8
8
  #include "RTC/SctpDictionaries.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;
@@ -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
 
@@ -1,8 +1,8 @@
1
1
  #ifndef MS_RTC_DIRECT_TRANSPORT_HPP
2
2
  #define MS_RTC_DIRECT_TRANSPORT_HPP
3
3
 
4
- #include "SharedInterface.hpp"
5
4
  #include "RTC/Transport.hpp"
5
+ #include "SharedInterface.hpp"
6
6
 
7
7
  namespace RTC
8
8
  {
@@ -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
 
@@ -2,10 +2,10 @@
2
2
  #define MS_RTC_DTLS_TRANSPORT_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "SharedInterface.hpp"
6
5
  #include "FBS/webRtcTransport.h"
7
- #include "RTC/SrtpSession.hpp"
8
6
  #include "handles/TimerHandleInterface.hpp"
7
+ #include "RTC/SrtpSession.hpp"
8
+ #include "SharedInterface.hpp"
9
9
  #include <openssl/bio.h>
10
10
  #include <openssl/ssl.h>
11
11
  #include <openssl/x509.h>
@@ -125,14 +125,14 @@ namespace RTC
125
125
  static void GenerateFingerprints();
126
126
 
127
127
  private:
128
- thread_local static X509* certificate;
129
- thread_local static EVP_PKEY* privateKey;
130
- thread_local static SSL_CTX* sslCtx;
131
- 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[];
132
132
  static const absl::flat_hash_map<std::string, Role> String2Role;
133
133
  static const absl::flat_hash_map<std::string, FingerprintAlgorithm> String2FingerprintAlgorithm;
134
134
  static const absl::flat_hash_map<FingerprintAlgorithm, std::string> FingerprintAlgorithm2String;
135
- thread_local static std::vector<Fingerprint> localFingerprints;
135
+ static thread_local std::vector<Fingerprint> localFingerprints;
136
136
  static const std::vector<SrtpCryptoSuiteMapEntry> SrtpCryptoSuites;
137
137
 
138
138
  public:
@@ -2,11 +2,11 @@
2
2
  #define MS_RTC_ICE_ICE_SERVER_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "SharedInterface.hpp"
6
5
  #include "FBS/webRtcTransport.h"
6
+ #include "handles/TimerHandleInterface.hpp"
7
7
  #include "RTC/ICE/StunPacket.hpp"
8
8
  #include "RTC/TransportTuple.hpp"
9
- #include "handles/TimerHandleInterface.hpp"
9
+ #include "SharedInterface.hpp"
10
10
  #include <list>
11
11
  #include <string>
12
12
  #include <unordered_map>
@@ -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,8 +1,8 @@
1
1
  #ifndef MS_KEY_FRAME_REQUEST_MANAGER_HPP
2
2
  #define MS_KEY_FRAME_REQUEST_MANAGER_HPP
3
3
 
4
- #include "SharedInterface.hpp"
5
4
  #include "handles/TimerHandleInterface.hpp"
5
+ #include "SharedInterface.hpp"
6
6
  #include <absl/container/flat_hash_map.h>
7
7
 
8
8
  namespace RTC
@@ -2,10 +2,10 @@
2
2
  #define MS_RTC_NACK_GENERATOR_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "SharedInterface.hpp"
5
+ #include "handles/TimerHandleInterface.hpp"
6
6
  #include "RTC/RTP/Packet.hpp"
7
7
  #include "RTC/SeqManager.hpp"
8
- #include "handles/TimerHandleInterface.hpp"
8
+ #include "SharedInterface.hpp"
9
9
  #include <map>
10
10
  #include <set>
11
11
  #include <vector>
@@ -75,6 +75,7 @@ namespace RTC
75
75
  private:
76
76
  // Passed by argument.
77
77
  Listener* listener{ nullptr };
78
+ SharedInterface* shared{ nullptr };
78
79
  unsigned int sendNackDelayMs{ 0u };
79
80
  // Allocated by this.
80
81
  TimerHandleInterface* timer{ nullptr };
@@ -1,12 +1,12 @@
1
1
  #ifndef MS_RTC_PIPE_TRANSPORT_HPP
2
2
  #define MS_RTC_PIPE_TRANSPORT_HPP
3
3
 
4
- #include "SharedInterface.hpp"
5
4
  #include "FBS/pipeTransport.h"
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
  {
@@ -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);
@@ -1,12 +1,12 @@
1
1
  #ifndef MS_RTC_PLAIN_TRANSPORT_HPP
2
2
  #define MS_RTC_PLAIN_TRANSPORT_HPP
3
3
 
4
- #include "SharedInterface.hpp"
5
4
  #include "FBS/plainTransport.h"
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
@@ -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
 
@@ -2,7 +2,6 @@
2
2
  #define MS_RTC_PRODUCER_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "SharedInterface.hpp"
6
5
  #include "Channel/ChannelRequest.hpp"
7
6
  #include "Channel/ChannelSocket.hpp"
8
7
  #include "RTC/KeyFrameRequestManager.hpp"
@@ -14,6 +13,7 @@
14
13
  #include "RTC/RTP/Packet.hpp"
15
14
  #include "RTC/RTP/RtpStreamRecv.hpp"
16
15
  #include "RTC/RtpDictionaries.hpp"
16
+ #include "SharedInterface.hpp"
17
17
  #include <string>
18
18
  #include <vector>
19
19
 
@@ -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
  /**
@@ -2,21 +2,20 @@
2
2
  #define MS_RTC_RTP_RTP_STREAM_HPP
3
3
 
4
4
  #include "common.hpp"
5
- #include "DepLibUV.hpp"
6
- #include "SharedInterface.hpp"
7
5
  #include "FBS/rtpStream.h"
8
- #include "RTC/RTCP/FeedbackPsFir.hpp" // IWYU pragma: export
9
- #include "RTC/RTCP/FeedbackPsPli.hpp" // IWYU pragma: export
10
- #include "RTC/RTCP/FeedbackRtpNack.hpp" // IWYU pragma: export
11
- #include "RTC/RTCP/Packet.hpp" // IWYU pragma: export
12
- #include "RTC/RTCP/ReceiverReport.hpp" // IWYU pragma: export
13
- #include "RTC/RTCP/Sdes.hpp" // IWYU pragma: export
14
- #include "RTC/RTCP/SenderReport.hpp" // IWYU pragma: export
15
- #include "RTC/RTCP/XrDelaySinceLastRr.hpp" // IWYU pragma: export
16
- #include "RTC/RTCP/XrReceiverReferenceTime.hpp" // IWYU pragma: export
6
+ #include "RTC/RTCP/FeedbackPsFir.hpp"
7
+ #include "RTC/RTCP/FeedbackPsPli.hpp"
8
+ #include "RTC/RTCP/FeedbackRtpNack.hpp"
9
+ #include "RTC/RTCP/Packet.hpp"
10
+ #include "RTC/RTCP/ReceiverReport.hpp"
11
+ #include "RTC/RTCP/Sdes.hpp"
12
+ #include "RTC/RTCP/SenderReport.hpp"
13
+ #include "RTC/RTCP/XrDelaySinceLastRr.hpp"
14
+ #include "RTC/RTCP/XrReceiverReferenceTime.hpp"
17
15
  #include "RTC/RTP/Packet.hpp"
18
16
  #include "RTC/RTP/RtxStream.hpp"
19
17
  #include "RTC/RtpDictionaries.hpp"
18
+ #include "SharedInterface.hpp"
20
19
  #include <string>
21
20
  #include <vector>
22
21
 
@@ -167,7 +166,7 @@ namespace RTC
167
166
  }
168
167
  uint64_t GetActiveMs() const
169
168
  {
170
- return DepLibUV::GetTimeMs() - this->activeSinceMs;
169
+ return this->shared->GetTimeMs() - this->activeSinceMs;
171
170
  }
172
171
 
173
172
  protected:
@@ -1,11 +1,11 @@
1
1
  #ifndef MS_RTC_RTP_RTP_STREAM_RECV_HPP
2
2
  #define MS_RTC_RTP_RTP_STREAM_RECV_HPP
3
3
 
4
+ #include "handles/TimerHandleInterface.hpp"
4
5
  #include "RTC/NackGenerator.hpp"
5
6
  #include "RTC/RTCP/XrDelaySinceLastRr.hpp"
6
7
  #include "RTC/RTP/RtpStream.hpp"
7
8
  #include "RTC/RateCalculator.hpp"
8
- #include "handles/TimerHandleInterface.hpp"
9
9
  #include <vector>
10
10
 
11
11
  namespace RTC
@@ -30,7 +30,8 @@ namespace RTC
30
30
  class TransmissionCounter
31
31
  {
32
32
  public:
33
- TransmissionCounter(uint8_t spatialLayers, uint8_t temporalLayers, size_t windowSize);
33
+ TransmissionCounter(
34
+ SharedInterface* shared, uint8_t spatialLayers, uint8_t temporalLayers, size_t windowSize);
34
35
  void Update(const RTP::Packet* packet);
35
36
  uint32_t GetBitrate(uint64_t nowMs);
36
37
  uint32_t GetBitrate(uint64_t nowMs, uint8_t spatialLayer, uint8_t temporalLayer);
@@ -7,6 +7,7 @@
7
7
  #include "RTC/RTCP/SenderReport.hpp"
8
8
  #include "RTC/RTP/Packet.hpp"
9
9
  #include "RTC/RtpDictionaries.hpp"
10
+ #include "SharedInterface.hpp"
10
11
  #include <string>
11
12
 
12
13
  namespace RTC
@@ -30,7 +31,7 @@ namespace RTC
30
31
  };
31
32
 
32
33
  public:
33
- explicit RtxStream(RTP::RtxStream::Params& params);
34
+ explicit RtxStream(SharedInterface* shared, RTP::RtxStream::Params& params);
34
35
  virtual ~RtxStream();
35
36
 
36
37
  flatbuffers::Offset<FBS::RtxStream::RtxDump> FillBuffer(
@@ -87,6 +88,7 @@ namespace RTC
87
88
 
88
89
  protected:
89
90
  // Given as argument.
91
+ SharedInterface* shared{ nullptr };
90
92
  Params params;
91
93
  // Others.
92
94
  // https://tools.ietf.org/html/rfc3550#appendix-A.1 stuff.
@@ -12,7 +12,7 @@ namespace RTC
12
12
  {
13
13
  public:
14
14
  #ifdef MS_DUMP_RTP_SHARED_PACKET_MEMORY_USAGE
15
- thread_local static uint64_t allocatedMemory;
15
+ static thread_local uint64_t allocatedMemory;
16
16
  #endif
17
17
 
18
18
  public: