mediasoup 3.19.10 → 3.19.12

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 (87) hide show
  1. package/node/lib/Worker.d.ts +2 -2
  2. package/node/lib/Worker.d.ts.map +1 -1
  3. package/node/lib/Worker.js +13 -12
  4. package/node/lib/WorkerTypes.d.ts +10 -4
  5. package/node/lib/WorkerTypes.d.ts.map +1 -1
  6. package/node/lib/index.d.ts +3 -3
  7. package/node/lib/index.d.ts.map +1 -1
  8. package/node/lib/index.js +7 -4
  9. package/node/lib/test/test-Worker.js +9 -2
  10. package/npm-scripts.mjs +1 -0
  11. package/package.json +5 -5
  12. package/worker/include/RTC/Codecs/DependencyDescriptor.hpp +7 -2
  13. package/worker/include/RTC/Codecs/PayloadDescriptorHandler.hpp +1 -1
  14. package/worker/include/RTC/RTCP/Feedback.hpp +4 -4
  15. package/worker/include/RTC/RTCP/FeedbackPsFir.hpp +1 -1
  16. package/worker/include/RTC/RTCP/FeedbackPsLei.hpp +1 -1
  17. package/worker/include/RTC/RTCP/FeedbackPsTst.hpp +1 -1
  18. package/worker/include/RTC/RTCP/FeedbackPsVbcm.hpp +2 -2
  19. package/worker/include/RTC/RTCP/FeedbackRtpEcn.hpp +7 -7
  20. package/worker/include/RTC/RTCP/FeedbackRtpNack.hpp +2 -2
  21. package/worker/include/RTC/RTCP/FeedbackRtpTllei.hpp +2 -2
  22. package/worker/include/RTC/RTCP/ReceiverReport.hpp +10 -10
  23. package/worker/include/RTC/RTCP/SenderReport.hpp +12 -12
  24. package/worker/include/RTC/RTCP/XrDelaySinceLastRr.hpp +6 -6
  25. package/worker/include/RTC/RTCP/XrReceiverReferenceTime.hpp +4 -4
  26. package/worker/include/RTC/RtpPacket.hpp +7 -7
  27. package/worker/include/RTC/SCTP/packet/ErrorCause.hpp +2 -3
  28. package/worker/include/RTC/SCTP/packet/Packet.hpp +4 -4
  29. package/worker/include/RTC/SCTP/packet/Parameter.hpp +2 -3
  30. package/worker/include/RTC/SrtpSession.hpp +1 -1
  31. package/worker/scripts/clang-format.mjs +1 -5
  32. package/worker/scripts/package-lock.json +17 -647
  33. package/worker/scripts/package.json +1 -1
  34. package/worker/src/RTC/Codecs/DependencyDescriptor.cpp +3 -4
  35. package/worker/src/RTC/Codecs/H264.cpp +2 -0
  36. package/worker/src/RTC/Codecs/Opus.cpp +1 -1
  37. package/worker/src/RTC/Codecs/VP8.cpp +13 -15
  38. package/worker/src/RTC/Codecs/VP9.cpp +2 -2
  39. package/worker/src/RTC/DtlsTransport.cpp +4 -1
  40. package/worker/src/RTC/NackGenerator.cpp +5 -7
  41. package/worker/src/RTC/PipeConsumer.cpp +1 -1
  42. package/worker/src/RTC/PipeTransport.cpp +1 -0
  43. package/worker/src/RTC/PlainTransport.cpp +6 -2
  44. package/worker/src/RTC/Producer.cpp +3 -4
  45. package/worker/src/RTC/RTCP/CompoundPacket.cpp +1 -1
  46. package/worker/src/RTC/RTCP/Feedback.cpp +3 -4
  47. package/worker/src/RTC/RTCP/FeedbackPsAfb.cpp +1 -1
  48. package/worker/src/RTC/RTCP/FeedbackPsFir.cpp +1 -1
  49. package/worker/src/RTC/RTCP/FeedbackPsLei.cpp +1 -1
  50. package/worker/src/RTC/RTCP/FeedbackPsRemb.cpp +4 -4
  51. package/worker/src/RTC/RTCP/FeedbackPsSli.cpp +2 -2
  52. package/worker/src/RTC/RTCP/FeedbackPsTst.cpp +1 -1
  53. package/worker/src/RTC/RTCP/FeedbackPsVbcm.cpp +2 -2
  54. package/worker/src/RTC/RTCP/FeedbackRtpNack.cpp +3 -3
  55. package/worker/src/RTC/RTCP/FeedbackRtpTllei.cpp +2 -2
  56. package/worker/src/RTC/RTCP/FeedbackRtpTmmb.cpp +1 -1
  57. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +1 -0
  58. package/worker/src/RTC/RTCP/Packet.cpp +1 -1
  59. package/worker/src/RTC/RTCP/ReceiverReport.cpp +1 -1
  60. package/worker/src/RTC/RTCP/Sdes.cpp +1 -1
  61. package/worker/src/RTC/RTCP/SenderReport.cpp +1 -1
  62. package/worker/src/RTC/RTCP/XrDelaySinceLastRr.cpp +1 -1
  63. package/worker/src/RTC/RtpDictionaries/RtpCodecParameters.cpp +4 -4
  64. package/worker/src/RTC/RtpDictionaries/RtpEncodingParameters.cpp +7 -7
  65. package/worker/src/RTC/RtpDictionaries/RtpParameters.cpp +5 -5
  66. package/worker/src/RTC/RtpListener.cpp +54 -21
  67. package/worker/src/RTC/RtpPacket.cpp +7 -7
  68. package/worker/src/RTC/SCTP/association/StateCookie.cpp +6 -6
  69. package/worker/src/RTC/SCTP/packet/Chunk.cpp +10 -10
  70. package/worker/src/RTC/SCTP/packet/Packet.cpp +10 -10
  71. package/worker/src/RTC/SCTP/packet/TLV.cpp +1 -1
  72. package/worker/src/RTC/SctpDictionaries/SctpStreamParameters.cpp +6 -6
  73. package/worker/src/RTC/SimpleConsumer.cpp +1 -1
  74. package/worker/src/RTC/SimulcastConsumer.cpp +9 -6
  75. package/worker/src/RTC/SvcConsumer.cpp +6 -4
  76. package/worker/src/RTC/Transport.cpp +5 -4
  77. package/worker/src/RTC/TransportCongestionControlServer.cpp +2 -2
  78. package/worker/src/RTC/TransportTuple.cpp +6 -6
  79. package/worker/src/RTC/WebRtcServer.cpp +1 -1
  80. package/worker/src/RTC/WebRtcTransport.cpp +1 -1
  81. package/worker/src/Utils/BitStream.cpp +8 -8
  82. package/worker/src/Utils/Crypto.cpp +5 -5
  83. package/worker/src/Utils/IP.cpp +2 -4
  84. package/worker/src/Worker.cpp +2 -2
  85. package/worker/src/handles/TcpConnectionHandle.cpp +9 -5
  86. package/worker/src/handles/UnixStreamSocketHandle.cpp +9 -5
  87. package/worker/test/src/RTC/TestRtpStreamRecv.cpp +3 -3
@@ -3,10 +3,10 @@ import type { Worker, WorkerSettings, WorkerUpdateableSettings, WorkerResourceUs
3
3
  import type { WebRtcServer, WebRtcServerOptions } from './WebRtcServerTypes';
4
4
  import type { Router, RouterOptions } from './RouterTypes';
5
5
  import type { AppData } from './types';
6
- export declare const workerBin: string;
6
+ export declare const defaultWorkerBin: string;
7
7
  export declare class WorkerImpl<WorkerAppData extends AppData = AppData> extends EnhancedEventEmitter<WorkerEvents> implements Worker {
8
8
  #private;
9
- constructor({ logLevel, logTags, rtcMinPort, rtcMaxPort, dtlsCertificateFile, dtlsPrivateKeyFile, libwebrtcFieldTrials, disableLiburing, appData, }: WorkerSettings<WorkerAppData>);
9
+ constructor({ logLevel, logTags, rtcMinPort, rtcMaxPort, dtlsCertificateFile, dtlsPrivateKeyFile, workerBin, libwebrtcFieldTrials, disableLiburing, appData, }: WorkerSettings<WorkerAppData>);
10
10
  get pid(): number;
11
11
  get closed(): boolean;
12
12
  get died(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../src/Worker.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EACX,MAAM,EACN,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,cAAc,EAEd,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAM3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAUvC,eAAO,MAAM,SAAS,EAAE,MAAuB,CAAC;AAEhD,qBAAa,UAAU,CAAC,aAAa,SAAS,OAAO,GAAG,OAAO,CAC9D,SAAQ,oBAAoB,CAAC,YAAY,CACzC,YAAW,MAAM;;gBAiCL,EACX,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,OAAO,GACP,EAAE,cAAc,CAAC,aAAa,CAAC;IA2MhC,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,OAAO,IAAI,aAAa,CAE3B;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa,EAEjC;IAED,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED;;OAEG;IACH,IAAI,uBAAuB,IAAI,GAAG,CAAC,YAAY,CAAC,CAE/C;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEnC;IAED,KAAK,IAAI,IAAI;IA0CP,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAc3B,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAkChD,cAAc,CAAC,EACpB,QAAQ,EACR,OAAO,GACP,GAAE,wBAAwB,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD,kBAAkB,CAAC,mBAAmB,SAAS,OAAO,GAAG,OAAO,EAAE,EACvE,WAAW,EACX,OAAO,GACP,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,GAAG,OAAO,CACpD,YAAY,CAAC,mBAAmB,CAAC,CACjC;IA0DK,YAAY,CAAC,aAAa,SAAS,OAAO,GAAG,OAAO,EAAE,EAC3D,WAAW,EACX,OAAO,GACP,GAAE,aAAa,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAgDrE,OAAO,CAAC,UAAU;IAmClB,OAAO,CAAC,mBAAmB;CAQ3B"}
1
+ {"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../src/Worker.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EACX,MAAM,EACN,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,cAAc,EAEd,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAM3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAUvC,eAAO,MAAM,gBAAgB,EAAE,MAA8B,CAAC;AAE9D,qBAAa,UAAU,CAAC,aAAa,SAAS,OAAO,GAAG,OAAO,CAC9D,SAAQ,oBAAoB,CAAC,YAAY,CACzC,YAAW,MAAM;;gBAiCL,EACX,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,OAAO,GACP,EAAE,cAAc,CAAC,aAAa,CAAC;IA6MhC,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,OAAO,IAAI,aAAa,CAE3B;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa,EAEjC;IAED,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED;;OAEG;IACH,IAAI,uBAAuB,IAAI,GAAG,CAAC,YAAY,CAAC,CAE/C;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEnC;IAED,KAAK,IAAI,IAAI;IA0CP,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAc3B,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAkChD,cAAc,CAAC,EACpB,QAAQ,EACR,OAAO,GACP,GAAE,wBAAwB,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD,kBAAkB,CAAC,mBAAmB,SAAS,OAAO,GAAG,OAAO,EAAE,EACvE,WAAW,EACX,OAAO,GACP,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,GAAG,OAAO,CACpD,YAAY,CAAC,mBAAmB,CAAC,CACjC;IA0DK,YAAY,CAAC,aAAa,SAAS,OAAO,GAAG,OAAO,EAAE,EAC3D,WAAW,EACX,OAAO,GACP,GAAE,aAAa,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAgDrE,OAAO,CAAC,UAAU;IAmClB,OAAO,CAAC,mBAAmB;CAQ3B"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WorkerImpl = exports.workerBin = void 0;
3
+ exports.WorkerImpl = exports.defaultWorkerBin = void 0;
4
4
  const process = require("node:process");
5
5
  const path = require("node:path");
6
6
  const node_child_process_1 = require("node:child_process");
@@ -21,7 +21,7 @@ const FbsTransport = require("./fbs/transport");
21
21
  const protocol_1 = require("./fbs/transport/protocol");
22
22
  const logger = new Logger_1.Logger('Worker');
23
23
  const workerLogger = new Logger_1.Logger('Worker');
24
- exports.workerBin = getWorkerBin();
24
+ exports.defaultWorkerBin = getDefaultWorkerBin();
25
25
  class WorkerImpl extends enhancedEvents_1.EnhancedEventEmitter {
26
26
  // mediasoup-worker child process.
27
27
  #child;
@@ -43,17 +43,18 @@ class WorkerImpl extends enhancedEvents_1.EnhancedEventEmitter {
43
43
  #routers = new Set();
44
44
  // Observer instance.
45
45
  #observer = new enhancedEvents_1.EnhancedEventEmitter();
46
- constructor({ logLevel, logTags, rtcMinPort, rtcMaxPort, dtlsCertificateFile, dtlsPrivateKeyFile, libwebrtcFieldTrials, disableLiburing, appData, }) {
46
+ constructor({ logLevel, logTags, rtcMinPort, rtcMaxPort, dtlsCertificateFile, dtlsPrivateKeyFile, workerBin, libwebrtcFieldTrials, disableLiburing, appData, }) {
47
47
  super();
48
48
  logger.debug('constructor()');
49
- let spawnBin = exports.workerBin;
49
+ workerBin = workerBin ?? exports.defaultWorkerBin;
50
+ let spawnBin = workerBin;
50
51
  let spawnArgs = [];
51
52
  if (process.env['MEDIASOUP_USE_VALGRIND'] === 'true') {
52
53
  spawnBin = process.env['MEDIASOUP_VALGRIND_BIN'] ?? 'valgrind';
53
54
  if (process.env['MEDIASOUP_VALGRIND_OPTIONS']) {
54
55
  spawnArgs = spawnArgs.concat(process.env['MEDIASOUP_VALGRIND_OPTIONS'].split(/\s+/));
55
56
  }
56
- spawnArgs.push(exports.workerBin);
57
+ spawnArgs.push(workerBin);
57
58
  }
58
59
  if (typeof logLevel === 'string' && logLevel) {
59
60
  spawnArgs.push(`--logLevel=${logLevel}`);
@@ -153,7 +154,7 @@ class WorkerImpl extends enhancedEvents_1.EnhancedEventEmitter {
153
154
  spawnDone = true;
154
155
  logger.error(`worker process failed [pid:${this.#pid}]: ${error.message}`);
155
156
  this.close();
156
- this.emit('@failure', error);
157
+ this.emit('@failure', new Error(error.message));
157
158
  }
158
159
  else {
159
160
  logger.error(`worker process error [pid:${this.#pid}]: ${error.message}`);
@@ -397,10 +398,10 @@ function parseWorkerDumpResponse(binary) {
397
398
  }
398
399
  return dump;
399
400
  }
400
- function getWorkerBin() {
401
+ function getDefaultWorkerBin() {
401
402
  // If MEDIASOUP_WORKER_BIN env is given, use it as worker binary.
402
403
  if (process.env['MEDIASOUP_WORKER_BIN']) {
403
- logger.debug(`getWorkerBin() | using MEDIASOUP_WORKER_BIN environment variable: ${process.env['MEDIASOUP_WORKER_BIN']}`);
404
+ logger.debug(`getDefaultWorkerBin() | using MEDIASOUP_WORKER_BIN environment variable: ${process.env['MEDIASOUP_WORKER_BIN']}`);
404
405
  return process.env['MEDIASOUP_WORKER_BIN'];
405
406
  }
406
407
  // Obtain the path of the mediasoup module.
@@ -414,14 +415,14 @@ function getWorkerBin() {
414
415
  mediasoupModulePath = path.join(path.dirname(mediasoupModulePath), '..', '..');
415
416
  }
416
417
  catch (error) {
417
- logger.warn(`getWorkerBin() | require.resolve('mediasoup') failed, using __dirname: ${error}`);
418
+ logger.warn(`getDefaultWorkerBin() | require.resolve('mediasoup') failed, using __dirname: ${error}`);
418
419
  // mediasoup module path is two folders above this file.
419
420
  mediasoupModulePath = path.join(__dirname, '..', '..');
420
421
  }
421
422
  // If env MEDIASOUP_BUILDTYPE is 'Debug' use the Debug binary. Otherwise use
422
423
  // the Release binary.
423
424
  const buildType = process.env['MEDIASOUP_BUILDTYPE'] === 'Debug' ? 'Debug' : 'Release';
424
- const workerBinPath = path.join(mediasoupModulePath, 'worker', 'out', buildType, 'mediasoup-worker');
425
- logger.debug(`getWorkerBin() | detected worker binary path: ${workerBinPath}`);
426
- return workerBinPath;
425
+ const defaultWorkerBinPath = path.join(mediasoupModulePath, 'worker', 'out', buildType, 'mediasoup-worker');
426
+ logger.debug(`getDefaultWorkerBin() | detected worker binary path: ${defaultWorkerBinPath}`);
427
+ return defaultWorkerBinPath;
427
428
  }
@@ -27,15 +27,21 @@ export type WorkerSettings<WorkerAppData extends AppData = AppData> = {
27
27
  */
28
28
  rtcMaxPort?: number;
29
29
  /**
30
- * Path to the DTLS public certificate file in PEM format. If unset, a
31
- * certificate is dynamically created.
30
+ * Absolute path to the DTLS public certificate file in PEM format. If unset,
31
+ * a certificate is dynamically created.
32
32
  */
33
33
  dtlsCertificateFile?: string;
34
34
  /**
35
- * Path to the DTLS certificate private key file in PEM format. If unset, a
36
- * certificate is dynamically created.
35
+ * Absolute path to the DTLS certificate private key file in PEM format. If
36
+ * unset, a certificate is dynamically created.
37
37
  */
38
38
  dtlsPrivateKeyFile?: string;
39
+ /**
40
+ * Absolute path to the mediasoup-worker binary. If given it overrides the
41
+ * default location of the binary and the MEDIASOUP_WORKER_BIN environment
42
+ * variable.
43
+ */
44
+ workerBin?: string;
39
45
  /**
40
46
  * Field trials for libwebrtc.
41
47
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerTypes.d.ts","sourceRoot":"","sources":["../src/WorkerTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkerTypes.d.ts","sourceRoot":"","sources":["../src/WorkerTypes.ts"],"names":[],"mappings":"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"}
@@ -16,9 +16,9 @@ declare const observer: Observer;
16
16
  */
17
17
  export { observer };
18
18
  /**
19
- * Full path of the mediasoup-worker binary.
19
+ * Absolute path of the mediasoup-worker binary.
20
20
  */
21
- export { workerBin } from './Worker';
21
+ export { defaultWorkerBin as workerBin } from './Worker';
22
22
  /**
23
23
  * Set event listeners for mediasoup generated logs. If called with no arguments
24
24
  * then no events will be emitted.
@@ -44,7 +44,7 @@ export declare function setLogEventListeners(listeners?: LogEventListeners): voi
44
44
  /**
45
45
  * Create a Worker.
46
46
  */
47
- export declare function createWorker<WorkerAppData extends AppData = AppData>({ logLevel, logTags, rtcMinPort, rtcMaxPort, dtlsCertificateFile, dtlsPrivateKeyFile, libwebrtcFieldTrials, disableLiburing, appData, }?: WorkerSettings<WorkerAppData>): Promise<Worker<WorkerAppData>>;
47
+ export declare function createWorker<WorkerAppData extends AppData = AppData>({ logLevel, logTags, rtcMinPort, rtcMaxPort, dtlsCertificateFile, dtlsPrivateKeyFile, workerBin, libwebrtcFieldTrials, disableLiburing, appData, }?: WorkerSettings<WorkerAppData>): Promise<Worker<WorkerAppData>>;
48
48
  /**
49
49
  * Get a cloned copy of the mediasoup supported RTP capabilities.
50
50
  */
@@ -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;AAG5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,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,qBAAqB,CAEnE;AAED;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,UAAU,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,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,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,gBAAgB,IAAI,SAAS,EAAE,MAAM,UAAU,CAAC;AAIzD;;;;;;;;;;;;;;;;;;;;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,EAElB,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,OAAO,GACP,GAAE,cAAc,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CA8BrE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,qBAAqB,CAEnE;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
@@ -18,10 +18,10 @@ exports.version = require('../../package.json').version;
18
18
  const observer = new enhancedEvents_1.EnhancedEventEmitter();
19
19
  exports.observer = observer;
20
20
  /**
21
- * Full path of the mediasoup-worker binary.
21
+ * Absolute path of the mediasoup-worker binary.
22
22
  */
23
23
  var Worker_2 = require("./Worker");
24
- Object.defineProperty(exports, "workerBin", { enumerable: true, get: function () { return Worker_2.workerBin; } });
24
+ Object.defineProperty(exports, "workerBin", { enumerable: true, get: function () { return Worker_2.defaultWorkerBin; } });
25
25
  const logger = new Logger_1.Logger();
26
26
  /**
27
27
  * Set event listeners for mediasoup generated logs. If called with no arguments
@@ -66,7 +66,9 @@ function setLogEventListeners(listeners) {
66
66
  /**
67
67
  * Create a Worker.
68
68
  */
69
- async function createWorker({ logLevel = 'error', logTags, rtcMinPort = 10000, rtcMaxPort = 59999, dtlsCertificateFile, dtlsPrivateKeyFile, libwebrtcFieldTrials, disableLiburing, appData, } = {}) {
69
+ async function createWorker({ logLevel = 'error', logTags, rtcMinPort = 10000, rtcMaxPort = 59999, dtlsCertificateFile, dtlsPrivateKeyFile,
70
+ // eslint-disable-next-line no-shadow
71
+ workerBin, libwebrtcFieldTrials, disableLiburing, appData, } = {}) {
70
72
  logger.debug('createWorker()');
71
73
  if (appData && typeof appData !== 'object') {
72
74
  throw new TypeError('if given, appData must be an object');
@@ -78,6 +80,7 @@ async function createWorker({ logLevel = 'error', logTags, rtcMinPort = 10000, r
78
80
  rtcMaxPort,
79
81
  dtlsCertificateFile,
80
82
  dtlsPrivateKeyFile,
83
+ workerBin,
81
84
  libwebrtcFieldTrials,
82
85
  disableLiburing,
83
86
  appData,
@@ -114,7 +117,7 @@ exports.extras = require("./extras");
114
117
  const indexImpl = {
115
118
  version: exports.version,
116
119
  observer,
117
- workerBin: Worker_1.workerBin,
120
+ workerBin: Worker_1.defaultWorkerBin,
118
121
  setLogEventListeners,
119
122
  createWorker,
120
123
  getSupportedRtpCapabilities,
@@ -63,7 +63,10 @@ test('mediasoup.createWorker() with wrong settings rejects with TypeError', asyn
63
63
  await expect(mediasoup.createWorker({ dtlsPrivateKeyFile: '/notfound/priv.pem' })).rejects.toThrow(TypeError);
64
64
  await expect(
65
65
  // @ts-expect-error --- Testing purposes.
66
- mediasoup.createWorker({ appData: 'NOT-AN-OBJECT' })).rejects.toThrow(TypeError);
66
+ mediasoup.createWorker({ appData: 'NOT-AN-OBJECT' })).rejects.toBeInstanceOf(TypeError);
67
+ }, 2000);
68
+ test('mediasoup.createWorker() with wrong `workerBin` rejects with Error', async () => {
69
+ await expect(mediasoup.createWorker({ workerBin: '/tmp/foo/mediasoup-worker' })).rejects.toBeInstanceOf(Error);
67
70
  }, 2000);
68
71
  test('worker.updateSettings() succeeds', async () => {
69
72
  const worker = await mediasoup.createWorker();
@@ -85,7 +88,11 @@ test('worker.updateSettings() rejects with InvalidStateError if closed', async (
85
88
  await expect(worker.updateSettings({ logLevel: 'error' })).rejects.toThrow(errors_1.InvalidStateError);
86
89
  }, 2000);
87
90
  test('worker.dump() succeeds', async () => {
88
- const worker = await mediasoup.createWorker();
91
+ const worker = await mediasoup.createWorker({
92
+ // Just for testing purposes. This does nothing since by default
93
+ // `mediasoup.workerBin` is used.
94
+ workerBin: mediasoup.workerBin,
95
+ });
89
96
  await expect(worker.dump()).resolves.toMatchObject({
90
97
  pid: worker.pid,
91
98
  webRtcServerIds: [],
package/npm-scripts.mjs CHANGED
@@ -474,6 +474,7 @@ function installNodeDeps() {
474
474
 
475
475
  // Check vulnerabilities in deps (exclude dev deps).
476
476
  executeCmd('npm audit --omit=dev');
477
+ executeCmd('npm audit --omit=dev --prefix worker/scripts');
477
478
  }
478
479
 
479
480
  function checkRelease() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mediasoup",
3
- "version": "3.19.10",
3
+ "version": "3.19.12",
4
4
  "description": "Cutting Edge WebRTC Video Conferencing",
5
5
  "contributors": [
6
6
  "Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
@@ -108,18 +108,18 @@
108
108
  "@types/node": "^24.10.1",
109
109
  "eslint": "^9.39.1",
110
110
  "eslint-config-prettier": "^10.1.8",
111
- "eslint-plugin-jest": "^29.1.0",
111
+ "eslint-plugin-jest": "^29.2.1",
112
112
  "eslint-plugin-prettier": "^5.5.4",
113
113
  "globals": "^16.5.0",
114
114
  "jest": "^30.2.0",
115
- "knip": "^5.69.1",
116
- "marked": "^17.0.0",
115
+ "knip": "^5.70.1",
116
+ "marked": "^17.0.1",
117
117
  "open-cli": "^8.0.0",
118
118
  "pick-port": "^2.2.0",
119
119
  "prettier": "^3.6.2",
120
120
  "sctp": "^1.0.0",
121
121
  "ts-jest": "^29.4.5",
122
122
  "typescript": "^5.9.3",
123
- "typescript-eslint": "^8.46.4"
123
+ "typescript-eslint": "^8.47.0"
124
124
  }
125
125
  }
@@ -31,8 +31,13 @@ namespace RTC
31
31
  static std::unordered_map<DecodeTargetIndication, std::string> dtiToString;
32
32
 
33
33
  private:
34
- struct FameDependencyTemplate
34
+ struct FrameDependencyTemplate
35
35
  {
36
+ FrameDependencyTemplate(uint32_t spatialLayer, uint32_t temporalLayer)
37
+ : spatialLayer(spatialLayer), temporalLayer(temporalLayer)
38
+ {
39
+ }
40
+
36
41
  uint32_t spatialLayer;
37
42
  uint32_t temporalLayer;
38
43
  std::vector<DecodeTargetIndication> decodeTargetIndications;
@@ -47,7 +52,7 @@ namespace RTC
47
52
  uint32_t temporalLayers{ 0 };
48
53
  uint8_t templateIdOffset{ 0 };
49
54
  uint8_t decodeTargetCount{ 0 };
50
- std::vector<FameDependencyTemplate> templateLayers;
55
+ std::vector<FrameDependencyTemplate> templateLayers;
51
56
  };
52
57
 
53
58
  public:
@@ -59,7 +59,7 @@ namespace RTC
59
59
  }
60
60
  }
61
61
 
62
- this->layerChanges.push_back({ pictureId, layer });
62
+ this->layerChanges.emplace_back(pictureId, layer);
63
63
  }
64
64
 
65
65
  int16_t GetLayer(uint16_t pictureId) const
@@ -36,19 +36,19 @@ namespace RTC
36
36
  }
37
37
  uint32_t GetSenderSsrc() const
38
38
  {
39
- return uint32_t{ ntohl(this->header->senderSsrc) };
39
+ return ntohl(this->header->senderSsrc);
40
40
  }
41
41
  void SetSenderSsrc(uint32_t ssrc)
42
42
  {
43
- this->header->senderSsrc = uint32_t{ htonl(ssrc) };
43
+ this->header->senderSsrc = htonl(ssrc);
44
44
  }
45
45
  uint32_t GetMediaSsrc() const
46
46
  {
47
- return uint32_t{ ntohl(this->header->mediaSsrc) };
47
+ return ntohl(this->header->mediaSsrc);
48
48
  }
49
49
  void SetMediaSsrc(uint32_t ssrc)
50
50
  {
51
- this->header->mediaSsrc = uint32_t{ htonl(ssrc) };
51
+ this->header->mediaSsrc = htonl(ssrc);
52
52
  }
53
53
 
54
54
  /* Pure virtual methods inherited from Packet. */
@@ -50,7 +50,7 @@ namespace RTC
50
50
 
51
51
  uint32_t GetSsrc() const
52
52
  {
53
- return uint32_t{ ntohl(this->header->ssrc) };
53
+ return ntohl(this->header->ssrc);
54
54
  }
55
55
  uint8_t GetSequenceNumber() const
56
56
  {
@@ -41,7 +41,7 @@ namespace RTC
41
41
 
42
42
  uint32_t GetSsrc() const
43
43
  {
44
- return uint32_t{ ntohl(this->header->ssrc) };
44
+ return ntohl(this->header->ssrc);
45
45
  }
46
46
 
47
47
  /* Virtual methods inherited from FeedbackItem. */
@@ -64,7 +64,7 @@ namespace RTC
64
64
 
65
65
  uint32_t GetSsrc() const
66
66
  {
67
- return uint32_t{ ntohl(this->header->ssrc) };
67
+ return ntohl(this->header->ssrc);
68
68
  }
69
69
  uint8_t GetSequenceNumber() const
70
70
  {
@@ -58,7 +58,7 @@ namespace RTC
58
58
 
59
59
  uint32_t GetSsrc() const
60
60
  {
61
- return uint32_t{ ntohl(this->header->ssrc) };
61
+ return ntohl(this->header->ssrc);
62
62
  }
63
63
  uint8_t GetSequenceNumber() const
64
64
  {
@@ -70,7 +70,7 @@ namespace RTC
70
70
  }
71
71
  uint16_t GetLength() const
72
72
  {
73
- return uint16_t{ ntohs(this->header->length) };
73
+ return ntohs(this->header->length);
74
74
  }
75
75
  uint8_t* GetValue() const
76
76
  {
@@ -56,31 +56,31 @@ namespace RTC
56
56
 
57
57
  uint32_t GetSequenceNumber() const
58
58
  {
59
- return uint32_t{ ntohl(this->header->sequenceNumber) };
59
+ return ntohl(this->header->sequenceNumber);
60
60
  }
61
61
  uint32_t GetEct0Counter() const
62
62
  {
63
- return uint32_t{ ntohl(this->header->ect0Counter) };
63
+ return ntohl(this->header->ect0Counter);
64
64
  }
65
65
  uint32_t GetEct1Counter() const
66
66
  {
67
- return uint32_t{ ntohl(this->header->ect1Counter) };
67
+ return ntohl(this->header->ect1Counter);
68
68
  }
69
69
  uint16_t GetEcnCeCounter() const
70
70
  {
71
- return uint16_t{ ntohs(this->header->ecnCeCounter) };
71
+ return ntohs(this->header->ecnCeCounter);
72
72
  }
73
73
  uint16_t GetNotEctCounter() const
74
74
  {
75
- return uint16_t{ ntohs(this->header->notEctCounter) };
75
+ return ntohs(this->header->notEctCounter);
76
76
  }
77
77
  uint16_t GetLostPackets() const
78
78
  {
79
- return uint16_t{ ntohs(this->header->lostPackets) };
79
+ return ntohs(this->header->lostPackets);
80
80
  }
81
81
  uint16_t GetDuplicatedPackets() const
82
82
  {
83
- return uint16_t{ ntohs(this->header->duplicatedPackets) };
83
+ return ntohs(this->header->duplicatedPackets);
84
84
  }
85
85
 
86
86
  /* Virtual methods inherited from FeedbackItem. */
@@ -43,11 +43,11 @@ namespace RTC
43
43
 
44
44
  uint16_t GetPacketId() const
45
45
  {
46
- return uint16_t{ ntohs(this->header->packetId) };
46
+ return ntohs(this->header->packetId);
47
47
  }
48
48
  uint16_t GetLostPacketBitmask() const
49
49
  {
50
- return uint16_t{ ntohs(this->header->lostPacketBitmask) };
50
+ return ntohs(this->header->lostPacketBitmask);
51
51
  }
52
52
  size_t CountRequestedPackets() const
53
53
  {
@@ -42,11 +42,11 @@ namespace RTC
42
42
 
43
43
  uint16_t GetPacketId() const
44
44
  {
45
- return uint16_t{ ntohs(this->header->packetId) };
45
+ return ntohs(this->header->packetId);
46
46
  }
47
47
  uint16_t GetLostPacketBitmask() const
48
48
  {
49
- return uint16_t{ ntohs(this->header->lostPacketBitmask) };
49
+ return ntohs(this->header->lostPacketBitmask);
50
50
  }
51
51
 
52
52
  /* Virtual methods inherited from FeedbackItem. */
@@ -51,11 +51,11 @@ namespace RTC
51
51
  }
52
52
  uint32_t GetSsrc() const
53
53
  {
54
- return uint32_t{ ntohl(this->header->ssrc) };
54
+ return ntohl(this->header->ssrc);
55
55
  }
56
56
  void SetSsrc(uint32_t ssrc)
57
57
  {
58
- this->header->ssrc = uint32_t{ htonl(ssrc) };
58
+ this->header->ssrc = htonl(ssrc);
59
59
  }
60
60
  uint8_t GetFractionLost() const
61
61
  {
@@ -75,35 +75,35 @@ namespace RTC
75
75
  }
76
76
  uint32_t GetLastSeq() const
77
77
  {
78
- return uint32_t{ ntohl(this->header->lastSeq) };
78
+ return ntohl(this->header->lastSeq);
79
79
  }
80
80
  void SetLastSeq(uint32_t lastSeq)
81
81
  {
82
- this->header->lastSeq = uint32_t{ htonl(lastSeq) };
82
+ this->header->lastSeq = htonl(lastSeq);
83
83
  }
84
84
  uint32_t GetJitter() const
85
85
  {
86
- return uint32_t{ ntohl(this->header->jitter) };
86
+ return ntohl(this->header->jitter);
87
87
  }
88
88
  void SetJitter(float jitter)
89
89
  {
90
- this->header->jitter = uint32_t{ htonl(static_cast<uint32_t>(jitter)) };
90
+ this->header->jitter = htonl(static_cast<uint32_t>(jitter));
91
91
  }
92
92
  uint32_t GetLastSenderReport() const
93
93
  {
94
- return uint32_t{ ntohl(this->header->lsr) };
94
+ return ntohl(this->header->lsr);
95
95
  }
96
96
  void SetLastSenderReport(uint32_t lsr)
97
97
  {
98
- this->header->lsr = uint32_t{ htonl(lsr) };
98
+ this->header->lsr = htonl(lsr);
99
99
  }
100
100
  uint32_t GetDelaySinceLastSenderReport() const
101
101
  {
102
- return uint32_t{ ntohl(this->header->dlsr) };
102
+ return ntohl(this->header->dlsr);
103
103
  }
104
104
  void SetDelaySinceLastSenderReport(uint32_t dlsr)
105
105
  {
106
- this->header->dlsr = uint32_t{ htonl(dlsr) };
106
+ this->header->dlsr = htonl(dlsr);
107
107
  }
108
108
 
109
109
  private:
@@ -49,51 +49,51 @@ namespace RTC
49
49
  }
50
50
  uint32_t GetSsrc() const
51
51
  {
52
- return uint32_t{ ntohl(this->header->ssrc) };
52
+ return ntohl(this->header->ssrc);
53
53
  }
54
54
  void SetSsrc(uint32_t ssrc)
55
55
  {
56
- this->header->ssrc = uint32_t{ htonl(ssrc) };
56
+ this->header->ssrc = htonl(ssrc);
57
57
  }
58
58
  uint32_t GetNtpSec() const
59
59
  {
60
- return uint32_t{ ntohl(this->header->ntpSec) };
60
+ return ntohl(this->header->ntpSec);
61
61
  }
62
62
  void SetNtpSec(uint32_t ntpSec)
63
63
  {
64
- this->header->ntpSec = uint32_t{ htonl(ntpSec) };
64
+ this->header->ntpSec = htonl(ntpSec);
65
65
  }
66
66
  uint32_t GetNtpFrac() const
67
67
  {
68
- return uint32_t{ ntohl(this->header->ntpFrac) };
68
+ return ntohl(this->header->ntpFrac);
69
69
  }
70
70
  void SetNtpFrac(uint32_t ntpFrac)
71
71
  {
72
- this->header->ntpFrac = uint32_t{ htonl(ntpFrac) };
72
+ this->header->ntpFrac = htonl(ntpFrac);
73
73
  }
74
74
  uint32_t GetRtpTs() const
75
75
  {
76
- return uint32_t{ ntohl(this->header->rtpTs) };
76
+ return ntohl(this->header->rtpTs);
77
77
  }
78
78
  void SetRtpTs(uint32_t rtpTs)
79
79
  {
80
- this->header->rtpTs = uint32_t{ htonl(rtpTs) };
80
+ this->header->rtpTs = htonl(rtpTs);
81
81
  }
82
82
  uint32_t GetPacketCount() const
83
83
  {
84
- return uint32_t{ ntohl(this->header->packetCount) };
84
+ return ntohl(this->header->packetCount);
85
85
  }
86
86
  void SetPacketCount(uint32_t packetCount)
87
87
  {
88
- this->header->packetCount = uint32_t{ htonl(packetCount) };
88
+ this->header->packetCount = htonl(packetCount);
89
89
  }
90
90
  uint32_t GetOctetCount() const
91
91
  {
92
- return uint32_t{ ntohl(this->header->octetCount) };
92
+ return ntohl(this->header->octetCount);
93
93
  }
94
94
  void SetOctetCount(uint32_t octetCount)
95
95
  {
96
- this->header->octetCount = uint32_t{ htonl(octetCount) };
96
+ this->header->octetCount = htonl(octetCount);
97
97
  }
98
98
 
99
99
  private:
@@ -66,27 +66,27 @@ namespace RTC
66
66
  }
67
67
  uint32_t GetSsrc() const
68
68
  {
69
- return uint32_t{ ntohl(this->body->ssrc) };
69
+ return ntohl(this->body->ssrc);
70
70
  }
71
71
  void SetSsrc(uint32_t ssrc)
72
72
  {
73
- this->body->ssrc = uint32_t{ htonl(ssrc) };
73
+ this->body->ssrc = htonl(ssrc);
74
74
  }
75
75
  uint32_t GetLastReceiverReport() const
76
76
  {
77
- return uint32_t{ ntohl(this->body->lrr) };
77
+ return ntohl(this->body->lrr);
78
78
  }
79
79
  void SetLastReceiverReport(uint32_t lrr)
80
80
  {
81
- this->body->lrr = uint32_t{ htonl(lrr) };
81
+ this->body->lrr = htonl(lrr);
82
82
  }
83
83
  uint32_t GetDelaySinceLastReceiverReport() const
84
84
  {
85
- return uint32_t{ ntohl(this->body->dlrr) };
85
+ return ntohl(this->body->dlrr);
86
86
  }
87
87
  void SetDelaySinceLastReceiverReport(uint32_t dlrr)
88
88
  {
89
- this->body->dlrr = uint32_t{ htonl(dlrr) };
89
+ this->body->dlrr = htonl(dlrr);
90
90
  }
91
91
 
92
92
  private:
@@ -51,19 +51,19 @@ namespace RTC
51
51
  public:
52
52
  uint32_t GetNtpSec() const
53
53
  {
54
- return uint32_t{ ntohl(this->body->ntpSec) };
54
+ return ntohl(this->body->ntpSec);
55
55
  }
56
56
  void SetNtpSec(uint32_t ntpSec)
57
57
  {
58
- this->body->ntpSec = uint32_t{ htonl(ntpSec) };
58
+ this->body->ntpSec = htonl(ntpSec);
59
59
  }
60
60
  uint32_t GetNtpFrac() const
61
61
  {
62
- return uint32_t{ ntohl(this->body->ntpFrac) };
62
+ return ntohl(this->body->ntpFrac);
63
63
  }
64
64
  void SetNtpFrac(uint32_t ntpFrac)
65
65
  {
66
- this->body->ntpFrac = uint32_t{ htonl(ntpFrac) };
66
+ this->body->ntpFrac = htonl(ntpFrac);
67
67
  }
68
68
 
69
69
  /* Pure virtual methods inherited from ExtendedReportBlock. */