mediasoup-client 3.12.4 → 3.13.0

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 (51) hide show
  1. package/lib/Device.d.ts +1 -1
  2. package/lib/Device.d.ts.map +1 -1
  3. package/lib/Device.js +8 -81
  4. package/lib/RtpParameters.d.ts +1 -1
  5. package/lib/RtpParameters.d.ts.map +1 -1
  6. package/lib/handlers/{ReactNativeUnifiedPlan.d.ts → ReactNative106.d.ts} +2 -2
  7. package/lib/handlers/ReactNative106.d.ts.map +1 -0
  8. package/lib/handlers/{ReactNativeUnifiedPlan.js → ReactNative106.js} +6 -6
  9. package/lib/handlers/sdp/MediaSection.d.ts +3 -15
  10. package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
  11. package/lib/handlers/sdp/MediaSection.js +6 -113
  12. package/lib/handlers/sdp/RemoteSdp.d.ts +1 -7
  13. package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
  14. package/lib/handlers/sdp/RemoteSdp.js +18 -41
  15. package/lib/index.d.ts +1 -1
  16. package/lib/index.js +1 -1
  17. package/lib/test/fakeParameters.d.ts.map +1 -1
  18. package/lib/test/fakeParameters.js +0 -14
  19. package/lib/test/test.js +0 -112
  20. package/lib/test/uaTestCases.d.ts.map +1 -1
  21. package/lib/test/uaTestCases.js +0 -25
  22. package/npm-scripts.mjs +26 -14
  23. package/package.json +8 -8
  24. package/lib/handlers/Chrome55.d.ts +0 -51
  25. package/lib/handlers/Chrome55.d.ts.map +0 -1
  26. package/lib/handlers/Chrome55.js +0 -554
  27. package/lib/handlers/Chrome67.d.ts +0 -51
  28. package/lib/handlers/Chrome67.d.ts.map +0 -1
  29. package/lib/handlers/Chrome67.js +0 -609
  30. package/lib/handlers/Chrome70.d.ts +0 -49
  31. package/lib/handlers/Chrome70.d.ts.map +0 -1
  32. package/lib/handlers/Chrome70.js +0 -634
  33. package/lib/handlers/Edge11.d.ts +0 -55
  34. package/lib/handlers/Edge11.d.ts.map +0 -1
  35. package/lib/handlers/Edge11.js +0 -447
  36. package/lib/handlers/Firefox60.d.ts +0 -50
  37. package/lib/handlers/Firefox60.d.ts.map +0 -1
  38. package/lib/handlers/Firefox60.js +0 -721
  39. package/lib/handlers/ReactNative.d.ts +0 -51
  40. package/lib/handlers/ReactNative.d.ts.map +0 -1
  41. package/lib/handlers/ReactNative.js +0 -569
  42. package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +0 -1
  43. package/lib/handlers/Safari11.d.ts +0 -51
  44. package/lib/handlers/Safari11.d.ts.map +0 -1
  45. package/lib/handlers/Safari11.js +0 -604
  46. package/lib/handlers/ortc/edgeUtils.d.ts +0 -11
  47. package/lib/handlers/ortc/edgeUtils.d.ts.map +0 -1
  48. package/lib/handlers/ortc/edgeUtils.js +0 -70
  49. package/lib/handlers/sdp/planBUtils.d.ts +0 -14
  50. package/lib/handlers/sdp/planBUtils.d.ts.map +0 -1
  51. package/lib/handlers/sdp/planBUtils.js +0 -150
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCapabilities = getCapabilities;
4
- exports.mangleRtpParameters = mangleRtpParameters;
5
- const utils = require("../../utils");
6
- /**
7
- * Normalize ORTC based Edge's RTCRtpReceiver.getCapabilities() to produce a full
8
- * compliant ORTC RTCRtpCapabilities.
9
- */
10
- function getCapabilities() {
11
- const nativeCaps = RTCRtpReceiver.getCapabilities();
12
- const caps = utils.clone(nativeCaps);
13
- for (const codec of caps.codecs ?? []) {
14
- // Rename numChannels to channels.
15
- // @ts-expect-error --- On purpose.
16
- codec.channels = codec.numChannels;
17
- // @ts-expect-error --- On purpose.
18
- delete codec.numChannels;
19
- // Add mimeType.
20
- // @ts-expect-error --- On purpose (due to codec.name).
21
- codec.mimeType = codec.mimeType ?? `${codec.kind}/${codec.name}`;
22
- // NOTE: Edge sets some numeric parameters as string rather than number. Fix them.
23
- if (codec.parameters) {
24
- const parameters = codec.parameters;
25
- if (parameters.apt) {
26
- parameters.apt = Number(parameters.apt);
27
- }
28
- if (parameters['packetization-mode']) {
29
- parameters['packetization-mode'] = Number(parameters['packetization-mode']);
30
- }
31
- }
32
- // Delete emty parameter String in rtcpFeedback.
33
- for (const feedback of codec.rtcpFeedback ?? []) {
34
- if (!feedback.parameter) {
35
- feedback.parameter = '';
36
- }
37
- }
38
- }
39
- return caps;
40
- }
41
- /**
42
- * Generate RTCRtpParameters as ORTC based Edge likes.
43
- */
44
- function mangleRtpParameters(rtpParameters) {
45
- const params = utils.clone(rtpParameters);
46
- // Rename mid to muxId.
47
- if (params.mid) {
48
- // @ts-expect-error --- On purpose (due to muxId).
49
- params.muxId = params.mid;
50
- delete params.mid;
51
- }
52
- for (const codec of params.codecs) {
53
- // Rename channels to numChannels.
54
- if (codec.channels) {
55
- // @ts-expect-error --- On purpose.
56
- codec.numChannels = codec.channels;
57
- delete codec.channels;
58
- }
59
- // Add codec.name (requried by Edge).
60
- // @ts-expect-error --- On purpose (due to name).
61
- if (codec.mimeType && !codec.name) {
62
- // @ts-expect-error --- On purpose (due to name).
63
- codec.name = codec.mimeType.split('/')[1];
64
- }
65
- // Remove mimeType.
66
- // @ts-expect-error --- Removing mandatory field.
67
- delete codec.mimeType;
68
- }
69
- return params;
70
- }
@@ -1,14 +0,0 @@
1
- import type { RtpEncodingParameters } from '../../RtpParameters';
2
- export declare function getRtpEncodings({ offerMediaObject, track, }: {
3
- offerMediaObject: any;
4
- track: MediaStreamTrack;
5
- }): RtpEncodingParameters[];
6
- /**
7
- * Adds multi-ssrc based simulcast into the given SDP media section offer.
8
- */
9
- export declare function addLegacySimulcast({ offerMediaObject, track, numStreams, }: {
10
- offerMediaObject: any;
11
- track: MediaStreamTrack;
12
- numStreams: number;
13
- }): void;
14
- //# sourceMappingURL=planBUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planBUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/planBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,EAChB,KAAK,GACL,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CACxB,GAAG,qBAAqB,EAAE,CAyE1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,KAAK,EACL,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAmHP"}
@@ -1,150 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRtpEncodings = getRtpEncodings;
4
- exports.addLegacySimulcast = addLegacySimulcast;
5
- function getRtpEncodings({ offerMediaObject, track, }) {
6
- // First media SSRC (or the only one).
7
- let firstSsrc;
8
- const ssrcs = new Set();
9
- for (const line of offerMediaObject.ssrcs ?? []) {
10
- if (line.attribute !== 'msid') {
11
- continue;
12
- }
13
- const trackId = line.value.split(' ')[1];
14
- if (trackId === track.id) {
15
- const ssrc = line.id;
16
- ssrcs.add(ssrc);
17
- if (!firstSsrc) {
18
- firstSsrc = ssrc;
19
- }
20
- }
21
- }
22
- if (ssrcs.size === 0) {
23
- throw new Error(`a=ssrc line with msid information not found [track.id:${track.id}]`);
24
- }
25
- const ssrcToRtxSsrc = new Map();
26
- // First assume RTX is used.
27
- for (const line of offerMediaObject.ssrcGroups ?? []) {
28
- if (line.semantics !== 'FID') {
29
- continue;
30
- }
31
- let [ssrc, rtxSsrc] = line.ssrcs.split(/\s+/);
32
- ssrc = Number(ssrc);
33
- rtxSsrc = Number(rtxSsrc);
34
- if (ssrcs.has(ssrc)) {
35
- // Remove both the SSRC and RTX SSRC from the set so later we know that they
36
- // are already handled.
37
- ssrcs.delete(ssrc);
38
- ssrcs.delete(rtxSsrc);
39
- // Add to the map.
40
- ssrcToRtxSsrc.set(ssrc, rtxSsrc);
41
- }
42
- }
43
- // If the set of SSRCs is not empty it means that RTX is not being used, so take
44
- // media SSRCs from there.
45
- for (const ssrc of ssrcs) {
46
- // Add to the map.
47
- ssrcToRtxSsrc.set(ssrc, null);
48
- }
49
- const encodings = [];
50
- for (const [ssrc, rtxSsrc] of ssrcToRtxSsrc) {
51
- const encoding = { ssrc };
52
- if (rtxSsrc) {
53
- encoding.rtx = { ssrc: rtxSsrc };
54
- }
55
- encodings.push(encoding);
56
- }
57
- return encodings;
58
- }
59
- /**
60
- * Adds multi-ssrc based simulcast into the given SDP media section offer.
61
- */
62
- function addLegacySimulcast({ offerMediaObject, track, numStreams, }) {
63
- if (numStreams <= 1) {
64
- throw new TypeError('numStreams must be greater than 1');
65
- }
66
- let firstSsrc;
67
- let firstRtxSsrc;
68
- let streamId;
69
- // Get the SSRC.
70
- const ssrcMsidLine = (offerMediaObject.ssrcs ?? []).find((line) => {
71
- if (line.attribute !== 'msid') {
72
- return false;
73
- }
74
- const trackId = line.value.split(' ')[1];
75
- if (trackId === track.id) {
76
- firstSsrc = line.id;
77
- streamId = line.value.split(' ')[0];
78
- return true;
79
- }
80
- else {
81
- return false;
82
- }
83
- });
84
- if (!ssrcMsidLine) {
85
- throw new Error(`a=ssrc line with msid information not found [track.id:${track.id}]`);
86
- }
87
- // Get the SSRC for RTX.
88
- (offerMediaObject.ssrcGroups ?? []).some((line) => {
89
- if (line.semantics !== 'FID') {
90
- return false;
91
- }
92
- const ssrcs = line.ssrcs.split(/\s+/);
93
- if (Number(ssrcs[0]) === firstSsrc) {
94
- firstRtxSsrc = Number(ssrcs[1]);
95
- return true;
96
- }
97
- else {
98
- return false;
99
- }
100
- });
101
- const ssrcCnameLine = offerMediaObject.ssrcs.find((line) => line.attribute === 'cname' && line.id === firstSsrc);
102
- if (!ssrcCnameLine) {
103
- throw new Error(`a=ssrc line with cname information not found [track.id:${track.id}]`);
104
- }
105
- const cname = ssrcCnameLine.value;
106
- const ssrcs = [];
107
- const rtxSsrcs = [];
108
- for (let i = 0; i < numStreams; ++i) {
109
- ssrcs.push(firstSsrc + i);
110
- if (firstRtxSsrc) {
111
- rtxSsrcs.push(firstRtxSsrc + i);
112
- }
113
- }
114
- offerMediaObject.ssrcGroups = offerMediaObject.ssrcGroups ?? [];
115
- offerMediaObject.ssrcs = offerMediaObject.ssrcs ?? [];
116
- offerMediaObject.ssrcGroups.push({
117
- semantics: 'SIM',
118
- ssrcs: ssrcs.join(' '),
119
- });
120
- for (const ssrc of ssrcs) {
121
- offerMediaObject.ssrcs.push({
122
- id: ssrc,
123
- attribute: 'cname',
124
- value: cname,
125
- });
126
- offerMediaObject.ssrcs.push({
127
- id: ssrc,
128
- attribute: 'msid',
129
- value: `${streamId} ${track.id}`,
130
- });
131
- }
132
- for (let i = 0; i < rtxSsrcs.length; ++i) {
133
- const ssrc = ssrcs[i];
134
- const rtxSsrc = rtxSsrcs[i];
135
- offerMediaObject.ssrcs.push({
136
- id: rtxSsrc,
137
- attribute: 'cname',
138
- value: cname,
139
- });
140
- offerMediaObject.ssrcs.push({
141
- id: rtxSsrc,
142
- attribute: 'msid',
143
- value: `${streamId} ${track.id}`,
144
- });
145
- offerMediaObject.ssrcGroups.push({
146
- semantics: 'FID',
147
- ssrcs: `${ssrc} ${rtxSsrc}`,
148
- });
149
- }
150
- }