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
@@ -12,7 +12,7 @@ namespace RTC
12
12
  /* Static. */
13
13
 
14
14
  static constexpr size_t StunResponseFactoryBufferLength{ 65536 };
15
- thread_local uint8_t StunResponseFactoryBuffer[StunResponseFactoryBufferLength];
15
+ static thread_local uint8_t StunResponseFactoryBuffer[StunResponseFactoryBufferLength];
16
16
  static constexpr size_t MaxTuples{ 8 };
17
17
  static constexpr uint8_t ConsentCheckMinTimeoutSec{ 10u };
18
18
  static constexpr uint8_t ConsentCheckMaxTimeoutSec{ 60u };
@@ -560,7 +560,7 @@ namespace RTC
560
560
  }
561
561
  else
562
562
  {
563
- thread_local std::string_view errorReasonPhrase;
563
+ static thread_local std::string_view errorReasonPhrase;
564
564
 
565
565
  response->GetErrorCode(errorReasonPhrase);
566
566
 
@@ -15,7 +15,7 @@ namespace RTC
15
15
  /* Static. */
16
16
 
17
17
  static constexpr size_t AttributeFactoryBufferLength{ 65536 };
18
- thread_local uint8_t AttributeFactoryBuffer[AttributeFactoryBufferLength];
18
+ static thread_local uint8_t AttributeFactoryBuffer[AttributeFactoryBufferLength];
19
19
 
20
20
  /* Class variables. */
21
21
 
@@ -2,7 +2,6 @@
2
2
  // #define MS_LOG_DEV_LEVEL 3
3
3
 
4
4
  #include "RTC/NackGenerator.hpp"
5
- #include "DepLibUV.hpp"
6
5
  #include "Logger.hpp"
7
6
 
8
7
  namespace RTC
@@ -19,6 +18,7 @@ namespace RTC
19
18
 
20
19
  NackGenerator::NackGenerator(Listener* listener, SharedInterface* shared, unsigned int sendNackDelayMs)
21
20
  : listener(listener),
21
+ shared(shared),
22
22
  sendNackDelayMs(sendNackDelayMs),
23
23
  timer(shared->CreateTimer(this)),
24
24
  rtt(DefaultRtt)
@@ -211,7 +211,7 @@ namespace RTC
211
211
  this->nackList.emplace(
212
212
  seq,
213
213
  NackInfo{
214
- DepLibUV::GetTimeMs(),
214
+ this->shared->GetTimeMs(),
215
215
  seq,
216
216
  seq,
217
217
  });
@@ -247,7 +247,7 @@ namespace RTC
247
247
  {
248
248
  MS_TRACE();
249
249
 
250
- const uint64_t nowMs = DepLibUV::GetTimeMs();
250
+ const uint64_t nowMs = this->shared->GetTimeMs();
251
251
  std::vector<uint16_t> nackBatch;
252
252
 
253
253
  auto it = this->nackList.begin();
@@ -4,8 +4,8 @@
4
4
  #include "RTC/PipeConsumer.hpp"
5
5
  #include "Logger.hpp"
6
6
  #include "MediaSoupErrors.hpp"
7
- #include "Utils.hpp"
8
7
  #include "RTC/RTP/Codecs/Tools.hpp"
8
+ #include "Utils.hpp"
9
9
  #ifdef MS_RTC_LOGGER_RTP
10
10
  #include "RTC/RtcLogger.hpp"
11
11
  #endif
@@ -4,9 +4,9 @@
4
4
  #include "RTC/PipeTransport.hpp"
5
5
  #include "Logger.hpp"
6
6
  #include "MediaSoupErrors.hpp"
7
+ #include "RTC/SCTP/packet/Packet.hpp"
7
8
  #include "Settings.hpp"
8
9
  #include "Utils.hpp"
9
- #include "RTC/SCTP/packet/Packet.hpp"
10
10
  #include <cstring> // std::memcpy()
11
11
 
12
12
  namespace RTC
@@ -144,7 +144,7 @@ namespace RTC
144
144
 
145
145
  // Tell the Transport parent class that we are about to destroy
146
146
  // the class instance.
147
- Destroying();
147
+ SetDestroying();
148
148
 
149
149
  this->shared->GetChannelMessageRegistrator()->UnregisterHandler(this->id);
150
150
 
@@ -579,22 +579,14 @@ namespace RTC
579
579
  }
580
580
 
581
581
  void PipeTransport::SendMessage(
582
- RTC::DataConsumer* dataConsumer, const uint8_t* msg, size_t len, uint32_t ppid, onQueuedCallback* cb)
582
+ RTC::DataConsumer* dataConsumer, RTC::SCTP::Message message, onQueuedCallback* cb)
583
583
  {
584
584
  MS_TRACE();
585
585
 
586
- if (Settings::configuration.useBuiltInSctpStack)
587
- {
588
- // TODO: SCTP
589
- }
590
- // TODO: Remove once we only use built-in SCTP stack.
591
- else
592
- {
593
- this->oldSctpAssociation->SendSctpMessage(dataConsumer, msg, len, ppid, cb);
594
- }
586
+ SendSctpMessage(dataConsumer, std::move(message), cb);
595
587
  }
596
588
 
597
- bool PipeTransport::SendSctpData(const uint8_t* data, size_t len)
589
+ bool PipeTransport::SendData(const uint8_t* data, size_t len)
598
590
  {
599
591
  MS_TRACE();
600
592
 
@@ -650,12 +642,7 @@ namespace RTC
650
642
  OnRtpDataReceived(tuple, data, len, bufferLen);
651
643
  }
652
644
  // Check if it's SCTP.
653
- else if (Settings::configuration.useBuiltInSctpStack && RTC::SCTP::Packet::IsSctp(data, len))
654
- {
655
- OnSctpDataReceived(tuple, data, len);
656
- }
657
- // TODO: Remove once we only use built-in SCTP stack.
658
- else if (!Settings::configuration.useBuiltInSctpStack && RTC::SctpAssociation::IsSctp(data, len))
645
+ else if (RTC::SCTP::Packet::IsSctp(data, len))
659
646
  {
660
647
  OnSctpDataReceived(tuple, data, len);
661
648
  }
@@ -4,9 +4,9 @@
4
4
  #include "RTC/PlainTransport.hpp"
5
5
  #include "Logger.hpp"
6
6
  #include "MediaSoupErrors.hpp"
7
+ #include "RTC/SCTP/packet/Packet.hpp"
7
8
  #include "Settings.hpp"
8
9
  #include "Utils.hpp"
9
- #include "RTC/SCTP/packet/Packet.hpp"
10
10
  #include <cstring> // std::memcpy()
11
11
 
12
12
  namespace RTC
@@ -266,7 +266,7 @@ namespace RTC
266
266
 
267
267
  // Tell the Transport parent class that we are about to destroy
268
268
  // the class instance.
269
- Destroying();
269
+ SetDestroying();
270
270
 
271
271
  this->shared->GetChannelMessageRegistrator()->UnregisterHandler(this->id);
272
272
 
@@ -899,22 +899,14 @@ namespace RTC
899
899
  }
900
900
 
901
901
  void PlainTransport::SendMessage(
902
- RTC::DataConsumer* dataConsumer, const uint8_t* msg, size_t len, uint32_t ppid, onQueuedCallback* cb)
902
+ RTC::DataConsumer* dataConsumer, RTC::SCTP::Message message, onQueuedCallback* cb)
903
903
  {
904
904
  MS_TRACE();
905
905
 
906
- if (Settings::configuration.useBuiltInSctpStack)
907
- {
908
- // TODO: SCTP
909
- }
910
- // TODO: Remove once we only use built-in SCTP stack.
911
- else
912
- {
913
- this->oldSctpAssociation->SendSctpMessage(dataConsumer, msg, len, ppid, cb);
914
- }
906
+ SendSctpMessage(dataConsumer, std::move(message), cb);
915
907
  }
916
908
 
917
- bool PlainTransport::SendSctpData(const uint8_t* data, size_t len)
909
+ bool PlainTransport::SendData(const uint8_t* data, size_t len)
918
910
  {
919
911
  MS_TRACE();
920
912
 
@@ -972,12 +964,7 @@ namespace RTC
972
964
  OnRtpDataReceived(tuple, data, len, bufferLen);
973
965
  }
974
966
  // Check if it's SCTP.
975
- else if (Settings::configuration.useBuiltInSctpStack && RTC::SCTP::Packet::IsSctp(data, len))
976
- {
977
- OnSctpDataReceived(tuple, data, len);
978
- }
979
- // TODO: Remove once we only use built-in SCTP stack.
980
- else if (!Settings::configuration.useBuiltInSctpStack && RTC::SctpAssociation::IsSctp(data, len))
967
+ else if (RTC::SCTP::Packet::IsSctp(data, len))
981
968
  {
982
969
  OnSctpDataReceived(tuple, data, len);
983
970
  }
@@ -2,14 +2,13 @@
2
2
  // #define MS_LOG_DEV_LEVEL 3
3
3
 
4
4
  #include "RTC/Producer.hpp"
5
- #include "DepLibUV.hpp"
6
5
  #include "Logger.hpp"
7
6
  #include "MediaSoupErrors.hpp"
8
- #include "Utils.hpp"
9
7
  #include "RTC/Consts.hpp"
10
8
  #include "RTC/RTCP/Feedback.hpp"
11
9
  #include "RTC/RTCP/XrReceiverReferenceTime.hpp"
12
10
  #include "RTC/RTP/Codecs/Tools.hpp"
11
+ #include "Utils.hpp"
13
12
  #ifdef MS_RTC_LOGGER_RTP
14
13
  #include "RTC/RtcLogger.hpp"
15
14
  #endif
@@ -21,7 +20,7 @@ namespace RTC
21
20
  /* Static */
22
21
 
23
22
  static constexpr size_t ProducerSendBufferSize{ 65536 };
24
- thread_local uint8_t ProducerSendBuffer[ProducerSendBufferSize];
23
+ static thread_local uint8_t ProducerSendBuffer[ProducerSendBufferSize];
25
24
  static constexpr unsigned int SendNackDelay{ 10u }; // In ms.
26
25
 
27
26
  /* Instance methods. */
@@ -1196,8 +1195,8 @@ namespace RTC
1196
1195
 
1197
1196
  // Mangle RTP header extensions.
1198
1197
  {
1199
- thread_local uint8_t buffer[4096];
1200
- thread_local std::vector<RTC::RTP::Packet::Extension> extensions;
1198
+ static thread_local uint8_t buffer[4096];
1199
+ static thread_local std::vector<RTC::RTP::Packet::Extension> extensions;
1201
1200
 
1202
1201
  // This happens just once.
1203
1202
  if (extensions.capacity() != 24)
@@ -1495,7 +1494,7 @@ namespace RTC
1495
1494
  auto notification = FBS::Producer::CreateTraceNotification(
1496
1495
  this->shared->GetChannelNotifier()->GetBufferBuilder(),
1497
1496
  FBS::Producer::TraceEventType::KEYFRAME,
1498
- DepLibUV::GetTimeMs(),
1497
+ this->shared->GetTimeMs(),
1499
1498
  FBS::Common::TraceDirection::DIRECTION_IN,
1500
1499
  FBS::Producer::TraceInfo::KeyFrameTraceInfo,
1501
1500
  traceInfo.Union());
@@ -1511,7 +1510,7 @@ namespace RTC
1511
1510
  auto notification = FBS::Producer::CreateTraceNotification(
1512
1511
  this->shared->GetChannelNotifier()->GetBufferBuilder(),
1513
1512
  FBS::Producer::TraceEventType::RTP,
1514
- DepLibUV::GetTimeMs(),
1513
+ this->shared->GetTimeMs(),
1515
1514
  FBS::Common::TraceDirection::DIRECTION_IN,
1516
1515
  FBS::Producer::TraceInfo::RtpTraceInfo,
1517
1516
  traceInfo.Union());
@@ -1535,7 +1534,7 @@ namespace RTC
1535
1534
  auto notification = FBS::Producer::CreateTraceNotification(
1536
1535
  this->shared->GetChannelNotifier()->GetBufferBuilder(),
1537
1536
  FBS::Producer::TraceEventType::PLI,
1538
- DepLibUV::GetTimeMs(),
1537
+ this->shared->GetTimeMs(),
1539
1538
  FBS::Common::TraceDirection::DIRECTION_OUT,
1540
1539
  FBS::Producer::TraceInfo::PliTraceInfo,
1541
1540
  traceInfo.Union());
@@ -1558,7 +1557,7 @@ namespace RTC
1558
1557
  auto notification = FBS::Producer::CreateTraceNotification(
1559
1558
  this->shared->GetChannelNotifier()->GetBufferBuilder(),
1560
1559
  FBS::Producer::TraceEventType::FIR,
1561
- DepLibUV::GetTimeMs(),
1560
+ this->shared->GetTimeMs(),
1562
1561
  FBS::Common::TraceDirection::DIRECTION_OUT,
1563
1562
  FBS::Producer::TraceInfo::FirTraceInfo,
1564
1563
  traceInfo.Union());
@@ -1578,7 +1577,7 @@ namespace RTC
1578
1577
  auto notification = FBS::Producer::CreateTraceNotification(
1579
1578
  this->shared->GetChannelNotifier()->GetBufferBuilder(),
1580
1579
  FBS::Producer::TraceEventType::NACK,
1581
- DepLibUV::GetTimeMs(),
1580
+ this->shared->GetTimeMs(),
1582
1581
  FBS::Common::TraceDirection::DIRECTION_OUT);
1583
1582
 
1584
1583
  EmitTraceEvent(notification);
@@ -1605,7 +1604,7 @@ namespace RTC
1605
1604
  auto notification = FBS::Producer::CreateTraceNotification(
1606
1605
  this->shared->GetChannelNotifier()->GetBufferBuilder(),
1607
1606
  FBS::Producer::TraceEventType::SR,
1608
- DepLibUV::GetTimeMs(),
1607
+ this->shared->GetTimeMs(),
1609
1608
  FBS::Common::TraceDirection::DIRECTION_IN,
1610
1609
  FBS::Producer::TraceInfo::SrTraceInfo,
1611
1610
  traceInfo.Union());
@@ -3,8 +3,8 @@
3
3
 
4
4
  #include "RTC/RTCP/FeedbackPsAfb.hpp"
5
5
  #include "Logger.hpp"
6
- #include "Utils.hpp"
7
6
  #include "RTC/RTCP/FeedbackPsRemb.hpp"
7
+ #include "Utils.hpp"
8
8
  #include <cstring>
9
9
 
10
10
  namespace RTC
@@ -3,8 +3,8 @@
3
3
 
4
4
  #include "RTC/RTCP/FeedbackRtpTransport.hpp"
5
5
  #include "Logger.hpp"
6
- #include "Utils.hpp"
7
6
  #include "RTC/SeqManager.hpp"
7
+ #include "Utils.hpp"
8
8
  #include <sstream> // std::ostringstream
9
9
 
10
10
  namespace RTC
@@ -2,9 +2,9 @@
2
2
  // #define MS_LOG_DEV_LEVEL 3
3
3
 
4
4
  #include "Logger.hpp"
5
- #include "Utils.hpp"
6
5
  #include "RTC/RTCP/XrDelaySinceLastRr.hpp"
7
6
  #include "RTC/RTCP/XrReceiverReferenceTime.hpp"
7
+ #include "Utils.hpp"
8
8
 
9
9
  namespace RTC
10
10
  {
@@ -3,8 +3,8 @@
3
3
 
4
4
  #include "RTC/RTP/Packet.hpp"
5
5
  #ifdef MS_RTC_LOGGER_RTP
6
- #include "DepLibUV.hpp"
7
6
  #endif
7
+ #include "DepLibUV.hpp"
8
8
  #include "Logger.hpp"
9
9
  #include "MediaSoupErrors.hpp"
10
10
  #include "RTC/Consts.hpp"
@@ -136,6 +136,8 @@ namespace RTC
136
136
 
137
137
  #ifdef MS_RTC_LOGGER_RTP
138
138
  // Initialize logger.
139
+ // NOTE: Here we use DepLibUV directly since `this->logger` doesn't
140
+ // have any purpose during tests.
139
141
  this->logger.timestamp = DepLibUV::GetTimeMs();
140
142
  this->logger.recvRtpTimestamp = GetTimestamp();
141
143
  this->logger.recvSeqNumber = GetSequenceNumber();
@@ -3,8 +3,8 @@
3
3
 
4
4
  #include "RTC/RTP/ProbationGenerator.hpp"
5
5
  #include "Logger.hpp"
6
- #include "Utils.hpp"
7
6
  #include "RTC/RtpDictionaries.hpp"
7
+ #include "Utils.hpp"
8
8
  #include <cstring> // std::memcpy(), std::memset()
9
9
  #include <vector>
10
10
 
@@ -14,9 +14,9 @@ namespace RTC
14
14
  {
15
15
  /* Static. */
16
16
 
17
- thread_local uint8_t ProbationPacketBuffer[ProbationGenerator::ProbationPacketMaxLength];
17
+ static thread_local uint8_t ProbationPacketBuffer[ProbationGenerator::ProbationPacketMaxLength];
18
18
  static constexpr size_t ProbationPacketExtensionsBufferLength{ 200 };
19
- alignas(4) thread_local uint8_t
19
+ alignas(4) static thread_local uint8_t
20
20
  ProbationPacketExtensionsBuffer[ProbationPacketExtensionsBufferLength];
21
21
  // 8 bytes, same as RTC::Consts::MidRtpExtensionMaxLength.
22
22
  static const std::string MidValue{ "probator" };
@@ -28,7 +28,7 @@ namespace RTC
28
28
  MS_TRACE();
29
29
 
30
30
  // Trick to only fill the padding with zeroes once.
31
- thread_local bool mustInitializePayload{ true };
31
+ static thread_local bool mustInitializePayload{ true };
32
32
 
33
33
  if (mustInitializePayload)
34
34
  {
@@ -3,8 +3,8 @@
3
3
 
4
4
  #include "RTC/RTP/RetransmissionBuffer.hpp"
5
5
  #include "Logger.hpp"
6
- #include "Utils.hpp"
7
6
  #include "RTC/SeqManager.hpp"
7
+ #include "Utils.hpp"
8
8
 
9
9
  namespace RTC
10
10
  {
@@ -27,7 +27,7 @@ namespace RTC
27
27
  shared(shared),
28
28
  params(params),
29
29
  score(initialScore),
30
- activeSinceMs(DepLibUV::GetTimeMs())
30
+ activeSinceMs(this->shared->GetTimeMs())
31
31
  {
32
32
  MS_TRACE();
33
33
  }
@@ -64,7 +64,7 @@ namespace RTC
64
64
  {
65
65
  MS_TRACE();
66
66
 
67
- const uint64_t nowMs = DepLibUV::GetTimeMs();
67
+ const uint64_t nowMs = this->shared->GetTimeMs();
68
68
  const auto mediaKind = this->params.mimeType.type == RTC::RtpCodecMimeType::Type::AUDIO
69
69
  ? FBS::RtpParameters::MediaKind::AUDIO
70
70
  : FBS::RtpParameters::MediaKind::VIDEO;
@@ -123,7 +123,7 @@ namespace RTC
123
123
  // Tell the RtpCodecMimeType to update its string based on current type and subtype.
124
124
  params.mimeType.UpdateMimeType();
125
125
 
126
- this->rtxStream = new RTP::RtxStream(params);
126
+ this->rtxStream = new RTP::RtxStream(this->shared, params);
127
127
  }
128
128
 
129
129
  bool RtpStream::ReceiveStreamPacket(const RTP::Packet* packet)
@@ -140,7 +140,7 @@ namespace RTC
140
140
  this->started = true;
141
141
  this->maxSeq = seq - 1;
142
142
  this->maxPacketTs = packet->GetTimestamp();
143
- this->maxPacketMs = DepLibUV::GetTimeMs();
143
+ this->maxPacketMs = this->shared->GetTimeMs();
144
144
  }
145
145
 
146
146
  // If not a valid packet ignore it.
@@ -159,7 +159,7 @@ namespace RTC
159
159
  if (Utils::Number::IsHigherThan<uint32_t>(packet->GetTimestamp(), this->maxPacketTs))
160
160
  {
161
161
  this->maxPacketTs = packet->GetTimestamp();
162
- this->maxPacketMs = DepLibUV::GetTimeMs();
162
+ this->maxPacketMs = this->shared->GetTimeMs();
163
163
  }
164
164
 
165
165
  return true;
@@ -180,7 +180,7 @@ namespace RTC
180
180
  // If previous score was 0 (and new one is not 0) then update activeSinceMs.
181
181
  if (previousScore == 0u)
182
182
  {
183
- this->activeSinceMs = DepLibUV::GetTimeMs();
183
+ this->activeSinceMs = this->shared->GetTimeMs();
184
184
  }
185
185
 
186
186
  // Notify the listener.
@@ -227,7 +227,7 @@ namespace RTC
227
227
  packet->GetTimestamp());
228
228
 
229
229
  this->maxPacketTs = packet->GetTimestamp();
230
- this->maxPacketMs = DepLibUV::GetTimeMs();
230
+ this->maxPacketMs = this->shared->GetTimeMs();
231
231
  }
232
232
  }
233
233
  // Too old packet received (older than the allowed misorder).
@@ -249,7 +249,7 @@ namespace RTC
249
249
  InitSeq(seq);
250
250
 
251
251
  this->maxPacketTs = packet->GetTimestamp();
252
- this->maxPacketMs = DepLibUV::GetTimeMs();
252
+ this->maxPacketMs = this->shared->GetTimeMs();
253
253
 
254
254
  // Notify the subclass about it.
255
255
  UserOnSequenceNumberReset();
@@ -336,7 +336,7 @@ namespace RTC
336
336
  // If previous score was 0 (and new one is not 0) then update activeSinceMs.
337
337
  if (previousScore == 0u)
338
338
  {
339
- this->activeSinceMs = DepLibUV::GetTimeMs();
339
+ this->activeSinceMs = this->shared->GetTimeMs();
340
340
  }
341
341
 
342
342
  this->listener->OnRtpStreamScore(this, this->score, previousScore);
@@ -3,8 +3,8 @@
3
3
 
4
4
  #include "RTC/RTP/RtpStreamRecv.hpp"
5
5
  #include "Logger.hpp"
6
- #include "Utils.hpp"
7
6
  #include "RTC/RTP/Codecs/Tools.hpp"
7
+ #include "Utils.hpp"
8
8
 
9
9
  namespace RTC
10
10
  {
@@ -18,7 +18,7 @@ namespace RTC
18
18
  /* TransmissionCounter methods. */
19
19
 
20
20
  RtpStreamRecv::TransmissionCounter::TransmissionCounter(
21
- uint8_t spatialLayers, uint8_t temporalLayers, size_t windowSize)
21
+ SharedInterface* shared, uint8_t spatialLayers, uint8_t temporalLayers, size_t windowSize)
22
22
  {
23
23
  MS_TRACE();
24
24
 
@@ -29,7 +29,7 @@ namespace RTC
29
29
  {
30
30
  for (uint8_t tIdx{ 0u }; tIdx < temporalLayers; ++tIdx)
31
31
  {
32
- spatialLayerCounter.emplace_back(/*ignorePaddingOnlyPackets*/ true, windowSize);
32
+ spatialLayerCounter.emplace_back(shared, /*ignorePaddingOnlyPackets*/ true, windowSize);
33
33
  }
34
34
  }
35
35
  }
@@ -191,8 +191,8 @@ namespace RTC
191
191
  sendNackDelayMs(sendNackDelayMs),
192
192
  useRtpInactivityCheck(useRtpInactivityCheck),
193
193
  transmissionCounter(
194
- params.spatialLayers, params.temporalLayers, this->params.useDtx ? 6000 : 2500),
195
- mediaTransmissionCounter(/*ignorePaddingOnlyPackets*/ true)
194
+ shared, params.spatialLayers, params.temporalLayers, this->params.useDtx ? 6000 : 2500),
195
+ mediaTransmissionCounter(shared, /*ignorePaddingOnlyPackets*/ true)
196
196
  {
197
197
  MS_TRACE();
198
198
 
@@ -228,7 +228,7 @@ namespace RTC
228
228
  {
229
229
  MS_TRACE();
230
230
 
231
- const uint64_t nowMs = DepLibUV::GetTimeMs();
231
+ const uint64_t nowMs = this->shared->GetTimeMs();
232
232
 
233
233
  auto baseStats = RTP::RtpStream::FillBufferStats(builder);
234
234
 
@@ -531,7 +531,7 @@ namespace RTC
531
531
  if (this->lastSrReceived != 0)
532
532
  {
533
533
  // Get delay in milliseconds.
534
- auto delayMs = static_cast<uint32_t>(DepLibUV::GetTimeMs() - this->lastSrReceived);
534
+ auto delayMs = static_cast<uint32_t>(this->shared->GetTimeMs() - this->lastSrReceived);
535
535
  // Express delay in units of 1/65536 seconds.
536
536
  uint32_t dlsr = (delayMs / 1000) << 16;
537
537
 
@@ -565,7 +565,7 @@ namespace RTC
565
565
  {
566
566
  MS_TRACE();
567
567
 
568
- this->lastSrReceived = DepLibUV::GetTimeMs();
568
+ this->lastSrReceived = this->shared->GetTimeMs();
569
569
  this->lastSrTimestamp = report->GetNtpSec() << 16;
570
570
  this->lastSrTimestamp += report->GetNtpFrac() >> 16;
571
571
 
@@ -599,7 +599,7 @@ namespace RTC
599
599
  /* Calculate RTT. */
600
600
 
601
601
  // Get the NTP representation of the current timestamp.
602
- const uint64_t nowMs = DepLibUV::GetTimeMs();
602
+ const uint64_t nowMs = this->shared->GetTimeMs();
603
603
  auto ntp = Utils::Time::TimeMs2Ntp(nowMs);
604
604
 
605
605
  // Get the compact NTP representation of the current timestamp.
@@ -713,7 +713,8 @@ namespace RTC
713
713
  }
714
714
 
715
715
  // NOTE: Based on https://github.com/versatica/mediasoup/issues/1018.
716
- auto transit = static_cast<int>((DepLibUV::GetTimeMs() * GetClockRate() / 1000) - rtpTimestamp);
716
+ auto transit =
717
+ static_cast<int>((this->shared->GetTimeMs() * GetClockRate() / 1000) - rtpTimestamp);
717
718
  int d = transit - this->transit;
718
719
 
719
720
  // First transit calculation, save and return.
@@ -6,9 +6,9 @@
6
6
  #include "DepLibUring.hpp"
7
7
  #endif
8
8
  #include "Logger.hpp"
9
- #include "Utils.hpp"
10
9
  #include "RTC/Consts.hpp"
11
10
  #include "RTC/RtpDictionaries.hpp"
11
+ #include "Utils.hpp"
12
12
  #include <vector>
13
13
 
14
14
  namespace RTC
@@ -21,7 +21,7 @@ namespace RTC
21
21
  static constexpr size_t RetransmissionBufferMaxItems{ 2500u };
22
22
  // 17: 16 bit mask + the initial sequence number.
23
23
  static constexpr size_t MaxRequestedPackets{ 17u };
24
- thread_local std::vector<RTP::RetransmissionBuffer::Item*> RetransmissionContainer(
24
+ static thread_local std::vector<RTP::RetransmissionBuffer::Item*> RetransmissionContainer(
25
25
  MaxRequestedPackets + 1);
26
26
  static constexpr uint32_t DefaultRtt{ 100u };
27
27
 
@@ -39,7 +39,7 @@ namespace RTC
39
39
  std::string& mid)
40
40
  : RTP::RtpStream::RtpStream(listener, shared, params, 10),
41
41
  mid(mid),
42
- transmissionCounter(/*ignorePaddingOnlyPackets*/ true)
42
+ transmissionCounter(shared, /*ignorePaddingOnlyPackets*/ true)
43
43
  {
44
44
  MS_TRACE();
45
45
 
@@ -83,7 +83,7 @@ namespace RTC
83
83
  {
84
84
  MS_TRACE();
85
85
 
86
- const uint64_t nowMs = DepLibUV::GetTimeMs();
86
+ const uint64_t nowMs = this->shared->GetTimeMs();
87
87
 
88
88
  auto baseStats = RTP::RtpStream::FillBufferStats(builder);
89
89
  auto stats = FBS::RtpStream::CreateSendStats(
@@ -302,7 +302,7 @@ namespace RTC
302
302
  /* Calculate RTT. */
303
303
 
304
304
  // Get the NTP representation of the current timestamp.
305
- const uint64_t nowMs = DepLibUV::GetTimeMs();
305
+ const uint64_t nowMs = this->shared->GetTimeMs();
306
306
  auto ntp = Utils::Time::TimeMs2Ntp(nowMs);
307
307
 
308
308
  // Get the compact NTP representation of the current timestamp.
@@ -342,7 +342,7 @@ namespace RTC
342
342
  {
343
343
  MS_TRACE();
344
344
 
345
- this->lastRrReceivedMs = DepLibUV::GetTimeMs();
345
+ this->lastRrReceivedMs = this->shared->GetTimeMs();
346
346
  this->lastRrTimestamp = report->GetNtpSec() << 16;
347
347
  this->lastRrTimestamp += report->GetNtpFrac() >> 16;
348
348
  }
@@ -485,7 +485,7 @@ namespace RTC
485
485
  }
486
486
 
487
487
  // Look for each requested packet.
488
- const uint64_t nowMs = DepLibUV::GetTimeMs();
488
+ const uint64_t nowMs = this->shared->GetTimeMs();
489
489
  const uint16_t rtt = (this->rtt > 0.0f ? this->rtt : DefaultRtt);
490
490
  uint16_t currentSeq = seq;
491
491
  bool requested{ true };
@@ -2,7 +2,6 @@
2
2
  // #define MS_LOG_DEV_LEVEL 3
3
3
 
4
4
  #include "RTC/RTP/RtxStream.hpp"
5
- #include "DepLibUV.hpp"
6
5
  #include "Logger.hpp"
7
6
  #include "Utils.hpp"
8
7
 
@@ -18,7 +17,8 @@ namespace RTC
18
17
 
19
18
  /* Instance methods. */
20
19
 
21
- RtxStream::RtxStream(RTP::RtxStream::Params& params) : params(params)
20
+ RtxStream::RtxStream(SharedInterface* shared, RTP::RtxStream::Params& params)
21
+ : shared(shared), params(params)
22
22
  {
23
23
  MS_TRACE();
24
24
 
@@ -57,7 +57,7 @@ namespace RTC
57
57
  this->started = true;
58
58
  this->maxSeq = seq - 1;
59
59
  this->maxPacketTs = packet->GetTimestamp();
60
- this->maxPacketMs = DepLibUV::GetTimeMs();
60
+ this->maxPacketMs = this->shared->GetTimeMs();
61
61
  }
62
62
 
63
63
  // If not a valid packet ignore it.
@@ -76,7 +76,7 @@ namespace RTC
76
76
  if (Utils::Number::IsHigherThan<uint32_t>(packet->GetTimestamp(), this->maxPacketTs))
77
77
  {
78
78
  this->maxPacketTs = packet->GetTimestamp();
79
- this->maxPacketMs = DepLibUV::GetTimeMs();
79
+ this->maxPacketMs = this->shared->GetTimeMs();
80
80
  }
81
81
 
82
82
  // Increase packet count.
@@ -141,7 +141,7 @@ namespace RTC
141
141
  if (this->lastSrReceived != 0)
142
142
  {
143
143
  // Get delay in milliseconds.
144
- const uint32_t delayMs = DepLibUV::GetTimeMs() - this->lastSrReceived;
144
+ const uint32_t delayMs = this->shared->GetTimeMs() - this->lastSrReceived;
145
145
  // Express delay in units of 1/65536 seconds.
146
146
  uint32_t dlsr = (delayMs / 1000) << 16;
147
147
 
@@ -163,7 +163,7 @@ namespace RTC
163
163
  {
164
164
  MS_TRACE();
165
165
 
166
- this->lastSrReceived = DepLibUV::GetTimeMs();
166
+ this->lastSrReceived = this->shared->GetTimeMs();
167
167
  this->lastSrTimestamp = report->GetNtpSec() << 16;
168
168
  this->lastSrTimestamp += report->GetNtpFrac() >> 16;
169
169
  }
@@ -209,7 +209,7 @@ namespace RTC
209
209
  InitSeq(seq);
210
210
 
211
211
  this->maxPacketTs = packet->GetTimestamp();
212
- this->maxPacketMs = DepLibUV::GetTimeMs();
212
+ this->maxPacketMs = this->shared->GetTimeMs();
213
213
  }
214
214
  else
215
215
  {