mediasoup 3.13.14 → 3.13.16

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 (261) hide show
  1. package/README.md +27 -41
  2. package/node/lib/ActiveSpeakerObserver.d.ts.map +1 -1
  3. package/node/lib/ActiveSpeakerObserver.js +15 -17
  4. package/node/lib/AudioLevelObserver.d.ts.map +1 -1
  5. package/node/lib/AudioLevelObserver.js +27 -29
  6. package/node/lib/Channel.d.ts +1 -1
  7. package/node/lib/Channel.d.ts.map +1 -1
  8. package/node/lib/Channel.js +78 -89
  9. package/node/lib/Consumer.d.ts +2 -2
  10. package/node/lib/Consumer.d.ts.map +1 -1
  11. package/node/lib/Consumer.js +158 -184
  12. package/node/lib/DataConsumer.d.ts +1 -1
  13. package/node/lib/DataConsumer.d.ts.map +1 -1
  14. package/node/lib/DataConsumer.js +84 -91
  15. package/node/lib/DataProducer.d.ts +1 -1
  16. package/node/lib/DataProducer.d.ts.map +1 -1
  17. package/node/lib/DataProducer.js +32 -30
  18. package/node/lib/DirectTransport.d.ts.map +1 -1
  19. package/node/lib/DirectTransport.js +23 -27
  20. package/node/lib/EnhancedEventEmitter.d.ts.map +1 -1
  21. package/node/lib/Logger.d.ts.map +1 -1
  22. package/node/lib/PipeTransport.d.ts +2 -2
  23. package/node/lib/PipeTransport.d.ts.map +1 -1
  24. package/node/lib/PipeTransport.js +41 -45
  25. package/node/lib/PlainTransport.d.ts +1 -1
  26. package/node/lib/PlainTransport.d.ts.map +1 -1
  27. package/node/lib/PlainTransport.js +56 -64
  28. package/node/lib/Producer.d.ts +1 -1
  29. package/node/lib/Producer.d.ts.map +1 -1
  30. package/node/lib/Producer.js +102 -124
  31. package/node/lib/Router.d.ts +9 -9
  32. package/node/lib/Router.d.ts.map +1 -1
  33. package/node/lib/Router.js +102 -95
  34. package/node/lib/RtpObserver.d.ts +3 -3
  35. package/node/lib/RtpObserver.d.ts.map +1 -1
  36. package/node/lib/RtpObserver.js +6 -4
  37. package/node/lib/RtpParameters.d.ts.map +1 -1
  38. package/node/lib/RtpParameters.js +107 -139
  39. package/node/lib/RtpStream.d.ts.map +1 -1
  40. package/node/lib/RtpStream.js +6 -8
  41. package/node/lib/SctpParameters.d.ts.map +1 -1
  42. package/node/lib/SctpParameters.js +12 -12
  43. package/node/lib/SrtpParameters.d.ts.map +1 -1
  44. package/node/lib/SrtpParameters.js +28 -37
  45. package/node/lib/Transport.d.ts +5 -5
  46. package/node/lib/Transport.d.ts.map +1 -1
  47. package/node/lib/Transport.js +128 -139
  48. package/node/lib/WebRtcServer.d.ts +1 -1
  49. package/node/lib/WebRtcServer.d.ts.map +1 -1
  50. package/node/lib/WebRtcServer.js +7 -6
  51. package/node/lib/WebRtcTransport.d.ts +1 -1
  52. package/node/lib/WebRtcTransport.d.ts.map +1 -1
  53. package/node/lib/WebRtcTransport.js +177 -215
  54. package/node/lib/Worker.d.ts +9 -4
  55. package/node/lib/Worker.d.ts.map +1 -1
  56. package/node/lib/Worker.js +45 -36
  57. package/node/lib/errors.d.ts.map +1 -1
  58. package/node/lib/errors.js +6 -6
  59. package/node/lib/index.d.ts +1 -1
  60. package/node/lib/index.d.ts.map +1 -1
  61. package/node/lib/index.js +2 -2
  62. package/node/lib/ortc.d.ts +2 -2
  63. package/node/lib/ortc.d.ts.map +1 -1
  64. package/node/lib/ortc.js +107 -123
  65. package/node/lib/scalabilityModes.d.ts.map +1 -1
  66. package/node/lib/scalabilityModes.js +2 -2
  67. package/node/lib/supportedRtpCapabilities.d.ts.map +1 -1
  68. package/node/lib/supportedRtpCapabilities.js +61 -93
  69. package/node/lib/test/test-ActiveSpeakerObserver.d.ts.map +1 -0
  70. package/node/lib/test/test-ActiveSpeakerObserver.js +84 -0
  71. package/node/lib/test/test-AudioLevelObserver.d.ts.map +1 -0
  72. package/node/lib/test/test-AudioLevelObserver.js +89 -0
  73. package/node/lib/test/test-Consumer.d.ts.map +1 -0
  74. package/node/lib/test/test-Consumer.js +951 -0
  75. package/node/lib/test/test-DataConsumer.d.ts.map +1 -0
  76. package/node/lib/test/test-DataConsumer.js +296 -0
  77. package/node/lib/test/test-DataProducer.d.ts.map +1 -0
  78. package/node/lib/{tests → test}/test-DataProducer.js +116 -133
  79. package/node/lib/test/test-DirectTransport.d.ts.map +1 -0
  80. package/node/lib/{tests → test}/test-DirectTransport.js +95 -109
  81. package/node/lib/test/test-PipeTransport.d.ts.map +1 -0
  82. package/node/lib/{tests → test}/test-PipeTransport.js +402 -383
  83. package/node/lib/test/test-PlainTransport.d.ts.map +1 -0
  84. package/node/lib/test/test-PlainTransport.js +411 -0
  85. package/node/lib/test/test-Producer.d.ts.map +1 -0
  86. package/node/lib/{tests → test}/test-Producer.js +301 -348
  87. package/node/lib/{tests → test}/test-Router.d.ts.map +1 -1
  88. package/node/lib/test/test-Router.js +120 -0
  89. package/node/lib/test/test-WebRtcServer.d.ts.map +1 -0
  90. package/node/lib/{tests → test}/test-WebRtcServer.js +177 -196
  91. package/node/lib/test/test-WebRtcTransport.d.ts.map +1 -0
  92. package/node/lib/test/test-WebRtcTransport.js +479 -0
  93. package/node/lib/{tests → test}/test-Worker.d.ts.map +1 -1
  94. package/node/lib/test/test-Worker.js +217 -0
  95. package/node/lib/test/test-mediasoup.d.ts.map +1 -0
  96. package/node/lib/test/test-mediasoup.js +74 -0
  97. package/node/lib/test/test-multiopus.d.ts.map +1 -0
  98. package/node/lib/test/test-multiopus.js +209 -0
  99. package/node/lib/test/test-node-sctp.d.ts.map +1 -0
  100. package/node/lib/{tests → test}/test-node-sctp.js +69 -89
  101. package/node/lib/{tests → test}/test-ortc.d.ts.map +1 -1
  102. package/node/lib/{tests → test}/test-ortc.js +104 -111
  103. package/node/lib/types.d.ts.map +1 -1
  104. package/node/lib/utils.d.ts +5 -0
  105. package/node/lib/utils.d.ts.map +1 -1
  106. package/node/lib/utils.js +27 -13
  107. package/npm-scripts.mjs +217 -286
  108. package/package.json +128 -123
  109. package/worker/include/Channel/ChannelRequest.hpp +1 -1
  110. package/worker/include/Channel/ChannelSocket.hpp +5 -5
  111. package/worker/include/Logger.hpp +20 -16
  112. package/worker/include/MediaSoupErrors.hpp +5 -5
  113. package/worker/include/RTC/ActiveSpeakerObserver.hpp +2 -2
  114. package/worker/include/RTC/Consumer.hpp +2 -2
  115. package/worker/include/RTC/DataConsumer.hpp +2 -2
  116. package/worker/include/RTC/DataProducer.hpp +1 -1
  117. package/worker/include/RTC/DtlsTransport.hpp +4 -4
  118. package/worker/include/RTC/IceCandidate.hpp +6 -6
  119. package/worker/include/RTC/KeyFrameRequestManager.hpp +3 -3
  120. package/worker/include/RTC/PipeTransport.hpp +3 -1
  121. package/worker/include/RTC/PlainTransport.hpp +6 -2
  122. package/worker/include/RTC/Producer.hpp +1 -1
  123. package/worker/include/RTC/RTCP/FeedbackRtpTransport.hpp +3 -3
  124. package/worker/include/RTC/RTCP/Packet.hpp +1 -1
  125. package/worker/include/RTC/RateCalculator.hpp +1 -1
  126. package/worker/include/RTC/Router.hpp +2 -2
  127. package/worker/include/RTC/RtcLogger.hpp +6 -6
  128. package/worker/include/RTC/RtpDictionaries.hpp +1 -2
  129. package/worker/include/RTC/RtpObserver.hpp +1 -1
  130. package/worker/include/RTC/RtpPacket.hpp +13 -18
  131. package/worker/include/RTC/RtpRetransmissionBuffer.hpp +4 -2
  132. package/worker/include/RTC/RtpStreamRecv.hpp +1 -1
  133. package/worker/include/RTC/SctpAssociation.hpp +2 -2
  134. package/worker/include/RTC/SeqManager.hpp +7 -7
  135. package/worker/include/RTC/StunPacket.hpp +4 -4
  136. package/worker/include/RTC/Transport.hpp +2 -2
  137. package/worker/include/RTC/TransportCongestionControlClient.hpp +1 -1
  138. package/worker/include/RTC/TransportCongestionControlServer.hpp +1 -1
  139. package/worker/include/RTC/TransportTuple.hpp +8 -4
  140. package/worker/include/RTC/TrendCalculator.hpp +1 -1
  141. package/worker/include/RTC/WebRtcServer.hpp +5 -3
  142. package/worker/include/Settings.hpp +2 -2
  143. package/worker/include/Utils.hpp +12 -12
  144. package/worker/include/Worker.hpp +1 -1
  145. package/worker/include/handles/TcpConnectionHandle.hpp +5 -4
  146. package/worker/include/handles/TcpServerHandle.hpp +5 -3
  147. package/worker/include/handles/UdpSocketHandle.hpp +7 -4
  148. package/worker/include/handles/UnixStreamSocketHandle.hpp +2 -3
  149. package/worker/scripts/clang-format.mjs +28 -41
  150. package/worker/scripts/package-lock.json +1084 -2825
  151. package/worker/scripts/package.json +11 -12
  152. package/worker/src/Channel/ChannelRequest.cpp +1 -1
  153. package/worker/src/Channel/ChannelSocket.cpp +10 -10
  154. package/worker/src/DepLibSRTP.cpp +8 -8
  155. package/worker/src/DepLibWebRTC.cpp +2 -2
  156. package/worker/src/DepOpenSSL.cpp +2 -2
  157. package/worker/src/DepUsrSCTP.cpp +7 -9
  158. package/worker/src/Logger.cpp +2 -2
  159. package/worker/src/MediaSoupErrors.cpp +1 -1
  160. package/worker/src/RTC/ActiveSpeakerObserver.cpp +15 -18
  161. package/worker/src/RTC/Consumer.cpp +2 -3
  162. package/worker/src/RTC/DataConsumer.cpp +4 -4
  163. package/worker/src/RTC/DataProducer.cpp +1 -1
  164. package/worker/src/RTC/DirectTransport.cpp +5 -1
  165. package/worker/src/RTC/DtlsTransport.cpp +7 -11
  166. package/worker/src/RTC/KeyFrameRequestManager.cpp +2 -4
  167. package/worker/src/RTC/NackGenerator.cpp +7 -16
  168. package/worker/src/RTC/PlainTransport.cpp +1 -1
  169. package/worker/src/RTC/PortManager.cpp +8 -4
  170. package/worker/src/RTC/Producer.cpp +1 -4
  171. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +10 -9
  172. package/worker/src/RTC/RTCP/Packet.cpp +2 -2
  173. package/worker/src/RTC/RtcLogger.cpp +5 -5
  174. package/worker/src/RTC/RtpDictionaries/RtpHeaderExtensionParameters.cpp +0 -1
  175. package/worker/src/RTC/RtpPacket.cpp +2 -12
  176. package/worker/src/RTC/RtpRetransmissionBuffer.cpp +38 -36
  177. package/worker/src/RTC/RtpStreamRecv.cpp +3 -3
  178. package/worker/src/RTC/SctpAssociation.cpp +36 -19
  179. package/worker/src/RTC/SctpDictionaries/SctpStreamParameters.cpp +0 -1
  180. package/worker/src/RTC/SeqManager.cpp +5 -5
  181. package/worker/src/RTC/SimulcastConsumer.cpp +1 -2
  182. package/worker/src/RTC/StunPacket.cpp +14 -14
  183. package/worker/src/RTC/Transport.cpp +5 -4
  184. package/worker/src/RTC/WebRtcServer.cpp +31 -29
  185. package/worker/src/RTC/WebRtcTransport.cpp +3 -3
  186. package/worker/src/Settings.cpp +8 -8
  187. package/worker/src/Utils/Crypto.cpp +1 -1
  188. package/worker/src/Utils/File.cpp +3 -1
  189. package/worker/src/Utils/IP.cpp +2 -2
  190. package/worker/src/Utils/String.cpp +3 -3
  191. package/worker/src/Worker.cpp +7 -7
  192. package/worker/src/handles/TcpConnectionHandle.cpp +4 -3
  193. package/worker/src/handles/TcpServerHandle.cpp +14 -12
  194. package/worker/src/handles/TimerHandle.cpp +1 -2
  195. package/worker/src/handles/UdpSocketHandle.cpp +18 -17
  196. package/worker/src/handles/UnixStreamSocketHandle.cpp +15 -14
  197. package/worker/src/lib.cpp +10 -7
  198. package/worker/tasks.py +47 -35
  199. package/worker/test/src/Utils/TestIP.cpp +1 -1
  200. package/node/lib/fbs/data-consumer/binary.d.ts +0 -25
  201. package/node/lib/fbs/data-consumer/binary.d.ts.map +0 -1
  202. package/node/lib/fbs/data-consumer/binary.js +0 -77
  203. package/node/lib/fbs/data-consumer/data.d.ts +0 -10
  204. package/node/lib/fbs/data-consumer/data.d.ts.map +0 -1
  205. package/node/lib/fbs/data-consumer/data.js +0 -30
  206. package/node/lib/fbs/data-consumer/string.d.ts +0 -22
  207. package/node/lib/fbs/data-consumer/string.d.ts.map +0 -1
  208. package/node/lib/fbs/data-consumer/string.js +0 -59
  209. package/node/lib/fbs/data-producer/binary.d.ts +0 -25
  210. package/node/lib/fbs/data-producer/binary.d.ts.map +0 -1
  211. package/node/lib/fbs/data-producer/binary.js +0 -77
  212. package/node/lib/fbs/data-producer/data.d.ts +0 -10
  213. package/node/lib/fbs/data-producer/data.d.ts.map +0 -1
  214. package/node/lib/fbs/data-producer/data.js +0 -30
  215. package/node/lib/fbs/data-producer/string.d.ts +0 -22
  216. package/node/lib/fbs/data-producer/string.d.ts.map +0 -1
  217. package/node/lib/fbs/data-producer/string.js +0 -59
  218. package/node/lib/fbs/message/type.d.ts +0 -7
  219. package/node/lib/fbs/message/type.d.ts.map +0 -1
  220. package/node/lib/fbs/message/type.js +0 -11
  221. package/node/lib/tests/test-ActiveSpeakerObserver.d.ts.map +0 -1
  222. package/node/lib/tests/test-ActiveSpeakerObserver.js +0 -82
  223. package/node/lib/tests/test-AudioLevelObserver.d.ts.map +0 -1
  224. package/node/lib/tests/test-AudioLevelObserver.js +0 -92
  225. package/node/lib/tests/test-Consumer.d.ts.map +0 -1
  226. package/node/lib/tests/test-Consumer.js +0 -912
  227. package/node/lib/tests/test-DataConsumer.d.ts.map +0 -1
  228. package/node/lib/tests/test-DataConsumer.js +0 -285
  229. package/node/lib/tests/test-DataProducer.d.ts.map +0 -1
  230. package/node/lib/tests/test-DirectTransport.d.ts.map +0 -1
  231. package/node/lib/tests/test-PipeTransport.d.ts.map +0 -1
  232. package/node/lib/tests/test-PlainTransport.d.ts.map +0 -1
  233. package/node/lib/tests/test-PlainTransport.js +0 -425
  234. package/node/lib/tests/test-Producer.d.ts.map +0 -1
  235. package/node/lib/tests/test-Router.js +0 -122
  236. package/node/lib/tests/test-WebRtcServer.d.ts.map +0 -1
  237. package/node/lib/tests/test-WebRtcTransport.d.ts.map +0 -1
  238. package/node/lib/tests/test-WebRtcTransport.js +0 -519
  239. package/node/lib/tests/test-Worker.js +0 -232
  240. package/node/lib/tests/test-mediasoup.d.ts.map +0 -1
  241. package/node/lib/tests/test-mediasoup.js +0 -42
  242. package/node/lib/tests/test-multiopus.d.ts.map +0 -1
  243. package/node/lib/tests/test-multiopus.js +0 -214
  244. package/node/lib/tests/test-node-sctp.d.ts.map +0 -1
  245. /package/node/lib/{tests → test}/test-ActiveSpeakerObserver.d.ts +0 -0
  246. /package/node/lib/{tests → test}/test-AudioLevelObserver.d.ts +0 -0
  247. /package/node/lib/{tests → test}/test-Consumer.d.ts +0 -0
  248. /package/node/lib/{tests → test}/test-DataConsumer.d.ts +0 -0
  249. /package/node/lib/{tests → test}/test-DataProducer.d.ts +0 -0
  250. /package/node/lib/{tests → test}/test-DirectTransport.d.ts +0 -0
  251. /package/node/lib/{tests → test}/test-PipeTransport.d.ts +0 -0
  252. /package/node/lib/{tests → test}/test-PlainTransport.d.ts +0 -0
  253. /package/node/lib/{tests → test}/test-Producer.d.ts +0 -0
  254. /package/node/lib/{tests → test}/test-Router.d.ts +0 -0
  255. /package/node/lib/{tests → test}/test-WebRtcServer.d.ts +0 -0
  256. /package/node/lib/{tests → test}/test-WebRtcTransport.d.ts +0 -0
  257. /package/node/lib/{tests → test}/test-Worker.d.ts +0 -0
  258. /package/node/lib/{tests → test}/test-mediasoup.d.ts +0 -0
  259. /package/node/lib/{tests → test}/test-multiopus.d.ts +0 -0
  260. /package/node/lib/{tests → test}/test-node-sctp.d.ts +0 -0
  261. /package/node/lib/{tests → test}/test-ortc.d.ts +0 -0
package/README.md CHANGED
@@ -10,58 +10,51 @@
10
10
  [![][codeql-shield-mediasoup]][codeql-mediasoup]
11
11
  [![][opencollective-shield-mediasoup]][opencollective-mediasoup]
12
12
 
13
-
14
13
  ## Website and Documentation
15
14
 
16
- * [mediasoup.org][mediasoup-website]
17
-
15
+ - [mediasoup.org][mediasoup-website]
18
16
 
19
17
  ## Support Forum
20
18
 
21
- * [mediasoup.discourse.group][mediasoup-discourse]
22
-
19
+ - [mediasoup.discourse.group][mediasoup-discourse]
23
20
 
24
21
  ## Design Goals
25
22
 
26
23
  mediasoup and its client side libraries are designed to accomplish with the following goals:
27
24
 
28
- * Be a [SFU](https://webrtcglossary.com/sfu/) (Selective Forwarding Unit).
29
- * Support both WebRTC and plain RTP input and output.
30
- * Be a Node.js module/Rust crate in server side.
31
- * Be a tiny JavaScript and C++ libraries in client side.
32
- * Be minimalist: just handle the media layer.
33
- * Be signaling agnostic: do not mandate any signaling protocol.
34
- * Be super low level API.
35
- * Support all existing WebRTC endpoints.
36
- * Enable integration with well known multimedia libraries/tools.
37
-
25
+ - Be a [SFU](https://webrtcglossary.com/sfu) (Selective Forwarding Unit).
26
+ - Support both WebRTC and plain RTP input and output.
27
+ - Be a Node.js module or Rust crate in server side.
28
+ - Be a tiny TypeScript and C++ libraries in client side.
29
+ - Be minimalist: just handle the media layer.
30
+ - Be signaling agnostic: do not mandate any signaling protocol.
31
+ - Be super low level API.
32
+ - Support all existing WebRTC endpoints.
33
+ - Enable integration with well known multimedia libraries/tools.
38
34
 
39
35
  ## Architecture
40
36
 
41
37
  ![][mediasoup-architecture]
42
38
 
43
-
44
39
  ## Use Cases
45
40
 
46
41
  mediasoup and its client side libraries provide a super low level API. They are intended to enable different use cases and scenarios, without any constraint or assumption. Some of these use cases are:
47
42
 
48
- * Group video chat applications.
49
- * One-to-many (or few-to-many) broadcasting applications in real-time.
50
- * RTP streaming.
51
-
43
+ - Group video chat applications.
44
+ - One-to-many (or few-to-many) broadcasting applications in real-time.
45
+ - RTP streaming.
52
46
 
53
47
  ## Features
54
48
 
55
- * ECMAScript 6/Idiomatic Rust low level API.
56
- * Multi-stream: multiple audio/video streams over a single ICE + DTLS transport.
57
- * IPv6 ready.
58
- * ICE / DTLS / RTP / RTCP over UDP and TCP.
59
- * Simulcast and SVC support.
60
- * Congestion control.
61
- * Sender and receiver bandwidth estimation with spatial/temporal layers distribution algorithm.
62
- * Data message exchange (via WebRTC DataChannels, SCTP over plain UDP, and direct termination in Node.js/Rust).
63
- * Extremely powerful (media worker thread/subprocess coded in C++ on top of [libuv](https://libuv.org)).
64
-
49
+ - ECMAScript 6/Idiomatic Rust low level API.
50
+ - Multi-stream: multiple audio/video streams over a single ICE + DTLS transport.
51
+ - IPv6 ready.
52
+ - ICE / DTLS / RTP / RTCP over UDP and TCP.
53
+ - Simulcast and SVC support.
54
+ - Congestion control.
55
+ - Sender and receiver bandwidth estimation with spatial/temporal layers distribution algorithm.
56
+ - Data message exchange (via WebRTC DataChannels, SCTP over plain UDP, and direct termination in Node.js/Rust).
57
+ - Extremely powerful (media worker thread/subprocess coded in C++ on top of [libuv](https://libuv.org)).
65
58
 
66
59
  ## Demo Online
67
60
 
@@ -69,31 +62,24 @@ mediasoup and its client side libraries provide a super low level API. They are
69
62
 
70
63
  Try it at [v3demo.mediasoup.org](https://v3demo.mediasoup.org) ([source code](https://github.com/versatica/mediasoup-demo)).
71
64
 
72
-
73
65
  ## Authors
74
66
 
75
- * Iñaki Baz Castillo [[website](https://inakibaz.me)|[github](https://github.com/ibc/)]
76
- * José Luis Millán [[github](https://github.com/jmillan/)]
77
- * Nazar Mokynskyi [[github](https://github.com/nazar-pc/)]
78
-
67
+ - Iñaki Baz Castillo [[website](https://inakibaz.me)|[github](https://github.com/ibc/)]
68
+ - José Luis Millán [[github](https://github.com/jmillan/)]
69
+ - Nazar Mokynskyi [[github](https://github.com/nazar-pc/)]
79
70
 
80
71
  ## Social
81
72
 
82
- * Twitter: [@mediasoup_sfu](https://twitter.com/mediasoup_sfu)
83
-
73
+ - Twitter: [@mediasoup_sfu](https://twitter.com/mediasoup_sfu)
84
74
 
85
75
  ## Sponsor
86
76
 
87
77
  You can support mediasoup by [sponsoring][sponsor] it. Thanks!
88
78
 
89
-
90
79
  ## License
91
80
 
92
81
  [ISC](./LICENSE)
93
82
 
94
-
95
-
96
-
97
83
  [mediasoup-banner]: /art/mediasoup-banner.png
98
84
  [mediasoup-website]: https://mediasoup.org
99
85
  [mediasoup-discourse]: https://mediasoup.discourse.group
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveSpeakerObserver.d.ts","sourceRoot":"","sources":["../src/ActiveSpeakerObserver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,MAAM,MAAM,4BAA4B,CAAC,4BAA4B,SAAS,OAAO,GAAG,OAAO,IAC/F;IACC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,4BAA4B,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAChD;IACC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,GAC3D;IACC,eAAe,EAAE,CAAC,oCAAoC,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG,yBAAyB,GAC3E;IACC,eAAe,EAAE,CAAC,oCAAoC,CAAC,CAAC;CACxD,CAAC;AAEF,KAAK,qCAAqC,CAAC,4BAA4B,IACtE,6BAA6B,CAAC,4BAA4B,CAAC,CAAC;AAI7D,qBAAa,qBAAqB,CAAC,4BAA4B,SAAS,OAAO,GAAG,OAAO,CACxF,SAAQ,WAAW,CAAC,4BAA4B,EAAE,2BAA2B,CAAC;IAE9E;;OAEG;gBACS,OAAO,EAAE,qCAAqC,CAAC,4BAA4B,CAAC;IAOxF;;OAEG;IACH,IAAI,QAAQ,IAAI,oBAAoB,CAAC,mCAAmC,CAAC,CAGxE;IAED,OAAO,CAAC,yBAAyB;CAqCjC"}
1
+ {"version":3,"file":"ActiveSpeakerObserver.d.ts","sourceRoot":"","sources":["../src/ActiveSpeakerObserver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,MAAM,MAAM,4BAA4B,CACvC,4BAA4B,SAAS,OAAO,GAAG,OAAO,IACnD;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,4BAA4B,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IAClD;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,GAAG;IAC7D,eAAe,EAAE,CAAC,oCAAoC,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG,yBAAyB,GAAG;IAC7E,eAAe,EAAE,CAAC,oCAAoC,CAAC,CAAC;CACxD,CAAC;AAEF,KAAK,qCAAqC,CAAC,4BAA4B,IACtE,6BAA6B,CAAC,4BAA4B,CAAC,CAAC;AAI7D,qBAAa,qBAAqB,CACjC,4BAA4B,SAAS,OAAO,GAAG,OAAO,CACrD,SAAQ,WAAW,CACpB,4BAA4B,EAC5B,2BAA2B,CAC3B;IACA;;OAEG;gBAEF,OAAO,EAAE,qCAAqC,CAAC,4BAA4B,CAAC;IAO7E;;OAEG;IACH,IAAI,QAAQ,IAAI,oBAAoB,CAAC,mCAAmC,CAAC,CAExE;IAED,OAAO,CAAC,yBAAyB;CAkCjC"}
@@ -23,25 +23,23 @@ class ActiveSpeakerObserver extends RtpObserver_1.RtpObserver {
23
23
  handleWorkerNotifications() {
24
24
  this.channel.on(this.internal.rtpObserverId, (event, data) => {
25
25
  switch (event) {
26
- case notification_1.Event.ACTIVESPEAKEROBSERVER_DOMINANT_SPEAKER:
27
- {
28
- const notification = new FbsActiveSpeakerObserver.DominantSpeakerNotification();
29
- data.body(notification);
30
- const producer = this.getProducerById(notification.producerId());
31
- if (!producer) {
32
- break;
33
- }
34
- const dominantSpeaker = {
35
- producer
36
- };
37
- this.safeEmit('dominantspeaker', dominantSpeaker);
38
- this.observer.safeEmit('dominantspeaker', dominantSpeaker);
26
+ case notification_1.Event.ACTIVESPEAKEROBSERVER_DOMINANT_SPEAKER: {
27
+ const notification = new FbsActiveSpeakerObserver.DominantSpeakerNotification();
28
+ data.body(notification);
29
+ const producer = this.getProducerById(notification.producerId());
30
+ if (!producer) {
39
31
  break;
40
32
  }
41
- default:
42
- {
43
- logger.error('ignoring unknown event "%s"', event);
44
- }
33
+ const dominantSpeaker = {
34
+ producer,
35
+ };
36
+ this.safeEmit('dominantspeaker', dominantSpeaker);
37
+ this.observer.safeEmit('dominantspeaker', dominantSpeaker);
38
+ break;
39
+ }
40
+ default: {
41
+ logger.error('ignoring unknown event "%s"', event);
42
+ }
45
43
  }
46
44
  });
47
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AudioLevelObserver.d.ts","sourceRoot":"","sources":["../src/AudioLevelObserver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKlC,MAAM,MAAM,yBAAyB,CAAC,yBAAyB,SAAS,OAAO,GAAG,OAAO,IACzF;IACC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GACpC;IACC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,GACxD;IACC,OAAO,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,yBAAyB,GACxE;IACC,OAAO,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF,KAAK,oCAAoC,CAAC,yBAAyB,IAClE,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;AAI1D,qBAAa,kBAAkB,CAAC,yBAAyB,SAAS,OAAO,GAAG,OAAO,CAClF,SAAQ,WAAW,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;IAExE;;OAEG;gBACS,OAAO,EAAE,oCAAoC,CAAC,yBAAyB,CAAC;IAOpF;;OAEG;IACH,IAAI,QAAQ,IAAI,oBAAoB,CAAC,gCAAgC,CAAC,CAGrE;IAED,OAAO,CAAC,yBAAyB;CAoDjC"}
1
+ {"version":3,"file":"AudioLevelObserver.d.ts","sourceRoot":"","sources":["../src/AudioLevelObserver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKlC,MAAM,MAAM,yBAAyB,CACpC,yBAAyB,SAAS,OAAO,GAAG,OAAO,IAChD;IACH;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACtC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,GAAG;IAC1D,OAAO,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,yBAAyB,GAAG;IAC1E,OAAO,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF,KAAK,oCAAoC,CAAC,yBAAyB,IAClE,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;AAI1D,qBAAa,kBAAkB,CAC9B,yBAAyB,SAAS,OAAO,GAAG,OAAO,CAClD,SAAQ,WAAW,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;IACzE;;OAEG;gBAEF,OAAO,EAAE,oCAAoC,CAAC,yBAAyB,CAAC;IAOzE;;OAEG;IACH,IAAI,QAAQ,IAAI,oBAAoB,CAAC,gCAAgC,CAAC,CAErE;IAED,OAAO,CAAC,yBAAyB;CAuDjC"}
@@ -24,36 +24,34 @@ class AudioLevelObserver extends RtpObserver_1.RtpObserver {
24
24
  handleWorkerNotifications() {
25
25
  this.channel.on(this.internal.rtpObserverId, (event, data) => {
26
26
  switch (event) {
27
- case notification_1.Event.AUDIOLEVELOBSERVER_VOLUMES:
28
- {
29
- const notification = new FbsAudioLevelObserver.VolumesNotification();
30
- data.body(notification);
31
- // Get the corresponding Producer instance and remove entries with
32
- // no Producer (it may have been closed in the meanwhile).
33
- const volumes = utils.parseVector(notification, 'volumes', parseVolume)
34
- .map(({ producerId, volume }) => ({
35
- producer: this.getProducerById(producerId),
36
- volume
37
- }))
38
- .filter(({ producer }) => producer);
39
- if (volumes.length > 0) {
40
- this.safeEmit('volumes', volumes);
41
- // Emit observer event.
42
- this.observer.safeEmit('volumes', volumes);
43
- }
44
- break;
45
- }
46
- case notification_1.Event.AUDIOLEVELOBSERVER_SILENCE:
47
- {
48
- this.safeEmit('silence');
27
+ case notification_1.Event.AUDIOLEVELOBSERVER_VOLUMES: {
28
+ const notification = new FbsAudioLevelObserver.VolumesNotification();
29
+ data.body(notification);
30
+ // Get the corresponding Producer instance and remove entries with
31
+ // no Producer (it may have been closed in the meanwhile).
32
+ const volumes = utils
33
+ .parseVector(notification, 'volumes', parseVolume)
34
+ .map(({ producerId, volume, }) => ({
35
+ producer: this.getProducerById(producerId),
36
+ volume,
37
+ }))
38
+ .filter(({ producer }) => producer);
39
+ if (volumes.length > 0) {
40
+ this.safeEmit('volumes', volumes);
49
41
  // Emit observer event.
50
- this.observer.safeEmit('silence');
51
- break;
52
- }
53
- default:
54
- {
55
- logger.error('ignoring unknown event "%s"', event);
42
+ this.observer.safeEmit('volumes', volumes);
56
43
  }
44
+ break;
45
+ }
46
+ case notification_1.Event.AUDIOLEVELOBSERVER_SILENCE: {
47
+ this.safeEmit('silence');
48
+ // Emit observer event.
49
+ this.observer.safeEmit('silence');
50
+ break;
51
+ }
52
+ default: {
53
+ logger.error('ignoring unknown event "%s"', event);
54
+ }
57
55
  }
58
56
  });
59
57
  }
@@ -62,6 +60,6 @@ exports.AudioLevelObserver = AudioLevelObserver;
62
60
  function parseVolume(binary) {
63
61
  return {
64
62
  producerId: binary.producerId(),
65
- volume: binary.volume()
63
+ volume: binary.volume(),
66
64
  };
67
65
  }
@@ -8,7 +8,7 @@ export declare class Channel extends EnhancedEventEmitter {
8
8
  /**
9
9
  * @private
10
10
  */
11
- constructor({ producerSocket, consumerSocket, pid }: {
11
+ constructor({ producerSocket, consumerSocket, pid, }: {
12
12
  producerSocket: any;
13
13
  consumerSocket: any;
14
14
  pid: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../src/Channel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,EAAW,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAgB,IAAI,IAAI,gBAAgB,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAoBnF,qBAAa,OAAQ,SAAQ,oBAAoB;;IAuBhD;;OAEG;gBAEF,EACC,cAAc,EACd,cAAc,EACd,GAAG,EACH,EACD;QACC,cAAc,EAAE,GAAG,CAAC;QACpB,cAAc,EAAE,GAAG,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;KACZ;IA6IF;;OAEG;IACH,IAAI,aAAa,IAAI,WAAW,CAAC,OAAO,CAGvC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;IAqCb;;OAEG;IACH,MAAM,CACL,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAChB,IAAI;IA0DD,OAAO,CACZ,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqFvC,OAAO,CAAC,eAAe;IAgDvB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,UAAU;CAwClB"}
1
+ {"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../src/Channel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,EAAW,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAEN,IAAI,IAAI,gBAAgB,EACxB,KAAK,EACL,MAAM,oBAAoB,CAAC;AAmB5B,qBAAa,OAAQ,SAAQ,oBAAoB;;IAsBhD;;OAEG;gBACS,EACX,cAAc,EACd,cAAc,EACd,GAAG,GACH,EAAE;QACF,cAAc,EAAE,GAAG,CAAC;QACpB,cAAc,EAAE,GAAG,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;KACZ;IAmID;;OAEG;IACH,IAAI,aAAa,IAAI,WAAW,CAAC,OAAO,CAEvC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;IAiCb;;OAEG;IACH,MAAM,CACL,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAChB,IAAI;IA6DD,OAAO,CACZ,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC;IA4FpB,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,UAAU;CAkClB"}
@@ -34,7 +34,7 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
34
34
  /**
35
35
  * @private
36
36
  */
37
- constructor({ producerSocket, consumerSocket, pid }) {
37
+ constructor({ producerSocket, consumerSocket, pid, }) {
38
38
  super();
39
39
  logger.debug('constructor()');
40
40
  this.#producerSocket = producerSocket;
@@ -54,8 +54,8 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
54
54
  return;
55
55
  }
56
56
  let msgStart = 0;
57
- while (true) // eslint-disable-line no-constant-condition
58
- {
57
+ // eslint-disable-next-line no-constant-condition
58
+ while (true) {
59
59
  const readLen = this.#recvBuffer.length - msgStart;
60
60
  if (readLen < 4) {
61
61
  // Incomplete data.
@@ -73,46 +73,42 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
73
73
  const message = message_1.Message.getRootAsMessage(buf);
74
74
  try {
75
75
  switch (message.dataType()) {
76
- case message_1.Body.Response:
77
- {
78
- const response = new response_1.Response();
79
- message.data(response);
80
- this.processResponse(response);
81
- break;
82
- }
83
- case message_1.Body.Notification:
84
- {
85
- const notification = new notification_1.Notification();
86
- message.data(notification);
87
- this.processNotification(notification);
88
- break;
89
- }
90
- case message_1.Body.Log:
91
- {
92
- const log = new log_1.Log();
93
- message.data(log);
94
- this.processLog(pid, log);
95
- break;
96
- }
97
- default:
98
- {
99
- // eslint-disable-next-line no-console
100
- console.warn(`worker[pid:${pid}] unexpected data: %s`, payload.toString('utf8', 1));
101
- }
76
+ case message_1.Body.Response: {
77
+ const response = new response_1.Response();
78
+ message.data(response);
79
+ this.processResponse(response);
80
+ break;
81
+ }
82
+ case message_1.Body.Notification: {
83
+ const notification = new notification_1.Notification();
84
+ message.data(notification);
85
+ this.processNotification(notification);
86
+ break;
87
+ }
88
+ case message_1.Body.Log: {
89
+ const log = new log_1.Log();
90
+ message.data(log);
91
+ this.processLog(pid, log);
92
+ break;
93
+ }
94
+ default: {
95
+ // eslint-disable-next-line no-console
96
+ console.warn(`worker[pid:${pid}] unexpected data: ${payload.toString('utf8', 1)}`);
97
+ }
102
98
  }
103
99
  }
104
100
  catch (error) {
105
- logger.error('received invalid message from the worker process: %s', String(error));
101
+ logger.error(`received invalid message from the worker process: ${error}`);
106
102
  }
107
103
  }
108
104
  if (msgStart != 0) {
109
105
  this.#recvBuffer = this.#recvBuffer.slice(msgStart);
110
106
  }
111
107
  });
112
- this.#consumerSocket.on('end', () => (logger.debug('Consumer Channel ended by the worker process')));
113
- this.#consumerSocket.on('error', (error) => (logger.error('Consumer Channel error: %s', String(error))));
114
- this.#producerSocket.on('end', () => (logger.debug('Producer Channel ended by the worker process')));
115
- this.#producerSocket.on('error', (error) => (logger.error('Producer Channel error: %s', String(error))));
108
+ this.#consumerSocket.on('end', () => logger.debug('Consumer Channel ended by the worker process'));
109
+ this.#consumerSocket.on('error', error => logger.error(`Consumer Channel error: ${error}`));
110
+ this.#producerSocket.on('end', () => logger.debug('Producer Channel ended by the worker process'));
111
+ this.#producerSocket.on('error', error => logger.error(`Producer Channel error: ${error}`));
116
112
  }
117
113
  /**
118
114
  * flatbuffer builder.
@@ -141,25 +137,23 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
141
137
  this.#producerSocket.removeAllListeners('end');
142
138
  this.#producerSocket.removeAllListeners('error');
143
139
  this.#producerSocket.on('error', () => { });
144
- // Destroy the socket after a while to allow pending incoming messages.
145
- setTimeout(() => {
146
- try {
147
- this.#producerSocket.destroy();
148
- }
149
- catch (error) { }
150
- try {
151
- this.#consumerSocket.destroy();
152
- }
153
- catch (error) { }
154
- }, 200);
140
+ // Destroy the sockets.
141
+ try {
142
+ this.#producerSocket.destroy();
143
+ }
144
+ catch (error) { }
145
+ try {
146
+ this.#consumerSocket.destroy();
147
+ }
148
+ catch (error) { }
155
149
  }
156
150
  /**
157
151
  * @private
158
152
  */
159
153
  notify(event, bodyType, bodyOffset, handlerId) {
160
- logger.debug('notify() [event:%s]', notification_1.Event[event]);
154
+ logger.debug(`notify() [event:${notification_1.Event[event]}]`);
161
155
  if (this.#closed) {
162
- throw new errors_1.InvalidStateError('Channel closed');
156
+ throw new errors_1.InvalidStateError(`Channel closed, cannot send notification [event:${notification_1.Event[event]}]`);
163
157
  }
164
158
  const handlerIdOffset = this.#bufferBuilder.createString(handlerId);
165
159
  let notificationOffset;
@@ -178,20 +172,21 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
178
172
  // Clear the buffer builder so it's reused for the next request.
179
173
  this.#bufferBuilder.clear();
180
174
  if (buffer.byteLength > MESSAGE_MAX_LEN) {
181
- throw new Error('Channel request too big');
175
+ throw new Error(`notification too big [event:${notification_1.Event[event]}]`);
182
176
  }
183
177
  try {
184
178
  // This may throw if closed or remote side ended.
185
179
  this.#producerSocket.write(buffer, 'binary');
186
180
  }
187
181
  catch (error) {
188
- logger.warn('notify() | sending notification failed: %s', String(error));
182
+ logger.warn(`notify() | sending notification failed: ${error}`);
189
183
  return;
190
184
  }
191
185
  }
192
186
  async request(method, bodyType, bodyOffset, handlerId) {
187
+ logger.debug(`request() [method:${request_1.Method[method]}]`);
193
188
  if (this.#closed) {
194
- throw new errors_1.InvalidStateError('Channel closed');
189
+ throw new errors_1.InvalidStateError(`Channel closed, cannot send request [method:${request_1.Method[method]}]`);
195
190
  }
196
191
  this.#nextId < 4294967295 ? ++this.#nextId : (this.#nextId = 1);
197
192
  const id = this.#nextId;
@@ -212,7 +207,7 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
212
207
  // Clear the buffer builder so it's reused for the next request.
213
208
  this.#bufferBuilder.clear();
214
209
  if (buffer.byteLength > MESSAGE_MAX_LEN) {
215
- throw new Error('Channel request too big');
210
+ throw new Error(`request too big [method:${request_1.Method[method]}]`);
216
211
  }
217
212
  // This may throw if closed or remote side ended.
218
213
  this.#producerSocket.write(buffer, 'binary');
@@ -220,21 +215,21 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
220
215
  const sent = {
221
216
  id: id,
222
217
  method: request_1.Method[method],
223
- resolve: (data2) => {
218
+ resolve: data2 => {
224
219
  if (!this.#sents.delete(id)) {
225
220
  return;
226
221
  }
227
222
  pResolve(data2);
228
223
  },
229
- reject: (error) => {
224
+ reject: error => {
230
225
  if (!this.#sents.delete(id)) {
231
226
  return;
232
227
  }
233
228
  pReject(error);
234
229
  },
235
230
  close: () => {
236
- pReject(new errors_1.InvalidStateError('Channel closed'));
237
- }
231
+ pReject(new errors_1.InvalidStateError(`Channel closed, pending request aborted [method:${request_1.Method[method]}, id:${id}]`));
232
+ },
238
233
  };
239
234
  // Add sent stuff to the map.
240
235
  this.#sents.set(id, sent);
@@ -243,29 +238,27 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
243
238
  processResponse(response) {
244
239
  const sent = this.#sents.get(response.id());
245
240
  if (!sent) {
246
- logger.error('received response does not match any sent request [id:%s]', response.id);
241
+ logger.error(`received response does not match any sent request [id:${response.id}]`);
247
242
  return;
248
243
  }
249
244
  if (response.accepted()) {
250
- logger.debug('request succeeded [method:%s, id:%s]', sent.method, sent.id);
245
+ logger.debug(`request succeeded [method:${sent.method}, id:${sent.id}]`);
251
246
  sent.resolve(response);
252
247
  }
253
248
  else if (response.error()) {
254
- logger.warn('request failed [method:%s, id:%s]: %s', sent.method, sent.id, response.reason());
249
+ logger.warn(`request failed [method:${sent.method}, id:${sent.id}]: ${response.reason()}`);
255
250
  switch (response.error()) {
256
- case 'TypeError':
257
- {
258
- sent.reject(new TypeError(response.reason()));
259
- break;
260
- }
261
- default:
262
- {
263
- sent.reject(new Error(response.reason()));
264
- }
251
+ case 'TypeError': {
252
+ sent.reject(new TypeError(response.reason()));
253
+ break;
254
+ }
255
+ default: {
256
+ sent.reject(new Error(response.reason()));
257
+ }
265
258
  }
266
259
  }
267
260
  else {
268
- logger.error('received response is not accepted nor rejected [method:%s, id:%s]', sent.method, sent.id);
261
+ logger.error(`received response is not accepted nor rejected [method:${sent.method}, id:${sent.id}]`);
269
262
  }
270
263
  }
271
264
  processNotification(notification) {
@@ -281,30 +274,26 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
281
274
  const logData = log.data();
282
275
  switch (logData[0]) {
283
276
  // 'D' (a debug log).
284
- case 'D':
285
- {
286
- logger.debug(`[pid:${pid}] ${logData.slice(1)}`);
287
- break;
288
- }
277
+ case 'D': {
278
+ logger.debug(`[pid:${pid}] ${logData.slice(1)}`);
279
+ break;
280
+ }
289
281
  // 'W' (a warn log).
290
- case 'W':
291
- {
292
- logger.warn(`[pid:${pid}] ${logData.slice(1)}`);
293
- break;
294
- }
282
+ case 'W': {
283
+ logger.warn(`[pid:${pid}] ${logData.slice(1)}`);
284
+ break;
285
+ }
295
286
  // 'E' (a error log).
296
- case 'E':
297
- {
298
- logger.error(`[pid:${pid}] ${logData.slice(1)}`);
299
- break;
300
- }
287
+ case 'E': {
288
+ logger.error(`[pid:${pid}] ${logData.slice(1)}`);
289
+ break;
290
+ }
301
291
  // 'X' (a dump log).
302
- case 'X':
303
- {
304
- // eslint-disable-next-line no-console
305
- console.log(logData.slice(1));
306
- break;
307
- }
292
+ case 'X': {
293
+ // eslint-disable-next-line no-console
294
+ console.log(logData.slice(1));
295
+ break;
296
+ }
308
297
  }
309
298
  }
310
299
  }
@@ -221,7 +221,7 @@ export declare class Consumer<ConsumerAppData extends AppData = AppData> extends
221
221
  /**
222
222
  * @private
223
223
  */
224
- constructor({ internal, data, channel, appData, paused, producerPaused, score, preferredLayers }: {
224
+ constructor({ internal, data, channel, appData, paused, producerPaused, score, preferredLayers, }: {
225
225
  internal: ConsumerInternal;
226
226
  data: ConsumerData;
227
227
  channel: Channel;
@@ -325,7 +325,7 @@ export declare class Consumer<ConsumerAppData extends AppData = AppData> extends
325
325
  /**
326
326
  * Set preferred video layers.
327
327
  */
328
- setPreferredLayers({ spatialLayer, temporalLayer }: ConsumerLayers): Promise<void>;
328
+ setPreferredLayers({ spatialLayer, temporalLayer, }: ConsumerLayers): Promise<void>;
329
329
  /**
330
330
  * Set priority.
331
331
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Consumer.d.ts","sourceRoot":"","sources":["../src/Consumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Consumer.d.ts","sourceRoot":"","sources":["../src/Consumer.ts"],"names":[],"mappings":"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"}