@whereby.com/media 1.31.0 → 1.32.1

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/dist/index.cjs CHANGED
@@ -870,7 +870,7 @@ const adapter$6 = (_a$6 = adapterRaw.default) !== null && _a$6 !== void 0 ? _a$6
870
870
  const logger$b = new Logger();
871
871
  const browserName$2 = adapter$6.browserDetails.browser;
872
872
  const browserVersion$1 = adapter$6.browserDetails.version;
873
- function setCodecPreferenceSDP(sdp, vp9On, redOn) {
873
+ function setCodecPreferenceSDP(sdp, redOn) {
874
874
  var _a, _b;
875
875
  try {
876
876
  const sdpObject = sdpTransform__namespace.parse(sdp);
@@ -893,7 +893,7 @@ function setCodecPreferenceSDP(sdp, vp9On, redOn) {
893
893
  if (Array.isArray(mediaVideo === null || mediaVideo === void 0 ? void 0 : mediaVideo.rtp)) {
894
894
  const rtp = mediaVideo.rtp;
895
895
  for (let i = 0; i < rtp.length; i++) {
896
- if (vp9On && rtp[i].codec === "VP9") {
896
+ if (rtp[i].codec === "VP9") {
897
897
  const payloads = (_b = mediaVideo.payloads) === null || _b === void 0 ? void 0 : _b.split(" ");
898
898
  const pt = payloads === null || payloads === void 0 ? void 0 : payloads.indexOf("" + rtp[i].payload);
899
899
  if (pt && pt !== -1 && pt >= 0) {
@@ -914,18 +914,25 @@ function setCodecPreferenceSDP(sdp, vp9On, redOn) {
914
914
  function cleanSdp(sdp) {
915
915
  try {
916
916
  const sdpObject = sdpTransform__namespace.parse(sdp);
917
- sdpObject.media.forEach(mediaObject => {
917
+ sdpObject.media.forEach((mediaObject) => {
918
918
  const usedPayloads = {};
919
919
  if (mediaObject.payloads)
920
- mediaObject.payloads = ("" + mediaObject.payloads).split(' ').filter(p => !usedPayloads[p] && (usedPayloads[p] = true)).join(' ');
920
+ mediaObject.payloads = ("" + mediaObject.payloads)
921
+ .split(" ")
922
+ .filter((p) => !usedPayloads[p] && (usedPayloads[p] = true))
923
+ .join(" ");
921
924
  const usedRtps = {};
922
- mediaObject.rtp = mediaObject.rtp.filter(p => !p.payload || (usedPayloads[p.payload] && !usedRtps[p.payload] && (usedRtps[p.payload] = true)));
925
+ mediaObject.rtp = mediaObject.rtp.filter((p) => !p.payload || (usedPayloads[p.payload] && !usedRtps[p.payload] && (usedRtps[p.payload] = true)));
923
926
  const usedFmtps = {};
924
927
  if (mediaObject.fmtp)
925
- mediaObject.fmtp = mediaObject.fmtp.filter(p => !p.payload || (usedPayloads[p.payload] && !usedFmtps[p.payload] && (usedFmtps[p.payload] = true)));
928
+ mediaObject.fmtp = mediaObject.fmtp.filter((p) => !p.payload ||
929
+ (usedPayloads[p.payload] && !usedFmtps[p.payload] && (usedFmtps[p.payload] = true)));
926
930
  const usedRtcpFb = {};
927
931
  if (mediaObject.rtcpFb)
928
- mediaObject.rtcpFb = mediaObject.rtcpFb.filter(p => !p.payload || (usedPayloads[p.payload] && !usedRtcpFb[p.payload + p.type + p.subtype] && (usedRtcpFb[p.payload + p.type + p.subtype] = true)));
932
+ mediaObject.rtcpFb = mediaObject.rtcpFb.filter((p) => !p.payload ||
933
+ (usedPayloads[p.payload] &&
934
+ !usedRtcpFb[p.payload + p.type + p.subtype] &&
935
+ (usedRtcpFb[p.payload + p.type + p.subtype] = true)));
929
936
  });
930
937
  return sdpTransform__namespace.write(sdpObject);
931
938
  }
@@ -2488,24 +2495,12 @@ const VIDEO_SETTINGS_VP9 = {
2488
2495
  },
2489
2496
  encodings: [{ scalabilityMode: "L3T2", maxBitrate: 1000000 }],
2490
2497
  };
2491
- const VIDEO_SETTINGS_VP9_KEY = {
2492
- codecOptions: {
2493
- videoGoogleStartBitrate: 500,
2494
- },
2495
- encodings: [{ scalabilityMode: "L3T2_KEY", maxBitrate: 1250000 }],
2496
- };
2497
2498
  const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH = {
2498
2499
  codecOptions: {
2499
2500
  videoGoogleStartBitrate: 500,
2500
2501
  },
2501
2502
  encodings: [{ scalabilityMode: "L2T2", maxBitrate: 500000 }],
2502
2503
  };
2503
- const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY = {
2504
- codecOptions: {
2505
- videoGoogleStartBitrate: 500,
2506
- },
2507
- encodings: [{ scalabilityMode: "L2T2_KEY", maxBitrate: 650000 }],
2508
- };
2509
2504
  const SCREEN_SHARE_SETTINGS = {
2510
2505
  encodings: [{}],
2511
2506
  };
@@ -2522,14 +2517,8 @@ const ADDITIONAL_SCREEN_SHARE_SETTINGS = {
2522
2517
  { scaleResolutionDownBy: 1, dtx: true, maxBitrate: 1500000 },
2523
2518
  ],
2524
2519
  };
2525
- const ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9 = {
2526
- encodings: [{ scalabilityMode: "L2T2_KEY", dtx: true, maxBitrate: 1500000 }],
2527
- };
2528
- const SCREEN_SHARE_SETTINGS_VP9 = {
2529
- encodings: [{ dtx: true }],
2530
- };
2531
2520
  const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresenting = false) => {
2532
- const { lowDataModeEnabled, simulcastScreenshareOn, vp9On, svcKeyScalabilityModeOn } = features;
2521
+ const { lowDataModeEnabled, simulcastScreenshareOn, vp9On } = features;
2533
2522
  if (kind === "audio") {
2534
2523
  return AUDIO_SETTINGS;
2535
2524
  }
@@ -2537,7 +2526,6 @@ const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresent
2537
2526
  const isVp9Available = isChrome && vp9On;
2538
2527
  if (isScreenShare) {
2539
2528
  return getScreenShareMediaSettings({
2540
- isVp9Available,
2541
2529
  isSomeoneAlreadyPresenting,
2542
2530
  simulcastScreenshareOn,
2543
2531
  });
@@ -2546,34 +2534,25 @@ const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresent
2546
2534
  return getCameraMediaSettings({
2547
2535
  lowBandwidth: lowDataModeEnabled,
2548
2536
  isVp9Available,
2549
- svcKeyScalabilityModeOn,
2550
2537
  });
2551
2538
  }
2552
2539
  };
2553
- const getCameraMediaSettings = ({ lowBandwidth, isVp9Available, svcKeyScalabilityModeOn, }) => {
2540
+ const getCameraMediaSettings = ({ lowBandwidth, isVp9Available, }) => {
2554
2541
  if (lowBandwidth) {
2555
2542
  if (isVp9Available) {
2556
- if (svcKeyScalabilityModeOn)
2557
- return VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY;
2558
2543
  return VIDEO_SETTINGS_VP9_LOW_BANDWIDTH;
2559
2544
  }
2560
2545
  return VIDEO_SETTINGS_SD;
2561
2546
  }
2562
2547
  if (isVp9Available) {
2563
- if (svcKeyScalabilityModeOn)
2564
- return VIDEO_SETTINGS_VP9_KEY;
2565
2548
  return VIDEO_SETTINGS_VP9;
2566
2549
  }
2567
2550
  return VIDEO_SETTINGS_HD;
2568
2551
  };
2569
- const getScreenShareMediaSettings = ({ isVp9Available, isSomeoneAlreadyPresenting, simulcastScreenshareOn, }) => {
2552
+ const getScreenShareMediaSettings = ({ isSomeoneAlreadyPresenting, simulcastScreenshareOn, }) => {
2570
2553
  if (isSomeoneAlreadyPresenting) {
2571
- if (isVp9Available)
2572
- return ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9;
2573
2554
  return ADDITIONAL_SCREEN_SHARE_SETTINGS;
2574
2555
  }
2575
- if (isVp9Available)
2576
- return SCREEN_SHARE_SETTINGS_VP9;
2577
2556
  if (simulcastScreenshareOn)
2578
2557
  return SCREEN_SHARE_SIMULCAST_SETTINGS;
2579
2558
  return SCREEN_SHARE_SETTINGS;
@@ -2618,10 +2597,8 @@ function prioritizeRouterRtpCapabilitiesCodecs(codecs, preferredCodec) {
2618
2597
  return 0;
2619
2598
  });
2620
2599
  }
2621
- function getPreferredOrder(availableCodecs, { vp9On, av1On }) {
2622
- if (vp9On) {
2623
- availableCodecs.unshift("video/vp9");
2624
- }
2600
+ function getPreferredOrder(availableCodecs, { av1On }) {
2601
+ availableCodecs.unshift("video/vp9");
2625
2602
  if (av1On) {
2626
2603
  availableCodecs.unshift("video/av1");
2627
2604
  }
@@ -2669,11 +2646,9 @@ function sortCodecsByPowerEfficiency(codecs) {
2669
2646
  }
2670
2647
  function sortCodecs(codecs, features) {
2671
2648
  return __awaiter(this, void 0, void 0, function* () {
2672
- codecs = sortCodecsByMimeType(codecs, features);
2673
- if (features.preferHardwareDecodingOn) {
2674
- codecs = yield sortCodecsByPowerEfficiency(codecs);
2675
- }
2676
- return codecs;
2649
+ let sortedCodecs = sortCodecsByMimeType(codecs, features);
2650
+ sortedCodecs = yield sortCodecsByPowerEfficiency(codecs);
2651
+ return sortedCodecs;
2677
2652
  });
2678
2653
  }
2679
2654
 
@@ -3816,10 +3791,7 @@ class P2pRtcManager {
3816
3791
  }
3817
3792
  _setCodecPreferences(pc) {
3818
3793
  return __awaiter(this, void 0, void 0, function* () {
3819
- const { p2pVp9On, p2pAv1On, redOn, preferP2pHardwareDecodingOn } = this._features;
3820
- if (!(p2pVp9On || p2pAv1On || redOn || preferP2pHardwareDecodingOn)) {
3821
- return;
3822
- }
3794
+ const { p2pAv1On, redOn } = this._features;
3823
3795
  try {
3824
3796
  const audioTransceivers = pc
3825
3797
  .getTransceivers()
@@ -3847,13 +3819,9 @@ class P2pRtcManager {
3847
3819
  if (videoTransceiver.setCodecPreferences === undefined)
3848
3820
  return;
3849
3821
  const capabilities = RTCRtpReceiver.getCapabilities("video");
3850
- if (p2pVp9On || p2pAv1On || preferP2pHardwareDecodingOn) {
3851
- capabilities.codecs = yield sortCodecs(capabilities.codecs, {
3852
- vp9On: p2pVp9On,
3853
- av1On: p2pAv1On,
3854
- preferHardwareDecodingOn: p2pVp9On || preferP2pHardwareDecodingOn,
3855
- });
3856
- }
3822
+ capabilities.codecs = yield sortCodecs(capabilities.codecs, {
3823
+ av1On: p2pAv1On,
3824
+ });
3857
3825
  videoTransceiver.setCodecPreferences(capabilities.codecs);
3858
3826
  })));
3859
3827
  }
@@ -3875,14 +3843,14 @@ class P2pRtcManager {
3875
3843
  return;
3876
3844
  }
3877
3845
  session.isOperationPending = true;
3878
- const { p2pVp9On, redOn, rtpAbsCaptureTimeOn, cleanSdpOn } = this._features;
3846
+ const { redOn, rtpAbsCaptureTimeOn, cleanSdpOn } = this._features;
3879
3847
  this._setCodecPreferences(pc).then(() => pc
3880
3848
  .createOffer(constraints || this.offerOptions)
3881
3849
  .then((offer) => {
3882
3850
  if (rtpAbsCaptureTimeOn)
3883
3851
  offer.sdp = addAbsCaptureTimeExtMap(offer.sdp);
3884
- if ((p2pVp9On || redOn) && browserName$1 === "firefox") {
3885
- offer.sdp = setCodecPreferenceSDP(offer.sdp, p2pVp9On, redOn);
3852
+ if (browserName$1 === "firefox") {
3853
+ offer.sdp = setCodecPreferenceSDP(offer.sdp, redOn);
3886
3854
  }
3887
3855
  if (cleanSdpOn)
3888
3856
  offer.sdp = cleanSdp(offer.sdp);
@@ -5650,12 +5618,16 @@ class VegaRtcManager {
5650
5618
  return __awaiter(this, void 0, void 0, function* () {
5651
5619
  logger$3.info("_internalSendScreenVideo()");
5652
5620
  this._screenVideoProducerPromise = (() => __awaiter(this, void 0, void 0, function* () {
5621
+ var _a, _b;
5653
5622
  try {
5654
5623
  if (!this._screenVideoTrack || !this._sendTransport || this._screenVideoProducer) {
5655
5624
  this._screenVideoProducerPromise = null;
5656
5625
  return;
5657
5626
  }
5658
- const producer = yield this._sendTransport.produce(Object.assign(Object.assign({ track: this._screenVideoTrack, disableTrackOnPause: false, stopTracks: false }, getMediaSettings("video", true, Object.assign(Object.assign({}, this._features), { vp9On: this._features.sfuVp9On }), this._getIsSomeoneAlreadyPresenting())), { appData: {
5627
+ const codec = this._features.sfuVp9On
5628
+ ? (_b = (_a = this._routerRtpCapabilities) === null || _a === void 0 ? void 0 : _a.codecs) === null || _b === void 0 ? void 0 : _b.find((codec) => codec.mimeType.match(/vp8/i))
5629
+ : undefined;
5630
+ const producer = yield this._sendTransport.produce(Object.assign(Object.assign({ track: this._screenVideoTrack, disableTrackOnPause: false, stopTracks: false, codec }, getMediaSettings("video", true, Object.assign(Object.assign({}, this._features), { vp9On: false }), this._getIsSomeoneAlreadyPresenting())), { appData: {
5659
5631
  streamId: OUTBOUND_SCREEN_OUTBOUND_STREAM_ID,
5660
5632
  sourceClientId: this._selfId,
5661
5633
  screenShare: true,
@@ -7973,7 +7945,6 @@ exports.RtcEventNames = void 0;
7973
7945
  })(exports.RtcEventNames || (exports.RtcEventNames = {}));
7974
7946
 
7975
7947
  exports.ADDITIONAL_SCREEN_SHARE_SETTINGS = ADDITIONAL_SCREEN_SHARE_SETTINGS;
7976
- exports.ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9 = ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9;
7977
7948
  exports.AUDIO_SETTINGS = AUDIO_SETTINGS;
7978
7949
  exports.BandwidthTester = BandwidthTester;
7979
7950
  exports.EVENTS = EVENTS;
@@ -7992,7 +7963,6 @@ exports.ReconnectManager = ReconnectManager;
7992
7963
  exports.RtcManagerDispatcher = RtcManagerDispatcher;
7993
7964
  exports.RtcStream = RtcStream;
7994
7965
  exports.SCREEN_SHARE_SETTINGS = SCREEN_SHARE_SETTINGS;
7995
- exports.SCREEN_SHARE_SETTINGS_VP9 = SCREEN_SHARE_SETTINGS_VP9;
7996
7966
  exports.SCREEN_SHARE_SIMULCAST_SETTINGS = SCREEN_SHARE_SIMULCAST_SETTINGS;
7997
7967
  exports.STREAM_TYPES = STREAM_TYPES;
7998
7968
  exports.ServerSocket = ServerSocket;
@@ -8002,9 +7972,7 @@ exports.TYPES = TYPES;
8002
7972
  exports.VIDEO_SETTINGS_HD = VIDEO_SETTINGS_HD;
8003
7973
  exports.VIDEO_SETTINGS_SD = VIDEO_SETTINGS_SD;
8004
7974
  exports.VIDEO_SETTINGS_VP9 = VIDEO_SETTINGS_VP9;
8005
- exports.VIDEO_SETTINGS_VP9_KEY = VIDEO_SETTINGS_VP9_KEY;
8006
7975
  exports.VIDEO_SETTINGS_VP9_LOW_BANDWIDTH = VIDEO_SETTINGS_VP9_LOW_BANDWIDTH;
8007
- exports.VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY = VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY;
8008
7976
  exports.VegaConnection = VegaConnection;
8009
7977
  exports.VegaMediaQualityMonitor = VegaMediaQualityMonitor;
8010
7978
  exports.VegaRtcManager = VegaRtcManager;
package/dist/index.d.cts CHANGED
@@ -630,15 +630,6 @@ declare const VIDEO_SETTINGS_VP9: {
630
630
  maxBitrate: number;
631
631
  }[];
632
632
  };
633
- declare const VIDEO_SETTINGS_VP9_KEY: {
634
- codecOptions: {
635
- videoGoogleStartBitrate: number;
636
- };
637
- encodings: {
638
- scalabilityMode: string;
639
- maxBitrate: number;
640
- }[];
641
- };
642
633
  declare const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH: {
643
634
  codecOptions: {
644
635
  videoGoogleStartBitrate: number;
@@ -648,15 +639,6 @@ declare const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH: {
648
639
  maxBitrate: number;
649
640
  }[];
650
641
  };
651
- declare const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY: {
652
- codecOptions: {
653
- videoGoogleStartBitrate: number;
654
- };
655
- encodings: {
656
- scalabilityMode: string;
657
- maxBitrate: number;
658
- }[];
659
- };
660
642
  declare const SCREEN_SHARE_SETTINGS: {
661
643
  encodings: {}[];
662
644
  };
@@ -674,23 +656,10 @@ declare const ADDITIONAL_SCREEN_SHARE_SETTINGS: {
674
656
  maxBitrate: number;
675
657
  }[];
676
658
  };
677
- declare const ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9: {
678
- encodings: {
679
- scalabilityMode: string;
680
- dtx: boolean;
681
- maxBitrate: number;
682
- }[];
683
- };
684
- declare const SCREEN_SHARE_SETTINGS_VP9: {
685
- encodings: {
686
- dtx: boolean;
687
- }[];
688
- };
689
659
  declare const getMediaSettings: (kind: string, isScreenShare: boolean, features: {
690
660
  lowDataModeEnabled?: boolean;
691
661
  simulcastScreenshareOn?: boolean;
692
662
  vp9On?: boolean;
693
- svcKeyScalabilityModeOn?: boolean;
694
663
  }, isSomeoneAlreadyPresenting?: boolean) => {
695
664
  encodings: {}[];
696
665
  };
@@ -704,9 +673,7 @@ interface Codec {
704
673
  sdpFmtpLine?: string;
705
674
  }
706
675
  declare function sortCodecs(codecs: Codec[], features: {
707
- vp9On?: boolean;
708
676
  av1On?: boolean;
709
- preferHardwareDecodingOn?: boolean;
710
677
  }): Promise<Codec[]>;
711
678
 
712
679
  declare class ReconnectManager extends EventEmitter {
@@ -1223,7 +1190,7 @@ declare const rtcStats: {
1223
1190
  };
1224
1191
  };
1225
1192
 
1226
- declare function setCodecPreferenceSDP(sdp: any, vp9On?: boolean, redOn?: boolean): string | undefined;
1193
+ declare function setCodecPreferenceSDP(sdp: any, redOn?: boolean): string | undefined;
1227
1194
  declare function cleanSdp(sdp: string): string;
1228
1195
  declare function maybeRejectNoH264(sdp: any): any;
1229
1196
  declare function deprioritizeH264(sdp: any): string;
@@ -1464,7 +1431,7 @@ declare class VegaRtcManager implements RtcManager {
1464
1431
  _micAnalyser: any;
1465
1432
  _micAnalyserDebugger: any;
1466
1433
  _mediasoupDevice: Device | null;
1467
- _routerRtpCapabilities: any;
1434
+ _routerRtpCapabilities: RtpCapabilities | null;
1468
1435
  _sendTransport: any;
1469
1436
  _receiveTransport: any;
1470
1437
  _clientStates: Map<string, ClientState>;
@@ -1800,5 +1767,5 @@ declare class RtcStream {
1800
1767
  static getTypeFromId(id: string): string;
1801
1768
  }
1802
1769
 
1803
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1770
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1804
1771
  export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, NewClientEvent, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TrackStats, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, ViewStats, ssrcStats };
package/dist/index.d.mts CHANGED
@@ -630,15 +630,6 @@ declare const VIDEO_SETTINGS_VP9: {
630
630
  maxBitrate: number;
631
631
  }[];
632
632
  };
633
- declare const VIDEO_SETTINGS_VP9_KEY: {
634
- codecOptions: {
635
- videoGoogleStartBitrate: number;
636
- };
637
- encodings: {
638
- scalabilityMode: string;
639
- maxBitrate: number;
640
- }[];
641
- };
642
633
  declare const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH: {
643
634
  codecOptions: {
644
635
  videoGoogleStartBitrate: number;
@@ -648,15 +639,6 @@ declare const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH: {
648
639
  maxBitrate: number;
649
640
  }[];
650
641
  };
651
- declare const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY: {
652
- codecOptions: {
653
- videoGoogleStartBitrate: number;
654
- };
655
- encodings: {
656
- scalabilityMode: string;
657
- maxBitrate: number;
658
- }[];
659
- };
660
642
  declare const SCREEN_SHARE_SETTINGS: {
661
643
  encodings: {}[];
662
644
  };
@@ -674,23 +656,10 @@ declare const ADDITIONAL_SCREEN_SHARE_SETTINGS: {
674
656
  maxBitrate: number;
675
657
  }[];
676
658
  };
677
- declare const ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9: {
678
- encodings: {
679
- scalabilityMode: string;
680
- dtx: boolean;
681
- maxBitrate: number;
682
- }[];
683
- };
684
- declare const SCREEN_SHARE_SETTINGS_VP9: {
685
- encodings: {
686
- dtx: boolean;
687
- }[];
688
- };
689
659
  declare const getMediaSettings: (kind: string, isScreenShare: boolean, features: {
690
660
  lowDataModeEnabled?: boolean;
691
661
  simulcastScreenshareOn?: boolean;
692
662
  vp9On?: boolean;
693
- svcKeyScalabilityModeOn?: boolean;
694
663
  }, isSomeoneAlreadyPresenting?: boolean) => {
695
664
  encodings: {}[];
696
665
  };
@@ -704,9 +673,7 @@ interface Codec {
704
673
  sdpFmtpLine?: string;
705
674
  }
706
675
  declare function sortCodecs(codecs: Codec[], features: {
707
- vp9On?: boolean;
708
676
  av1On?: boolean;
709
- preferHardwareDecodingOn?: boolean;
710
677
  }): Promise<Codec[]>;
711
678
 
712
679
  declare class ReconnectManager extends EventEmitter {
@@ -1223,7 +1190,7 @@ declare const rtcStats: {
1223
1190
  };
1224
1191
  };
1225
1192
 
1226
- declare function setCodecPreferenceSDP(sdp: any, vp9On?: boolean, redOn?: boolean): string | undefined;
1193
+ declare function setCodecPreferenceSDP(sdp: any, redOn?: boolean): string | undefined;
1227
1194
  declare function cleanSdp(sdp: string): string;
1228
1195
  declare function maybeRejectNoH264(sdp: any): any;
1229
1196
  declare function deprioritizeH264(sdp: any): string;
@@ -1464,7 +1431,7 @@ declare class VegaRtcManager implements RtcManager {
1464
1431
  _micAnalyser: any;
1465
1432
  _micAnalyserDebugger: any;
1466
1433
  _mediasoupDevice: Device | null;
1467
- _routerRtpCapabilities: any;
1434
+ _routerRtpCapabilities: RtpCapabilities | null;
1468
1435
  _sendTransport: any;
1469
1436
  _receiveTransport: any;
1470
1437
  _clientStates: Map<string, ClientState>;
@@ -1800,5 +1767,5 @@ declare class RtcStream {
1800
1767
  static getTypeFromId(id: string): string;
1801
1768
  }
1802
1769
 
1803
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1770
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1804
1771
  export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, NewClientEvent, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TrackStats, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, ViewStats, ssrcStats };
package/dist/index.d.ts CHANGED
@@ -630,15 +630,6 @@ declare const VIDEO_SETTINGS_VP9: {
630
630
  maxBitrate: number;
631
631
  }[];
632
632
  };
633
- declare const VIDEO_SETTINGS_VP9_KEY: {
634
- codecOptions: {
635
- videoGoogleStartBitrate: number;
636
- };
637
- encodings: {
638
- scalabilityMode: string;
639
- maxBitrate: number;
640
- }[];
641
- };
642
633
  declare const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH: {
643
634
  codecOptions: {
644
635
  videoGoogleStartBitrate: number;
@@ -648,15 +639,6 @@ declare const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH: {
648
639
  maxBitrate: number;
649
640
  }[];
650
641
  };
651
- declare const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY: {
652
- codecOptions: {
653
- videoGoogleStartBitrate: number;
654
- };
655
- encodings: {
656
- scalabilityMode: string;
657
- maxBitrate: number;
658
- }[];
659
- };
660
642
  declare const SCREEN_SHARE_SETTINGS: {
661
643
  encodings: {}[];
662
644
  };
@@ -674,23 +656,10 @@ declare const ADDITIONAL_SCREEN_SHARE_SETTINGS: {
674
656
  maxBitrate: number;
675
657
  }[];
676
658
  };
677
- declare const ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9: {
678
- encodings: {
679
- scalabilityMode: string;
680
- dtx: boolean;
681
- maxBitrate: number;
682
- }[];
683
- };
684
- declare const SCREEN_SHARE_SETTINGS_VP9: {
685
- encodings: {
686
- dtx: boolean;
687
- }[];
688
- };
689
659
  declare const getMediaSettings: (kind: string, isScreenShare: boolean, features: {
690
660
  lowDataModeEnabled?: boolean;
691
661
  simulcastScreenshareOn?: boolean;
692
662
  vp9On?: boolean;
693
- svcKeyScalabilityModeOn?: boolean;
694
663
  }, isSomeoneAlreadyPresenting?: boolean) => {
695
664
  encodings: {}[];
696
665
  };
@@ -704,9 +673,7 @@ interface Codec {
704
673
  sdpFmtpLine?: string;
705
674
  }
706
675
  declare function sortCodecs(codecs: Codec[], features: {
707
- vp9On?: boolean;
708
676
  av1On?: boolean;
709
- preferHardwareDecodingOn?: boolean;
710
677
  }): Promise<Codec[]>;
711
678
 
712
679
  declare class ReconnectManager extends EventEmitter {
@@ -1223,7 +1190,7 @@ declare const rtcStats: {
1223
1190
  };
1224
1191
  };
1225
1192
 
1226
- declare function setCodecPreferenceSDP(sdp: any, vp9On?: boolean, redOn?: boolean): string | undefined;
1193
+ declare function setCodecPreferenceSDP(sdp: any, redOn?: boolean): string | undefined;
1227
1194
  declare function cleanSdp(sdp: string): string;
1228
1195
  declare function maybeRejectNoH264(sdp: any): any;
1229
1196
  declare function deprioritizeH264(sdp: any): string;
@@ -1464,7 +1431,7 @@ declare class VegaRtcManager implements RtcManager {
1464
1431
  _micAnalyser: any;
1465
1432
  _micAnalyserDebugger: any;
1466
1433
  _mediasoupDevice: Device | null;
1467
- _routerRtpCapabilities: any;
1434
+ _routerRtpCapabilities: RtpCapabilities | null;
1468
1435
  _sendTransport: any;
1469
1436
  _receiveTransport: any;
1470
1437
  _clientStates: Map<string, ClientState>;
@@ -1800,5 +1767,5 @@ declare class RtcStream {
1800
1767
  static getTypeFromId(id: string): string;
1801
1768
  }
1802
1769
 
1803
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1770
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1804
1771
  export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, NewClientEvent, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TrackStats, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, ViewStats, ssrcStats };
package/dist/index.mjs CHANGED
@@ -845,7 +845,7 @@ const adapter$6 = (_a$6 = adapterRaw.default) !== null && _a$6 !== void 0 ? _a$6
845
845
  const logger$b = new Logger();
846
846
  const browserName$2 = adapter$6.browserDetails.browser;
847
847
  const browserVersion$1 = adapter$6.browserDetails.version;
848
- function setCodecPreferenceSDP(sdp, vp9On, redOn) {
848
+ function setCodecPreferenceSDP(sdp, redOn) {
849
849
  var _a, _b;
850
850
  try {
851
851
  const sdpObject = sdpTransform.parse(sdp);
@@ -868,7 +868,7 @@ function setCodecPreferenceSDP(sdp, vp9On, redOn) {
868
868
  if (Array.isArray(mediaVideo === null || mediaVideo === void 0 ? void 0 : mediaVideo.rtp)) {
869
869
  const rtp = mediaVideo.rtp;
870
870
  for (let i = 0; i < rtp.length; i++) {
871
- if (vp9On && rtp[i].codec === "VP9") {
871
+ if (rtp[i].codec === "VP9") {
872
872
  const payloads = (_b = mediaVideo.payloads) === null || _b === void 0 ? void 0 : _b.split(" ");
873
873
  const pt = payloads === null || payloads === void 0 ? void 0 : payloads.indexOf("" + rtp[i].payload);
874
874
  if (pt && pt !== -1 && pt >= 0) {
@@ -889,18 +889,25 @@ function setCodecPreferenceSDP(sdp, vp9On, redOn) {
889
889
  function cleanSdp(sdp) {
890
890
  try {
891
891
  const sdpObject = sdpTransform.parse(sdp);
892
- sdpObject.media.forEach(mediaObject => {
892
+ sdpObject.media.forEach((mediaObject) => {
893
893
  const usedPayloads = {};
894
894
  if (mediaObject.payloads)
895
- mediaObject.payloads = ("" + mediaObject.payloads).split(' ').filter(p => !usedPayloads[p] && (usedPayloads[p] = true)).join(' ');
895
+ mediaObject.payloads = ("" + mediaObject.payloads)
896
+ .split(" ")
897
+ .filter((p) => !usedPayloads[p] && (usedPayloads[p] = true))
898
+ .join(" ");
896
899
  const usedRtps = {};
897
- mediaObject.rtp = mediaObject.rtp.filter(p => !p.payload || (usedPayloads[p.payload] && !usedRtps[p.payload] && (usedRtps[p.payload] = true)));
900
+ mediaObject.rtp = mediaObject.rtp.filter((p) => !p.payload || (usedPayloads[p.payload] && !usedRtps[p.payload] && (usedRtps[p.payload] = true)));
898
901
  const usedFmtps = {};
899
902
  if (mediaObject.fmtp)
900
- mediaObject.fmtp = mediaObject.fmtp.filter(p => !p.payload || (usedPayloads[p.payload] && !usedFmtps[p.payload] && (usedFmtps[p.payload] = true)));
903
+ mediaObject.fmtp = mediaObject.fmtp.filter((p) => !p.payload ||
904
+ (usedPayloads[p.payload] && !usedFmtps[p.payload] && (usedFmtps[p.payload] = true)));
901
905
  const usedRtcpFb = {};
902
906
  if (mediaObject.rtcpFb)
903
- mediaObject.rtcpFb = mediaObject.rtcpFb.filter(p => !p.payload || (usedPayloads[p.payload] && !usedRtcpFb[p.payload + p.type + p.subtype] && (usedRtcpFb[p.payload + p.type + p.subtype] = true)));
907
+ mediaObject.rtcpFb = mediaObject.rtcpFb.filter((p) => !p.payload ||
908
+ (usedPayloads[p.payload] &&
909
+ !usedRtcpFb[p.payload + p.type + p.subtype] &&
910
+ (usedRtcpFb[p.payload + p.type + p.subtype] = true)));
904
911
  });
905
912
  return sdpTransform.write(sdpObject);
906
913
  }
@@ -2463,24 +2470,12 @@ const VIDEO_SETTINGS_VP9 = {
2463
2470
  },
2464
2471
  encodings: [{ scalabilityMode: "L3T2", maxBitrate: 1000000 }],
2465
2472
  };
2466
- const VIDEO_SETTINGS_VP9_KEY = {
2467
- codecOptions: {
2468
- videoGoogleStartBitrate: 500,
2469
- },
2470
- encodings: [{ scalabilityMode: "L3T2_KEY", maxBitrate: 1250000 }],
2471
- };
2472
2473
  const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH = {
2473
2474
  codecOptions: {
2474
2475
  videoGoogleStartBitrate: 500,
2475
2476
  },
2476
2477
  encodings: [{ scalabilityMode: "L2T2", maxBitrate: 500000 }],
2477
2478
  };
2478
- const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY = {
2479
- codecOptions: {
2480
- videoGoogleStartBitrate: 500,
2481
- },
2482
- encodings: [{ scalabilityMode: "L2T2_KEY", maxBitrate: 650000 }],
2483
- };
2484
2479
  const SCREEN_SHARE_SETTINGS = {
2485
2480
  encodings: [{}],
2486
2481
  };
@@ -2497,14 +2492,8 @@ const ADDITIONAL_SCREEN_SHARE_SETTINGS = {
2497
2492
  { scaleResolutionDownBy: 1, dtx: true, maxBitrate: 1500000 },
2498
2493
  ],
2499
2494
  };
2500
- const ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9 = {
2501
- encodings: [{ scalabilityMode: "L2T2_KEY", dtx: true, maxBitrate: 1500000 }],
2502
- };
2503
- const SCREEN_SHARE_SETTINGS_VP9 = {
2504
- encodings: [{ dtx: true }],
2505
- };
2506
2495
  const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresenting = false) => {
2507
- const { lowDataModeEnabled, simulcastScreenshareOn, vp9On, svcKeyScalabilityModeOn } = features;
2496
+ const { lowDataModeEnabled, simulcastScreenshareOn, vp9On } = features;
2508
2497
  if (kind === "audio") {
2509
2498
  return AUDIO_SETTINGS;
2510
2499
  }
@@ -2512,7 +2501,6 @@ const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresent
2512
2501
  const isVp9Available = isChrome && vp9On;
2513
2502
  if (isScreenShare) {
2514
2503
  return getScreenShareMediaSettings({
2515
- isVp9Available,
2516
2504
  isSomeoneAlreadyPresenting,
2517
2505
  simulcastScreenshareOn,
2518
2506
  });
@@ -2521,34 +2509,25 @@ const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresent
2521
2509
  return getCameraMediaSettings({
2522
2510
  lowBandwidth: lowDataModeEnabled,
2523
2511
  isVp9Available,
2524
- svcKeyScalabilityModeOn,
2525
2512
  });
2526
2513
  }
2527
2514
  };
2528
- const getCameraMediaSettings = ({ lowBandwidth, isVp9Available, svcKeyScalabilityModeOn, }) => {
2515
+ const getCameraMediaSettings = ({ lowBandwidth, isVp9Available, }) => {
2529
2516
  if (lowBandwidth) {
2530
2517
  if (isVp9Available) {
2531
- if (svcKeyScalabilityModeOn)
2532
- return VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY;
2533
2518
  return VIDEO_SETTINGS_VP9_LOW_BANDWIDTH;
2534
2519
  }
2535
2520
  return VIDEO_SETTINGS_SD;
2536
2521
  }
2537
2522
  if (isVp9Available) {
2538
- if (svcKeyScalabilityModeOn)
2539
- return VIDEO_SETTINGS_VP9_KEY;
2540
2523
  return VIDEO_SETTINGS_VP9;
2541
2524
  }
2542
2525
  return VIDEO_SETTINGS_HD;
2543
2526
  };
2544
- const getScreenShareMediaSettings = ({ isVp9Available, isSomeoneAlreadyPresenting, simulcastScreenshareOn, }) => {
2527
+ const getScreenShareMediaSettings = ({ isSomeoneAlreadyPresenting, simulcastScreenshareOn, }) => {
2545
2528
  if (isSomeoneAlreadyPresenting) {
2546
- if (isVp9Available)
2547
- return ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9;
2548
2529
  return ADDITIONAL_SCREEN_SHARE_SETTINGS;
2549
2530
  }
2550
- if (isVp9Available)
2551
- return SCREEN_SHARE_SETTINGS_VP9;
2552
2531
  if (simulcastScreenshareOn)
2553
2532
  return SCREEN_SHARE_SIMULCAST_SETTINGS;
2554
2533
  return SCREEN_SHARE_SETTINGS;
@@ -2593,10 +2572,8 @@ function prioritizeRouterRtpCapabilitiesCodecs(codecs, preferredCodec) {
2593
2572
  return 0;
2594
2573
  });
2595
2574
  }
2596
- function getPreferredOrder(availableCodecs, { vp9On, av1On }) {
2597
- if (vp9On) {
2598
- availableCodecs.unshift("video/vp9");
2599
- }
2575
+ function getPreferredOrder(availableCodecs, { av1On }) {
2576
+ availableCodecs.unshift("video/vp9");
2600
2577
  if (av1On) {
2601
2578
  availableCodecs.unshift("video/av1");
2602
2579
  }
@@ -2644,11 +2621,9 @@ function sortCodecsByPowerEfficiency(codecs) {
2644
2621
  }
2645
2622
  function sortCodecs(codecs, features) {
2646
2623
  return __awaiter(this, void 0, void 0, function* () {
2647
- codecs = sortCodecsByMimeType(codecs, features);
2648
- if (features.preferHardwareDecodingOn) {
2649
- codecs = yield sortCodecsByPowerEfficiency(codecs);
2650
- }
2651
- return codecs;
2624
+ let sortedCodecs = sortCodecsByMimeType(codecs, features);
2625
+ sortedCodecs = yield sortCodecsByPowerEfficiency(codecs);
2626
+ return sortedCodecs;
2652
2627
  });
2653
2628
  }
2654
2629
 
@@ -3791,10 +3766,7 @@ class P2pRtcManager {
3791
3766
  }
3792
3767
  _setCodecPreferences(pc) {
3793
3768
  return __awaiter(this, void 0, void 0, function* () {
3794
- const { p2pVp9On, p2pAv1On, redOn, preferP2pHardwareDecodingOn } = this._features;
3795
- if (!(p2pVp9On || p2pAv1On || redOn || preferP2pHardwareDecodingOn)) {
3796
- return;
3797
- }
3769
+ const { p2pAv1On, redOn } = this._features;
3798
3770
  try {
3799
3771
  const audioTransceivers = pc
3800
3772
  .getTransceivers()
@@ -3822,13 +3794,9 @@ class P2pRtcManager {
3822
3794
  if (videoTransceiver.setCodecPreferences === undefined)
3823
3795
  return;
3824
3796
  const capabilities = RTCRtpReceiver.getCapabilities("video");
3825
- if (p2pVp9On || p2pAv1On || preferP2pHardwareDecodingOn) {
3826
- capabilities.codecs = yield sortCodecs(capabilities.codecs, {
3827
- vp9On: p2pVp9On,
3828
- av1On: p2pAv1On,
3829
- preferHardwareDecodingOn: p2pVp9On || preferP2pHardwareDecodingOn,
3830
- });
3831
- }
3797
+ capabilities.codecs = yield sortCodecs(capabilities.codecs, {
3798
+ av1On: p2pAv1On,
3799
+ });
3832
3800
  videoTransceiver.setCodecPreferences(capabilities.codecs);
3833
3801
  })));
3834
3802
  }
@@ -3850,14 +3818,14 @@ class P2pRtcManager {
3850
3818
  return;
3851
3819
  }
3852
3820
  session.isOperationPending = true;
3853
- const { p2pVp9On, redOn, rtpAbsCaptureTimeOn, cleanSdpOn } = this._features;
3821
+ const { redOn, rtpAbsCaptureTimeOn, cleanSdpOn } = this._features;
3854
3822
  this._setCodecPreferences(pc).then(() => pc
3855
3823
  .createOffer(constraints || this.offerOptions)
3856
3824
  .then((offer) => {
3857
3825
  if (rtpAbsCaptureTimeOn)
3858
3826
  offer.sdp = addAbsCaptureTimeExtMap(offer.sdp);
3859
- if ((p2pVp9On || redOn) && browserName$1 === "firefox") {
3860
- offer.sdp = setCodecPreferenceSDP(offer.sdp, p2pVp9On, redOn);
3827
+ if (browserName$1 === "firefox") {
3828
+ offer.sdp = setCodecPreferenceSDP(offer.sdp, redOn);
3861
3829
  }
3862
3830
  if (cleanSdpOn)
3863
3831
  offer.sdp = cleanSdp(offer.sdp);
@@ -5625,12 +5593,16 @@ class VegaRtcManager {
5625
5593
  return __awaiter(this, void 0, void 0, function* () {
5626
5594
  logger$3.info("_internalSendScreenVideo()");
5627
5595
  this._screenVideoProducerPromise = (() => __awaiter(this, void 0, void 0, function* () {
5596
+ var _a, _b;
5628
5597
  try {
5629
5598
  if (!this._screenVideoTrack || !this._sendTransport || this._screenVideoProducer) {
5630
5599
  this._screenVideoProducerPromise = null;
5631
5600
  return;
5632
5601
  }
5633
- const producer = yield this._sendTransport.produce(Object.assign(Object.assign({ track: this._screenVideoTrack, disableTrackOnPause: false, stopTracks: false }, getMediaSettings("video", true, Object.assign(Object.assign({}, this._features), { vp9On: this._features.sfuVp9On }), this._getIsSomeoneAlreadyPresenting())), { appData: {
5602
+ const codec = this._features.sfuVp9On
5603
+ ? (_b = (_a = this._routerRtpCapabilities) === null || _a === void 0 ? void 0 : _a.codecs) === null || _b === void 0 ? void 0 : _b.find((codec) => codec.mimeType.match(/vp8/i))
5604
+ : undefined;
5605
+ const producer = yield this._sendTransport.produce(Object.assign(Object.assign({ track: this._screenVideoTrack, disableTrackOnPause: false, stopTracks: false, codec }, getMediaSettings("video", true, Object.assign(Object.assign({}, this._features), { vp9On: false }), this._getIsSomeoneAlreadyPresenting())), { appData: {
5634
5606
  streamId: OUTBOUND_SCREEN_OUTBOUND_STREAM_ID,
5635
5607
  sourceClientId: this._selfId,
5636
5608
  screenShare: true,
@@ -7947,4 +7919,4 @@ var RtcEventNames;
7947
7919
  RtcEventNames["stream_added"] = "stream_added";
7948
7920
  })(RtcEventNames || (RtcEventNames = {}));
7949
7921
 
7950
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
7922
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
@@ -845,7 +845,7 @@ const adapter$6 = (_a$6 = adapterRaw.default) !== null && _a$6 !== void 0 ? _a$6
845
845
  const logger$b = new Logger();
846
846
  const browserName$2 = adapter$6.browserDetails.browser;
847
847
  const browserVersion$1 = adapter$6.browserDetails.version;
848
- function setCodecPreferenceSDP(sdp, vp9On, redOn) {
848
+ function setCodecPreferenceSDP(sdp, redOn) {
849
849
  var _a, _b;
850
850
  try {
851
851
  const sdpObject = sdpTransform.parse(sdp);
@@ -868,7 +868,7 @@ function setCodecPreferenceSDP(sdp, vp9On, redOn) {
868
868
  if (Array.isArray(mediaVideo === null || mediaVideo === void 0 ? void 0 : mediaVideo.rtp)) {
869
869
  const rtp = mediaVideo.rtp;
870
870
  for (let i = 0; i < rtp.length; i++) {
871
- if (vp9On && rtp[i].codec === "VP9") {
871
+ if (rtp[i].codec === "VP9") {
872
872
  const payloads = (_b = mediaVideo.payloads) === null || _b === void 0 ? void 0 : _b.split(" ");
873
873
  const pt = payloads === null || payloads === void 0 ? void 0 : payloads.indexOf("" + rtp[i].payload);
874
874
  if (pt && pt !== -1 && pt >= 0) {
@@ -889,18 +889,25 @@ function setCodecPreferenceSDP(sdp, vp9On, redOn) {
889
889
  function cleanSdp(sdp) {
890
890
  try {
891
891
  const sdpObject = sdpTransform.parse(sdp);
892
- sdpObject.media.forEach(mediaObject => {
892
+ sdpObject.media.forEach((mediaObject) => {
893
893
  const usedPayloads = {};
894
894
  if (mediaObject.payloads)
895
- mediaObject.payloads = ("" + mediaObject.payloads).split(' ').filter(p => !usedPayloads[p] && (usedPayloads[p] = true)).join(' ');
895
+ mediaObject.payloads = ("" + mediaObject.payloads)
896
+ .split(" ")
897
+ .filter((p) => !usedPayloads[p] && (usedPayloads[p] = true))
898
+ .join(" ");
896
899
  const usedRtps = {};
897
- mediaObject.rtp = mediaObject.rtp.filter(p => !p.payload || (usedPayloads[p.payload] && !usedRtps[p.payload] && (usedRtps[p.payload] = true)));
900
+ mediaObject.rtp = mediaObject.rtp.filter((p) => !p.payload || (usedPayloads[p.payload] && !usedRtps[p.payload] && (usedRtps[p.payload] = true)));
898
901
  const usedFmtps = {};
899
902
  if (mediaObject.fmtp)
900
- mediaObject.fmtp = mediaObject.fmtp.filter(p => !p.payload || (usedPayloads[p.payload] && !usedFmtps[p.payload] && (usedFmtps[p.payload] = true)));
903
+ mediaObject.fmtp = mediaObject.fmtp.filter((p) => !p.payload ||
904
+ (usedPayloads[p.payload] && !usedFmtps[p.payload] && (usedFmtps[p.payload] = true)));
901
905
  const usedRtcpFb = {};
902
906
  if (mediaObject.rtcpFb)
903
- mediaObject.rtcpFb = mediaObject.rtcpFb.filter(p => !p.payload || (usedPayloads[p.payload] && !usedRtcpFb[p.payload + p.type + p.subtype] && (usedRtcpFb[p.payload + p.type + p.subtype] = true)));
907
+ mediaObject.rtcpFb = mediaObject.rtcpFb.filter((p) => !p.payload ||
908
+ (usedPayloads[p.payload] &&
909
+ !usedRtcpFb[p.payload + p.type + p.subtype] &&
910
+ (usedRtcpFb[p.payload + p.type + p.subtype] = true)));
904
911
  });
905
912
  return sdpTransform.write(sdpObject);
906
913
  }
@@ -2463,24 +2470,12 @@ const VIDEO_SETTINGS_VP9 = {
2463
2470
  },
2464
2471
  encodings: [{ scalabilityMode: "L3T2", maxBitrate: 1000000 }],
2465
2472
  };
2466
- const VIDEO_SETTINGS_VP9_KEY = {
2467
- codecOptions: {
2468
- videoGoogleStartBitrate: 500,
2469
- },
2470
- encodings: [{ scalabilityMode: "L3T2_KEY", maxBitrate: 1250000 }],
2471
- };
2472
2473
  const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH = {
2473
2474
  codecOptions: {
2474
2475
  videoGoogleStartBitrate: 500,
2475
2476
  },
2476
2477
  encodings: [{ scalabilityMode: "L2T2", maxBitrate: 500000 }],
2477
2478
  };
2478
- const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY = {
2479
- codecOptions: {
2480
- videoGoogleStartBitrate: 500,
2481
- },
2482
- encodings: [{ scalabilityMode: "L2T2_KEY", maxBitrate: 650000 }],
2483
- };
2484
2479
  const SCREEN_SHARE_SETTINGS = {
2485
2480
  encodings: [{}],
2486
2481
  };
@@ -2497,14 +2492,8 @@ const ADDITIONAL_SCREEN_SHARE_SETTINGS = {
2497
2492
  { scaleResolutionDownBy: 1, dtx: true, maxBitrate: 1500000 },
2498
2493
  ],
2499
2494
  };
2500
- const ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9 = {
2501
- encodings: [{ scalabilityMode: "L2T2_KEY", dtx: true, maxBitrate: 1500000 }],
2502
- };
2503
- const SCREEN_SHARE_SETTINGS_VP9 = {
2504
- encodings: [{ dtx: true }],
2505
- };
2506
2495
  const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresenting = false) => {
2507
- const { lowDataModeEnabled, simulcastScreenshareOn, vp9On, svcKeyScalabilityModeOn } = features;
2496
+ const { lowDataModeEnabled, simulcastScreenshareOn, vp9On } = features;
2508
2497
  if (kind === "audio") {
2509
2498
  return AUDIO_SETTINGS;
2510
2499
  }
@@ -2512,7 +2501,6 @@ const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresent
2512
2501
  const isVp9Available = isChrome && vp9On;
2513
2502
  if (isScreenShare) {
2514
2503
  return getScreenShareMediaSettings({
2515
- isVp9Available,
2516
2504
  isSomeoneAlreadyPresenting,
2517
2505
  simulcastScreenshareOn,
2518
2506
  });
@@ -2521,34 +2509,25 @@ const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresent
2521
2509
  return getCameraMediaSettings({
2522
2510
  lowBandwidth: lowDataModeEnabled,
2523
2511
  isVp9Available,
2524
- svcKeyScalabilityModeOn,
2525
2512
  });
2526
2513
  }
2527
2514
  };
2528
- const getCameraMediaSettings = ({ lowBandwidth, isVp9Available, svcKeyScalabilityModeOn, }) => {
2515
+ const getCameraMediaSettings = ({ lowBandwidth, isVp9Available, }) => {
2529
2516
  if (lowBandwidth) {
2530
2517
  if (isVp9Available) {
2531
- if (svcKeyScalabilityModeOn)
2532
- return VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY;
2533
2518
  return VIDEO_SETTINGS_VP9_LOW_BANDWIDTH;
2534
2519
  }
2535
2520
  return VIDEO_SETTINGS_SD;
2536
2521
  }
2537
2522
  if (isVp9Available) {
2538
- if (svcKeyScalabilityModeOn)
2539
- return VIDEO_SETTINGS_VP9_KEY;
2540
2523
  return VIDEO_SETTINGS_VP9;
2541
2524
  }
2542
2525
  return VIDEO_SETTINGS_HD;
2543
2526
  };
2544
- const getScreenShareMediaSettings = ({ isVp9Available, isSomeoneAlreadyPresenting, simulcastScreenshareOn, }) => {
2527
+ const getScreenShareMediaSettings = ({ isSomeoneAlreadyPresenting, simulcastScreenshareOn, }) => {
2545
2528
  if (isSomeoneAlreadyPresenting) {
2546
- if (isVp9Available)
2547
- return ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9;
2548
2529
  return ADDITIONAL_SCREEN_SHARE_SETTINGS;
2549
2530
  }
2550
- if (isVp9Available)
2551
- return SCREEN_SHARE_SETTINGS_VP9;
2552
2531
  if (simulcastScreenshareOn)
2553
2532
  return SCREEN_SHARE_SIMULCAST_SETTINGS;
2554
2533
  return SCREEN_SHARE_SETTINGS;
@@ -2593,10 +2572,8 @@ function prioritizeRouterRtpCapabilitiesCodecs(codecs, preferredCodec) {
2593
2572
  return 0;
2594
2573
  });
2595
2574
  }
2596
- function getPreferredOrder(availableCodecs, { vp9On, av1On }) {
2597
- if (vp9On) {
2598
- availableCodecs.unshift("video/vp9");
2599
- }
2575
+ function getPreferredOrder(availableCodecs, { av1On }) {
2576
+ availableCodecs.unshift("video/vp9");
2600
2577
  if (av1On) {
2601
2578
  availableCodecs.unshift("video/av1");
2602
2579
  }
@@ -2644,11 +2621,9 @@ function sortCodecsByPowerEfficiency(codecs) {
2644
2621
  }
2645
2622
  function sortCodecs(codecs, features) {
2646
2623
  return __awaiter(this, void 0, void 0, function* () {
2647
- codecs = sortCodecsByMimeType(codecs, features);
2648
- if (features.preferHardwareDecodingOn) {
2649
- codecs = yield sortCodecsByPowerEfficiency(codecs);
2650
- }
2651
- return codecs;
2624
+ let sortedCodecs = sortCodecsByMimeType(codecs, features);
2625
+ sortedCodecs = yield sortCodecsByPowerEfficiency(codecs);
2626
+ return sortedCodecs;
2652
2627
  });
2653
2628
  }
2654
2629
 
@@ -3791,10 +3766,7 @@ class P2pRtcManager {
3791
3766
  }
3792
3767
  _setCodecPreferences(pc) {
3793
3768
  return __awaiter(this, void 0, void 0, function* () {
3794
- const { p2pVp9On, p2pAv1On, redOn, preferP2pHardwareDecodingOn } = this._features;
3795
- if (!(p2pVp9On || p2pAv1On || redOn || preferP2pHardwareDecodingOn)) {
3796
- return;
3797
- }
3769
+ const { p2pAv1On, redOn } = this._features;
3798
3770
  try {
3799
3771
  const audioTransceivers = pc
3800
3772
  .getTransceivers()
@@ -3822,13 +3794,9 @@ class P2pRtcManager {
3822
3794
  if (videoTransceiver.setCodecPreferences === undefined)
3823
3795
  return;
3824
3796
  const capabilities = RTCRtpReceiver.getCapabilities("video");
3825
- if (p2pVp9On || p2pAv1On || preferP2pHardwareDecodingOn) {
3826
- capabilities.codecs = yield sortCodecs(capabilities.codecs, {
3827
- vp9On: p2pVp9On,
3828
- av1On: p2pAv1On,
3829
- preferHardwareDecodingOn: p2pVp9On || preferP2pHardwareDecodingOn,
3830
- });
3831
- }
3797
+ capabilities.codecs = yield sortCodecs(capabilities.codecs, {
3798
+ av1On: p2pAv1On,
3799
+ });
3832
3800
  videoTransceiver.setCodecPreferences(capabilities.codecs);
3833
3801
  })));
3834
3802
  }
@@ -3850,14 +3818,14 @@ class P2pRtcManager {
3850
3818
  return;
3851
3819
  }
3852
3820
  session.isOperationPending = true;
3853
- const { p2pVp9On, redOn, rtpAbsCaptureTimeOn, cleanSdpOn } = this._features;
3821
+ const { redOn, rtpAbsCaptureTimeOn, cleanSdpOn } = this._features;
3854
3822
  this._setCodecPreferences(pc).then(() => pc
3855
3823
  .createOffer(constraints || this.offerOptions)
3856
3824
  .then((offer) => {
3857
3825
  if (rtpAbsCaptureTimeOn)
3858
3826
  offer.sdp = addAbsCaptureTimeExtMap(offer.sdp);
3859
- if ((p2pVp9On || redOn) && browserName$1 === "firefox") {
3860
- offer.sdp = setCodecPreferenceSDP(offer.sdp, p2pVp9On, redOn);
3827
+ if (browserName$1 === "firefox") {
3828
+ offer.sdp = setCodecPreferenceSDP(offer.sdp, redOn);
3861
3829
  }
3862
3830
  if (cleanSdpOn)
3863
3831
  offer.sdp = cleanSdp(offer.sdp);
@@ -5625,12 +5593,16 @@ class VegaRtcManager {
5625
5593
  return __awaiter(this, void 0, void 0, function* () {
5626
5594
  logger$3.info("_internalSendScreenVideo()");
5627
5595
  this._screenVideoProducerPromise = (() => __awaiter(this, void 0, void 0, function* () {
5596
+ var _a, _b;
5628
5597
  try {
5629
5598
  if (!this._screenVideoTrack || !this._sendTransport || this._screenVideoProducer) {
5630
5599
  this._screenVideoProducerPromise = null;
5631
5600
  return;
5632
5601
  }
5633
- const producer = yield this._sendTransport.produce(Object.assign(Object.assign({ track: this._screenVideoTrack, disableTrackOnPause: false, stopTracks: false }, getMediaSettings("video", true, Object.assign(Object.assign({}, this._features), { vp9On: this._features.sfuVp9On }), this._getIsSomeoneAlreadyPresenting())), { appData: {
5602
+ const codec = this._features.sfuVp9On
5603
+ ? (_b = (_a = this._routerRtpCapabilities) === null || _a === void 0 ? void 0 : _a.codecs) === null || _b === void 0 ? void 0 : _b.find((codec) => codec.mimeType.match(/vp8/i))
5604
+ : undefined;
5605
+ const producer = yield this._sendTransport.produce(Object.assign(Object.assign({ track: this._screenVideoTrack, disableTrackOnPause: false, stopTracks: false, codec }, getMediaSettings("video", true, Object.assign(Object.assign({}, this._features), { vp9On: false }), this._getIsSomeoneAlreadyPresenting())), { appData: {
5634
5606
  streamId: OUTBOUND_SCREEN_OUTBOUND_STREAM_ID,
5635
5607
  sourceClientId: this._selfId,
5636
5608
  screenShare: true,
@@ -7947,5 +7919,5 @@ var RtcEventNames;
7947
7919
  RtcEventNames["stream_added"] = "stream_added";
7948
7920
  })(RtcEventNames || (RtcEventNames = {}));
7949
7921
 
7950
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
7922
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
7951
7923
  //# sourceMappingURL=legacy-esm.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@whereby.com/media",
3
3
  "description": "Media library for Whereby",
4
- "version": "1.31.0",
4
+ "version": "1.32.1",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/whereby/sdk",
7
7
  "repository": {
@@ -56,11 +56,12 @@
56
56
  "@babel/core": "^7.23.2",
57
57
  "@babel/preset-env": "^7.23.2",
58
58
  "@types/sdp-transform": "^2.4.9",
59
+ "@types/uuid": "^9.0.1",
59
60
  "@types/uuid-validate": "^0.0.3",
60
- "jest-websocket-mock": "^2.5.0",
61
- "process": "^0.11.10",
62
61
  "eslint": "^9.29.0",
62
+ "jest-websocket-mock": "^2.5.0",
63
63
  "prettier": "^3.5.3",
64
+ "process": "^0.11.10",
64
65
  "typescript": "^5.8.3",
65
66
  "@whereby.com/eslint-config": "0.1.0",
66
67
  "@whereby.com/jest-config": "0.1.0",