mediasoup 3.15.5 → 3.15.7
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.
- package/README.md +13 -4
- package/node/lib/ActiveSpeakerObserver.d.ts.map +1 -1
- package/node/lib/AudioLevelObserver.d.ts.map +1 -1
- package/node/lib/DirectTransport.d.ts.map +1 -1
- package/node/lib/PipeTransport.d.ts.map +1 -1
- package/node/lib/PlainTransport.d.ts.map +1 -1
- package/node/lib/Transport.d.ts.map +1 -1
- package/node/lib/Transport.js +34 -21
- package/node/lib/WebRtcTransport.d.ts.map +1 -1
- package/node/lib/Worker.js +7 -7
- package/node/lib/enhancedEvents.d.ts.map +1 -1
- package/node/lib/index.d.ts +2 -4
- package/node/lib/index.d.ts.map +1 -1
- package/node/lib/index.js +10 -2
- package/node/lib/test/test-Consumer.js +10 -10
- package/node/lib/test/test-DataConsumer.js +103 -45
- package/node/lib/test/test-PipeTransport.js +3 -3
- package/node/lib/test/test-Worker.js +10 -10
- package/node/lib/test/test-mediasoup.js +2 -2
- package/node/lib/test/test-ortc.js +19 -19
- package/npm-scripts.mjs +50 -26
- package/package.json +29 -39
package/README.md
CHANGED
|
@@ -4,11 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
[![][npm-shield-mediasoup]][npm-mediasoup]
|
|
6
6
|
[![][crates-shield-mediasoup]][crates-mediasoup]
|
|
7
|
+
[![][opencollective-shield-mediasoup]][opencollective-mediasoup]
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
7
11
|
[![][github-actions-shield-mediasoup-node]][github-actions-mediasoup-node]
|
|
8
12
|
[![][github-actions-shield-mediasoup-worker]][github-actions-mediasoup-worker]
|
|
9
13
|
[![][github-actions-shield-mediasoup-rust]][github-actions-mediasoup-rust]
|
|
14
|
+
[![][github-actions-shield-mediasoup-worker-fuzzer]][github-actions-mediasoup-worker-fuzzer]
|
|
15
|
+
[![][github-actions-shield-mediasoup-worker-prebuild]][github-actions-mediasoup-worker-prebuild]
|
|
10
16
|
[![][codeql-shield-mediasoup]][codeql-mediasoup]
|
|
11
|
-
[![][opencollective-shield-mediasoup]][opencollective-mediasoup]
|
|
12
17
|
|
|
13
18
|
## Website and Documentation
|
|
14
19
|
|
|
@@ -87,17 +92,21 @@ You can support mediasoup by [sponsoring][sponsor] it. Thanks!
|
|
|
87
92
|
[npm-mediasoup]: https://npmjs.org/package/mediasoup
|
|
88
93
|
[crates-shield-mediasoup]: https://img.shields.io/crates/v/mediasoup.svg
|
|
89
94
|
[crates-mediasoup]: https://crates.io/crates/mediasoup
|
|
95
|
+
[opencollective-shield-mediasoup]: https://img.shields.io/opencollective/all/mediasoup.svg
|
|
96
|
+
[opencollective-mediasoup]: https://opencollective.com/mediasoup
|
|
90
97
|
[github-actions-shield-mediasoup-node]: https://github.com/versatica/mediasoup/actions/workflows/mediasoup-node.yaml/badge.svg
|
|
91
98
|
[github-actions-mediasoup-node]: https://github.com/versatica/mediasoup/actions/workflows/mediasoup-node.yaml
|
|
92
99
|
[github-actions-shield-mediasoup-worker]: https://github.com/versatica/mediasoup/actions/workflows/mediasoup-worker.yaml/badge.svg
|
|
93
100
|
[github-actions-mediasoup-worker]: https://github.com/versatica/mediasoup/actions/workflows/mediasoup-worker.yaml
|
|
94
101
|
[github-actions-shield-mediasoup-rust]: https://github.com/versatica/mediasoup/actions/workflows/mediasoup-rust.yaml/badge.svg
|
|
95
102
|
[github-actions-mediasoup-rust]: https://github.com/versatica/mediasoup/actions/workflows/mediasoup-rust.yaml
|
|
103
|
+
[github-actions-shield-mediasoup-worker-fuzzer]: https://github.com/versatica/mediasoup/actions/workflows/mediasoup-worker-fuzzer.yaml/badge.svg
|
|
104
|
+
[github-actions-mediasoup-worker-fuzzer]: https://github.com/versatica/mediasoup/actions/workflows/mediasoup-worker-fuzzer.yaml
|
|
105
|
+
[github-actions-shield-mediasoup-worker-prebuild]: https://github.com/versatica/mediasoup/actions/workflows/mediasoup-worker-prebuild.yaml/badge.svg
|
|
106
|
+
[github-actions-mediasoup-worker-prebuild]: https://github.com/versatica/mediasoup/actions/workflows/mediasoup-worker-prebuild.yaml
|
|
96
107
|
[codeql-shield-mediasoup]: https://github.com/versatica/mediasoup/actions/workflows/codeql.yml/badge.svg
|
|
97
108
|
[codeql-mediasoup]: https://github.com/versatica/mediasoup/actions/workflows/codeql.yml
|
|
98
|
-
[
|
|
99
|
-
[opencollective-mediasoup]: https://opencollective.com/mediasoup/
|
|
100
|
-
[sponsor]: https://mediasoup.org/sponsor/
|
|
109
|
+
[sponsor]: https://mediasoup.org/sponsor
|
|
101
110
|
[mediasoup-architecture]: /art/mediasoup-v3-architecture-01.svg
|
|
102
111
|
[mediasoup-demo-screenshot]: /art/mediasoup-v3.png
|
|
103
112
|
[mediasoup-demo]: https://v3demo.mediasoup.org
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveSpeakerObserver.d.ts","sourceRoot":"","sources":["../src/ActiveSpeakerObserver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,qBAAqB,EAErB,2BAA2B,EAC3B,6BAA6B,EAE7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIvC,KAAK,qCAAqC,CAAC,4BAA4B,IACtE,6BAA6B,CAAC,4BAA4B,CAAC,CAAC;AAI7D,qBAAa,yBAAyB,CACpC,4BAA4B,SAAS,OAAO,GAAG,OAAO,CAEvD,SAAQ,eAAe,CACtB,4BAA4B,EAC5B,2BAA2B,EAC3B,6BAA6B,CAE9B,YAAW,WAAW,EAAE,qBAAqB;gBAG5C,OAAO,EAAE,qCAAqC,CAAC,4BAA4B,CAAC;IAW7E,IAAI,IAAI,IAAI,eAAe,CAE1B;IAED,
|
|
1
|
+
{"version":3,"file":"ActiveSpeakerObserver.d.ts","sourceRoot":"","sources":["../src/ActiveSpeakerObserver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,qBAAqB,EAErB,2BAA2B,EAC3B,6BAA6B,EAE7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIvC,KAAK,qCAAqC,CAAC,4BAA4B,IACtE,6BAA6B,CAAC,4BAA4B,CAAC,CAAC;AAI7D,qBAAa,yBAAyB,CACpC,4BAA4B,SAAS,OAAO,GAAG,OAAO,CAEvD,SAAQ,eAAe,CACtB,4BAA4B,EAC5B,2BAA2B,EAC3B,6BAA6B,CAE9B,YAAW,WAAW,EAAE,qBAAqB;gBAG5C,OAAO,EAAE,qCAAqC,CAAC,4BAA4B,CAAC;IAW7E,IAAI,IAAI,IAAI,eAAe,CAE1B;IAED,IAAa,QAAQ,IAAI,6BAA6B,CAErD;IAED,OAAO,CAAC,yBAAyB;IAmCjC,OAAO,CAAC,mBAAmB;CAQ3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioLevelObserver.d.ts","sourceRoot":"","sources":["../src/AudioLevelObserver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,kBAAkB,EAElB,wBAAwB,EACxB,0BAA0B,EAE1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,KAAK,oCAAoC,CAAC,yBAAyB,IAClE,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;AAI1D,qBAAa,sBAAsB,CACjC,yBAAyB,SAAS,OAAO,GAAG,OAAO,CAEpD,SAAQ,eAAe,CACtB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,CAE3B,YAAW,WAAW,EAAE,kBAAkB;gBAGzC,OAAO,EAAE,oCAAoC,CAAC,yBAAyB,CAAC;IAWzE,IAAI,IAAI,IAAI,YAAY,CAEvB;IAED,
|
|
1
|
+
{"version":3,"file":"AudioLevelObserver.d.ts","sourceRoot":"","sources":["../src/AudioLevelObserver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,kBAAkB,EAElB,wBAAwB,EACxB,0BAA0B,EAE1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,KAAK,oCAAoC,CAAC,yBAAyB,IAClE,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;AAI1D,qBAAa,sBAAsB,CACjC,yBAAyB,SAAS,OAAO,GAAG,OAAO,CAEpD,SAAQ,eAAe,CACtB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,CAE3B,YAAW,WAAW,EAAE,kBAAkB;gBAGzC,OAAO,EAAE,oCAAoC,CAAC,yBAAyB,CAAC;IAWzE,IAAI,IAAI,IAAI,YAAY,CAEvB;IAED,IAAa,QAAQ,IAAI,0BAA0B,CAElD;IAED,OAAO,CAAC,yBAAyB;IAwDjC,OAAO,CAAC,mBAAmB;CAQ3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectTransport.d.ts","sourceRoot":"","sources":["../src/DirectTransport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACN,aAAa,EACb,2BAA2B,EAI3B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAC;AAK7D,KAAK,iCAAiC,CAAC,sBAAsB,IAC5D,2BAA2B,CAAC,sBAAsB,CAAC,GAAG;IACrD,IAAI,EAAE,mBAAmB,CAAC;CAC1B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG;IACjC,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAIF,qBAAa,mBAAmB,CAC9B,sBAAsB,SAAS,OAAO,GAAG,OAAO,CAEjD,SAAQ,aAAa,CACpB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,CAExB,YAAW,SAAS,EAAE,eAAe;;gBAOpC,OAAO,EAAE,iCAAiC,CAAC,sBAAsB,CAAC;IAiBnE,IAAI,IAAI,IAAI,QAAQ,CAEnB;IAED,
|
|
1
|
+
{"version":3,"file":"DirectTransport.d.ts","sourceRoot":"","sources":["../src/DirectTransport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACN,aAAa,EACb,2BAA2B,EAI3B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAC;AAK7D,KAAK,iCAAiC,CAAC,sBAAsB,IAC5D,2BAA2B,CAAC,sBAAsB,CAAC,GAAG;IACrD,IAAI,EAAE,mBAAmB,CAAC;CAC1B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG;IACjC,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAIF,qBAAa,mBAAmB,CAC9B,sBAAsB,SAAS,OAAO,GAAG,OAAO,CAEjD,SAAQ,aAAa,CACpB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,CAExB,YAAW,SAAS,EAAE,eAAe;;gBAOpC,OAAO,EAAE,iCAAiC,CAAC,sBAAsB,CAAC;IAiBnE,IAAI,IAAI,IAAI,QAAQ,CAEnB;IAED,IAAa,QAAQ,IAAI,uBAAuB,CAE/C;IAEQ,KAAK,IAAI,IAAI;IAQb,YAAY,IAAI,IAAI;IAQvB,IAAI,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAkBpC,QAAQ,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAmB1C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKf,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpE,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAwBlC,OAAO,CAAC,yBAAyB;IA0CjC,OAAO,CAAC,mBAAmB;CAQ3B;AAED,wBAAgB,gCAAgC,CAC/C,MAAM,EAAE,kBAAkB,CAAC,YAAY,GACrC,iBAAiB,CAEnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PipeTransport.d.ts","sourceRoot":"","sources":["../src/PipeTransport.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACN,aAAa,EACb,2BAA2B,EAM3B,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,iBAAiB,CAAC;AAO9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOvC,OAAO,KAAK,gBAAgB,MAAM,sBAAsB,CAAC;AAEzD,KAAK,+BAA+B,CAAC,oBAAoB,IACxD,2BAA2B,CAAC,oBAAoB,CAAC,GAAG;IACnD,IAAI,EAAE,iBAAiB,CAAC;CACxB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,GAAG,EAAE,OAAO,CAAC;IACb,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAIF,qBAAa,iBAAiB,CAAC,oBAAoB,SAAS,OAAO,GAAG,OAAO,CAC5E,SAAQ,aAAa,CACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,CAEtB,YAAW,SAAS,EAAE,aAAa;;gBAKvB,OAAO,EAAE,+BAA+B,CAAC,oBAAoB,CAAC;IAsB1E,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,
|
|
1
|
+
{"version":3,"file":"PipeTransport.d.ts","sourceRoot":"","sources":["../src/PipeTransport.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACN,aAAa,EACb,2BAA2B,EAM3B,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,iBAAiB,CAAC;AAO9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOvC,OAAO,KAAK,gBAAgB,MAAM,sBAAsB,CAAC;AAEzD,KAAK,+BAA+B,CAAC,oBAAoB,IACxD,2BAA2B,CAAC,oBAAoB,CAAC,GAAG;IACnD,IAAI,EAAE,iBAAiB,CAAC;CACxB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,GAAG,EAAE,OAAO,CAAC;IACb,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAIF,qBAAa,iBAAiB,CAAC,oBAAoB,SAAS,OAAO,GAAG,OAAO,CAC5E,SAAQ,aAAa,CACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,CAEtB,YAAW,SAAS,EAAE,aAAa;;gBAKvB,OAAO,EAAE,+BAA+B,CAAC,oBAAoB,CAAC;IAsB1E,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAa,QAAQ,IAAI,qBAAqB,CAE7C;IAED,IAAI,KAAK,IAAI,cAAc,CAE1B;IAED,IAAI,cAAc,IAAI,cAAc,GAAG,SAAS,CAE/C;IAED,IAAI,SAAS,IAAI,SAAS,GAAG,SAAS,CAErC;IAED,IAAI,cAAc,IAAI,cAAc,GAAG,SAAS,CAE/C;IAEQ,KAAK,IAAI,IAAI;IAYb,YAAY,IAAI,IAAI;IAYvB,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAkBlC,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAkBxC,OAAO,CAAC,EACb,EAAE,EACF,IAAI,EACJ,cAAc,GACd,EAAE;QACF,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BF,OAAO,CAAC,eAAe,SAAS,OAAO,GAAG,OAAO,EAAE,EACjE,UAAU,EACV,OAAO,GACP,EAAE,mBAAmB,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAyE5E,OAAO,CAAC,yBAAyB;IA6CjC,OAAO,CAAC,mBAAmB;CAQ3B;AAMD,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,gBAAgB,CAAC,YAAY,GACnC,iBAAiB,CAmBnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainTransport.d.ts","sourceRoot":"","sources":["../src/PlainTransport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACN,aAAa,EACb,2BAA2B,EAM3B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIvC,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAE3D,KAAK,gCAAgC,CAAC,qBAAqB,IAC1D,2BAA2B,CAAC,qBAAqB,CAAC,GAAG;IACpD,IAAI,EAAE,kBAAkB,CAAC;CACzB,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAIF,qBAAa,kBAAkB,CAAC,qBAAqB,SAAS,OAAO,GAAG,OAAO,CAC9E,SAAQ,aAAa,CACpB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,CAEvB,YAAW,SAAS,EAAE,cAAc;;gBAMnC,OAAO,EAAE,gCAAgC,CAAC,qBAAqB,CAAC;IAyBjE,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,
|
|
1
|
+
{"version":3,"file":"PlainTransport.d.ts","sourceRoot":"","sources":["../src/PlainTransport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACN,aAAa,EACb,2BAA2B,EAM3B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIvC,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAE3D,KAAK,gCAAgC,CAAC,qBAAqB,IAC1D,2BAA2B,CAAC,qBAAqB,CAAC,GAAG;IACpD,IAAI,EAAE,kBAAkB,CAAC;CACzB,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAIF,qBAAa,kBAAkB,CAAC,qBAAqB,SAAS,OAAO,GAAG,OAAO,CAC9E,SAAQ,aAAa,CACpB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,CAEvB,YAAW,SAAS,EAAE,cAAc;;gBAMnC,OAAO,EAAE,gCAAgC,CAAC,qBAAqB,CAAC;IAyBjE,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAa,QAAQ,IAAI,sBAAsB,CAE9C;IAED,IAAI,KAAK,IAAI,cAAc,CAE1B;IAED,IAAI,SAAS,IAAI,cAAc,GAAG,SAAS,CAE1C;IAED,IAAI,cAAc,IAAI,cAAc,GAAG,SAAS,CAE/C;IAED,IAAI,SAAS,IAAI,SAAS,GAAG,SAAS,CAErC;IAED,IAAI,cAAc,IAAI,cAAc,GAAG,SAAS,CAE/C;IAEQ,KAAK,IAAI,IAAI;IAYb,YAAY,IAAI,IAAI;IAYvB,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAkBnC,QAAQ,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAkBzC,OAAO,CAAC,EACb,EAAE,EACF,IAAI,EACJ,QAAQ,EACR,cAAc,GACd,EAAE;QACF,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCjB,OAAO,CAAC,yBAAyB;IA+EjC,OAAO,CAAC,mBAAmB;CAQ3B;AAED,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,iBAAiB,CAAC,YAAY,GACpC,kBAAkB,CA4BpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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"}
|
package/node/lib/Transport.js
CHANGED
|
@@ -490,34 +490,47 @@ class TransportImpl extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
490
490
|
let type;
|
|
491
491
|
let sctpStreamParameters;
|
|
492
492
|
let sctpStreamId;
|
|
493
|
+
// If this is a DirectTransport, sctpStreamParameters must not be used.
|
|
494
|
+
if (this.type === 'direct') {
|
|
495
|
+
type = 'direct';
|
|
496
|
+
if (ordered !== undefined ||
|
|
497
|
+
maxPacketLifeTime !== undefined ||
|
|
498
|
+
maxRetransmits !== undefined) {
|
|
499
|
+
logger.warn('consumeData() | ordered, maxPacketLifeTime and maxRetransmits are ignored when consuming data on a DirectTransport');
|
|
500
|
+
}
|
|
501
|
+
}
|
|
493
502
|
// If this is not a DirectTransport, use sctpStreamParameters from the
|
|
494
503
|
// DataProducer (if type 'sctp') unless they are given in method parameters.
|
|
495
|
-
|
|
504
|
+
// If the DataProducer is type 'sctp' and no sctpStreamParameters are given,
|
|
505
|
+
// generate proper ones.
|
|
506
|
+
else {
|
|
496
507
|
type = 'sctp';
|
|
497
|
-
sctpStreamParameters =
|
|
498
|
-
utils.clone(dataProducer.sctpStreamParameters) ?? {};
|
|
499
|
-
// Override if given.
|
|
500
|
-
if (ordered !== undefined) {
|
|
501
|
-
sctpStreamParameters.ordered = ordered;
|
|
502
|
-
}
|
|
503
|
-
if (maxPacketLifeTime !== undefined) {
|
|
504
|
-
sctpStreamParameters.maxPacketLifeTime = maxPacketLifeTime;
|
|
505
|
-
}
|
|
506
|
-
if (maxRetransmits !== undefined) {
|
|
507
|
-
sctpStreamParameters.maxRetransmits = maxRetransmits;
|
|
508
|
-
}
|
|
509
508
|
// This may throw.
|
|
510
509
|
sctpStreamId = this.getNextSctpStreamId();
|
|
510
|
+
sctpStreamParameters = dataProducer.sctpStreamParameters
|
|
511
|
+
? utils.clone(dataProducer.sctpStreamParameters)
|
|
512
|
+
: {
|
|
513
|
+
streamId: sctpStreamId,
|
|
514
|
+
ordered: true,
|
|
515
|
+
};
|
|
511
516
|
this.#sctpStreamIds[sctpStreamId] = 1;
|
|
512
517
|
sctpStreamParameters.streamId = sctpStreamId;
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
518
|
+
if (ordered !== undefined) {
|
|
519
|
+
sctpStreamParameters.ordered = ordered;
|
|
520
|
+
if (ordered) {
|
|
521
|
+
sctpStreamParameters.maxPacketLifeTime = undefined;
|
|
522
|
+
sctpStreamParameters.maxRetransmits = undefined;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
if (!ordered) {
|
|
526
|
+
if (maxPacketLifeTime !== undefined) {
|
|
527
|
+
sctpStreamParameters.ordered = false;
|
|
528
|
+
sctpStreamParameters.maxPacketLifeTime = maxPacketLifeTime;
|
|
529
|
+
}
|
|
530
|
+
if (maxRetransmits !== undefined) {
|
|
531
|
+
sctpStreamParameters.ordered = false;
|
|
532
|
+
sctpStreamParameters.maxRetransmits = maxRetransmits;
|
|
533
|
+
}
|
|
521
534
|
}
|
|
522
535
|
}
|
|
523
536
|
const { label, protocol } = dataProducer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebRtcTransport.d.ts","sourceRoot":"","sources":["../src/WebRtcTransport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EAId,QAAQ,EAIR,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACN,aAAa,EACb,2BAA2B,EAO3B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAC;AAS9D,KAAK,iCAAiC,CAAC,sBAAsB,IAC5D,2BAA2B,CAAC,sBAAsB,CAAC,GAAG;IACrD,IAAI,EAAE,mBAAmB,CAAC;CAC1B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAIF,qBAAa,mBAAmB,CAC9B,sBAAsB,SAAS,OAAO,GAAG,OAAO,CAEjD,SAAQ,aAAa,CACpB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,CAExB,YAAW,SAAS,EAAE,eAAe;;gBAMpC,OAAO,EAAE,iCAAiC,CAAC,sBAAsB,CAAC;IA4BnE,IAAI,IAAI,IAAI,QAAQ,CAEnB;IAED,
|
|
1
|
+
{"version":3,"file":"WebRtcTransport.d.ts","sourceRoot":"","sources":["../src/WebRtcTransport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EAId,QAAQ,EAIR,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACN,aAAa,EACb,2BAA2B,EAO3B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAC;AAS9D,KAAK,iCAAiC,CAAC,sBAAsB,IAC5D,2BAA2B,CAAC,sBAAsB,CAAC,GAAG;IACrD,IAAI,EAAE,mBAAmB,CAAC;CAC1B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAIF,qBAAa,mBAAmB,CAC9B,sBAAsB,SAAS,OAAO,GAAG,OAAO,CAEjD,SAAQ,aAAa,CACpB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,CAExB,YAAW,SAAS,EAAE,eAAe;;gBAMpC,OAAO,EAAE,iCAAiC,CAAC,sBAAsB,CAAC;IA4BnE,IAAI,IAAI,IAAI,QAAQ,CAEnB;IAED,IAAa,QAAQ,IAAI,uBAAuB,CAE/C;IAED,IAAI,OAAO,IAAI,YAAY,CAE1B;IAED,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED,IAAI,aAAa,IAAI,YAAY,EAAE,CAElC;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,gBAAgB,IAAI,cAAc,GAAG,SAAS,CAEjD;IAED,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED,IAAI,cAAc,IAAI,cAAc,GAAG,SAAS,CAE/C;IAED,IAAI,SAAS,IAAI,SAAS,GAAG,SAAS,CAErC;IAEQ,KAAK,IAAI,IAAI;IAgBb,YAAY,IAAI,IAAI;IAgBpB,kBAAkB,IAAI,IAAI;IAgB7B,IAAI,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAkBpC,QAAQ,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAkB1C,OAAO,CAAC,EACb,cAAc,GACd,EAAE;QACF,cAAc,EAAE,cAAc,CAAC;KAC/B,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBX,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IA0B1C,OAAO,CAAC,yBAAyB;IAuGjC,OAAO,CAAC,mBAAmB;CAQ3B;AAwKD,wBAAgB,gCAAgC,CAC/C,MAAM,EAAE,kBAAkB,CAAC,YAAY,GACrC,mBAAmB,CAyBrB"}
|
package/node/lib/Worker.js
CHANGED
|
@@ -23,9 +23,9 @@ const protocol_1 = require("./fbs/transport/protocol");
|
|
|
23
23
|
// If env MEDIASOUP_WORKER_BIN is given, use it as worker binary.
|
|
24
24
|
// Otherwise if env MEDIASOUP_BUILDTYPE is 'Debug' use the Debug binary.
|
|
25
25
|
// Otherwise use the Release binary.
|
|
26
|
-
exports.workerBin = process.env
|
|
27
|
-
? process.env
|
|
28
|
-
: process.env
|
|
26
|
+
exports.workerBin = process.env['MEDIASOUP_WORKER_BIN']
|
|
27
|
+
? process.env['MEDIASOUP_WORKER_BIN']
|
|
28
|
+
: process.env['MEDIASOUP_BUILDTYPE'] === 'Debug'
|
|
29
29
|
? path.join(__dirname, '..', '..', 'worker', 'out', 'Debug', 'mediasoup-worker')
|
|
30
30
|
: path.join(__dirname, '..', '..', 'worker', 'out', 'Release', 'mediasoup-worker');
|
|
31
31
|
const logger = new Logger_1.Logger('Worker');
|
|
@@ -56,10 +56,10 @@ class WorkerImpl extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
56
56
|
logger.debug('constructor()');
|
|
57
57
|
let spawnBin = exports.workerBin;
|
|
58
58
|
let spawnArgs = [];
|
|
59
|
-
if (process.env
|
|
60
|
-
spawnBin = process.env
|
|
61
|
-
if (process.env
|
|
62
|
-
spawnArgs = spawnArgs.concat(process.env
|
|
59
|
+
if (process.env['MEDIASOUP_USE_VALGRIND'] === 'true') {
|
|
60
|
+
spawnBin = process.env['MEDIASOUP_VALGRIND_BIN'] ?? 'valgrind';
|
|
61
|
+
if (process.env['MEDIASOUP_VALGRIND_OPTIONS']) {
|
|
62
|
+
spawnArgs = spawnArgs.concat(process.env['MEDIASOUP_VALGRIND_OPTIONS'].split(/\s+/));
|
|
63
63
|
}
|
|
64
64
|
spawnArgs.push(exports.workerBin);
|
|
65
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhancedEvents.d.ts","sourceRoot":"","sources":["../src/enhancedEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAQ,MAAM,aAAa,CAAC;AAEjD,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAEpC,qBAAa,oBAAoB,CAChC,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,aAAa,SAAS,MAAM,GAAG;IAC9B,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;CAChC,EACD,EAAE,SAAS,MAAM,GAAG,CAAC,GAAG,aAAa,CACpC,SAAQ,YAAY;;
|
|
1
|
+
{"version":3,"file":"enhancedEvents.d.ts","sourceRoot":"","sources":["../src/enhancedEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAQ,MAAM,aAAa,CAAC;AAEjD,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAEpC,qBAAa,oBAAoB,CAChC,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,aAAa,SAAS,MAAM,GAAG;IAC9B,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;CAChC,EACD,EAAE,SAAS,MAAM,GAAG,CAAC,GAAG,aAAa,CACpC,SAAQ,YAAY;;IAOZ,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EACxC,SAAS,EAAE,CAAC,EACZ,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GACZ,OAAO;IAIV;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO;IAcnE,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EACtC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAChC,IAAI;IAME,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EACvC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAChC,IAAI;IAME,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EAC/C,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAChC,IAAI;IAME,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EACnD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAChC,IAAI;IAME,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EACxC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAChC,IAAI;IAME,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EACvD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAChC,IAAI;IAME,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EAClD,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAChC,IAAI;IAME,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EACtD,SAAS,CAAC,EAAE,CAAC,GACX,IAAI;IAME,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM;IAKhE,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE;IAKhE,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE;CAG5E;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAC3D,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAChC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,EAC3B,OAAO,CAAC,EAAE,GAAG,GACX,OAAO,CAAC,GAAG,EAAE,CAAC,CAEhB"}
|
package/node/lib/index.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { Observer, LogEventListeners } from './indexTypes';
|
|
2
2
|
import type { Worker, WorkerSettings } from './WorkerTypes';
|
|
3
|
-
import { workerBin } from './Worker';
|
|
4
3
|
import type { RtpCapabilities } from './rtpParametersTypes';
|
|
5
|
-
import { parseScalabilityMode } from './scalabilityModesUtils';
|
|
6
4
|
import type { AppData } from './types';
|
|
7
5
|
/**
|
|
8
6
|
* Expose all types.
|
|
@@ -20,7 +18,7 @@ export { observer };
|
|
|
20
18
|
/**
|
|
21
19
|
* Full path of the mediasoup-worker binary.
|
|
22
20
|
*/
|
|
23
|
-
export { workerBin };
|
|
21
|
+
export { workerBin } from './Worker';
|
|
24
22
|
/**
|
|
25
23
|
* Set event listeners for mediasoup generated logs. If called with no arguments
|
|
26
24
|
* then no events will be emitted.
|
|
@@ -54,7 +52,7 @@ export declare function getSupportedRtpCapabilities(): RtpCapabilities;
|
|
|
54
52
|
/**
|
|
55
53
|
* Expose parseScalabilityMode() function.
|
|
56
54
|
*/
|
|
57
|
-
export { parseScalabilityMode };
|
|
55
|
+
export { parseScalabilityMode } from './scalabilityModesUtils';
|
|
58
56
|
/**
|
|
59
57
|
* Expose extras module.
|
|
60
58
|
*/
|
package/node/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,EAER,iBAAiB,EAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,EAER,iBAAiB,EAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC;;GAEG;AACH,YAAY,KAAK,KAAK,MAAM,SAAS,CAAC;AAEtC;;GAEG;AAEH,eAAO,MAAM,OAAO,EAAE,MAA8C,CAAC;AAErE,QAAA,MAAM,QAAQ,EAAE,QAAqD,CAAC;AAEtE;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIrC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,iBAAiB,GAAG,IAAI,CA0BxE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,aAAa,SAAS,OAAO,GAAG,OAAO,EAAE,EAC3E,QAAkB,EAClB,OAAO,EACP,UAAkB,EAClB,UAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,OAAO,GACP,GAAE,cAAc,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CA6BrE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,eAAe,CAE7D;AAED;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC"}
|
package/node/lib/index.js
CHANGED
|
@@ -7,10 +7,8 @@ exports.getSupportedRtpCapabilities = getSupportedRtpCapabilities;
|
|
|
7
7
|
const Logger_1 = require("./Logger");
|
|
8
8
|
const enhancedEvents_1 = require("./enhancedEvents");
|
|
9
9
|
const Worker_1 = require("./Worker");
|
|
10
|
-
Object.defineProperty(exports, "workerBin", { enumerable: true, get: function () { return Worker_1.workerBin; } });
|
|
11
10
|
const supportedRtpCapabilities_1 = require("./supportedRtpCapabilities");
|
|
12
11
|
const scalabilityModesUtils_1 = require("./scalabilityModesUtils");
|
|
13
|
-
Object.defineProperty(exports, "parseScalabilityMode", { enumerable: true, get: function () { return scalabilityModesUtils_1.parseScalabilityMode; } });
|
|
14
12
|
const utils = require("./utils");
|
|
15
13
|
/**
|
|
16
14
|
* Expose mediasoup version.
|
|
@@ -19,6 +17,11 @@ const utils = require("./utils");
|
|
|
19
17
|
exports.version = require('../../package.json').version;
|
|
20
18
|
const observer = new enhancedEvents_1.EnhancedEventEmitter();
|
|
21
19
|
exports.observer = observer;
|
|
20
|
+
/**
|
|
21
|
+
* Full path of the mediasoup-worker binary.
|
|
22
|
+
*/
|
|
23
|
+
var Worker_2 = require("./Worker");
|
|
24
|
+
Object.defineProperty(exports, "workerBin", { enumerable: true, get: function () { return Worker_2.workerBin; } });
|
|
22
25
|
const logger = new Logger_1.Logger();
|
|
23
26
|
/**
|
|
24
27
|
* Set event listeners for mediasoup generated logs. If called with no arguments
|
|
@@ -94,6 +97,11 @@ async function createWorker({ logLevel = 'error', logTags, rtcMinPort = 10000, r
|
|
|
94
97
|
function getSupportedRtpCapabilities() {
|
|
95
98
|
return utils.clone(supportedRtpCapabilities_1.supportedRtpCapabilities);
|
|
96
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Expose parseScalabilityMode() function.
|
|
102
|
+
*/
|
|
103
|
+
var scalabilityModesUtils_2 = require("./scalabilityModesUtils");
|
|
104
|
+
Object.defineProperty(exports, "parseScalabilityMode", { enumerable: true, get: function () { return scalabilityModesUtils_2.parseScalabilityMode; } });
|
|
97
105
|
/**
|
|
98
106
|
* Expose extras module.
|
|
99
107
|
*/
|
|
@@ -555,7 +555,7 @@ test('consumer.dump() succeeds', async () => {
|
|
|
555
555
|
expect(dump1.rtpParameters.encodings).toEqual([
|
|
556
556
|
expect.objectContaining({
|
|
557
557
|
codecPayloadType: 100,
|
|
558
|
-
ssrc: audioConsumer.rtpParameters.encodings
|
|
558
|
+
ssrc: audioConsumer.rtpParameters.encodings[0].ssrc,
|
|
559
559
|
}),
|
|
560
560
|
]);
|
|
561
561
|
expect(dump1.type).toBe('simple');
|
|
@@ -563,7 +563,7 @@ test('consumer.dump() succeeds', async () => {
|
|
|
563
563
|
expect(dump1.consumableRtpEncodings.length).toBe(1);
|
|
564
564
|
expect(dump1.consumableRtpEncodings).toEqual([
|
|
565
565
|
expect.objectContaining({
|
|
566
|
-
ssrc: ctx.audioProducer.consumableRtpParameters.encodings
|
|
566
|
+
ssrc: ctx.audioProducer.consumableRtpParameters.encodings[0].ssrc,
|
|
567
567
|
}),
|
|
568
568
|
]);
|
|
569
569
|
expect(dump1.supportedCodecPayloadTypes).toEqual([100]);
|
|
@@ -629,9 +629,9 @@ test('consumer.dump() succeeds', async () => {
|
|
|
629
629
|
expect(dump2.rtpParameters.encodings).toMatchObject([
|
|
630
630
|
{
|
|
631
631
|
codecPayloadType: 103,
|
|
632
|
-
ssrc: videoConsumer.rtpParameters.encodings
|
|
632
|
+
ssrc: videoConsumer.rtpParameters.encodings[0].ssrc,
|
|
633
633
|
rtx: {
|
|
634
|
-
ssrc: videoConsumer.rtpParameters.encodings
|
|
634
|
+
ssrc: videoConsumer.rtpParameters.encodings[0].rtx?.ssrc,
|
|
635
635
|
},
|
|
636
636
|
scalabilityMode: 'L4T5',
|
|
637
637
|
},
|
|
@@ -639,19 +639,19 @@ test('consumer.dump() succeeds', async () => {
|
|
|
639
639
|
expect(Array.isArray(dump2.consumableRtpEncodings)).toBe(true);
|
|
640
640
|
expect(dump2.consumableRtpEncodings.length).toBe(4);
|
|
641
641
|
expect(dump2.consumableRtpEncodings[0]).toEqual(expect.objectContaining({
|
|
642
|
-
ssrc: ctx.videoProducer.consumableRtpParameters.encodings
|
|
642
|
+
ssrc: ctx.videoProducer.consumableRtpParameters.encodings[0].ssrc,
|
|
643
643
|
scalabilityMode: 'L1T5',
|
|
644
644
|
}));
|
|
645
645
|
expect(dump2.consumableRtpEncodings[1]).toEqual(expect.objectContaining({
|
|
646
|
-
ssrc: ctx.videoProducer.consumableRtpParameters.encodings
|
|
646
|
+
ssrc: ctx.videoProducer.consumableRtpParameters.encodings[1].ssrc,
|
|
647
647
|
scalabilityMode: 'L1T5',
|
|
648
648
|
}));
|
|
649
649
|
expect(dump2.consumableRtpEncodings[2]).toEqual(expect.objectContaining({
|
|
650
|
-
ssrc: ctx.videoProducer.consumableRtpParameters.encodings
|
|
650
|
+
ssrc: ctx.videoProducer.consumableRtpParameters.encodings[2].ssrc,
|
|
651
651
|
scalabilityMode: 'L1T5',
|
|
652
652
|
}));
|
|
653
653
|
expect(dump2.consumableRtpEncodings[3]).toEqual(expect.objectContaining({
|
|
654
|
-
ssrc: ctx.videoProducer.consumableRtpParameters.encodings
|
|
654
|
+
ssrc: ctx.videoProducer.consumableRtpParameters.encodings[3].ssrc,
|
|
655
655
|
scalabilityMode: 'L1T5',
|
|
656
656
|
}));
|
|
657
657
|
expect(dump2.supportedCodecPayloadTypes).toEqual([103]);
|
|
@@ -669,7 +669,7 @@ test('consumer.getStats() succeeds', async () => {
|
|
|
669
669
|
type: 'outbound-rtp',
|
|
670
670
|
kind: 'audio',
|
|
671
671
|
mimeType: 'audio/opus',
|
|
672
|
-
ssrc: audioConsumer.rtpParameters.encodings
|
|
672
|
+
ssrc: audioConsumer.rtpParameters.encodings[0].ssrc,
|
|
673
673
|
}),
|
|
674
674
|
]);
|
|
675
675
|
const videoConsumer = await ctx.webRtcTransport2.consume({
|
|
@@ -681,7 +681,7 @@ test('consumer.getStats() succeeds', async () => {
|
|
|
681
681
|
type: 'outbound-rtp',
|
|
682
682
|
kind: 'video',
|
|
683
683
|
mimeType: 'video/H264',
|
|
684
|
-
ssrc: videoConsumer.rtpParameters.encodings
|
|
684
|
+
ssrc: videoConsumer.rtpParameters.encodings[0].ssrc,
|
|
685
685
|
}),
|
|
686
686
|
]);
|
|
687
687
|
}, 2000);
|
|
@@ -4,7 +4,7 @@ const mediasoup = require("../");
|
|
|
4
4
|
const enhancedEvents_1 = require("../enhancedEvents");
|
|
5
5
|
const utils = require("../utils");
|
|
6
6
|
const ctx = {
|
|
7
|
-
|
|
7
|
+
sctpDataProducerOptions: utils.deepFreeze({
|
|
8
8
|
sctpStreamParameters: {
|
|
9
9
|
streamId: 12345,
|
|
10
10
|
ordered: false,
|
|
@@ -26,7 +26,8 @@ beforeEach(async () => {
|
|
|
26
26
|
enableSctp: true,
|
|
27
27
|
});
|
|
28
28
|
ctx.directTransport = await ctx.router.createDirectTransport();
|
|
29
|
-
ctx.
|
|
29
|
+
ctx.sctpDataProducer = await ctx.webRtcTransport1.produceData(ctx.sctpDataProducerOptions);
|
|
30
|
+
ctx.directDataProducer = await ctx.directTransport.produceData();
|
|
30
31
|
});
|
|
31
32
|
afterEach(async () => {
|
|
32
33
|
ctx.worker?.close();
|
|
@@ -37,8 +38,8 @@ afterEach(async () => {
|
|
|
37
38
|
test('transport.consumeData() succeeds', async () => {
|
|
38
39
|
const onObserverNewDataConsumer = jest.fn();
|
|
39
40
|
ctx.webRtcTransport2.observer.once('newdataconsumer', onObserverNewDataConsumer);
|
|
40
|
-
const
|
|
41
|
-
dataProducerId: ctx.
|
|
41
|
+
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
42
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
42
43
|
maxPacketLifeTime: 4000,
|
|
43
44
|
// Valid values are 0...65535 so others and duplicated ones will be
|
|
44
45
|
// discarded.
|
|
@@ -46,38 +47,38 @@ test('transport.consumeData() succeeds', async () => {
|
|
|
46
47
|
appData: { baz: 'LOL' },
|
|
47
48
|
});
|
|
48
49
|
expect(onObserverNewDataConsumer).toHaveBeenCalledTimes(1);
|
|
49
|
-
expect(onObserverNewDataConsumer).toHaveBeenCalledWith(
|
|
50
|
-
expect(typeof
|
|
51
|
-
expect(
|
|
52
|
-
expect(
|
|
53
|
-
expect(
|
|
54
|
-
expect(typeof
|
|
55
|
-
expect(typeof
|
|
56
|
-
expect(
|
|
57
|
-
expect(
|
|
58
|
-
expect(
|
|
59
|
-
expect(
|
|
60
|
-
expect(
|
|
61
|
-
expect(
|
|
62
|
-
expect(
|
|
63
|
-
expect(
|
|
50
|
+
expect(onObserverNewDataConsumer).toHaveBeenCalledWith(dataConsumer);
|
|
51
|
+
expect(typeof dataConsumer.id).toBe('string');
|
|
52
|
+
expect(dataConsumer.dataProducerId).toBe(ctx.sctpDataProducer.id);
|
|
53
|
+
expect(dataConsumer.closed).toBe(false);
|
|
54
|
+
expect(dataConsumer.type).toBe('sctp');
|
|
55
|
+
expect(typeof dataConsumer.sctpStreamParameters).toBe('object');
|
|
56
|
+
expect(typeof dataConsumer.sctpStreamParameters.streamId).toBe('number');
|
|
57
|
+
expect(dataConsumer.sctpStreamParameters.ordered).toBe(false);
|
|
58
|
+
expect(dataConsumer.sctpStreamParameters.maxPacketLifeTime).toBe(4000);
|
|
59
|
+
expect(dataConsumer.sctpStreamParameters.maxRetransmits).toBeUndefined();
|
|
60
|
+
expect(dataConsumer.label).toBe('foo');
|
|
61
|
+
expect(dataConsumer.protocol).toBe('bar');
|
|
62
|
+
expect(dataConsumer.paused).toBe(false);
|
|
63
|
+
expect(dataConsumer.subchannels).toEqual(expect.arrayContaining([0, 1, 2, 100, 65535]));
|
|
64
|
+
expect(dataConsumer.appData).toEqual({ baz: 'LOL' });
|
|
64
65
|
const dump = await ctx.router.dump();
|
|
65
66
|
expect(dump.mapDataProducerIdDataConsumerIds).toEqual(expect.arrayContaining([
|
|
66
|
-
{ key: ctx.
|
|
67
|
+
{ key: ctx.sctpDataProducer.id, values: [dataConsumer.id] },
|
|
67
68
|
]));
|
|
68
69
|
expect(dump.mapDataConsumerIdDataProducerId).toEqual(expect.arrayContaining([
|
|
69
|
-
{ key:
|
|
70
|
+
{ key: dataConsumer.id, value: ctx.sctpDataProducer.id },
|
|
70
71
|
]));
|
|
71
72
|
await expect(ctx.webRtcTransport2.dump()).resolves.toMatchObject({
|
|
72
73
|
id: ctx.webRtcTransport2.id,
|
|
73
74
|
dataProducerIds: [],
|
|
74
|
-
dataConsumerIds: [
|
|
75
|
+
dataConsumerIds: [dataConsumer.id],
|
|
75
76
|
});
|
|
76
77
|
}, 2000);
|
|
77
78
|
test('dataConsumer.dump() succeeds', async () => {
|
|
78
79
|
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
79
|
-
dataProducerId: ctx.
|
|
80
|
-
|
|
80
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
81
|
+
ordered: true,
|
|
81
82
|
// Valid values are 0...65535 so others and duplicated ones will be
|
|
82
83
|
// discarded.
|
|
83
84
|
subchannels: [0, 1, 1, 1, 2, 65535, 65536, 65537, 100],
|
|
@@ -88,9 +89,9 @@ test('dataConsumer.dump() succeeds', async () => {
|
|
|
88
89
|
expect(dump.dataProducerId).toBe(dataConsumer.dataProducerId);
|
|
89
90
|
expect(dump.type).toBe('sctp');
|
|
90
91
|
expect(typeof dump.sctpStreamParameters).toBe('object');
|
|
91
|
-
expect(dump.sctpStreamParameters.streamId).toBe(dataConsumer.sctpStreamParameters
|
|
92
|
-
expect(dump.sctpStreamParameters.ordered).toBe(
|
|
93
|
-
expect(dump.sctpStreamParameters.maxPacketLifeTime).
|
|
92
|
+
expect(dump.sctpStreamParameters.streamId).toBe(dataConsumer.sctpStreamParameters.streamId);
|
|
93
|
+
expect(dump.sctpStreamParameters.ordered).toBe(true);
|
|
94
|
+
expect(dump.sctpStreamParameters.maxPacketLifeTime).toBeUndefined();
|
|
94
95
|
expect(dump.sctpStreamParameters.maxRetransmits).toBeUndefined();
|
|
95
96
|
expect(dump.label).toBe('foo');
|
|
96
97
|
expect(dump.protocol).toBe('bar');
|
|
@@ -100,7 +101,7 @@ test('dataConsumer.dump() succeeds', async () => {
|
|
|
100
101
|
}, 2000);
|
|
101
102
|
test('dataConsumer.getStats() succeeds', async () => {
|
|
102
103
|
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
103
|
-
dataProducerId: ctx.
|
|
104
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
104
105
|
});
|
|
105
106
|
await expect(dataConsumer.getStats()).resolves.toMatchObject([
|
|
106
107
|
{
|
|
@@ -114,14 +115,14 @@ test('dataConsumer.getStats() succeeds', async () => {
|
|
|
114
115
|
}, 2000);
|
|
115
116
|
test('dataConsumer.setSubchannels() succeeds', async () => {
|
|
116
117
|
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
117
|
-
dataProducerId: ctx.
|
|
118
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
118
119
|
});
|
|
119
120
|
await dataConsumer.setSubchannels([999, 999, 998, 65536]);
|
|
120
121
|
expect(dataConsumer.subchannels).toEqual(expect.arrayContaining([0, 998, 999]));
|
|
121
122
|
}, 2000);
|
|
122
123
|
test('dataConsumer.addSubchannel() and .removeSubchannel() succeed', async () => {
|
|
123
124
|
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
124
|
-
dataProducerId: ctx.
|
|
125
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
125
126
|
});
|
|
126
127
|
await dataConsumer.setSubchannels([]);
|
|
127
128
|
expect(dataConsumer.subchannels).toEqual([]);
|
|
@@ -138,18 +139,75 @@ test('dataConsumer.addSubchannel() and .removeSubchannel() succeed', async () =>
|
|
|
138
139
|
await dataConsumer.setSubchannels([]);
|
|
139
140
|
expect(dataConsumer.subchannels).toEqual([]);
|
|
140
141
|
}, 2000);
|
|
142
|
+
test('transport.consumeData() from a direct DataProducer succeeds', async () => {
|
|
143
|
+
const onObserverNewDataConsumer = jest.fn();
|
|
144
|
+
ctx.webRtcTransport2.observer.once('newdataconsumer', onObserverNewDataConsumer);
|
|
145
|
+
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
146
|
+
dataProducerId: ctx.directDataProducer.id,
|
|
147
|
+
});
|
|
148
|
+
expect(onObserverNewDataConsumer).toHaveBeenCalledTimes(1);
|
|
149
|
+
expect(onObserverNewDataConsumer).toHaveBeenCalledWith(dataConsumer);
|
|
150
|
+
expect(typeof dataConsumer.id).toBe('string');
|
|
151
|
+
expect(dataConsumer.dataProducerId).toBe(ctx.directDataProducer.id);
|
|
152
|
+
expect(dataConsumer.closed).toBe(false);
|
|
153
|
+
expect(dataConsumer.type).toBe('sctp');
|
|
154
|
+
expect(typeof dataConsumer.sctpStreamParameters).toBe('object');
|
|
155
|
+
expect(typeof dataConsumer.sctpStreamParameters.streamId).toBe('number');
|
|
156
|
+
expect(dataConsumer.sctpStreamParameters.ordered).toBe(true);
|
|
157
|
+
expect(dataConsumer.sctpStreamParameters.maxPacketLifeTime).toBeUndefined();
|
|
158
|
+
expect(dataConsumer.sctpStreamParameters.maxRetransmits).toBeUndefined();
|
|
159
|
+
expect(dataConsumer.label).toBe('');
|
|
160
|
+
expect(dataConsumer.protocol).toBe('');
|
|
161
|
+
expect(dataConsumer.paused).toBe(false);
|
|
162
|
+
expect(dataConsumer.subchannels).toEqual([]);
|
|
163
|
+
expect(dataConsumer.appData).toEqual({});
|
|
164
|
+
const dump = await ctx.router.dump();
|
|
165
|
+
expect(dump.mapDataProducerIdDataConsumerIds).toEqual(expect.arrayContaining([
|
|
166
|
+
{ key: ctx.directDataProducer.id, values: [dataConsumer.id] },
|
|
167
|
+
]));
|
|
168
|
+
expect(dump.mapDataConsumerIdDataProducerId).toEqual(expect.arrayContaining([
|
|
169
|
+
{ key: dataConsumer.id, value: ctx.directDataProducer.id },
|
|
170
|
+
]));
|
|
171
|
+
await expect(ctx.webRtcTransport2.dump()).resolves.toMatchObject({
|
|
172
|
+
id: ctx.webRtcTransport2.id,
|
|
173
|
+
dataProducerIds: [],
|
|
174
|
+
dataConsumerIds: [dataConsumer.id],
|
|
175
|
+
});
|
|
176
|
+
}, 2000);
|
|
177
|
+
test('dataConsumer.dump() consuming from a direct DataProducer succeeds', async () => {
|
|
178
|
+
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
179
|
+
dataProducerId: ctx.directDataProducer.id,
|
|
180
|
+
ordered: false,
|
|
181
|
+
maxRetransmits: 2,
|
|
182
|
+
subchannels: [0, 1],
|
|
183
|
+
});
|
|
184
|
+
const dump = await dataConsumer.dump();
|
|
185
|
+
expect(dump.id).toBe(dataConsumer.id);
|
|
186
|
+
expect(dump.dataProducerId).toBe(dataConsumer.dataProducerId);
|
|
187
|
+
expect(dump.type).toBe('sctp');
|
|
188
|
+
expect(typeof dump.sctpStreamParameters).toBe('object');
|
|
189
|
+
expect(dump.sctpStreamParameters.streamId).toBe(dataConsumer.sctpStreamParameters.streamId);
|
|
190
|
+
expect(dump.sctpStreamParameters.ordered).toBe(false);
|
|
191
|
+
expect(dump.sctpStreamParameters.maxPacketLifeTime).toBeUndefined();
|
|
192
|
+
expect(dump.sctpStreamParameters.maxRetransmits).toBe(2);
|
|
193
|
+
expect(dump.label).toBe('');
|
|
194
|
+
expect(dump.protocol).toBe('');
|
|
195
|
+
expect(dump.paused).toBe(false);
|
|
196
|
+
expect(dump.dataProducerPaused).toBe(false);
|
|
197
|
+
expect(dump.subchannels).toEqual(expect.arrayContaining([0, 1]));
|
|
198
|
+
}, 2000);
|
|
141
199
|
test('transport.consumeData() on a DirectTransport succeeds', async () => {
|
|
142
200
|
const onObserverNewDataConsumer = jest.fn();
|
|
143
201
|
ctx.directTransport.observer.once('newdataconsumer', onObserverNewDataConsumer);
|
|
144
202
|
const dataConsumer = await ctx.directTransport.consumeData({
|
|
145
|
-
dataProducerId: ctx.
|
|
203
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
146
204
|
paused: true,
|
|
147
205
|
appData: { hehe: 'HEHE' },
|
|
148
206
|
});
|
|
149
207
|
expect(onObserverNewDataConsumer).toHaveBeenCalledTimes(1);
|
|
150
208
|
expect(onObserverNewDataConsumer).toHaveBeenCalledWith(dataConsumer);
|
|
151
209
|
expect(typeof dataConsumer.id).toBe('string');
|
|
152
|
-
expect(dataConsumer.dataProducerId).toBe(ctx.
|
|
210
|
+
expect(dataConsumer.dataProducerId).toBe(ctx.sctpDataProducer.id);
|
|
153
211
|
expect(dataConsumer.closed).toBe(false);
|
|
154
212
|
expect(dataConsumer.type).toBe('direct');
|
|
155
213
|
expect(dataConsumer.sctpStreamParameters).toBeUndefined();
|
|
@@ -159,13 +217,13 @@ test('transport.consumeData() on a DirectTransport succeeds', async () => {
|
|
|
159
217
|
expect(dataConsumer.appData).toEqual({ hehe: 'HEHE' });
|
|
160
218
|
await expect(ctx.directTransport.dump()).resolves.toMatchObject({
|
|
161
219
|
id: ctx.directTransport.id,
|
|
162
|
-
dataProducerIds: [],
|
|
220
|
+
dataProducerIds: [ctx.directDataProducer.id],
|
|
163
221
|
dataConsumerIds: [dataConsumer.id],
|
|
164
222
|
});
|
|
165
223
|
}, 2000);
|
|
166
224
|
test('dataConsumer.dump() on a DirectTransport succeeds', async () => {
|
|
167
225
|
const dataConsumer = await ctx.directTransport.consumeData({
|
|
168
|
-
dataProducerId: ctx.
|
|
226
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
169
227
|
paused: true,
|
|
170
228
|
});
|
|
171
229
|
const dump = await dataConsumer.dump();
|
|
@@ -180,7 +238,7 @@ test('dataConsumer.dump() on a DirectTransport succeeds', async () => {
|
|
|
180
238
|
}, 2000);
|
|
181
239
|
test('dataConsumer.getStats() on a DirectTransport succeeds', async () => {
|
|
182
240
|
const dataConsumer = await ctx.directTransport.consumeData({
|
|
183
|
-
dataProducerId: ctx.
|
|
241
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
184
242
|
});
|
|
185
243
|
await expect(dataConsumer.getStats()).resolves.toMatchObject([
|
|
186
244
|
{
|
|
@@ -196,7 +254,7 @@ test('dataConsumer.pause() and resume() succeed', async () => {
|
|
|
196
254
|
const onObserverPause = jest.fn();
|
|
197
255
|
const onObserverResume = jest.fn();
|
|
198
256
|
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
199
|
-
dataProducerId: ctx.
|
|
257
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
200
258
|
});
|
|
201
259
|
dataConsumer.observer.on('pause', onObserverPause);
|
|
202
260
|
dataConsumer.observer.on('resume', onObserverResume);
|
|
@@ -221,7 +279,7 @@ test('dataConsumer.pause() and resume() succeed', async () => {
|
|
|
221
279
|
}, 2000);
|
|
222
280
|
test('dataProducer.pause() and resume() emit events', async () => {
|
|
223
281
|
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
224
|
-
dataProducerId: ctx.
|
|
282
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
225
283
|
});
|
|
226
284
|
const promises = [];
|
|
227
285
|
const events = [];
|
|
@@ -231,8 +289,8 @@ test('dataProducer.pause() and resume() emit events', async () => {
|
|
|
231
289
|
dataConsumer.observer.once('pause', () => {
|
|
232
290
|
events.push('pause');
|
|
233
291
|
});
|
|
234
|
-
promises.push(ctx.
|
|
235
|
-
promises.push(ctx.
|
|
292
|
+
promises.push(ctx.sctpDataProducer.pause());
|
|
293
|
+
promises.push(ctx.sctpDataProducer.resume());
|
|
236
294
|
await Promise.all(promises);
|
|
237
295
|
// Must also wait a bit for the corresponding events in the data consumer.
|
|
238
296
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
@@ -242,14 +300,14 @@ test('dataProducer.pause() and resume() emit events', async () => {
|
|
|
242
300
|
test('dataConsumer.close() succeeds', async () => {
|
|
243
301
|
const onObserverClose = jest.fn();
|
|
244
302
|
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
245
|
-
dataProducerId: ctx.
|
|
303
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
246
304
|
});
|
|
247
305
|
dataConsumer.observer.once('close', onObserverClose);
|
|
248
306
|
dataConsumer.close();
|
|
249
307
|
expect(onObserverClose).toHaveBeenCalledTimes(1);
|
|
250
308
|
expect(dataConsumer.closed).toBe(true);
|
|
251
309
|
const dump = await ctx.router.dump();
|
|
252
|
-
expect(dump.mapDataProducerIdDataConsumerIds).toEqual(expect.arrayContaining([{ key: ctx.
|
|
310
|
+
expect(dump.mapDataProducerIdDataConsumerIds).toEqual(expect.arrayContaining([{ key: ctx.sctpDataProducer.id, values: [] }]));
|
|
253
311
|
expect(dump.mapDataConsumerIdDataProducerId).toEqual([]);
|
|
254
312
|
await expect(ctx.webRtcTransport2.dump()).resolves.toMatchObject({
|
|
255
313
|
id: ctx.webRtcTransport2.id,
|
|
@@ -259,7 +317,7 @@ test('dataConsumer.close() succeeds', async () => {
|
|
|
259
317
|
}, 2000);
|
|
260
318
|
test('Consumer methods reject if closed', async () => {
|
|
261
319
|
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
262
|
-
dataProducerId: ctx.
|
|
320
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
263
321
|
});
|
|
264
322
|
dataConsumer.close();
|
|
265
323
|
await expect(dataConsumer.dump()).rejects.toThrow(Error);
|
|
@@ -267,19 +325,19 @@ test('Consumer methods reject if closed', async () => {
|
|
|
267
325
|
}, 2000);
|
|
268
326
|
test('DataConsumer emits "dataproducerclose" if DataProducer is closed', async () => {
|
|
269
327
|
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
270
|
-
dataProducerId: ctx.
|
|
328
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
271
329
|
});
|
|
272
330
|
const onObserverClose = jest.fn();
|
|
273
331
|
dataConsumer.observer.once('close', onObserverClose);
|
|
274
332
|
const promise = (0, enhancedEvents_1.enhancedOnce)(dataConsumer, 'dataproducerclose');
|
|
275
|
-
ctx.
|
|
333
|
+
ctx.sctpDataProducer.close();
|
|
276
334
|
await promise;
|
|
277
335
|
expect(onObserverClose).toHaveBeenCalledTimes(1);
|
|
278
336
|
expect(dataConsumer.closed).toBe(true);
|
|
279
337
|
}, 2000);
|
|
280
338
|
test('DataConsumer emits "transportclose" if Transport is closed', async () => {
|
|
281
339
|
const dataConsumer = await ctx.webRtcTransport2.consumeData({
|
|
282
|
-
dataProducerId: ctx.
|
|
340
|
+
dataProducerId: ctx.sctpDataProducer.id,
|
|
283
341
|
});
|
|
284
342
|
const onObserverClose = jest.fn();
|
|
285
343
|
dataConsumer.observer.once('close', onObserverClose);
|
|
@@ -703,9 +703,9 @@ test('transport.consume() for a pipe Producer succeeds', async () => {
|
|
|
703
703
|
},
|
|
704
704
|
]);
|
|
705
705
|
expect(videoConsumer.rtpParameters.encodings?.length).toBe(1);
|
|
706
|
-
expect(typeof videoConsumer.rtpParameters.encodings
|
|
707
|
-
expect(typeof videoConsumer.rtpParameters.encodings
|
|
708
|
-
expect(typeof videoConsumer.rtpParameters.encodings
|
|
706
|
+
expect(typeof videoConsumer.rtpParameters.encodings[0].ssrc).toBe('number');
|
|
707
|
+
expect(typeof videoConsumer.rtpParameters.encodings[0].rtx).toBe('object');
|
|
708
|
+
expect(typeof videoConsumer.rtpParameters.encodings[0].rtx?.ssrc).toBe('number');
|
|
709
709
|
expect(videoConsumer.type).toBe('simulcast');
|
|
710
710
|
expect(videoConsumer.paused).toBe(false);
|
|
711
711
|
expect(videoConsumer.producerPaused).toBe(false);
|
|
@@ -6,15 +6,15 @@ const path = require("node:path");
|
|
|
6
6
|
const mediasoup = require("../");
|
|
7
7
|
const enhancedEvents_1 = require("../enhancedEvents");
|
|
8
8
|
const errors_1 = require("../errors");
|
|
9
|
-
test('
|
|
10
|
-
const workerBin = process.env
|
|
11
|
-
? process.env
|
|
12
|
-
: process.env
|
|
9
|
+
test('mediasoup.workerBin matches mediasoup-worker absolute path', () => {
|
|
10
|
+
const workerBin = process.env['MEDIASOUP_WORKER_BIN']
|
|
11
|
+
? process.env['MEDIASOUP_WORKER_BIN']
|
|
12
|
+
: process.env['MEDIASOUP_BUILDTYPE'] === 'Debug'
|
|
13
13
|
? path.join(__dirname, '..', '..', '..', 'worker', 'out', 'Debug', 'mediasoup-worker')
|
|
14
14
|
: path.join(__dirname, '..', '..', '..', 'worker', 'out', 'Release', 'mediasoup-worker');
|
|
15
15
|
expect(mediasoup.workerBin).toBe(workerBin);
|
|
16
16
|
});
|
|
17
|
-
test('createWorker() succeeds', async () => {
|
|
17
|
+
test('mediasoup.createWorker() succeeds', async () => {
|
|
18
18
|
const onObserverNewWorker = jest.fn();
|
|
19
19
|
mediasoup.observer.once('newworker', onObserverNewWorker);
|
|
20
20
|
const worker1 = await mediasoup.createWorker();
|
|
@@ -49,7 +49,7 @@ test('createWorker() succeeds', async () => {
|
|
|
49
49
|
expect(worker2.closed).toBe(true);
|
|
50
50
|
expect(worker2.died).toBe(false);
|
|
51
51
|
}, 2000);
|
|
52
|
-
test('createWorker() with wrong settings rejects with TypeError', async () => {
|
|
52
|
+
test('mediasoup.createWorker() with wrong settings rejects with TypeError', async () => {
|
|
53
53
|
// @ts-expect-error --- Testing purposes.
|
|
54
54
|
await expect(mediasoup.createWorker({ logLevel: 'chicken' })).rejects.toThrow(TypeError);
|
|
55
55
|
await expect(mediasoup.createWorker({ rtcMinPort: 1000, rtcMaxPort: 999 })).rejects.toThrow(TypeError);
|
|
@@ -115,7 +115,7 @@ test('worker.close() succeeds', async () => {
|
|
|
115
115
|
expect(worker.closed).toBe(true);
|
|
116
116
|
expect(worker.died).toBe(false);
|
|
117
117
|
}, 2000);
|
|
118
|
-
test('Worker emits "died" if worker process died unexpectedly', async () => {
|
|
118
|
+
test('Worker emits "died" if mediasoup-worker process died unexpectedly', async () => {
|
|
119
119
|
let onDied;
|
|
120
120
|
let onObserverClose;
|
|
121
121
|
const worker1 = await mediasoup.createWorker({ logLevel: 'warn' });
|
|
@@ -200,7 +200,7 @@ test('Worker emits "died" if worker process died unexpectedly', async () => {
|
|
|
200
200
|
// Windows doesn't have some signals such as SIGPIPE, SIGALRM, SIGUSR1, SIGUSR2
|
|
201
201
|
// so we just skip this test in Windows.
|
|
202
202
|
if (os.platform() !== 'win32') {
|
|
203
|
-
test('worker process ignores PIPE, HUP, ALRM, USR1 and USR2 signals', async () => {
|
|
203
|
+
test('mediasoup-worker process ignores PIPE, HUP, ALRM, USR1 and USR2 signals', async () => {
|
|
204
204
|
const worker = await mediasoup.createWorker({ logLevel: 'warn' });
|
|
205
205
|
await new Promise((resolve, reject) => {
|
|
206
206
|
worker.on('died', reject);
|
|
@@ -211,9 +211,9 @@ if (os.platform() !== 'win32') {
|
|
|
211
211
|
process.kill(worker.pid, 'SIGUSR2');
|
|
212
212
|
setTimeout(() => {
|
|
213
213
|
expect(worker.closed).toBe(false);
|
|
214
|
-
worker.close();
|
|
215
214
|
worker.on('subprocessclose', resolve);
|
|
215
|
+
worker.close();
|
|
216
216
|
}, 2000);
|
|
217
217
|
});
|
|
218
|
-
},
|
|
218
|
+
}, 4000);
|
|
219
219
|
}
|
|
@@ -11,7 +11,7 @@ const { version, getSupportedRtpCapabilities, parseScalabilityMode } = mediasoup
|
|
|
11
11
|
test('mediasoup.version matches version field in package.json', () => {
|
|
12
12
|
expect(version).toBe(PKG.version);
|
|
13
13
|
});
|
|
14
|
-
test('setLoggerEventListeners()
|
|
14
|
+
test('mediasoup.setLoggerEventListeners() succeeds', async () => {
|
|
15
15
|
const onDebug = jest.fn();
|
|
16
16
|
mediasoup.setLogEventListeners({
|
|
17
17
|
ondebug: onDebug,
|
|
@@ -35,7 +35,7 @@ test('mediasoup.getSupportedRtpCapabilities() returns the mediasoup RTP capabili
|
|
|
35
35
|
const rtpCapabilities2 = getSupportedRtpCapabilities();
|
|
36
36
|
expect(rtpCapabilities2).not.toEqual(rtpCapabilities);
|
|
37
37
|
});
|
|
38
|
-
test('parseScalabilityMode()
|
|
38
|
+
test('mediasoup.parseScalabilityMode() succeeds', () => {
|
|
39
39
|
expect(parseScalabilityMode('L1T3')).toEqual({
|
|
40
40
|
spatialLayers: 1,
|
|
41
41
|
temporalLayers: 3,
|
|
@@ -384,12 +384,12 @@ test('getProducerRtpParametersMapping(), getConsumableRtpParameters(), getConsum
|
|
|
384
384
|
},
|
|
385
385
|
rtcpFeedback: [],
|
|
386
386
|
});
|
|
387
|
-
expect(consumerRtpParameters.encodings
|
|
388
|
-
expect(typeof consumerRtpParameters.encodings
|
|
389
|
-
expect(typeof consumerRtpParameters.encodings
|
|
390
|
-
expect(typeof consumerRtpParameters.encodings
|
|
391
|
-
expect(consumerRtpParameters.encodings
|
|
392
|
-
expect(consumerRtpParameters.encodings
|
|
387
|
+
expect(consumerRtpParameters.encodings.length).toBe(1);
|
|
388
|
+
expect(typeof consumerRtpParameters.encodings[0].ssrc).toBe('number');
|
|
389
|
+
expect(typeof consumerRtpParameters.encodings[0].rtx).toBe('object');
|
|
390
|
+
expect(typeof consumerRtpParameters.encodings[0].rtx?.ssrc).toBe('number');
|
|
391
|
+
expect(consumerRtpParameters.encodings[0].scalabilityMode).toBe('L3T3');
|
|
392
|
+
expect(consumerRtpParameters.encodings[0].maxBitrate).toBe(333333);
|
|
393
393
|
expect(consumerRtpParameters.headerExtensions).toEqual([
|
|
394
394
|
{
|
|
395
395
|
uri: 'urn:ietf:params:rtp-hdrext:sdes:mid',
|
|
@@ -433,19 +433,19 @@ test('getProducerRtpParametersMapping(), getConsumableRtpParameters(), getConsum
|
|
|
433
433
|
{ type: 'ccm', parameter: 'fir' },
|
|
434
434
|
],
|
|
435
435
|
});
|
|
436
|
-
expect(pipeConsumerRtpParameters.encodings
|
|
437
|
-
expect(typeof pipeConsumerRtpParameters.encodings
|
|
438
|
-
expect(pipeConsumerRtpParameters.encodings
|
|
439
|
-
expect(typeof pipeConsumerRtpParameters.encodings
|
|
440
|
-
expect(pipeConsumerRtpParameters.encodings
|
|
441
|
-
expect(typeof pipeConsumerRtpParameters.encodings
|
|
442
|
-
expect(pipeConsumerRtpParameters.encodings
|
|
443
|
-
expect(typeof pipeConsumerRtpParameters.encodings
|
|
444
|
-
expect(pipeConsumerRtpParameters.encodings
|
|
445
|
-
expect(typeof pipeConsumerRtpParameters.encodings
|
|
446
|
-
expect(pipeConsumerRtpParameters.encodings
|
|
447
|
-
expect(typeof pipeConsumerRtpParameters.encodings
|
|
448
|
-
expect(pipeConsumerRtpParameters.encodings
|
|
436
|
+
expect(pipeConsumerRtpParameters.encodings.length).toBe(3);
|
|
437
|
+
expect(typeof pipeConsumerRtpParameters.encodings[0].ssrc).toBe('number');
|
|
438
|
+
expect(pipeConsumerRtpParameters.encodings[0].rtx).toBeUndefined();
|
|
439
|
+
expect(typeof pipeConsumerRtpParameters.encodings[0].maxBitrate).toBe('number');
|
|
440
|
+
expect(pipeConsumerRtpParameters.encodings[0].scalabilityMode).toBe('L1T3');
|
|
441
|
+
expect(typeof pipeConsumerRtpParameters.encodings[1].ssrc).toBe('number');
|
|
442
|
+
expect(pipeConsumerRtpParameters.encodings[1].rtx).toBeUndefined();
|
|
443
|
+
expect(typeof pipeConsumerRtpParameters.encodings[1].maxBitrate).toBe('number');
|
|
444
|
+
expect(pipeConsumerRtpParameters.encodings[1].scalabilityMode).toBe('L1T3');
|
|
445
|
+
expect(typeof pipeConsumerRtpParameters.encodings[2].ssrc).toBe('number');
|
|
446
|
+
expect(pipeConsumerRtpParameters.encodings[2].rtx).toBeUndefined();
|
|
447
|
+
expect(typeof pipeConsumerRtpParameters.encodings[2].maxBitrate).toBe('number');
|
|
448
|
+
expect(pipeConsumerRtpParameters.encodings[2].scalabilityMode).toBe('L1T3');
|
|
449
449
|
expect(pipeConsumerRtpParameters.rtcp).toEqual({
|
|
450
450
|
cname: rtpParameters.rtcp?.cname,
|
|
451
451
|
reducedSize: true,
|
package/npm-scripts.mjs
CHANGED
|
@@ -20,22 +20,23 @@ const WORKER_RELEASE_BIN = IS_WINDOWS
|
|
|
20
20
|
: 'mediasoup-worker';
|
|
21
21
|
const WORKER_RELEASE_BIN_PATH = `${WORKER_RELEASE_DIR}/${WORKER_RELEASE_BIN}`;
|
|
22
22
|
const WORKER_PREBUILD_DIR = 'worker/prebuild';
|
|
23
|
-
const WORKER_PREBUILD_TAR = getWorkerPrebuildTarName();
|
|
24
|
-
const WORKER_PREBUILD_TAR_PATH = `${WORKER_PREBUILD_DIR}/${WORKER_PREBUILD_TAR}`;
|
|
25
23
|
const GH_OWNER = 'versatica';
|
|
26
24
|
const GH_REPO = 'mediasoup';
|
|
27
25
|
|
|
28
26
|
// Paths for ESLint to check. Converted to string for convenience.
|
|
29
27
|
const ESLINT_PATHS = [
|
|
30
28
|
'eslint.config.mjs',
|
|
29
|
+
'jest.config.mjs',
|
|
31
30
|
'node/src',
|
|
32
31
|
'npm-scripts.mjs',
|
|
33
32
|
'worker/scripts',
|
|
34
33
|
].join(' ');
|
|
34
|
+
|
|
35
35
|
// Paths for ESLint to ignore. Converted to string argument for convenience.
|
|
36
36
|
const ESLINT_IGNORE_PATTERN_ARGS = ['node/src/fbs']
|
|
37
37
|
.map(entry => `--ignore-pattern ${entry}`)
|
|
38
38
|
.join(' ');
|
|
39
|
+
|
|
39
40
|
// Paths for Prettier to check/write. Converted to string for convenience.
|
|
40
41
|
// NOTE: Prettier ignores paths in .gitignore so we don't need to care about
|
|
41
42
|
// node/src/fbs.
|
|
@@ -44,6 +45,8 @@ const PRETTIER_PATHS = [
|
|
|
44
45
|
'CONTRIBUTING.md',
|
|
45
46
|
'README.md',
|
|
46
47
|
'doc',
|
|
48
|
+
'eslint.config.mjs',
|
|
49
|
+
'jest.config.mjs',
|
|
47
50
|
'node/src',
|
|
48
51
|
'npm-scripts.mjs',
|
|
49
52
|
'package.json',
|
|
@@ -66,7 +69,7 @@ if (process.env.PYTHONPATH) {
|
|
|
66
69
|
process.env.PYTHONPATH = PIP_INVOKE_DIR;
|
|
67
70
|
}
|
|
68
71
|
|
|
69
|
-
run();
|
|
72
|
+
void run();
|
|
70
73
|
|
|
71
74
|
async function run() {
|
|
72
75
|
logInfo(args ? `[args:"${args}"]` : '');
|
|
@@ -135,15 +138,13 @@ async function run() {
|
|
|
135
138
|
}
|
|
136
139
|
|
|
137
140
|
case 'typescript:build': {
|
|
138
|
-
installNodeDeps();
|
|
139
141
|
buildTypescript({ force: true });
|
|
140
142
|
|
|
141
143
|
break;
|
|
142
144
|
}
|
|
143
145
|
|
|
144
146
|
case 'typescript:watch': {
|
|
145
|
-
|
|
146
|
-
executeCmd(`tsc --watch ${args}`);
|
|
147
|
+
watchTypescript();
|
|
147
148
|
|
|
148
149
|
break;
|
|
149
150
|
}
|
|
@@ -154,6 +155,12 @@ async function run() {
|
|
|
154
155
|
break;
|
|
155
156
|
}
|
|
156
157
|
|
|
158
|
+
case 'worker:prebuild-name': {
|
|
159
|
+
getWorkerPrebuildTarName();
|
|
160
|
+
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
|
|
157
164
|
case 'worker:prebuild': {
|
|
158
165
|
await prebuildWorker();
|
|
159
166
|
|
|
@@ -199,7 +206,6 @@ async function run() {
|
|
|
199
206
|
}
|
|
200
207
|
|
|
201
208
|
case 'test:node': {
|
|
202
|
-
buildTypescript({ force: false });
|
|
203
209
|
testNode();
|
|
204
210
|
|
|
205
211
|
break;
|
|
@@ -212,7 +218,6 @@ async function run() {
|
|
|
212
218
|
}
|
|
213
219
|
|
|
214
220
|
case 'coverage:node': {
|
|
215
|
-
buildTypescript({ force: false });
|
|
216
221
|
executeCmd(`jest --coverage ${args}`);
|
|
217
222
|
executeCmd('open-cli coverage/lcov-report/index.html');
|
|
218
223
|
|
|
@@ -284,17 +289,23 @@ function getPython() {
|
|
|
284
289
|
}
|
|
285
290
|
|
|
286
291
|
function getWorkerPrebuildTarName() {
|
|
287
|
-
let
|
|
292
|
+
let workerPrebuildTarName = `mediasoup-worker-${PKG.version}-${os.platform()}-${os.arch()}`;
|
|
288
293
|
|
|
289
294
|
// In Linux we want to know about kernel version since kernel >= 6 supports
|
|
290
295
|
// io-uring.
|
|
291
296
|
if (os.platform() === 'linux') {
|
|
292
297
|
const kernelMajorVersion = Number(os.release().split('.')[0]);
|
|
293
298
|
|
|
294
|
-
|
|
299
|
+
workerPrebuildTarName += `-kernel${kernelMajorVersion}`;
|
|
295
300
|
}
|
|
296
301
|
|
|
297
|
-
|
|
302
|
+
workerPrebuildTarName = `${workerPrebuildTarName}.tgz`;
|
|
303
|
+
|
|
304
|
+
logInfo(
|
|
305
|
+
`getWorkerPrebuildTarName() [workerPrebuildTarName:${workerPrebuildTarName}]`
|
|
306
|
+
);
|
|
307
|
+
|
|
308
|
+
return workerPrebuildTarName;
|
|
298
309
|
}
|
|
299
310
|
|
|
300
311
|
function installInvoke() {
|
|
@@ -307,8 +318,7 @@ function installInvoke() {
|
|
|
307
318
|
// Install pip invoke into custom location, so we don't depend on system-wide
|
|
308
319
|
// installation.
|
|
309
320
|
executeCmd(
|
|
310
|
-
`"${PYTHON}" -m pip install --upgrade --no-user --target "${PIP_INVOKE_DIR}" invoke
|
|
311
|
-
/* exitOnError */ true
|
|
321
|
+
`"${PYTHON}" -m pip install --upgrade --no-user --target "${PIP_INVOKE_DIR}" invoke`
|
|
312
322
|
);
|
|
313
323
|
}
|
|
314
324
|
|
|
@@ -322,7 +332,7 @@ function deleteNodeLib() {
|
|
|
322
332
|
fs.rmSync('node/lib', { recursive: true, force: true });
|
|
323
333
|
}
|
|
324
334
|
|
|
325
|
-
function buildTypescript({ force
|
|
335
|
+
function buildTypescript({ force }) {
|
|
326
336
|
if (!force && fs.existsSync('node/lib')) {
|
|
327
337
|
return;
|
|
328
338
|
}
|
|
@@ -330,7 +340,16 @@ function buildTypescript({ force = false } = { force: false }) {
|
|
|
330
340
|
logInfo('buildTypescript()');
|
|
331
341
|
|
|
332
342
|
deleteNodeLib();
|
|
333
|
-
|
|
343
|
+
|
|
344
|
+
executeCmd(`tsc ${args}`);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
function watchTypescript() {
|
|
348
|
+
logInfo('watchTypescript()');
|
|
349
|
+
|
|
350
|
+
deleteNodeLib();
|
|
351
|
+
|
|
352
|
+
executeCmd(`tsc --watch ${args}`);
|
|
334
353
|
}
|
|
335
354
|
|
|
336
355
|
function buildWorker() {
|
|
@@ -348,8 +367,10 @@ function cleanWorkerArtifacts() {
|
|
|
348
367
|
|
|
349
368
|
// Clean build artifacts except `mediasoup-worker`.
|
|
350
369
|
executeCmd(`"${PYTHON}" -m invoke -r worker clean-build`);
|
|
370
|
+
|
|
351
371
|
// Clean downloaded dependencies.
|
|
352
372
|
executeCmd(`"${PYTHON}" -m invoke -r worker clean-subprojects`);
|
|
373
|
+
|
|
353
374
|
// Clean PIP/Meson/Ninja.
|
|
354
375
|
executeCmd(`"${PYTHON}" -m invoke -r worker clean-pip`);
|
|
355
376
|
}
|
|
@@ -460,6 +481,7 @@ function installNodeDeps() {
|
|
|
460
481
|
|
|
461
482
|
// Install/update Node deps.
|
|
462
483
|
executeCmd('npm ci --ignore-scripts');
|
|
484
|
+
|
|
463
485
|
// Update package-lock.json.
|
|
464
486
|
executeCmd('npm install --package-lock-only --ignore-scripts');
|
|
465
487
|
}
|
|
@@ -490,6 +512,9 @@ async function prebuildWorker() {
|
|
|
490
512
|
|
|
491
513
|
ensureDir(WORKER_PREBUILD_DIR);
|
|
492
514
|
|
|
515
|
+
const workerPrebuildTar = getWorkerPrebuildTarName();
|
|
516
|
+
const workerPrebuildTarPath = `${WORKER_PREBUILD_DIR}/${workerPrebuildTar}`;
|
|
517
|
+
|
|
493
518
|
return new Promise((resolve, reject) => {
|
|
494
519
|
// Generate a gzip file which just contains mediasoup-worker binary without
|
|
495
520
|
// any folder.
|
|
@@ -501,7 +526,7 @@ async function prebuildWorker() {
|
|
|
501
526
|
},
|
|
502
527
|
[WORKER_RELEASE_BIN]
|
|
503
528
|
)
|
|
504
|
-
.pipe(fs.createWriteStream(
|
|
529
|
+
.pipe(fs.createWriteStream(workerPrebuildTarPath))
|
|
505
530
|
.on('finish', resolve)
|
|
506
531
|
.on('error', reject);
|
|
507
532
|
});
|
|
@@ -516,16 +541,19 @@ async function downloadPrebuiltWorker() {
|
|
|
516
541
|
.replace(/^git\+/, '')
|
|
517
542
|
.replace(/\.git$/, '')}/releases/download`;
|
|
518
543
|
|
|
519
|
-
const
|
|
544
|
+
const workerPrebuildTar = getWorkerPrebuildTarName();
|
|
545
|
+
const workerPrebuildTarUrl = `${releaseBase}/${PKG.version}/${workerPrebuildTar}`;
|
|
520
546
|
|
|
521
|
-
logInfo(
|
|
547
|
+
logInfo(
|
|
548
|
+
`downloadPrebuiltWorker() [workerPrebuildTarUrl:${workerPrebuildTarUrl}]`
|
|
549
|
+
);
|
|
522
550
|
|
|
523
551
|
ensureDir(WORKER_PREBUILD_DIR);
|
|
524
552
|
|
|
525
553
|
let res;
|
|
526
554
|
|
|
527
555
|
try {
|
|
528
|
-
res = await fetch(
|
|
556
|
+
res = await fetch(workerPrebuildTarUrl);
|
|
529
557
|
|
|
530
558
|
if (res.status === 404) {
|
|
531
559
|
logInfo(
|
|
@@ -663,19 +691,15 @@ async function getVersionChanges() {
|
|
|
663
691
|
);
|
|
664
692
|
}
|
|
665
693
|
|
|
666
|
-
function executeCmd(command
|
|
694
|
+
function executeCmd(command) {
|
|
667
695
|
logInfo(`executeCmd(): ${command}`);
|
|
668
696
|
|
|
669
697
|
try {
|
|
670
698
|
execSync(command, { stdio: ['ignore', process.stdout, process.stderr] });
|
|
671
699
|
} catch (error) {
|
|
672
|
-
|
|
673
|
-
logError(`executeCmd() failed, exiting: ${error}`);
|
|
700
|
+
logError(`executeCmd() failed, exiting: ${error}`);
|
|
674
701
|
|
|
675
|
-
|
|
676
|
-
} else {
|
|
677
|
-
logInfo(`executeCmd() failed, ignoring: ${error}`);
|
|
678
|
-
}
|
|
702
|
+
exitWithError();
|
|
679
703
|
}
|
|
680
704
|
}
|
|
681
705
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mediasoup",
|
|
3
|
-
"version": "3.15.
|
|
3
|
+
"version": "3.15.7",
|
|
4
4
|
"description": "Cutting Edge WebRTC Video Conferencing",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
|
|
@@ -19,8 +19,25 @@
|
|
|
19
19
|
},
|
|
20
20
|
"main": "node/lib/index.js",
|
|
21
21
|
"types": "node/lib/index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./node/lib/index.d.ts",
|
|
25
|
+
"default": "./node/lib/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./types": {
|
|
28
|
+
"types": "./node/lib/types.d.ts",
|
|
29
|
+
"default": "./node/lib/types.js"
|
|
30
|
+
},
|
|
31
|
+
"./extras": {
|
|
32
|
+
"types": "./node/lib/extras.d.ts",
|
|
33
|
+
"default": "./node/lib/extras.js"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
22
36
|
"files": [
|
|
37
|
+
"LICENSE",
|
|
38
|
+
"README.md",
|
|
23
39
|
"node/lib",
|
|
40
|
+
"npm-scripts.mjs",
|
|
24
41
|
"worker/deps/libwebrtc",
|
|
25
42
|
"worker/fbs",
|
|
26
43
|
"worker/fuzzer/include",
|
|
@@ -36,8 +53,7 @@
|
|
|
36
53
|
"worker/test/src",
|
|
37
54
|
"worker/meson.build",
|
|
38
55
|
"worker/meson_options.txt",
|
|
39
|
-
"worker/tasks.py"
|
|
40
|
-
"npm-scripts.mjs"
|
|
56
|
+
"worker/tasks.py"
|
|
41
57
|
],
|
|
42
58
|
"engines": {
|
|
43
59
|
"node": ">=18"
|
|
@@ -54,6 +70,7 @@
|
|
|
54
70
|
"typescript:build": "node npm-scripts.mjs typescript:build",
|
|
55
71
|
"typescript:watch": "node npm-scripts.mjs typescript:watch",
|
|
56
72
|
"worker:build": "node npm-scripts.mjs worker:build",
|
|
73
|
+
"worker:prebuild-name": "node npm-scripts.mjs worker:prebuild-name",
|
|
57
74
|
"worker:prebuild": "node npm-scripts.mjs worker:prebuild",
|
|
58
75
|
"lint": "npm run lint:node && npm run lint:worker",
|
|
59
76
|
"lint:node": "node npm-scripts.mjs lint:node",
|
|
@@ -71,53 +88,26 @@
|
|
|
71
88
|
"release:check": "node npm-scripts.mjs release:check",
|
|
72
89
|
"release": "node npm-scripts.mjs release"
|
|
73
90
|
},
|
|
74
|
-
"jest": {
|
|
75
|
-
"verbose": true,
|
|
76
|
-
"testEnvironment": "node",
|
|
77
|
-
"testRegex": "node/src/test/test-.*\\.ts",
|
|
78
|
-
"transform": {
|
|
79
|
-
"^.*\\.ts$": [
|
|
80
|
-
"ts-jest",
|
|
81
|
-
{
|
|
82
|
-
"diagnostics": {
|
|
83
|
-
"ignoreCodes": [
|
|
84
|
-
"TS151001"
|
|
85
|
-
]
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
]
|
|
89
|
-
},
|
|
90
|
-
"coveragePathIgnorePatterns": [
|
|
91
|
-
"node/src/fbs",
|
|
92
|
-
"node/src/test"
|
|
93
|
-
],
|
|
94
|
-
"cacheDirectory": ".cache/jest",
|
|
95
|
-
"modulePathIgnorePatterns": [
|
|
96
|
-
"worker",
|
|
97
|
-
"rust",
|
|
98
|
-
"target"
|
|
99
|
-
]
|
|
100
|
-
},
|
|
101
91
|
"dependencies": {
|
|
102
92
|
"@types/ini": "^4.1.1",
|
|
103
93
|
"debug": "^4.4.0",
|
|
104
94
|
"flatbuffers": "^25.2.10",
|
|
105
|
-
"h264-profile-level-id": "^2.
|
|
95
|
+
"h264-profile-level-id": "^2.2.0",
|
|
106
96
|
"ini": "^5.0.0",
|
|
107
97
|
"node-fetch": "^3.3.2",
|
|
108
98
|
"supports-color": "^10.0.0",
|
|
109
99
|
"tar": "^7.4.3"
|
|
110
100
|
},
|
|
111
101
|
"devDependencies": {
|
|
112
|
-
"@eslint/js": "^9.
|
|
102
|
+
"@eslint/js": "^9.23.0",
|
|
113
103
|
"@octokit/rest": "^21.1.1",
|
|
114
104
|
"@types/debug": "^4.1.12",
|
|
115
105
|
"@types/jest": "^29.5.14",
|
|
116
|
-
"@types/node": "^22.13.
|
|
117
|
-
"eslint": "^9.
|
|
118
|
-
"eslint-config-prettier": "^10.
|
|
106
|
+
"@types/node": "^22.13.13",
|
|
107
|
+
"eslint": "^9.23.0",
|
|
108
|
+
"eslint-config-prettier": "^10.1.1",
|
|
119
109
|
"eslint-plugin-jest": "^28.11.0",
|
|
120
|
-
"eslint-plugin-prettier": "^5.2.
|
|
110
|
+
"eslint-plugin-prettier": "^5.2.4",
|
|
121
111
|
"globals": "^16.0.0",
|
|
122
112
|
"jest": "^29.7.0",
|
|
123
113
|
"marked": "^15.0.7",
|
|
@@ -125,8 +115,8 @@
|
|
|
125
115
|
"pick-port": "^2.1.0",
|
|
126
116
|
"prettier": "^3.5.3",
|
|
127
117
|
"sctp": "^1.0.0",
|
|
128
|
-
"ts-jest": "^29.
|
|
129
|
-
"typescript": "^5.
|
|
130
|
-
"typescript-eslint": "^8.
|
|
118
|
+
"ts-jest": "^29.3.0",
|
|
119
|
+
"typescript": "^5.8.2",
|
|
120
|
+
"typescript-eslint": "^8.28.0"
|
|
131
121
|
}
|
|
132
122
|
}
|