mediasoup 3.20.0 → 3.20.2

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 (360) hide show
  1. package/node/lib/Consumer.d.ts.map +1 -1
  2. package/node/lib/Consumer.js +5 -4
  3. package/node/lib/DataConsumer.d.ts +2 -3
  4. package/node/lib/DataConsumer.d.ts.map +1 -1
  5. package/node/lib/DataConsumer.js +10 -7
  6. package/node/lib/DataConsumerTypes.d.ts +5 -4
  7. package/node/lib/DataConsumerTypes.d.ts.map +1 -1
  8. package/node/lib/DataProducer.d.ts.map +1 -1
  9. package/node/lib/DataProducer.js +2 -1
  10. package/node/lib/PipeTransport.d.ts.map +1 -1
  11. package/node/lib/PipeTransport.js +5 -4
  12. package/node/lib/PlainTransport.d.ts.map +1 -1
  13. package/node/lib/PlainTransport.js +6 -5
  14. package/node/lib/Producer.d.ts.map +1 -1
  15. package/node/lib/Producer.js +4 -3
  16. package/node/lib/Router.js +1 -1
  17. package/node/lib/WebRtcTransport.d.ts.map +1 -1
  18. package/node/lib/WebRtcTransport.js +6 -5
  19. package/node/lib/fbs/consumer/degrade-request.d.ts +30 -0
  20. package/node/lib/fbs/consumer/degrade-request.d.ts.map +1 -0
  21. package/node/lib/fbs/consumer/degrade-request.js +124 -0
  22. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts +24 -0
  23. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts.map +1 -0
  24. package/node/lib/fbs/consumer/enable-delay-and-loss-request.js +102 -0
  25. package/node/lib/fbs/data-consumer/send-response.d.ts +21 -0
  26. package/node/lib/fbs/data-consumer/send-response.d.ts.map +1 -0
  27. package/node/lib/fbs/data-consumer/send-response.js +91 -0
  28. package/node/lib/fbs/data-consumer.d.ts +1 -0
  29. package/node/lib/fbs/data-consumer.d.ts.map +1 -1
  30. package/node/lib/fbs/data-consumer.js +4 -1
  31. package/node/lib/fbs/producer/degrade-request.d.ts +30 -0
  32. package/node/lib/fbs/producer/degrade-request.d.ts.map +1 -0
  33. package/node/lib/fbs/producer/degrade-request.js +124 -0
  34. package/node/lib/fbs/response/body.d.ts +7 -5
  35. package/node/lib/fbs/response/body.d.ts.map +1 -1
  36. package/node/lib/fbs/response/body.js +7 -3
  37. package/node/lib/fbs/response/response.d.ts +3 -2
  38. package/node/lib/fbs/response/response.d.ts.map +1 -1
  39. package/node/lib/fbs/sctp-parameters/num-sctp-streams.d.ts.map +1 -1
  40. package/node/lib/fbs/sctp-parameters/num-sctp-streams.js +5 -5
  41. package/node/lib/fbs/transport/sctp-negotiated-max-streams-notification.d.ts +24 -0
  42. package/node/lib/fbs/transport/sctp-negotiated-max-streams-notification.d.ts.map +1 -0
  43. package/node/lib/fbs/transport/sctp-negotiated-max-streams-notification.js +102 -0
  44. package/node/lib/fbs/transport/sctp-negotiated-options-notification.d.ts +24 -0
  45. package/node/lib/fbs/transport/sctp-negotiated-options-notification.d.ts.map +1 -0
  46. package/node/lib/fbs/transport/sctp-negotiated-options-notification.js +102 -0
  47. package/node/lib/fbs/worker/close-notification.d.ts +18 -0
  48. package/node/lib/fbs/worker/close-notification.d.ts.map +1 -0
  49. package/node/lib/fbs/worker/close-notification.js +78 -0
  50. package/node/lib/fbs/worker/close-request.d.ts +18 -0
  51. package/node/lib/fbs/worker/close-request.d.ts.map +1 -0
  52. package/node/lib/fbs/worker/close-request.js +78 -0
  53. package/node/lib/fbs/worker/close-worker-notification.d.ts +18 -0
  54. package/node/lib/fbs/worker/close-worker-notification.d.ts.map +1 -0
  55. package/node/lib/fbs/worker/close-worker-notification.js +78 -0
  56. package/node/lib/sctpParametersTypes.d.ts +23 -0
  57. package/node/lib/sctpParametersTypes.d.ts.map +1 -1
  58. package/node/lib/test/test-Consumer.js +194 -0
  59. package/node/lib/test/test-DataConsumer.js +6 -0
  60. package/node/lib/test/test-Router.js +11 -0
  61. package/node/lib/test/test-werift-sctp.js +7 -0
  62. package/npm-scripts.mjs +2 -2
  63. package/package.json +7 -6
  64. package/worker/Makefile +5 -1
  65. package/worker/deps/libwebrtc/meson.build +5 -1
  66. package/worker/fbs/dataConsumer.fbs +4 -0
  67. package/worker/fbs/response.fbs +1 -0
  68. package/worker/fuzzer/src/RTC/RTP/FuzzerPacket.cpp +2 -2
  69. package/worker/include/Channel/ChannelMessageRegistrator.hpp +4 -3
  70. package/worker/include/Channel/ChannelNotification.hpp +0 -4
  71. package/worker/include/Channel/ChannelRequest.hpp +3 -4
  72. package/worker/include/DepLibSRTP.hpp +2 -2
  73. package/worker/include/RTC/ActiveSpeakerObserver.hpp +2 -2
  74. package/worker/include/RTC/AudioLevelObserver.hpp +2 -2
  75. package/worker/include/RTC/Consumer.hpp +1 -1
  76. package/worker/include/RTC/DataConsumer.hpp +2 -2
  77. package/worker/include/RTC/DtlsTransport.hpp +4 -4
  78. package/worker/include/RTC/ICE/IceServer.hpp +2 -2
  79. package/worker/include/RTC/ICE/StunPacket.hpp +34 -34
  80. package/worker/include/RTC/KeyFrameRequestManager.hpp +3 -3
  81. package/worker/include/RTC/Parameters.hpp +2 -2
  82. package/worker/include/RTC/PipeConsumer.hpp +6 -5
  83. package/worker/include/RTC/PlainTransport.hpp +0 -1
  84. package/worker/include/RTC/PortManager.hpp +92 -12
  85. package/worker/include/RTC/Producer.hpp +7 -6
  86. package/worker/include/RTC/RTCP/Feedback.hpp +1 -2
  87. package/worker/include/RTC/RTCP/FeedbackRtpTransport.hpp +2 -2
  88. package/worker/include/RTC/RTCP/Packet.hpp +2 -2
  89. package/worker/include/RTC/RTCP/Sdes.hpp +1 -1
  90. package/worker/include/RTC/RTP/Codecs/DependencyDescriptor.hpp +2 -1
  91. package/worker/include/RTC/RTP/Packet.hpp +57 -57
  92. package/worker/include/RTC/RTP/ProbationGenerator.hpp +2 -2
  93. package/worker/include/RTC/RTP/SharedPacket.hpp +4 -4
  94. package/worker/include/RTC/Router.hpp +12 -11
  95. package/worker/include/RTC/RtcLogger.hpp +2 -2
  96. package/worker/include/RTC/RtpDictionaries.hpp +6 -6
  97. package/worker/include/RTC/RtpListener.hpp +4 -4
  98. package/worker/include/RTC/SCTP/association/Association.hpp +13 -13
  99. package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +2 -2
  100. package/worker/include/RTC/SCTP/association/NegotiatedCapabilities.hpp +2 -2
  101. package/worker/include/RTC/SCTP/association/PacketSender.hpp +3 -3
  102. package/worker/include/RTC/SCTP/association/StateCookie.hpp +9 -9
  103. package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +4 -4
  104. package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +24 -24
  105. package/worker/include/RTC/SCTP/association/TransmissionControlBlockContextInterface.hpp +4 -4
  106. package/worker/include/RTC/SCTP/packet/Chunk.hpp +86 -86
  107. package/worker/include/RTC/SCTP/packet/ErrorCause.hpp +18 -18
  108. package/worker/include/RTC/SCTP/packet/Packet.hpp +33 -33
  109. package/worker/include/RTC/SCTP/packet/Parameter.hpp +24 -24
  110. package/worker/include/RTC/SCTP/packet/TLV.hpp +13 -13
  111. package/worker/include/RTC/SCTP/packet/UserData.hpp +4 -4
  112. package/worker/include/RTC/SCTP/packet/chunks/AbortAssociationChunk.hpp +5 -5
  113. package/worker/include/RTC/SCTP/packet/chunks/AnyDataChunk.hpp +9 -9
  114. package/worker/include/RTC/SCTP/packet/chunks/AnyForwardTsnChunk.hpp +3 -3
  115. package/worker/include/RTC/SCTP/packet/chunks/CookieAckChunk.hpp +5 -5
  116. package/worker/include/RTC/SCTP/packet/chunks/CookieEchoChunk.hpp +5 -5
  117. package/worker/include/RTC/SCTP/packet/chunks/DataChunk.hpp +11 -11
  118. package/worker/include/RTC/SCTP/packet/chunks/ForwardTsnChunk.hpp +6 -6
  119. package/worker/include/RTC/SCTP/packet/chunks/HeartbeatAckChunk.hpp +6 -6
  120. package/worker/include/RTC/SCTP/packet/chunks/HeartbeatRequestChunk.hpp +6 -6
  121. package/worker/include/RTC/SCTP/packet/chunks/IDataChunk.hpp +6 -6
  122. package/worker/include/RTC/SCTP/packet/chunks/IForwardTsnChunk.hpp +7 -7
  123. package/worker/include/RTC/SCTP/packet/chunks/InitAckChunk.hpp +10 -10
  124. package/worker/include/RTC/SCTP/packet/chunks/InitChunk.hpp +8 -8
  125. package/worker/include/RTC/SCTP/packet/chunks/OperationErrorChunk.hpp +6 -6
  126. package/worker/include/RTC/SCTP/packet/chunks/ReConfigChunk.hpp +10 -10
  127. package/worker/include/RTC/SCTP/packet/chunks/SackChunk.hpp +5 -5
  128. package/worker/include/RTC/SCTP/packet/chunks/ShutdownAckChunk.hpp +5 -5
  129. package/worker/include/RTC/SCTP/packet/chunks/ShutdownChunk.hpp +5 -5
  130. package/worker/include/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.hpp +5 -5
  131. package/worker/include/RTC/SCTP/packet/chunks/UnknownChunk.hpp +2 -2
  132. package/worker/include/RTC/SCTP/packet/errorCauses/CookieReceivedWhileShuttingDownErrorCause.hpp +4 -4
  133. package/worker/include/RTC/SCTP/packet/errorCauses/InvalidMandatoryParameterErrorCause.hpp +4 -4
  134. package/worker/include/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.hpp +5 -5
  135. package/worker/include/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.hpp +5 -5
  136. package/worker/include/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.hpp +5 -5
  137. package/worker/include/RTC/SCTP/packet/errorCauses/OutOfResourceErrorCause.hpp +4 -4
  138. package/worker/include/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.hpp +4 -4
  139. package/worker/include/RTC/SCTP/packet/errorCauses/RestartOfAnAssociationWithNewAddressesErrorCause.hpp +4 -4
  140. package/worker/include/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.hpp +5 -5
  141. package/worker/include/RTC/SCTP/packet/errorCauses/UnknownErrorCause.hpp +2 -2
  142. package/worker/include/RTC/SCTP/packet/errorCauses/UnrecognizedChunkTypeErrorCause.hpp +4 -4
  143. package/worker/include/RTC/SCTP/packet/errorCauses/UnrecognizedParametersErrorCause.hpp +4 -4
  144. package/worker/include/RTC/SCTP/packet/errorCauses/UnresolvableAddressErrorCause.hpp +4 -4
  145. package/worker/include/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.hpp +4 -4
  146. package/worker/include/RTC/SCTP/packet/parameters/AddIncomingStreamsRequestParameter.hpp +5 -5
  147. package/worker/include/RTC/SCTP/packet/parameters/AddOutgoingStreamsRequestParameter.hpp +5 -5
  148. package/worker/include/RTC/SCTP/packet/parameters/CookiePreservativeParameter.hpp +5 -5
  149. package/worker/include/RTC/SCTP/packet/parameters/ForwardTsnSupportedParameter.hpp +4 -4
  150. package/worker/include/RTC/SCTP/packet/parameters/HeartbeatInfoParameter.hpp +3 -3
  151. package/worker/include/RTC/SCTP/packet/parameters/IPv4AddressParameter.hpp +4 -4
  152. package/worker/include/RTC/SCTP/packet/parameters/IPv6AddressParameter.hpp +5 -5
  153. package/worker/include/RTC/SCTP/packet/parameters/IncomingSsnResetRequestParameter.hpp +5 -5
  154. package/worker/include/RTC/SCTP/packet/parameters/OutgoingSsnResetRequestParameter.hpp +5 -5
  155. package/worker/include/RTC/SCTP/packet/parameters/ReconfigurationResponseParameter.hpp +7 -7
  156. package/worker/include/RTC/SCTP/packet/parameters/SsnTsnResetRequestParameter.hpp +5 -5
  157. package/worker/include/RTC/SCTP/packet/parameters/StateCookieParameter.hpp +5 -5
  158. package/worker/include/RTC/SCTP/packet/parameters/SupportedAddressTypesParameter.hpp +4 -4
  159. package/worker/include/RTC/SCTP/packet/parameters/SupportedExtensionsParameter.hpp +4 -4
  160. package/worker/include/RTC/SCTP/packet/parameters/UnknownParameter.hpp +2 -2
  161. package/worker/include/RTC/SCTP/packet/parameters/UnrecognizedParameterParameter.hpp +4 -4
  162. package/worker/include/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.hpp +7 -7
  163. package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +7 -7
  164. package/worker/include/RTC/SCTP/public/AssociationListenerInterface.hpp +26 -26
  165. package/worker/include/RTC/SCTP/public/AssociationMetrics.hpp +7 -7
  166. package/worker/include/RTC/SCTP/public/Message.hpp +1 -1
  167. package/worker/include/RTC/SCTP/public/SctpOptions.hpp +4 -4
  168. package/worker/include/RTC/SCTP/public/SctpTypes.hpp +10 -10
  169. package/worker/include/RTC/SCTP/rx/DataTracker.hpp +1 -1
  170. package/worker/include/RTC/SCTP/rx/ReassemblyStreamsInterface.hpp +1 -1
  171. package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +39 -39
  172. package/worker/include/RTC/SCTP/tx/RetransmissionErrorCounter.hpp +1 -1
  173. package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +14 -14
  174. package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +1 -1
  175. package/worker/include/RTC/SctpListener.hpp +2 -2
  176. package/worker/include/RTC/SimulcastConsumer.hpp +2 -1
  177. package/worker/include/RTC/TcpServer.hpp +3 -2
  178. package/worker/include/RTC/Transport.hpp +8 -8
  179. package/worker/include/RTC/UdpSocket.hpp +3 -2
  180. package/worker/include/RTC/WebRtcServer.hpp +4 -5
  181. package/worker/include/RTC/WebRtcTransport.hpp +2 -2
  182. package/worker/include/Settings.hpp +3 -3
  183. package/worker/include/Worker.hpp +3 -3
  184. package/worker/include/handles/TcpServerHandle.hpp +2 -2
  185. package/worker/meson.build +9 -4
  186. package/worker/mocks/include/Channel/MockChannelMessageRegistrator.hpp +4 -3
  187. package/worker/src/Channel/ChannelNotification.cpp +5 -4
  188. package/worker/src/Channel/ChannelRequest.cpp +9 -6
  189. package/worker/src/DepLibSRTP.cpp +1 -1
  190. package/worker/src/RTC/AudioLevelObserver.cpp +2 -2
  191. package/worker/src/RTC/DataConsumer.cpp +13 -3
  192. package/worker/src/RTC/DataProducer.cpp +1 -1
  193. package/worker/src/RTC/DtlsTransport.cpp +3 -3
  194. package/worker/src/RTC/ICE/IceServer.cpp +1 -1
  195. package/worker/src/RTC/ICE/StunPacket.cpp +77 -77
  196. package/worker/src/RTC/PipeTransport.cpp +5 -4
  197. package/worker/src/RTC/PlainTransport.cpp +9 -8
  198. package/worker/src/RTC/PortManager.cpp +174 -114
  199. package/worker/src/RTC/Producer.cpp +0 -1
  200. package/worker/src/RTC/RTCP/Feedback.cpp +6 -6
  201. package/worker/src/RTC/RTCP/FeedbackPs.cpp +1 -1
  202. package/worker/src/RTC/RTCP/FeedbackPsAfb.cpp +1 -1
  203. package/worker/src/RTC/RTCP/FeedbackPsPli.cpp +1 -1
  204. package/worker/src/RTC/RTCP/FeedbackPsRemb.cpp +2 -2
  205. package/worker/src/RTC/RTCP/FeedbackRtp.cpp +1 -1
  206. package/worker/src/RTC/RTCP/FeedbackRtpSrReq.cpp +1 -1
  207. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +2 -2
  208. package/worker/src/RTC/RTCP/Packet.cpp +2 -2
  209. package/worker/src/RTC/RTCP/Sdes.cpp +1 -1
  210. package/worker/src/RTC/RTP/Codecs/DependencyDescriptor.cpp +2 -1
  211. package/worker/src/RTC/RTP/Packet.cpp +68 -68
  212. package/worker/src/RTC/RTP/ProbationGenerator.cpp +3 -3
  213. package/worker/src/RTC/RTP/RtpStreamRecv.cpp +3 -3
  214. package/worker/src/RTC/RTP/RtxStream.cpp +2 -2
  215. package/worker/src/RTC/RTP/SharedPacket.cpp +4 -4
  216. package/worker/src/RTC/Router.cpp +5 -5
  217. package/worker/src/RTC/RtcLogger.cpp +1 -1
  218. package/worker/src/RTC/RtpDictionaries/RtpCodecMimeType.cpp +4 -4
  219. package/worker/src/RTC/RtpDictionaries/RtpParameters.cpp +2 -3
  220. package/worker/src/RTC/SCTP/association/Association.cpp +100 -97
  221. package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +6 -6
  222. package/worker/src/RTC/SCTP/association/NegotiatedCapabilities.cpp +3 -3
  223. package/worker/src/RTC/SCTP/association/PacketSender.cpp +1 -1
  224. package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +2 -2
  225. package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +5 -5
  226. package/worker/src/RTC/SCTP/packet/Chunk.cpp +52 -52
  227. package/worker/src/RTC/SCTP/packet/ErrorCause.cpp +14 -14
  228. package/worker/src/RTC/SCTP/packet/Packet.cpp +17 -17
  229. package/worker/src/RTC/SCTP/packet/Parameter.cpp +17 -17
  230. package/worker/src/RTC/SCTP/packet/TLV.cpp +8 -8
  231. package/worker/src/RTC/SCTP/packet/chunks/AbortAssociationChunk.cpp +3 -3
  232. package/worker/src/RTC/SCTP/packet/chunks/CookieAckChunk.cpp +2 -2
  233. package/worker/src/RTC/SCTP/packet/chunks/CookieEchoChunk.cpp +1 -1
  234. package/worker/src/RTC/SCTP/packet/chunks/DataChunk.cpp +2 -2
  235. package/worker/src/RTC/SCTP/packet/chunks/ForwardTsnChunk.cpp +2 -2
  236. package/worker/src/RTC/SCTP/packet/chunks/HeartbeatAckChunk.cpp +3 -3
  237. package/worker/src/RTC/SCTP/packet/chunks/HeartbeatRequestChunk.cpp +3 -3
  238. package/worker/src/RTC/SCTP/packet/chunks/IDataChunk.cpp +2 -2
  239. package/worker/src/RTC/SCTP/packet/chunks/IForwardTsnChunk.cpp +2 -2
  240. package/worker/src/RTC/SCTP/packet/chunks/InitAckChunk.cpp +4 -4
  241. package/worker/src/RTC/SCTP/packet/chunks/InitChunk.cpp +4 -4
  242. package/worker/src/RTC/SCTP/packet/chunks/OperationErrorChunk.cpp +3 -3
  243. package/worker/src/RTC/SCTP/packet/chunks/ReConfigChunk.cpp +3 -3
  244. package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +3 -3
  245. package/worker/src/RTC/SCTP/packet/chunks/ShutdownAckChunk.cpp +2 -2
  246. package/worker/src/RTC/SCTP/packet/chunks/ShutdownChunk.cpp +2 -2
  247. package/worker/src/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.cpp +2 -2
  248. package/worker/src/RTC/SCTP/packet/errorCauses/CookieReceivedWhileShuttingDownErrorCause.cpp +2 -2
  249. package/worker/src/RTC/SCTP/packet/errorCauses/InvalidMandatoryParameterErrorCause.cpp +2 -2
  250. package/worker/src/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.cpp +2 -2
  251. package/worker/src/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.cpp +4 -4
  252. package/worker/src/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.cpp +2 -2
  253. package/worker/src/RTC/SCTP/packet/errorCauses/OutOfResourceErrorCause.cpp +2 -2
  254. package/worker/src/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.cpp +1 -1
  255. package/worker/src/RTC/SCTP/packet/errorCauses/RestartOfAnAssociationWithNewAddressesErrorCause.cpp +1 -1
  256. package/worker/src/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.cpp +2 -2
  257. package/worker/src/RTC/SCTP/packet/errorCauses/UnrecognizedChunkTypeErrorCause.cpp +1 -1
  258. package/worker/src/RTC/SCTP/packet/errorCauses/UnrecognizedParametersErrorCause.cpp +1 -1
  259. package/worker/src/RTC/SCTP/packet/errorCauses/UnresolvableAddressErrorCause.cpp +1 -1
  260. package/worker/src/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.cpp +1 -1
  261. package/worker/src/RTC/SCTP/packet/parameters/AddIncomingStreamsRequestParameter.cpp +2 -2
  262. package/worker/src/RTC/SCTP/packet/parameters/AddOutgoingStreamsRequestParameter.cpp +2 -2
  263. package/worker/src/RTC/SCTP/packet/parameters/CookiePreservativeParameter.cpp +2 -2
  264. package/worker/src/RTC/SCTP/packet/parameters/ForwardTsnSupportedParameter.cpp +2 -2
  265. package/worker/src/RTC/SCTP/packet/parameters/HeartbeatInfoParameter.cpp +1 -1
  266. package/worker/src/RTC/SCTP/packet/parameters/IPv4AddressParameter.cpp +2 -2
  267. package/worker/src/RTC/SCTP/packet/parameters/IPv6AddressParameter.cpp +2 -2
  268. package/worker/src/RTC/SCTP/packet/parameters/IncomingSsnResetRequestParameter.cpp +2 -2
  269. package/worker/src/RTC/SCTP/packet/parameters/OutgoingSsnResetRequestParameter.cpp +2 -2
  270. package/worker/src/RTC/SCTP/packet/parameters/ReconfigurationResponseParameter.cpp +3 -3
  271. package/worker/src/RTC/SCTP/packet/parameters/SsnTsnResetRequestParameter.cpp +2 -2
  272. package/worker/src/RTC/SCTP/packet/parameters/StateCookieParameter.cpp +3 -3
  273. package/worker/src/RTC/SCTP/packet/parameters/SupportedAddressTypesParameter.cpp +3 -3
  274. package/worker/src/RTC/SCTP/packet/parameters/SupportedExtensionsParameter.cpp +1 -1
  275. package/worker/src/RTC/SCTP/packet/parameters/UnrecognizedParameterParameter.cpp +1 -1
  276. package/worker/src/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.cpp +3 -3
  277. package/worker/src/RTC/SCTP/rx/InterleavedReassemblyStreams.cpp +1 -0
  278. package/worker/src/RTC/SCTP/rx/TraditionalReassemblyStreams.cpp +1 -0
  279. package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +8 -8
  280. package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +1 -1
  281. package/worker/src/RTC/SvcConsumer.cpp +6 -2
  282. package/worker/src/RTC/TcpServer.cpp +4 -4
  283. package/worker/src/RTC/Transport.cpp +42 -19
  284. package/worker/src/RTC/UdpSocket.cpp +4 -4
  285. package/worker/src/RTC/WebRtcServer.cpp +8 -8
  286. package/worker/src/RTC/WebRtcTransport.cpp +9 -8
  287. package/worker/src/Settings.cpp +2 -2
  288. package/worker/src/lib.cpp +1 -2
  289. package/worker/subprojects/packagefiles/ankerl-unordered-dense/meson.build +5 -0
  290. package/worker/subprojects/unordered-dense.wrap +9 -0
  291. package/worker/tasks.py +293 -196
  292. package/worker/test/src/RTC/ICE/TestStunPacket.cpp +22 -22
  293. package/worker/test/src/RTC/ICE/iceCommon.cpp +1 -1
  294. package/worker/test/src/RTC/RTCP/TestFeedbackRtpEcn.cpp +8 -8
  295. package/worker/test/src/RTC/RTCP/TestFeedbackRtpNack.cpp +1 -1
  296. package/worker/test/src/RTC/RTCP/TestFeedbackRtpSrReq.cpp +1 -1
  297. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTllei.cpp +1 -1
  298. package/worker/test/src/RTC/RTCP/TestFeedbackRtpTmmb.cpp +1 -1
  299. package/worker/test/src/RTC/RTCP/TestSenderReport.cpp +1 -1
  300. package/worker/test/src/RTC/RTP/TestPacket.cpp +26 -26
  301. package/worker/test/src/RTC/RTP/TestSharedPacket.cpp +1 -1
  302. package/worker/test/src/RTC/RTP/rtpCommon.cpp +1 -1
  303. package/worker/test/src/RTC/SCTP/association/TestNegotiatedCapabilities.cpp +4 -4
  304. package/worker/test/src/RTC/SCTP/packet/TestPacket.cpp +14 -14
  305. package/worker/test/src/RTC/SCTP/packet/chunks/TestAbortAssociationChunk.cpp +4 -4
  306. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieAckChunk.cpp +1 -1
  307. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieEchoChunk.cpp +1 -1
  308. package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +3 -3
  309. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatAckChunk.cpp +3 -3
  310. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatRequestChunk.cpp +9 -9
  311. package/worker/test/src/RTC/SCTP/packet/chunks/TestIDataChunk.cpp +2 -2
  312. package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +3 -3
  313. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitAckChunk.cpp +3 -3
  314. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +8 -8
  315. package/worker/test/src/RTC/SCTP/packet/chunks/TestOperationErrorChunk.cpp +7 -7
  316. package/worker/test/src/RTC/SCTP/packet/chunks/TestReConfigChunk.cpp +6 -6
  317. package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +2 -2
  318. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownAckChunk.cpp +1 -1
  319. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownCompleteChunk.cpp +1 -1
  320. package/worker/test/src/RTC/SCTP/packet/chunks/TestUnknownChunk.cpp +2 -2
  321. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestCookieReceivedWhileShuttingDownErrorCause.cpp +1 -1
  322. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidMandatoryParameterErrorCause.cpp +1 -1
  323. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidStreamIdentifierErrorCause.cpp +6 -6
  324. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestMissingMandatoryParameterErrorCause.cpp +11 -11
  325. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestNoUserDataErrorCause.cpp +6 -6
  326. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestOutOfResourceErrorCause.cpp +5 -5
  327. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestProtocolViolationErrorCause.cpp +2 -2
  328. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestRestartOfAnAssociationWithNewAddressesErrorCause.cpp +2 -2
  329. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestStaleCookieErrorCause.cpp +6 -6
  330. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnknownErrorCause.cpp +1 -1
  331. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedChunkTypeErrorCause.cpp +2 -2
  332. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedParametersErrorCause.cpp +1 -1
  333. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnresolvableAddressErrorCause.cpp +2 -2
  334. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUserInitiatedAbortErrorCause.cpp +2 -2
  335. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddIncomingStreamsRequestParameter.cpp +1 -1
  336. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddOutgoingStreamsRequestParameter.cpp +1 -1
  337. package/worker/test/src/RTC/SCTP/packet/parameters/TestCookiePreservativeParameter.cpp +7 -7
  338. package/worker/test/src/RTC/SCTP/packet/parameters/TestForwardTsnSupportedParameter.cpp +1 -1
  339. package/worker/test/src/RTC/SCTP/packet/parameters/TestHeartbeatInfoParameter.cpp +2 -2
  340. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv4AddressParameter.cpp +7 -7
  341. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +7 -7
  342. package/worker/test/src/RTC/SCTP/packet/parameters/TestIncomingSsnResetRequestParameter.cpp +2 -2
  343. package/worker/test/src/RTC/SCTP/packet/parameters/TestOutgoingSsnResetRequestParameter.cpp +2 -2
  344. package/worker/test/src/RTC/SCTP/packet/parameters/TestReconfigurationResponseParameter.cpp +5 -5
  345. package/worker/test/src/RTC/SCTP/packet/parameters/TestSsnTsnResetRequestParameter.cpp +1 -1
  346. package/worker/test/src/RTC/SCTP/packet/parameters/TestStateCookieParameter.cpp +1 -1
  347. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedAddressTypesParameter.cpp +6 -6
  348. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedExtensionsParameter.cpp +3 -3
  349. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnknownParameter.cpp +1 -1
  350. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnrecognizedParameterParameter.cpp +1 -1
  351. package/worker/test/src/RTC/SCTP/packet/parameters/TestZeroChecksumAcceptableParameter.cpp +1 -1
  352. package/worker/test/src/RTC/SCTP/sctpCommon.cpp +1 -1
  353. package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +3 -3
  354. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +1 -1
  355. package/worker/test/src/RTC/TestNackGenerator.cpp +1 -1
  356. package/worker/test/src/RTC/TestPortManager.cpp +126 -0
  357. package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +2 -2
  358. package/worker/test/src/RTC/TestTransportTuple.cpp +3 -2
  359. package/worker/test/src/Utils/TestCrypto.cpp +3 -3
  360. package/worker/test/src/Utils/TestString.cpp +1 -1
package/worker/tasks.py CHANGED
@@ -1,96 +1,98 @@
1
- # Ignore these pylint warnings, conventions and refactoring messages:
2
- # - W0301: Unnecessary semicolon (unnecessary-semicolon)
3
- # - W0622: Redefining built-in 'format' (redefined-builtin)
4
- # - W0702: No exception type(s) specified (bare-except)
5
- # - C0114: Missing module docstring (missing-module-docstring)
6
- # - C0301: Line too long (line-too-long)
7
- #
8
- # pylint: disable=W0301,W0622,W0702,C0114,C0301
9
-
10
- #
11
- # This is a tasks.py file for the Python invoke package:
12
- # https://docs.pyinvoke.org/.
13
- #
14
- # It's a replacement of our Makefile with same tasks.
15
- #
16
- # Usage:
17
- # pip install invoke
18
- # invoke --list
19
- #
20
-
21
- import sys;
22
- import os;
23
- import inspect;
24
- import shutil;
25
- from contextlib import contextmanager;
26
- # We import this from a custom location and pylint doesn't know.
27
- from invoke import task, call; # pylint: disable=import-error
28
-
29
- MEDIASOUP_BUILDTYPE = os.getenv('MEDIASOUP_BUILDTYPE') or 'Release';
30
- WORKER_DIR = os.path.dirname(os.path.abspath(
31
- inspect.getframeinfo(inspect.currentframe()).filename
32
- ));
1
+ """
2
+ tasks.py for the Python `invoke` package: https://docs.pyinvoke.org/.
3
+
4
+ It's a replacement of our Makefile with same tasks.
5
+
6
+ Usage:
7
+ pip install invoke
8
+ invoke --list
9
+ """
10
+
11
+ import inspect
12
+ import os
13
+ import shutil
14
+ import sys
15
+ from contextlib import contextmanager, suppress
16
+
17
+ from invoke import call, task
18
+
19
+ MEDIASOUP_BUILDTYPE = os.getenv("MEDIASOUP_BUILDTYPE") or "Release"
20
+ WORKER_DIR = os.path.dirname(
21
+ os.path.abspath(inspect.getframeinfo(inspect.currentframe()).filename)
22
+ )
33
23
  # NOTE: MEDIASOUP_OUT_DIR is overrided by build.rs.
34
- MEDIASOUP_OUT_DIR = os.getenv('MEDIASOUP_OUT_DIR') or f'{WORKER_DIR}/out';
35
- MEDIASOUP_INSTALL_DIR = os.getenv('MEDIASOUP_INSTALL_DIR') or f'{MEDIASOUP_OUT_DIR}/{MEDIASOUP_BUILDTYPE}';
36
- BUILD_DIR = os.getenv('BUILD_DIR') or f'{MEDIASOUP_INSTALL_DIR}/build';
24
+ MEDIASOUP_OUT_DIR = os.getenv("MEDIASOUP_OUT_DIR") or f"{WORKER_DIR}/out"
25
+ MEDIASOUP_INSTALL_DIR = (
26
+ os.getenv("MEDIASOUP_INSTALL_DIR") or f"{MEDIASOUP_OUT_DIR}/{MEDIASOUP_BUILDTYPE}"
27
+ )
28
+ BUILD_DIR = os.getenv("BUILD_DIR") or f"{MEDIASOUP_INSTALL_DIR}/build"
37
29
  # Custom pip folder for invoke package.
38
30
  # NOTE: We invoke `pip install` always with `--no-user` to make it not complain
39
31
  # about "can not combine --user and --target".
40
- PIP_INVOKE_DIR = f'{MEDIASOUP_OUT_DIR}/pip_invoke';
32
+ PIP_INVOKE_DIR = f"{MEDIASOUP_OUT_DIR}/pip_invoke"
41
33
  # Custom pip folder for meson and ninja packages.
42
- PIP_MESON_NINJA_DIR = f'{MEDIASOUP_OUT_DIR}/pip_meson_ninja';
43
- # Custom pip folder for pylint package.
44
- # NOTE: We do this because using --target and --upgrade in `pip install` is not
45
- # supported and a latter invokation entirely replaces the bin folder.
46
- PIP_PYLINT_DIR = f'{MEDIASOUP_OUT_DIR}/pip_pylint';
34
+ PIP_MESON_NINJA_DIR = f"{MEDIASOUP_OUT_DIR}/pip_meson_ninja"
35
+ # Custom pip folder for ruff package.
36
+ PIP_RUFF_DIR = f"{MEDIASOUP_OUT_DIR}/pip_ruff"
47
37
  # If available (only on some *nix systems), os.sched_getaffinity(0) gets set of
48
38
  # CPUs the calling thread is restricted to. Instead, os.cpu_count() returns the
49
39
  # total number of CPUs in a system (it doesn't take into account how many of them
50
40
  # the calling thread can use).
51
- NUM_CORES = len(os.sched_getaffinity(0)) if hasattr(os, 'sched_getaffinity') else os.cpu_count();
52
- PYTHON = os.getenv('PYTHON') or sys.executable;
53
- MESON = os.getenv('MESON') or f'{PIP_MESON_NINJA_DIR}/bin/meson';
54
- MESON_VERSION = os.getenv('MESON_VERSION') or '1.9.1';
41
+ NUM_CORES = (
42
+ len(os.sched_getaffinity(0)) if hasattr(os, "sched_getaffinity") else os.cpu_count()
43
+ )
44
+ PYTHON = os.getenv("PYTHON") or sys.executable
45
+ MESON = os.getenv("MESON") or f"{PIP_MESON_NINJA_DIR}/bin/meson"
46
+ MESON_VERSION = os.getenv("MESON_VERSION") or "1.9.1"
55
47
  # MESON_ARGS can be used to provide extra configuration parameters to meson,
56
48
  # such as adding defines or changing optimization options. For instance, use
57
49
  # `MESON_ARGS="-Dms_log_trace=true -Dms_log_file_line=true" npm i` to compile
58
50
  # worker with tracing and enabled.
59
51
  # NOTE: On Windows make sure to add `--vsenv` or have MSVS environment already
60
52
  # active if you override this parameter.
61
- MESON_ARGS = os.getenv('MESON_ARGS') if os.getenv('MESON_ARGS') else '--vsenv' if os.name == 'nt' else '';
53
+ MESON_ARGS = (
54
+ os.getenv("MESON_ARGS")
55
+ if os.getenv("MESON_ARGS")
56
+ else "--vsenv"
57
+ if os.name == "nt"
58
+ else ""
59
+ )
62
60
  # Let's use a specific version of ninja to avoid buggy version 1.11.1:
63
61
  # https://mediasoup.discourse.group/t/partly-solved-could-not-detect-ninja-v1-8-2-or-newer/
64
62
  # https://github.com/ninja-build/ninja/issues/2211
65
- NINJA_VERSION = os.getenv('NINJA_VERSION') or '1.10.2.4';
66
- PYLINT_VERSION = os.getenv('PYLINT_VERSION') or '3.0.2';
67
- NPM = os.getenv('NPM') or 'npm';
68
- DOCKER = os.getenv('DOCKER') or 'docker';
63
+ NINJA_VERSION = os.getenv("NINJA_VERSION") or "1.10.2.4"
64
+ RUFF_VERSION = os.getenv("RUFF_VERSION") or "0.15.15"
65
+ NPM = os.getenv("NPM") or "npm"
66
+ DOCKER = os.getenv("DOCKER") or "docker"
69
67
  # pty=True in ctx.run() is not available on Windows so if stdout is not a TTY
70
68
  # let's assume PTY is not supported. Related issue in invoke project:
71
69
  # https://github.com/pyinvoke/invoke/issues/561
72
- PTY_SUPPORTED = os.name != 'nt' and sys.stdout.isatty();
70
+ PTY_SUPPORTED = os.name != "nt" and sys.stdout.isatty()
73
71
  # Use sh (widely supported, more than bash) if not in Windows.
74
- SHELL = '/bin/sh' if not os.name == 'nt' else None;
72
+ SHELL = "/bin/sh" if os.name != "nt" else None
75
73
 
76
74
  # Disable `*.pyc` files creation.
77
- os.environ['PYTHONDONTWRITEBYTECODE'] = 'true';
75
+ os.environ["PYTHONDONTWRITEBYTECODE"] = "true"
78
76
 
79
77
  # Instruct meson where to look for ninja binary.
80
- if os.name == 'nt':
78
+ if os.name == "nt":
81
79
  # Windows is, of course, special.
82
- os.environ['NINJA'] = f'{PIP_MESON_NINJA_DIR}/bin/ninja.exe';
80
+ os.environ["NINJA"] = f"{PIP_MESON_NINJA_DIR}/bin/ninja.exe"
83
81
  else:
84
- os.environ['NINJA'] = f'{PIP_MESON_NINJA_DIR}/bin/ninja';
82
+ os.environ["NINJA"] = f"{PIP_MESON_NINJA_DIR}/bin/ninja"
85
83
 
86
84
  # Instruct Python where to look for modules it needs, such that meson actually
87
85
  # runs from installed location.
88
- # NOTE: On Windows we must use ; instead of : to separate paths.
89
- PYTHONPATH = os.getenv('PYTHONPATH') or '';
90
- if os.name == 'nt':
91
- os.environ['PYTHONPATH'] = f'{PIP_INVOKE_DIR};{PIP_MESON_NINJA_DIR};{PIP_PYLINT_DIR};{PYTHONPATH}';
86
+ # NOTE: On Windows we must use ";" instead of ":"" to separate paths.
87
+ PYTHONPATH = os.getenv("PYTHONPATH") or ""
88
+ if os.name == "nt":
89
+ os.environ["PYTHONPATH"] = (
90
+ f"{PIP_INVOKE_DIR};{PIP_MESON_NINJA_DIR};{PIP_RUFF_DIR};{PYTHONPATH}"
91
+ )
92
92
  else:
93
- os.environ['PYTHONPATH'] = f'{PIP_INVOKE_DIR}:{PIP_MESON_NINJA_DIR}:{PIP_PYLINT_DIR}:{PYTHONPATH}';
93
+ os.environ["PYTHONPATH"] = (
94
+ f"{PIP_INVOKE_DIR}:{PIP_MESON_NINJA_DIR}:{PIP_RUFF_DIR}:{PYTHONPATH}"
95
+ )
94
96
 
95
97
 
96
98
  @contextmanager
@@ -98,6 +100,7 @@ def cd_worker():
98
100
  """
99
101
  Context manager to change to worker/ folder the safe way
100
102
  """
103
+
101
104
  original_dir = os.getcwd()
102
105
  os.chdir(WORKER_DIR)
103
106
  try:
@@ -105,13 +108,15 @@ def cd_worker():
105
108
  finally:
106
109
  os.chdir(original_dir)
107
110
 
111
+
108
112
  @task
109
113
  def meson_ninja(ctx):
110
114
  """
111
115
  Install meson and ninja (also update Python pip and setuptools packages)
112
116
  """
117
+
113
118
  if os.path.isfile(MESON):
114
- return;
119
+ return
115
120
 
116
121
  # Updated pip and setuptools are needed for meson.
117
122
  # `--system` is not present everywhere and is only needed as workaround for
@@ -122,19 +127,23 @@ def meson_ninja(ctx):
122
127
  f'"{PYTHON}" -m pip install --system --upgrade --no-user --target "{PIP_MESON_NINJA_DIR}" pip setuptools',
123
128
  echo=True,
124
129
  hide=True,
125
- shell=SHELL
126
- );
127
- except:
130
+ shell=SHELL,
131
+ )
132
+ except Exception:
128
133
  ctx.run(
129
134
  f'"{PYTHON}" -m pip install --upgrade --no-user --target "{PIP_MESON_NINJA_DIR}" pip setuptools',
130
135
  echo=True,
131
136
  pty=PTY_SUPPORTED,
132
- shell=SHELL
133
- );
137
+ shell=SHELL,
138
+ )
134
139
 
135
140
  # Workaround for NixOS and Guix that don't work with pre-built binaries, see:
136
141
  # https://github.com/NixOS/nixpkgs/issues/142383.
137
- pip_build_binaries = '--no-binary :all:' if os.path.isfile('/etc/NIXOS') or os.path.isdir('/etc/guix') else '';
142
+ pip_build_binaries = (
143
+ "--no-binary :all:"
144
+ if os.path.isfile("/etc/NIXOS") or os.path.isdir("/etc/guix")
145
+ else ""
146
+ )
138
147
 
139
148
  # Install meson and ninja using pip into our custom location, so we don't
140
149
  # depend on system-wide installation.
@@ -142,8 +151,8 @@ def meson_ninja(ctx):
142
151
  f'"{PYTHON}" -m pip install --upgrade --no-user --target "{PIP_MESON_NINJA_DIR}" {pip_build_binaries} meson=={MESON_VERSION} ninja=={NINJA_VERSION}',
143
152
  echo=True,
144
153
  pty=PTY_SUPPORTED,
145
- shell=SHELL
146
- );
154
+ shell=SHELL,
155
+ )
147
156
 
148
157
 
149
158
  @task(pre=[meson_ninja])
@@ -151,55 +160,59 @@ def setup(ctx, meson_args=MESON_ARGS):
151
160
  """
152
161
  Run meson setup
153
162
  """
154
- if MEDIASOUP_BUILDTYPE == 'Release':
163
+
164
+ if MEDIASOUP_BUILDTYPE == "Release":
155
165
  with cd_worker():
156
166
  ctx.run(
157
167
  f'"{MESON}" setup --prefix "{MEDIASOUP_INSTALL_DIR}" --bindir "" --libdir "" --buildtype release -Db_ndebug=true {meson_args} "{BUILD_DIR}"',
158
168
  echo=True,
159
169
  pty=PTY_SUPPORTED,
160
- shell=SHELL
161
- );
162
- elif MEDIASOUP_BUILDTYPE == 'Debug':
170
+ shell=SHELL,
171
+ )
172
+ elif MEDIASOUP_BUILDTYPE == "Debug":
163
173
  with cd_worker():
164
174
  ctx.run(
165
175
  f'"{MESON}" setup --prefix "{MEDIASOUP_INSTALL_DIR}" --bindir "" --libdir "" --buildtype debug {meson_args} "{BUILD_DIR}"',
166
176
  echo=True,
167
177
  pty=PTY_SUPPORTED,
168
- shell=SHELL
169
- );
178
+ shell=SHELL,
179
+ )
170
180
  else:
171
181
  with cd_worker():
172
182
  ctx.run(
173
183
  f'"{MESON}" setup --prefix "{MEDIASOUP_INSTALL_DIR}" --bindir "" --libdir "" --buildtype {MEDIASOUP_BUILDTYPE} -Db_ndebug=if-release {meson_args} "{BUILD_DIR}"',
174
184
  echo=True,
175
185
  pty=PTY_SUPPORTED,
176
- shell=SHELL
177
- );
186
+ shell=SHELL,
187
+ )
178
188
 
179
189
 
180
190
  @task
181
- def clean(ctx): # pylint: disable=unused-argument
191
+ def clean(ctx):
182
192
  """
183
193
  Clean the installation directory
184
194
  """
185
- shutil.rmtree(MEDIASOUP_INSTALL_DIR, ignore_errors=True);
195
+
196
+ shutil.rmtree(MEDIASOUP_INSTALL_DIR, ignore_errors=True)
186
197
 
187
198
 
188
199
  @task
189
- def clean_build(ctx): # pylint: disable=unused-argument
200
+ def clean_build(ctx):
190
201
  """
191
202
  Clean the build directory
192
203
  """
193
- shutil.rmtree(BUILD_DIR, ignore_errors=True);
204
+
205
+ shutil.rmtree(BUILD_DIR, ignore_errors=True)
194
206
 
195
207
 
196
208
  @task
197
- def clean_pip(ctx): # pylint: disable=unused-argument
209
+ def clean_pip(ctx):
198
210
  """
199
211
  Clean the local pip setup
200
212
  """
201
- shutil.rmtree(PIP_MESON_NINJA_DIR, ignore_errors=True);
202
- shutil.rmtree(PIP_PYLINT_DIR, ignore_errors=True);
213
+
214
+ shutil.rmtree(PIP_MESON_NINJA_DIR, ignore_errors=True)
215
+ shutil.rmtree(PIP_RUFF_DIR, ignore_errors=True)
203
216
 
204
217
 
205
218
  @task(pre=[meson_ninja])
@@ -207,13 +220,14 @@ def clean_subprojects(ctx):
207
220
  """
208
221
  Clean meson subprojects
209
222
  """
223
+
210
224
  with cd_worker():
211
225
  ctx.run(
212
226
  f'"{MESON}" subprojects purge --include-cache --confirm',
213
227
  echo=True,
214
228
  pty=PTY_SUPPORTED,
215
- shell=SHELL
216
- );
229
+ shell=SHELL,
230
+ )
217
231
 
218
232
 
219
233
  @task
@@ -221,19 +235,28 @@ def clean_all(ctx):
221
235
  """
222
236
  Clean meson subprojects and all installed/built artificats
223
237
  """
238
+
224
239
  with cd_worker():
225
- try:
240
+ with suppress(Exception):
226
241
  ctx.run(
227
242
  f'"{MESON}" subprojects purge --include-cache --confirm',
228
243
  echo=True,
229
244
  pty=PTY_SUPPORTED,
230
- shell=SHELL
231
- );
232
- except:
233
- pass;
245
+ shell=SHELL,
246
+ )
234
247
 
235
- shutil.rmtree(MEDIASOUP_OUT_DIR, ignore_errors=True);
236
- shutil.rmtree('include/FBS', ignore_errors=True);
248
+ shutil.rmtree(MEDIASOUP_OUT_DIR, ignore_errors=True)
249
+ shutil.rmtree("include/FBS", ignore_errors=True)
250
+
251
+
252
+ @task(pre=[meson_ninja])
253
+ def check_wrap_status(ctx):
254
+ """
255
+ Check status of subprojects
256
+ """
257
+
258
+ with cd_worker():
259
+ ctx.run(f'"{MESON}" wrap status', echo=True, pty=PTY_SUPPORTED, shell=SHELL)
237
260
 
238
261
 
239
262
  @task(pre=[meson_ninja])
@@ -241,13 +264,14 @@ def update_wrap_file(ctx, subproject):
241
264
  """
242
265
  Update the wrap file of a subproject
243
266
  """
267
+
244
268
  with cd_worker():
245
269
  ctx.run(
246
270
  f'"{MESON}" subprojects update --reset {subproject}',
247
271
  echo=True,
248
272
  pty=PTY_SUPPORTED,
249
- shell=SHELL
250
- );
273
+ shell=SHELL,
274
+ )
251
275
 
252
276
 
253
277
  @task(pre=[setup])
@@ -255,13 +279,14 @@ def flatc(ctx):
255
279
  """
256
280
  Compile FlatBuffers FBS files
257
281
  """
282
+
258
283
  with cd_worker():
259
284
  ctx.run(
260
285
  f'"{MESON}" compile -C "{BUILD_DIR}" flatbuffers-generator',
261
286
  echo=True,
262
287
  pty=PTY_SUPPORTED,
263
- shell=SHELL
264
- );
288
+ shell=SHELL,
289
+ )
265
290
 
266
291
 
267
292
  @task(pre=[setup, flatc], default=True)
@@ -269,24 +294,27 @@ def mediasoup_worker(ctx):
269
294
  """
270
295
  Compile mediasoup-worker binary
271
296
  """
272
- if os.getenv('MEDIASOUP_WORKER_BIN'):
273
- print('skipping mediasoup-worker compilation due to the existence of the MEDIASOUP_WORKER_BIN environment variable');
274
- return;
297
+
298
+ if os.getenv("MEDIASOUP_WORKER_BIN"):
299
+ print(
300
+ "skipping mediasoup-worker compilation due to the existence of the MEDIASOUP_WORKER_BIN environment variable"
301
+ )
302
+ return
275
303
 
276
304
  with cd_worker():
277
305
  ctx.run(
278
306
  f'"{MESON}" compile -C "{BUILD_DIR}" -j {NUM_CORES} mediasoup-worker',
279
307
  echo=True,
280
308
  pty=PTY_SUPPORTED,
281
- shell=SHELL
282
- );
309
+ shell=SHELL,
310
+ )
283
311
  with cd_worker():
284
312
  ctx.run(
285
313
  f'"{MESON}" install -C "{BUILD_DIR}" --no-rebuild --tags mediasoup-worker',
286
314
  echo=True,
287
315
  pty=PTY_SUPPORTED,
288
- shell=SHELL
289
- );
316
+ shell=SHELL,
317
+ )
290
318
 
291
319
 
292
320
  @task(pre=[setup, flatc])
@@ -294,20 +322,21 @@ def libmediasoup_worker(ctx):
294
322
  """
295
323
  Compile libmediasoup-worker library
296
324
  """
325
+
297
326
  with cd_worker():
298
327
  ctx.run(
299
328
  f'"{MESON}" compile -C "{BUILD_DIR}" -j {NUM_CORES} libmediasoup-worker',
300
329
  echo=True,
301
330
  pty=PTY_SUPPORTED,
302
- shell=SHELL
303
- );
331
+ shell=SHELL,
332
+ )
304
333
  with cd_worker():
305
334
  ctx.run(
306
335
  f'"{MESON}" install -C "{BUILD_DIR}" --no-rebuild --tags libmediasoup-worker',
307
336
  echo=True,
308
337
  pty=PTY_SUPPORTED,
309
- shell=SHELL
310
- );
338
+ shell=SHELL,
339
+ )
311
340
 
312
341
 
313
342
  @task(pre=[setup, flatc])
@@ -315,142 +344,178 @@ def xcode(ctx):
315
344
  """
316
345
  Setup Xcode project
317
346
  """
347
+
318
348
  with cd_worker():
319
349
  ctx.run(
320
350
  f'"{MESON}" setup --buildtype {MEDIASOUP_BUILDTYPE.lower()} --backend xcode "{MEDIASOUP_OUT_DIR}/xcode"',
321
351
  echo=True,
322
352
  pty=PTY_SUPPORTED,
323
- shell=SHELL
324
- );
353
+ shell=SHELL,
354
+ )
355
+
356
+
357
+ def _install_ruff(ctx):
358
+ """
359
+ Install ruff via pip into our custom location.
360
+ """
361
+
362
+ if os.path.isdir(PIP_RUFF_DIR):
363
+ return
364
+
365
+ ctx.run(
366
+ f'"{PYTHON}" -m pip install --upgrade --no-user --target="{PIP_RUFF_DIR}" ruff=={RUFF_VERSION}',
367
+ echo=True,
368
+ pty=PTY_SUPPORTED,
369
+ shell=SHELL,
370
+ )
325
371
 
326
372
 
327
373
  @task
328
374
  def lint(ctx):
329
375
  """
330
- Lint source code
376
+ Lint C++ and Python source code
331
377
  """
378
+
332
379
  with cd_worker():
333
380
  ctx.run(
334
381
  f'"{NPM}" run lint --prefix scripts/',
335
382
  echo=True,
336
383
  pty=PTY_SUPPORTED,
337
- shell=SHELL
338
- );
384
+ shell=SHELL,
385
+ )
339
386
 
340
- if not os.path.isdir(PIP_PYLINT_DIR):
341
- # Install pylint using pip into our custom location.
342
- ctx.run(
343
- f'"{PYTHON}" -m pip install --upgrade --no-user --target="{PIP_PYLINT_DIR}" pylint=={PYLINT_VERSION}',
344
- echo=True,
345
- pty=PTY_SUPPORTED,
346
- shell=SHELL
347
- );
387
+ _install_ruff(ctx)
348
388
 
349
389
  with cd_worker():
390
+ ctx.run(f'"{PYTHON}" -m ruff check', echo=True, pty=PTY_SUPPORTED, shell=SHELL)
350
391
  ctx.run(
351
- f'"{PYTHON}" -m pylint tasks.py',
392
+ f'"{PYTHON}" -m ruff format --check',
352
393
  echo=True,
353
394
  pty=PTY_SUPPORTED,
354
- shell=SHELL
355
- );
395
+ shell=SHELL,
396
+ )
356
397
 
357
398
 
358
399
  @task
359
400
  def format(ctx):
360
401
  """
361
- Format source code according to lint rules
402
+ Format C++ and Python source code according to lint rules
362
403
  """
404
+
363
405
  with cd_worker():
364
406
  ctx.run(
365
407
  f'"{NPM}" run format --prefix scripts/',
366
408
  echo=True,
367
409
  pty=PTY_SUPPORTED,
368
- shell=SHELL
369
- );
410
+ shell=SHELL,
411
+ )
412
+
413
+ _install_ruff(ctx)
414
+
415
+ with cd_worker():
416
+ ctx.run(
417
+ f'"{PYTHON}" -m ruff check --fix', echo=True, pty=PTY_SUPPORTED, shell=SHELL
418
+ )
419
+ ctx.run(f'"{PYTHON}" -m ruff format', echo=True, pty=PTY_SUPPORTED, shell=SHELL)
370
420
 
371
421
 
372
- @task(pre=[call(setup, meson_args=MESON_ARGS + ' -Dms_build_tests=true'), flatc])
422
+ @task(pre=[call(setup, meson_args=MESON_ARGS + " -Dms_build_tests=true"), flatc])
373
423
  def tidy(ctx):
374
424
  """
375
425
  Performs C++ code checks according to `worker/.clang-tidy` rules
376
426
  """
427
+
377
428
  with cd_worker():
378
429
  ctx.run(
379
430
  f'"{NPM}" run tidy --prefix scripts/',
380
431
  echo=True,
381
432
  pty=PTY_SUPPORTED,
382
- shell=SHELL
383
- );
433
+ shell=SHELL,
434
+ )
384
435
 
385
436
 
386
- @task(pre=[call(setup, meson_args=MESON_ARGS + ' -Dms_build_tests=true'), flatc])
437
+ @task(pre=[call(setup, meson_args=MESON_ARGS + " -Dms_build_tests=true"), flatc])
387
438
  def tidy_fix(ctx):
388
439
  """
389
440
  Performs C++ code checks according to `worker/.clang-tidy` rules and applies
390
441
  fixes
391
442
  """
443
+
392
444
  with cd_worker():
393
445
  ctx.run(
394
446
  f'"{NPM}" run tidy:fix --prefix scripts/',
395
447
  echo=True,
396
448
  pty=PTY_SUPPORTED,
397
- shell=SHELL
398
- );
449
+ shell=SHELL,
450
+ )
399
451
 
400
452
 
401
- @task(pre=[call(setup, meson_args=MESON_ARGS + ' -Dms_build_tests=true'), flatc])
453
+ @task(pre=[call(setup, meson_args=MESON_ARGS + " -Dms_build_tests=true"), flatc])
402
454
  def test(ctx):
403
455
  """
404
456
  Run worker tests
405
457
  """
458
+
406
459
  with cd_worker():
407
460
  ctx.run(
408
461
  f'"{MESON}" compile -C "{BUILD_DIR}" -j {NUM_CORES} mediasoup-worker-test',
409
462
  echo=True,
410
463
  pty=PTY_SUPPORTED,
411
- shell=SHELL
412
- );
464
+ shell=SHELL,
465
+ )
413
466
  with cd_worker():
414
467
  ctx.run(
415
468
  f'"{MESON}" install -C "{BUILD_DIR}" --no-rebuild --tags mediasoup-worker-test',
416
469
  echo=True,
417
470
  pty=PTY_SUPPORTED,
418
- shell=SHELL
419
- );
471
+ shell=SHELL,
472
+ )
420
473
 
421
- mediasoup_worker_test = 'mediasoup-worker-test.exe' if os.name == 'nt' else 'mediasoup-worker-test';
422
- mediasoup_test_tags = os.getenv('MEDIASOUP_TEST_TAGS') or '';
474
+ mediasoup_worker_test = (
475
+ "mediasoup-worker-test.exe" if os.name == "nt" else "mediasoup-worker-test"
476
+ )
477
+ mediasoup_test_tags = os.getenv("MEDIASOUP_TEST_TAGS") or ""
423
478
 
424
479
  with cd_worker():
425
480
  ctx.run(
426
481
  f'"{BUILD_DIR}/{mediasoup_worker_test}" --invisibles --colour-mode=ansi {mediasoup_test_tags}',
427
482
  echo=True,
428
483
  pty=PTY_SUPPORTED,
429
- shell=SHELL
430
- );
431
-
432
-
433
- @task(pre=[call(setup, meson_args=MESON_ARGS + ' -Dms_build_tests=true -Db_sanitize=address -Db_lundef=false'), flatc])
484
+ shell=SHELL,
485
+ )
486
+
487
+
488
+ @task(
489
+ pre=[
490
+ call(
491
+ setup,
492
+ meson_args=MESON_ARGS
493
+ + " -Dms_build_tests=true -Db_sanitize=address -Db_lundef=false",
494
+ ),
495
+ flatc,
496
+ ]
497
+ )
434
498
  def test_asan_address(ctx):
435
499
  """
436
500
  Run worker test with Address Sanitizer with '-fsanitize=address'
437
501
  """
502
+
438
503
  with cd_worker():
439
504
  ctx.run(
440
505
  f'"{MESON}" compile -C "{BUILD_DIR}" -j {NUM_CORES} mediasoup-worker-test-asan-address',
441
506
  echo=True,
442
507
  pty=PTY_SUPPORTED,
443
- shell=SHELL
444
- );
508
+ shell=SHELL,
509
+ )
445
510
  with cd_worker():
446
511
  ctx.run(
447
512
  f'"{MESON}" install -C "{BUILD_DIR}" --no-rebuild --tags mediasoup-worker-test-asan-address',
448
513
  echo=True,
449
514
  pty=PTY_SUPPORTED,
450
- shell=SHELL
451
- );
515
+ shell=SHELL,
516
+ )
452
517
 
453
- mediasoup_test_tags = os.getenv('MEDIASOUP_TEST_TAGS') or '';
518
+ mediasoup_test_tags = os.getenv("MEDIASOUP_TEST_TAGS") or ""
454
519
 
455
520
  with cd_worker():
456
521
  ctx.run(
@@ -458,31 +523,44 @@ def test_asan_address(ctx):
458
523
  echo=True,
459
524
  pty=PTY_SUPPORTED,
460
525
  shell=SHELL,
461
- env={**os.environ, 'ASAN_OPTIONS': 'halt_on_error=1:print_stacktrace=1:detect_leaks=1:symbolize=1:detect_stack_use_after_return=1:strict_init_order=1:check_initialization_order=1:detect_container_overflow=1'}
462
- );
463
-
464
-
465
- @task(pre=[call(setup, meson_args=MESON_ARGS + ' -Dms_build_tests=true -Db_sanitize=undefined -Db_lundef=false'), flatc])
526
+ env={
527
+ **os.environ,
528
+ "ASAN_OPTIONS": "halt_on_error=1:print_stacktrace=1:detect_leaks=1:symbolize=1:detect_stack_use_after_return=1:strict_init_order=1:check_initialization_order=1:detect_container_overflow=1",
529
+ },
530
+ )
531
+
532
+
533
+ @task(
534
+ pre=[
535
+ call(
536
+ setup,
537
+ meson_args=MESON_ARGS
538
+ + " -Dms_build_tests=true -Db_sanitize=undefined -Db_lundef=false",
539
+ ),
540
+ flatc,
541
+ ]
542
+ )
466
543
  def test_asan_undefined(ctx):
467
544
  """
468
545
  Run worker test with undefined Sanitizer with -fsanitize=undefined
469
546
  """
547
+
470
548
  with cd_worker():
471
549
  ctx.run(
472
550
  f'"{MESON}" compile -C "{BUILD_DIR}" -j {NUM_CORES} mediasoup-worker-test-asan-undefined',
473
551
  echo=True,
474
552
  pty=PTY_SUPPORTED,
475
- shell=SHELL
476
- );
553
+ shell=SHELL,
554
+ )
477
555
  with cd_worker():
478
556
  ctx.run(
479
557
  f'"{MESON}" install -C "{BUILD_DIR}" --no-rebuild --tags mediasoup-worker-test-asan-undefined',
480
558
  echo=True,
481
559
  pty=PTY_SUPPORTED,
482
- shell=SHELL
483
- );
560
+ shell=SHELL,
561
+ )
484
562
 
485
- mediasoup_test_tags = os.getenv('MEDIASOUP_TEST_TAGS') or '';
563
+ mediasoup_test_tags = os.getenv("MEDIASOUP_TEST_TAGS") or ""
486
564
 
487
565
  with cd_worker():
488
566
  ctx.run(
@@ -492,11 +570,23 @@ def test_asan_undefined(ctx):
492
570
  shell=SHELL,
493
571
  # Exit with error if there are issues.
494
572
  # NOTE: Ignore well known UBSan errors in OpenSSL.
495
- env={**os.environ, 'UBSAN_OPTIONS': 'halt_on_error=1:print_stacktrace=1:suppressions=ubsan_suppressions.txt'}
496
- );
497
-
498
-
499
- @task(pre=[call(setup, meson_args=MESON_ARGS + ' -Dms_build_fuzzer=true -Db_sanitize=address -Db_lundef=false'), flatc])
573
+ env={
574
+ **os.environ,
575
+ "UBSAN_OPTIONS": "halt_on_error=1:print_stacktrace=1:suppressions=ubsan_suppressions.txt",
576
+ },
577
+ )
578
+
579
+
580
+ @task(
581
+ pre=[
582
+ call(
583
+ setup,
584
+ meson_args=MESON_ARGS
585
+ + " -Dms_build_fuzzer=true -Db_sanitize=address -Db_lundef=false",
586
+ ),
587
+ flatc,
588
+ ]
589
+ )
500
590
  def fuzzer(ctx):
501
591
  """
502
592
  Build the mediasoup-worker-fuzzer binary (which uses libFuzzer)
@@ -510,15 +600,15 @@ def fuzzer(ctx):
510
600
  f'"{MESON}" compile -C "{BUILD_DIR}" -j {NUM_CORES} mediasoup-worker-fuzzer',
511
601
  echo=True,
512
602
  pty=PTY_SUPPORTED,
513
- shell=SHELL
514
- );
603
+ shell=SHELL,
604
+ )
515
605
  with cd_worker():
516
606
  ctx.run(
517
607
  f'"{MESON}" install -C "{BUILD_DIR}" --no-rebuild --tags mediasoup-worker-fuzzer',
518
608
  echo=True,
519
609
  pty=PTY_SUPPORTED,
520
- shell=SHELL
521
- );
610
+ shell=SHELL,
611
+ )
522
612
 
523
613
 
524
614
  @task
@@ -526,13 +616,14 @@ def fuzzer_run_all(ctx):
526
616
  """
527
617
  Run all fuzzer cases
528
618
  """
619
+
529
620
  with cd_worker():
530
621
  ctx.run(
531
622
  f'LSAN_OPTIONS=verbosity=1:log_threads=1 "{BUILD_DIR}/mediasoup-worker-fuzzer" -artifact_prefix=fuzzer/reports/ -max_len=1400 fuzzer/new-corpus deps/webrtc-fuzzer-corpora/corpora/stun-corpus deps/webrtc-fuzzer-corpora/corpora/rtp-corpus deps/webrtc-fuzzer-corpora/corpora/rtcp-corpus',
532
623
  echo=True,
533
624
  pty=PTY_SUPPORTED,
534
- shell=SHELL
535
- );
625
+ shell=SHELL,
626
+ )
536
627
 
537
628
 
538
629
  @task
@@ -540,22 +631,23 @@ def docker(ctx):
540
631
  """
541
632
  Build a Linux Ubuntu Docker image with fuzzer capable clang++
542
633
  """
543
- if os.getenv('DOCKER_NO_CACHE') == 'true':
634
+
635
+ if os.getenv("DOCKER_NO_CACHE") == "true":
544
636
  with cd_worker():
545
637
  ctx.run(
546
638
  f'"{DOCKER}" build -f Dockerfile --no-cache --tag mediasoup/docker:latest .',
547
639
  echo=True,
548
640
  pty=PTY_SUPPORTED,
549
- shell=SHELL
550
- );
641
+ shell=SHELL,
642
+ )
551
643
  else:
552
644
  with cd_worker():
553
645
  ctx.run(
554
646
  f'"{DOCKER}" build -f Dockerfile --tag mediasoup/docker:latest .',
555
647
  echo=True,
556
648
  pty=PTY_SUPPORTED,
557
- shell=SHELL
558
- );
649
+ shell=SHELL,
650
+ )
559
651
 
560
652
 
561
653
  @task
@@ -563,13 +655,14 @@ def docker_run(ctx):
563
655
  """
564
656
  Run a container of the Ubuntu Docker image created in the docker task
565
657
  """
658
+
566
659
  with cd_worker():
567
660
  ctx.run(
568
661
  f'"{DOCKER}" run --name=mediasoupDocker -it --rm --privileged --cap-add SYS_PTRACE -v "{WORKER_DIR}/../:/foo bar/mediasoup" mediasoup/docker:latest',
569
662
  echo=True,
570
- pty=True, # NOTE: Needed to enter the terminal of the Docker image.
571
- shell=SHELL
572
- );
663
+ pty=True, # NOTE: Needed to enter the terminal of the Docker image.
664
+ shell=SHELL,
665
+ )
573
666
 
574
667
 
575
668
  @task
@@ -577,22 +670,23 @@ def docker_alpine(ctx):
577
670
  """
578
671
  Build a Linux Alpine Docker image
579
672
  """
580
- if os.getenv('DOCKER_NO_CACHE') == 'true':
673
+
674
+ if os.getenv("DOCKER_NO_CACHE") == "true":
581
675
  with cd_worker():
582
676
  ctx.run(
583
677
  f'"{DOCKER}" build -f Dockerfile.alpine --no-cache --tag mediasoup/docker-alpine:latest .',
584
678
  echo=True,
585
679
  pty=PTY_SUPPORTED,
586
- shell=SHELL
587
- );
680
+ shell=SHELL,
681
+ )
588
682
  else:
589
683
  with cd_worker():
590
684
  ctx.run(
591
685
  f'"{DOCKER}" build -f Dockerfile.alpine --tag mediasoup/docker-alpine:latest .',
592
686
  echo=True,
593
687
  pty=PTY_SUPPORTED,
594
- shell=SHELL
595
- );
688
+ shell=SHELL,
689
+ )
596
690
 
597
691
 
598
692
  @task
@@ -600,13 +694,14 @@ def docker_alpine_run(ctx):
600
694
  """
601
695
  Run a container of the Alpine Docker image created in the docker_alpine task
602
696
  """
697
+
603
698
  with cd_worker():
604
699
  ctx.run(
605
700
  f'"{DOCKER}" run --name=mediasoupDockerAlpine -it --rm --privileged --cap-add SYS_PTRACE -v "{WORKER_DIR}/../:/foo bar/mediasoup" mediasoup/docker-alpine:latest',
606
701
  echo=True,
607
- pty=True, # NOTE: Needed to enter the terminal of the Docker image.
608
- shell=SHELL
609
- );
702
+ pty=True, # NOTE: Needed to enter the terminal of the Docker image.
703
+ shell=SHELL,
704
+ )
610
705
 
611
706
 
612
707
  @task
@@ -614,22 +709,23 @@ def docker_386(ctx):
614
709
  """
615
710
  Build a 386 Linux Debian (32 bits arch) Docker image
616
711
  """
617
- if os.getenv('DOCKER_NO_CACHE') == 'true':
712
+
713
+ if os.getenv("DOCKER_NO_CACHE") == "true":
618
714
  with cd_worker():
619
715
  ctx.run(
620
716
  f'"{DOCKER}" build --platform linux/386 -f Dockerfile.386 --no-cache --tag mediasoup/docker-386:latest .',
621
717
  echo=True,
622
718
  pty=PTY_SUPPORTED,
623
- shell=SHELL
624
- );
719
+ shell=SHELL,
720
+ )
625
721
  else:
626
722
  with cd_worker():
627
723
  ctx.run(
628
724
  f'"{DOCKER}" build --platform linux/386 -f Dockerfile.386 --tag mediasoup/docker-386:latest .',
629
725
  echo=True,
630
726
  pty=PTY_SUPPORTED,
631
- shell=SHELL
632
- );
727
+ shell=SHELL,
728
+ )
633
729
 
634
730
 
635
731
  @task
@@ -638,10 +734,11 @@ def docker_386_run(ctx):
638
734
  Run a container of the 386 Linux Debian (32 bits arch) Docker image created
639
735
  in the docker_386 task
640
736
  """
737
+
641
738
  with cd_worker():
642
739
  ctx.run(
643
740
  f'"{DOCKER}" run --name=mediasoupDocker386 -it --rm --privileged --cap-add SYS_PTRACE -v "{WORKER_DIR}/../:/foo bar/mediasoup" mediasoup/docker-386:latest',
644
741
  echo=True,
645
- pty=True, # NOTE: Needed to enter the terminal of the Docker image.
646
- shell=SHELL
647
- );
742
+ pty=True, # NOTE: Needed to enter the terminal of the Docker image.
743
+ shell=SHELL,
744
+ )