mediasoup-client 3.13.0 → 3.14.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.
Files changed (67) hide show
  1. package/lib/Consumer.d.ts.map +1 -1
  2. package/lib/Consumer.js +3 -0
  3. package/lib/DataConsumer.d.ts.map +1 -1
  4. package/lib/DataConsumer.js +8 -8
  5. package/lib/DataProducer.d.ts.map +1 -1
  6. package/lib/DataProducer.js +8 -7
  7. package/lib/Device.d.ts +2 -2
  8. package/lib/Device.d.ts.map +1 -1
  9. package/lib/Device.js +53 -70
  10. package/lib/Producer.d.ts.map +1 -1
  11. package/lib/Producer.js +3 -0
  12. package/lib/RtpParameters.d.ts +8 -8
  13. package/lib/RtpParameters.d.ts.map +1 -1
  14. package/lib/Transport.d.ts +4 -4
  15. package/lib/Transport.d.ts.map +1 -1
  16. package/lib/Transport.js +9 -7
  17. package/lib/enhancedEvents.d.ts +4 -0
  18. package/lib/enhancedEvents.d.ts.map +1 -1
  19. package/lib/enhancedEvents.js +7 -0
  20. package/lib/handlers/Chrome111.d.ts +13 -13
  21. package/lib/handlers/Chrome111.d.ts.map +1 -1
  22. package/lib/handlers/Chrome111.js +175 -124
  23. package/lib/handlers/Chrome74.d.ts +13 -13
  24. package/lib/handlers/Chrome74.d.ts.map +1 -1
  25. package/lib/handlers/Chrome74.js +175 -120
  26. package/lib/handlers/FakeHandler.d.ts +8 -10
  27. package/lib/handlers/FakeHandler.d.ts.map +1 -1
  28. package/lib/handlers/FakeHandler.js +204 -61
  29. package/lib/handlers/Firefox120.d.ts +13 -13
  30. package/lib/handlers/Firefox120.d.ts.map +1 -1
  31. package/lib/handlers/Firefox120.js +200 -147
  32. package/lib/handlers/HandlerInterface.d.ts +11 -9
  33. package/lib/handlers/HandlerInterface.d.ts.map +1 -1
  34. package/lib/handlers/ReactNative106.d.ts +13 -13
  35. package/lib/handlers/ReactNative106.d.ts.map +1 -1
  36. package/lib/handlers/ReactNative106.js +181 -127
  37. package/lib/handlers/Safari12.d.ts +13 -13
  38. package/lib/handlers/Safari12.d.ts.map +1 -1
  39. package/lib/handlers/Safari12.js +178 -116
  40. package/lib/handlers/sdp/MediaSection.d.ts +5 -5
  41. package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
  42. package/lib/handlers/sdp/MediaSection.js +43 -45
  43. package/lib/handlers/sdp/RemoteSdp.d.ts +5 -6
  44. package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
  45. package/lib/handlers/sdp/RemoteSdp.js +5 -8
  46. package/lib/handlers/sdp/commonUtils.d.ts +5 -4
  47. package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
  48. package/lib/handlers/sdp/commonUtils.js +2 -2
  49. package/lib/handlers/sdp/plainRtpUtils.d.ts +4 -3
  50. package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
  51. package/lib/handlers/sdp/plainRtpUtils.js +2 -2
  52. package/lib/handlers/sdp/unifiedPlanUtils.d.ts +3 -2
  53. package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
  54. package/lib/handlers/sdp/unifiedPlanUtils.js +10 -8
  55. package/lib/index.d.ts +1 -1
  56. package/lib/index.js +1 -1
  57. package/lib/ortc.d.ts +7 -6
  58. package/lib/ortc.d.ts.map +1 -1
  59. package/lib/ortc.js +13 -14
  60. package/lib/privateTypes.d.ts +27 -0
  61. package/lib/privateTypes.d.ts.map +1 -0
  62. package/lib/privateTypes.js +2 -0
  63. package/lib/test/test.js +22 -3
  64. package/lib/utils.d.ts +1 -1
  65. package/lib/utils.d.ts.map +1 -1
  66. package/lib/utils.js +5 -4
  67. package/package.json +8 -9
@@ -1,13 +1,12 @@
1
- import { type HandlerFactory, HandlerInterface, type HandlerRunOptions, type HandlerSendOptions, type HandlerSendResult, type HandlerReceiveOptions, type HandlerReceiveResult, type HandlerSendDataChannelOptions, type HandlerSendDataChannelResult, type HandlerReceiveDataChannelOptions, type HandlerReceiveDataChannelResult } from './HandlerInterface';
1
+ import { EnhancedEventEmitter } from '../enhancedEvents';
2
2
  import type { IceParameters } from '../Transport';
3
- import type { RtpCapabilities } from '../RtpParameters';
4
- import type { SctpCapabilities } from '../SctpParameters';
5
- export declare class Chrome111 extends HandlerInterface {
3
+ import type { HandlerFactory, HandlerInterface, HandlerEvents, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
4
+ export declare class Chrome111 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
6
5
  private _closed;
7
- private _direction?;
8
- private _remoteSdp?;
9
- private _sendingRtpParametersByKind?;
10
- private _sendingRemoteRtpParametersByKind?;
6
+ private _direction;
7
+ private _remoteSdp;
8
+ private _sendingRtpParametersByKind;
9
+ private _sendingRemoteRtpParametersByKind;
11
10
  private _forcedLocalDtlsRole?;
12
11
  private _pc;
13
12
  private readonly _mapMidTransceiver;
@@ -19,12 +18,9 @@ export declare class Chrome111 extends HandlerInterface {
19
18
  * Creates a factory function.
20
19
  */
21
20
  static createFactory(): HandlerFactory;
22
- constructor();
21
+ private constructor();
23
22
  get name(): string;
24
23
  close(): void;
25
- getNativeRtpCapabilities(): Promise<RtpCapabilities>;
26
- getNativeSctpCapabilities(): Promise<SctpCapabilities>;
27
- run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
28
24
  updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
29
25
  restartIce(iceParameters: IceParameters): Promise<void>;
30
26
  getTransportStats(): Promise<RTCStatsReport>;
@@ -34,7 +30,7 @@ export declare class Chrome111 extends HandlerInterface {
34
30
  resumeSending(localId: string): Promise<void>;
35
31
  replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
36
32
  setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
37
- setRtpEncodingParameters(localId: string, params: any): Promise<void>;
33
+ setRtpEncodingParameters(localId: string, params: Partial<RTCRtpEncodingParameters>): Promise<void>;
38
34
  getSenderStats(localId: string): Promise<RTCStatsReport>;
39
35
  sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
40
36
  receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
@@ -44,6 +40,10 @@ export declare class Chrome111 extends HandlerInterface {
44
40
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
45
41
  receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
46
42
  private setupTransport;
43
+ private onIceGatheringStateChange;
44
+ private onIceCandidateError;
45
+ private onConnectionStateChange;
46
+ private onIceConnectionStateChange;
47
47
  private assertNotClosed;
48
48
  private assertSendDirection;
49
49
  private assertRecvDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAU5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EAEb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAQ5B,qBAAa,SACZ,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,gBAAgB;IAG3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,2BAA2B,CAAsC;IAGzE,OAAO,CAAC,iCAAiC,CAEvC;IAGF,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAoB;IAE/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CACxB;IAEX,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;IA2DtC,OAAO;IA6EP,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEQ,KAAK,IAAI,IAAI;IAqChB,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAM5C,IAAI,CAAC,EACV,KAAK,EACL,SAAS,EACT,YAAY,EACZ,KAAK,EACL,WAAW,GACX,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmJ5C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD3C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC7C,YAAY,CACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;IAuBV,kBAAkB,CACvB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAsDV,wBAAwB,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,CAAC,wBAAwB,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC;IAkDV,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAaxD,eAAe,CAAC,EACrB,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,GACR,EAAE,6BAA6B,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAuElE,OAAO,CACZ,WAAW,EAAE,qBAAqB,EAAE,GAClC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmH5B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6ChD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCjD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuClD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAa1D,kBAAkB,CAAC,EACxB,oBAAoB,EACpB,KAAK,EACL,QAAQ,GACR,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC;YAiEhE,cAAc;IAgC5B,OAAO,CAAC,yBAAyB,CAE/B;IAEF,OAAO,CAAC,mBAAmB,CAIzB;IAEF,OAAO,CAAC,uBAAuB,CAE7B;IAEF,OAAO,CAAC,0BAA0B,CAiChC;IAEF,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;CAO3B"}
@@ -2,20 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Chrome111 = void 0;
4
4
  const sdpTransform = require("sdp-transform");
5
+ const enhancedEvents_1 = require("../enhancedEvents");
5
6
  const Logger_1 = require("../Logger");
6
7
  const utils = require("../utils");
7
8
  const ortc = require("../ortc");
9
+ const errors_1 = require("../errors");
10
+ const scalabilityModes_1 = require("../scalabilityModes");
8
11
  const sdpCommonUtils = require("./sdp/commonUtils");
9
12
  const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
10
13
  const ortcUtils = require("./ortc/utils");
11
- const errors_1 = require("../errors");
12
- const HandlerInterface_1 = require("./HandlerInterface");
13
14
  const RemoteSdp_1 = require("./sdp/RemoteSdp");
14
- const scalabilityModes_1 = require("../scalabilityModes");
15
15
  const logger = new Logger_1.Logger('Chrome111');
16
16
  const NAME = 'Chrome111';
17
17
  const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
18
- class Chrome111 extends HandlerInterface_1.HandlerInterface {
18
+ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
19
19
  // Closed flag.
20
20
  _closed = false;
21
21
  // Handler direction.
@@ -46,75 +46,58 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
46
46
  * Creates a factory function.
47
47
  */
48
48
  static createFactory() {
49
- return () => new Chrome111();
50
- }
51
- constructor() {
52
- super();
53
- }
54
- get name() {
55
- return NAME;
56
- }
57
- close() {
58
- logger.debug('close()');
59
- if (this._closed) {
60
- return;
61
- }
62
- this._closed = true;
63
- // Close RTCPeerConnection.
64
- if (this._pc) {
65
- try {
66
- this._pc.close();
67
- }
68
- catch (error) { }
69
- }
70
- this.emit('@close');
71
- }
72
- async getNativeRtpCapabilities() {
73
- logger.debug('getNativeRtpCapabilities()');
74
- const pc = new RTCPeerConnection({
75
- iceServers: [],
76
- iceTransportPolicy: 'all',
77
- bundlePolicy: 'max-bundle',
78
- rtcpMuxPolicy: 'require',
79
- sdpSemantics: 'unified-plan',
80
- });
81
- try {
82
- pc.addTransceiver('audio');
83
- // Create video transceiver with scalability mode in order to retrieve
84
- // Dependency Descriptor header extension.
85
- pc.addTransceiver('video', {
86
- sendEncodings: [{ scalabilityMode: 'L3T3' }],
87
- });
88
- const offer = await pc.createOffer();
89
- try {
90
- pc.close();
91
- }
92
- catch (error) { }
93
- const sdpObject = sdpTransform.parse(offer.sdp);
94
- const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
95
- sdpObject,
96
- });
97
- // libwebrtc supports NACK for OPUS but doesn't announce it.
98
- ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
99
- return nativeRtpCapabilities;
100
- }
101
- catch (error) {
102
- try {
103
- pc.close();
104
- }
105
- catch (error2) { }
106
- throw error;
107
- }
108
- }
109
- async getNativeSctpCapabilities() {
110
- logger.debug('getNativeSctpCapabilities()');
111
49
  return {
112
- numStreams: SCTP_NUM_STREAMS,
50
+ name: NAME,
51
+ factory: (options) => new Chrome111(options),
52
+ getNativeRtpCapabilities: async () => {
53
+ logger.debug('getNativeRtpCapabilities()');
54
+ let pc = new RTCPeerConnection({
55
+ iceServers: [],
56
+ iceTransportPolicy: 'all',
57
+ bundlePolicy: 'max-bundle',
58
+ rtcpMuxPolicy: 'require',
59
+ });
60
+ try {
61
+ pc.addTransceiver('audio');
62
+ // Create video transceiver with scalability mode in order to retrieve
63
+ // Dependency Descriptor header extension.
64
+ pc.addTransceiver('video', {
65
+ sendEncodings: [{ scalabilityMode: 'L3T3' }],
66
+ });
67
+ const offer = await pc.createOffer();
68
+ try {
69
+ pc.close();
70
+ }
71
+ catch (error) { }
72
+ pc = undefined;
73
+ const sdpObject = sdpTransform.parse(offer.sdp);
74
+ const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
75
+ sdpObject,
76
+ });
77
+ // libwebrtc supports NACK for OPUS but doesn't announce it.
78
+ ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
79
+ return nativeRtpCapabilities;
80
+ }
81
+ catch (error) {
82
+ try {
83
+ pc?.close();
84
+ }
85
+ catch (error2) { }
86
+ pc = undefined;
87
+ throw error;
88
+ }
89
+ },
90
+ getNativeSctpCapabilities: async () => {
91
+ logger.debug('getNativeSctpCapabilities()');
92
+ return {
93
+ numStreams: SCTP_NUM_STREAMS,
94
+ };
95
+ },
113
96
  };
114
97
  }
115
- run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }) {
116
- this.assertNotClosed();
117
- logger.debug('run()');
98
+ constructor({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, extendedRtpCapabilities, }) {
99
+ super();
100
+ logger.debug('constructor()');
118
101
  this._direction = direction;
119
102
  this._remoteSdp = new RemoteSdp_1.RemoteSdp({
120
103
  iceParameters,
@@ -139,48 +122,39 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
139
122
  iceTransportPolicy: iceTransportPolicy ?? 'all',
140
123
  bundlePolicy: 'max-bundle',
141
124
  rtcpMuxPolicy: 'require',
142
- sdpSemantics: 'unified-plan',
143
125
  ...additionalSettings,
144
- }, proprietaryConstraints);
145
- this._pc.addEventListener('icegatheringstatechange', () => {
146
- this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
147
- });
148
- this._pc.addEventListener('icecandidateerror', (event) => {
149
- this.emit('@icecandidateerror', event);
150
126
  });
127
+ this._pc.addEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
128
+ this._pc.addEventListener('icecandidateerror', this.onIceCandidateError);
151
129
  if (this._pc.connectionState) {
152
- this._pc.addEventListener('connectionstatechange', () => {
153
- this.emit('@connectionstatechange', this._pc.connectionState);
154
- });
130
+ this._pc.addEventListener('connectionstatechange', this.onConnectionStateChange);
155
131
  }
156
132
  else {
157
133
  logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
158
- this._pc.addEventListener('iceconnectionstatechange', () => {
159
- switch (this._pc.iceConnectionState) {
160
- case 'checking': {
161
- this.emit('@connectionstatechange', 'connecting');
162
- break;
163
- }
164
- case 'connected':
165
- case 'completed': {
166
- this.emit('@connectionstatechange', 'connected');
167
- break;
168
- }
169
- case 'failed': {
170
- this.emit('@connectionstatechange', 'failed');
171
- break;
172
- }
173
- case 'disconnected': {
174
- this.emit('@connectionstatechange', 'disconnected');
175
- break;
176
- }
177
- case 'closed': {
178
- this.emit('@connectionstatechange', 'closed');
179
- break;
180
- }
181
- }
182
- });
134
+ this._pc.addEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
135
+ }
136
+ }
137
+ get name() {
138
+ return NAME;
139
+ }
140
+ close() {
141
+ logger.debug('close()');
142
+ if (this._closed) {
143
+ return;
144
+ }
145
+ this._closed = true;
146
+ // Close RTCPeerConnection.
147
+ try {
148
+ this._pc.close();
183
149
  }
150
+ catch (error) { }
151
+ this._pc.removeEventListener('icegatheringstatechange', this.onIceGatheringStateChange);
152
+ this._pc.removeEventListener('icecandidateerror', this.onIceCandidateError);
153
+ this._pc.removeEventListener('connectionstatechange', this.onConnectionStateChange);
154
+ this._pc.removeEventListener('iceconnectionstatechange', this.onIceConnectionStateChange);
155
+ this.emit('@close');
156
+ // Invoke close() in EnhancedEventEmitter classes.
157
+ super.close();
184
158
  }
185
159
  async updateIceServers(iceServers) {
186
160
  this.assertNotClosed();
@@ -201,12 +175,18 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
201
175
  const offer = await this._pc.createOffer({ iceRestart: true });
202
176
  logger.debug('restartIce() | calling pc.setLocalDescription() [offer:%o]', offer);
203
177
  await this._pc.setLocalDescription(offer);
204
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
178
+ const answer = {
179
+ type: 'answer',
180
+ sdp: this._remoteSdp.getSdp(),
181
+ };
205
182
  logger.debug('restartIce() | calling pc.setRemoteDescription() [answer:%o]', answer);
206
183
  await this._pc.setRemoteDescription(answer);
207
184
  }
208
185
  else {
209
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
186
+ const offer = {
187
+ type: 'offer',
188
+ sdp: this._remoteSdp.getSdp(),
189
+ };
210
190
  logger.debug('restartIce() | calling pc.setRemoteDescription() [offer:%o]', offer);
211
191
  await this._pc.setRemoteDescription(offer);
212
192
  const answer = await this._pc.createAnswer();
@@ -259,8 +239,6 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
259
239
  }
260
240
  const offer = await this._pc.createOffer();
261
241
  let localSdpObject = sdpTransform.parse(offer.sdp);
262
- // @ts-expect-error --- sdpTransform.SessionDescription type doesn't
263
- // define extmapAllowMixed field.
264
242
  if (localSdpObject.extmapAllowMixed) {
265
243
  this._remoteSdp.setSessionExtmapAllowMixed();
266
244
  }
@@ -308,7 +286,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
308
286
  answerRtpParameters: sendingRemoteRtpParameters,
309
287
  codecOptions,
310
288
  });
311
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
289
+ const answer = {
290
+ type: 'answer',
291
+ sdp: this._remoteSdp.getSdp(),
292
+ };
312
293
  logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
313
294
  await this._pc.setRemoteDescription(answer);
314
295
  // Store in the map.
@@ -341,7 +322,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
341
322
  const offer = await this._pc.createOffer();
342
323
  logger.debug('stopSending() | calling pc.setLocalDescription() [offer:%o]', offer);
343
324
  await this._pc.setLocalDescription(offer);
344
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
325
+ const answer = {
326
+ type: 'answer',
327
+ sdp: this._remoteSdp.getSdp(),
328
+ };
345
329
  logger.debug('stopSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
346
330
  await this._pc.setRemoteDescription(answer);
347
331
  this._mapMidTransceiver.delete(localId);
@@ -359,7 +343,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
359
343
  const offer = await this._pc.createOffer();
360
344
  logger.debug('pauseSending() | calling pc.setLocalDescription() [offer:%o]', offer);
361
345
  await this._pc.setLocalDescription(offer);
362
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
346
+ const answer = {
347
+ type: 'answer',
348
+ sdp: this._remoteSdp.getSdp(),
349
+ };
363
350
  logger.debug('pauseSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
364
351
  await this._pc.setRemoteDescription(answer);
365
352
  }
@@ -376,7 +363,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
376
363
  const offer = await this._pc.createOffer();
377
364
  logger.debug('resumeSending() | calling pc.setLocalDescription() [offer:%o]', offer);
378
365
  await this._pc.setLocalDescription(offer);
379
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
366
+ const answer = {
367
+ type: 'answer',
368
+ sdp: this._remoteSdp.getSdp(),
369
+ };
380
370
  logger.debug('resumeSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
381
371
  await this._pc.setRemoteDescription(answer);
382
372
  }
@@ -417,7 +407,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
417
407
  const offer = await this._pc.createOffer();
418
408
  logger.debug('setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]', offer);
419
409
  await this._pc.setLocalDescription(offer);
420
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
410
+ const answer = {
411
+ type: 'answer',
412
+ sdp: this._remoteSdp.getSdp(),
413
+ };
421
414
  logger.debug('setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]', answer);
422
415
  await this._pc.setRemoteDescription(answer);
423
416
  }
@@ -438,7 +431,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
438
431
  const offer = await this._pc.createOffer();
439
432
  logger.debug('setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]', offer);
440
433
  await this._pc.setLocalDescription(offer);
441
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
434
+ const answer = {
435
+ type: 'answer',
436
+ sdp: this._remoteSdp.getSdp(),
437
+ };
442
438
  logger.debug('setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]', answer);
443
439
  await this._pc.setRemoteDescription(answer);
444
440
  }
@@ -472,7 +468,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
472
468
  if (!this._hasDataChannelMediaSection) {
473
469
  const offer = await this._pc.createOffer();
474
470
  const localSdpObject = sdpTransform.parse(offer.sdp);
475
- const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
471
+ const offerMediaObject = localSdpObject.media.find(m => m.type === 'application');
476
472
  if (!this._transportReady) {
477
473
  await this.setupTransport({
478
474
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
@@ -482,7 +478,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
482
478
  logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
483
479
  await this._pc.setLocalDescription(offer);
484
480
  this._remoteSdp.sendSctpAssociation({ offerMediaObject });
485
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
481
+ const answer = {
482
+ type: 'answer',
483
+ sdp: this._remoteSdp.getSdp(),
484
+ };
486
485
  logger.debug('sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
487
486
  await this._pc.setRemoteDescription(answer);
488
487
  this._hasDataChannelMediaSection = true;
@@ -513,7 +512,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
513
512
  trackId,
514
513
  });
515
514
  }
516
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
515
+ const offer = {
516
+ type: 'offer',
517
+ sdp: this._remoteSdp.getSdp(),
518
+ };
517
519
  logger.debug('receive() | calling pc.setRemoteDescription() [offer:%o]', offer);
518
520
  await this._pc.setRemoteDescription(offer);
519
521
  for (const options of optionsList) {
@@ -534,7 +536,7 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
534
536
  for (const options of optionsList) {
535
537
  const { trackId, rtpParameters } = options;
536
538
  const localId = mapLocalId.get(trackId);
537
- const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === localId);
539
+ const answerMediaObject = localSdpObject.media.find(m => String(m.mid) === localId);
538
540
  // May need to modify codec parameters in the answer based on codec
539
541
  // parameters in the offer.
540
542
  sdpCommonUtils.applyCodecParameters({
@@ -542,7 +544,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
542
544
  answerMediaObject,
543
545
  });
544
546
  }
545
- answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
547
+ answer = {
548
+ type: 'answer',
549
+ sdp: sdpTransform.write(localSdpObject),
550
+ };
546
551
  if (!this._transportReady) {
547
552
  await this.setupTransport({
548
553
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
@@ -585,7 +590,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
585
590
  }
586
591
  this._remoteSdp.closeMediaSection(transceiver.mid);
587
592
  }
588
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
593
+ const offer = {
594
+ type: 'offer',
595
+ sdp: this._remoteSdp.getSdp(),
596
+ };
589
597
  logger.debug('stopReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
590
598
  await this._pc.setRemoteDescription(offer);
591
599
  const answer = await this._pc.createAnswer();
@@ -607,7 +615,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
607
615
  transceiver.direction = 'inactive';
608
616
  this._remoteSdp.pauseMediaSection(localId);
609
617
  }
610
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
618
+ const offer = {
619
+ type: 'offer',
620
+ sdp: this._remoteSdp.getSdp(),
621
+ };
611
622
  logger.debug('pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
612
623
  await this._pc.setRemoteDescription(offer);
613
624
  const answer = await this._pc.createAnswer();
@@ -626,7 +637,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
626
637
  transceiver.direction = 'recvonly';
627
638
  this._remoteSdp.resumeReceivingMediaSection(localId);
628
639
  }
629
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
640
+ const offer = {
641
+ type: 'offer',
642
+ sdp: this._remoteSdp.getSdp(),
643
+ };
630
644
  logger.debug('resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
631
645
  await this._pc.setRemoteDescription(offer);
632
646
  const answer = await this._pc.createAnswer();
@@ -660,7 +674,10 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
660
674
  // m=application section.
661
675
  if (!this._hasDataChannelMediaSection) {
662
676
  this._remoteSdp.receiveSctpAssociation();
663
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
677
+ const offer = {
678
+ type: 'offer',
679
+ sdp: this._remoteSdp.getSdp(),
680
+ };
664
681
  logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]', offer);
665
682
  await this._pc.setRemoteDescription(offer);
666
683
  const answer = await this._pc.createAnswer();
@@ -695,6 +712,40 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
695
712
  });
696
713
  this._transportReady = true;
697
714
  }
715
+ onIceGatheringStateChange = () => {
716
+ this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
717
+ };
718
+ onIceCandidateError = (event) => {
719
+ this.emit('@icecandidateerror', event);
720
+ };
721
+ onConnectionStateChange = () => {
722
+ this.emit('@connectionstatechange', this._pc.connectionState);
723
+ };
724
+ onIceConnectionStateChange = () => {
725
+ switch (this._pc.iceConnectionState) {
726
+ case 'checking': {
727
+ this.emit('@connectionstatechange', 'connecting');
728
+ break;
729
+ }
730
+ case 'connected':
731
+ case 'completed': {
732
+ this.emit('@connectionstatechange', 'connected');
733
+ break;
734
+ }
735
+ case 'failed': {
736
+ this.emit('@connectionstatechange', 'failed');
737
+ break;
738
+ }
739
+ case 'disconnected': {
740
+ this.emit('@connectionstatechange', 'disconnected');
741
+ break;
742
+ }
743
+ case 'closed': {
744
+ this.emit('@connectionstatechange', 'closed');
745
+ break;
746
+ }
747
+ }
748
+ };
698
749
  assertNotClosed() {
699
750
  if (this._closed) {
700
751
  throw new errors_1.InvalidStateError('method called in a closed handler');
@@ -1,13 +1,12 @@
1
- import { type HandlerFactory, HandlerInterface, type HandlerRunOptions, type HandlerSendOptions, type HandlerSendResult, type HandlerReceiveOptions, type HandlerReceiveResult, type HandlerSendDataChannelOptions, type HandlerSendDataChannelResult, type HandlerReceiveDataChannelOptions, type HandlerReceiveDataChannelResult } from './HandlerInterface';
1
+ import { EnhancedEventEmitter } from '../enhancedEvents';
2
2
  import type { IceParameters } from '../Transport';
3
- import type { RtpCapabilities } from '../RtpParameters';
4
- import type { SctpCapabilities } from '../SctpParameters';
5
- export declare class Chrome74 extends HandlerInterface {
3
+ import type { HandlerFactory, HandlerEvents, HandlerInterface, HandlerSendOptions, HandlerSendResult, HandlerReceiveOptions, HandlerReceiveResult, HandlerSendDataChannelOptions, HandlerSendDataChannelResult, HandlerReceiveDataChannelOptions, HandlerReceiveDataChannelResult } from './HandlerInterface';
4
+ export declare class Chrome74 extends EnhancedEventEmitter<HandlerEvents> implements HandlerInterface {
6
5
  private _closed;
7
- private _direction?;
8
- private _remoteSdp?;
9
- private _sendingRtpParametersByKind?;
10
- private _sendingRemoteRtpParametersByKind?;
6
+ private _direction;
7
+ private _remoteSdp;
8
+ private _sendingRtpParametersByKind;
9
+ private _sendingRemoteRtpParametersByKind;
11
10
  private _forcedLocalDtlsRole?;
12
11
  private _pc;
13
12
  private readonly _mapMidTransceiver;
@@ -19,12 +18,9 @@ export declare class Chrome74 extends HandlerInterface {
19
18
  * Creates a factory function.
20
19
  */
21
20
  static createFactory(): HandlerFactory;
22
- constructor();
21
+ private constructor();
23
22
  get name(): string;
24
23
  close(): void;
25
- getNativeRtpCapabilities(): Promise<RtpCapabilities>;
26
- getNativeSctpCapabilities(): Promise<SctpCapabilities>;
27
- run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
28
24
  updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
29
25
  restartIce(iceParameters: IceParameters): Promise<void>;
30
26
  getTransportStats(): Promise<RTCStatsReport>;
@@ -34,7 +30,7 @@ export declare class Chrome74 extends HandlerInterface {
34
30
  resumeSending(localId: string): Promise<void>;
35
31
  replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
36
32
  setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
37
- setRtpEncodingParameters(localId: string, params: any): Promise<void>;
33
+ setRtpEncodingParameters(localId: string, params: Partial<RTCRtpEncodingParameters>): Promise<void>;
38
34
  getSenderStats(localId: string): Promise<RTCStatsReport>;
39
35
  sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
40
36
  receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
@@ -44,6 +40,10 @@ export declare class Chrome74 extends HandlerInterface {
44
40
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
45
41
  receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
46
42
  private setupTransport;
43
+ private onIceGatheringStateChange;
44
+ private onIceCandidateError;
45
+ private onConnectionStateChange;
46
+ private onIceConnectionStateChange;
47
47
  private assertNotClosed;
48
48
  private assertSendDirection;
49
49
  private assertRecvDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"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"}