mediasoup-client 3.6.89 → 3.6.90
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/lib/index.d.ts +1435 -14
- package/lib/index.js +11884 -43
- package/lib/index.js.map +1 -0
- package/lib/index.mjs +11860 -0
- package/lib/index.mjs.map +1 -0
- package/npm-scripts.mjs +17 -11
- package/package.json +12 -8
- package/lib/Consumer.d.ts +0 -115
- package/lib/Consumer.d.ts.map +0 -1
- package/lib/Consumer.js +0 -190
- package/lib/DataConsumer.d.ts +0 -93
- package/lib/DataConsumer.d.ts.map +0 -1
- package/lib/DataConsumer.js +0 -162
- package/lib/DataProducer.d.ts +0 -97
- package/lib/DataProducer.d.ts.map +0 -1
- package/lib/DataProducer.js +0 -180
- package/lib/Device.d.ts +0 -92
- package/lib/Device.d.ts.map +0 -1
- package/lib/Device.js +0 -464
- package/lib/EnhancedEventEmitter.d.ts +0 -24
- package/lib/EnhancedEventEmitter.d.ts.map +0 -1
- package/lib/EnhancedEventEmitter.js +0 -70
- package/lib/Logger.d.ts +0 -11
- package/lib/Logger.d.ts.map +0 -1
- package/lib/Logger.js +0 -37
- package/lib/Producer.d.ts +0 -169
- package/lib/Producer.d.ts.map +0 -1
- package/lib/Producer.js +0 -287
- package/lib/RtpParameters.d.ts +0 -306
- package/lib/RtpParameters.d.ts.map +0 -1
- package/lib/RtpParameters.js +0 -6
- package/lib/SctpParameters.d.ts +0 -68
- package/lib/SctpParameters.d.ts.map +0 -1
- package/lib/SctpParameters.js +0 -2
- package/lib/Transport.d.ts +0 -243
- package/lib/Transport.d.ts.map +0 -1
- package/lib/Transport.js +0 -824
- package/lib/errors.d.ts +0 -13
- package/lib/errors.d.ts.map +0 -1
- package/lib/errors.js +0 -39
- package/lib/handlers/Chrome111.d.ts +0 -49
- package/lib/handlers/Chrome111.d.ts.map +0 -1
- package/lib/handlers/Chrome111.js +0 -658
- package/lib/handlers/Chrome55.d.ts +0 -51
- package/lib/handlers/Chrome55.d.ts.map +0 -1
- package/lib/handlers/Chrome55.js +0 -542
- package/lib/handlers/Chrome67.d.ts +0 -51
- package/lib/handlers/Chrome67.d.ts.map +0 -1
- package/lib/handlers/Chrome67.js +0 -598
- package/lib/handlers/Chrome70.d.ts +0 -49
- package/lib/handlers/Chrome70.d.ts.map +0 -1
- package/lib/handlers/Chrome70.js +0 -627
- package/lib/handlers/Chrome74.d.ts +0 -49
- package/lib/handlers/Chrome74.d.ts.map +0 -1
- package/lib/handlers/Chrome74.js +0 -675
- package/lib/handlers/Edge11.d.ts +0 -55
- package/lib/handlers/Edge11.d.ts.map +0 -1
- package/lib/handlers/Edge11.js +0 -447
- package/lib/handlers/FakeHandler.d.ts +0 -49
- package/lib/handlers/FakeHandler.d.ts.map +0 -1
- package/lib/handlers/FakeHandler.js +0 -276
- package/lib/handlers/Firefox60.d.ts +0 -48
- package/lib/handlers/Firefox60.d.ts.map +0 -1
- package/lib/handlers/Firefox60.js +0 -681
- package/lib/handlers/HandlerInterface.d.ts +0 -97
- package/lib/handlers/HandlerInterface.d.ts.map +0 -1
- package/lib/handlers/HandlerInterface.js +0 -10
- package/lib/handlers/ReactNative.d.ts +0 -51
- package/lib/handlers/ReactNative.d.ts.map +0 -1
- package/lib/handlers/ReactNative.js +0 -558
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +0 -49
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +0 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +0 -694
- package/lib/handlers/Safari11.d.ts +0 -51
- package/lib/handlers/Safari11.d.ts.map +0 -1
- package/lib/handlers/Safari11.js +0 -592
- package/lib/handlers/Safari12.d.ts +0 -49
- package/lib/handlers/Safari12.d.ts.map +0 -1
- package/lib/handlers/Safari12.js +0 -648
- package/lib/handlers/ortc/edgeUtils.d.ts +0 -11
- package/lib/handlers/ortc/edgeUtils.d.ts.map +0 -1
- package/lib/handlers/ortc/edgeUtils.js +0 -86
- package/lib/handlers/ortc/utils.d.ts +0 -6
- package/lib/handlers/ortc/utils.d.ts.map +0 -1
- package/lib/handlers/ortc/utils.js +0 -20
- package/lib/handlers/sdp/MediaSection.d.ts +0 -68
- package/lib/handlers/sdp/MediaSection.d.ts.map +0 -1
- package/lib/handlers/sdp/MediaSection.js +0 -589
- package/lib/handlers/sdp/RemoteSdp.d.ts +0 -75
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +0 -1
- package/lib/handlers/sdp/RemoteSdp.js +0 -303
- package/lib/handlers/sdp/commonUtils.d.ts +0 -24
- package/lib/handlers/sdp/commonUtils.d.ts.map +0 -1
- package/lib/handlers/sdp/commonUtils.js +0 -224
- package/lib/handlers/sdp/plainRtpUtils.d.ts +0 -14
- package/lib/handlers/sdp/plainRtpUtils.d.ts.map +0 -1
- package/lib/handlers/sdp/plainRtpUtils.js +0 -33
- package/lib/handlers/sdp/planBUtils.d.ts +0 -14
- package/lib/handlers/sdp/planBUtils.d.ts.map +0 -1
- package/lib/handlers/sdp/planBUtils.js +0 -155
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts +0 -12
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +0 -1
- package/lib/handlers/sdp/unifiedPlanUtils.js +0 -131
- package/lib/index.d.ts.map +0 -1
- package/lib/ortc.d.ts +0 -123
- package/lib/ortc.d.ts.map +0 -1
- package/lib/ortc.js +0 -943
- package/lib/scalabilityModes.d.ts +0 -6
- package/lib/scalabilityModes.d.ts.map +0 -1
- package/lib/scalabilityModes.js +0 -20
- package/lib/tests/fakeParameters.d.ts +0 -20
- package/lib/tests/fakeParameters.d.ts.map +0 -1
- package/lib/tests/fakeParameters.js +0 -659
- package/lib/tests/test.d.ts +0 -6
- package/lib/tests/test.d.ts.map +0 -1
- package/lib/tests/test.js +0 -1297
- package/lib/tests/uaTestCases.d.ts +0 -9
- package/lib/tests/uaTestCases.d.ts.map +0 -1
- package/lib/tests/uaTestCases.js +0 -85
- package/lib/types.d.ts +0 -15
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -26
- package/lib/utils.d.ts +0 -9
- package/lib/utils.d.ts.map +0 -1
- package/lib/utils.js +0 -20
package/lib/Producer.d.ts
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { EnhancedEventEmitter } from './EnhancedEventEmitter';
|
|
2
|
-
import { MediaKind, RtpCodecCapability, RtpParameters, RtpEncodingParameters } from './RtpParameters';
|
|
3
|
-
import { AppData } from './types';
|
|
4
|
-
export type ProducerOptions<ProducerAppData extends AppData = AppData> = {
|
|
5
|
-
track?: MediaStreamTrack;
|
|
6
|
-
encodings?: RtpEncodingParameters[];
|
|
7
|
-
codecOptions?: ProducerCodecOptions;
|
|
8
|
-
codec?: RtpCodecCapability;
|
|
9
|
-
stopTracks?: boolean;
|
|
10
|
-
disableTrackOnPause?: boolean;
|
|
11
|
-
zeroRtpOnPause?: boolean;
|
|
12
|
-
appData?: ProducerAppData;
|
|
13
|
-
};
|
|
14
|
-
export type ProducerCodecOptions = {
|
|
15
|
-
opusStereo?: boolean;
|
|
16
|
-
opusFec?: boolean;
|
|
17
|
-
opusDtx?: boolean;
|
|
18
|
-
opusMaxPlaybackRate?: number;
|
|
19
|
-
opusMaxAverageBitrate?: number;
|
|
20
|
-
opusPtime?: number;
|
|
21
|
-
opusNack?: boolean;
|
|
22
|
-
videoGoogleStartBitrate?: number;
|
|
23
|
-
videoGoogleMaxBitrate?: number;
|
|
24
|
-
videoGoogleMinBitrate?: number;
|
|
25
|
-
};
|
|
26
|
-
export type ProducerEvents = {
|
|
27
|
-
transportclose: [];
|
|
28
|
-
trackended: [];
|
|
29
|
-
'@pause': [
|
|
30
|
-
() => void,
|
|
31
|
-
(error: Error) => void
|
|
32
|
-
];
|
|
33
|
-
'@resume': [
|
|
34
|
-
() => void,
|
|
35
|
-
(error: Error) => void
|
|
36
|
-
];
|
|
37
|
-
'@replacetrack': [
|
|
38
|
-
MediaStreamTrack | null,
|
|
39
|
-
() => void,
|
|
40
|
-
(error: Error) => void
|
|
41
|
-
];
|
|
42
|
-
'@setmaxspatiallayer': [
|
|
43
|
-
number,
|
|
44
|
-
() => void,
|
|
45
|
-
(error: Error) => void
|
|
46
|
-
];
|
|
47
|
-
'@setrtpencodingparameters': [
|
|
48
|
-
RTCRtpEncodingParameters,
|
|
49
|
-
() => void,
|
|
50
|
-
(error: Error) => void
|
|
51
|
-
];
|
|
52
|
-
'@getstats': [(stats: RTCStatsReport) => void, (error: Error) => void];
|
|
53
|
-
'@close': [];
|
|
54
|
-
};
|
|
55
|
-
export type ProducerObserverEvents = {
|
|
56
|
-
close: [];
|
|
57
|
-
pause: [];
|
|
58
|
-
resume: [];
|
|
59
|
-
trackended: [];
|
|
60
|
-
};
|
|
61
|
-
export declare class Producer<ProducerAppData extends AppData = AppData> extends EnhancedEventEmitter<ProducerEvents> {
|
|
62
|
-
private readonly _id;
|
|
63
|
-
private readonly _localId;
|
|
64
|
-
private _closed;
|
|
65
|
-
private readonly _rtpSender?;
|
|
66
|
-
private _track;
|
|
67
|
-
private readonly _kind;
|
|
68
|
-
private readonly _rtpParameters;
|
|
69
|
-
private _paused;
|
|
70
|
-
private _maxSpatialLayer;
|
|
71
|
-
private _stopTracks;
|
|
72
|
-
private _disableTrackOnPause;
|
|
73
|
-
private _zeroRtpOnPause;
|
|
74
|
-
private _appData;
|
|
75
|
-
protected readonly _observer: EnhancedEventEmitter<ProducerObserverEvents>;
|
|
76
|
-
constructor({ id, localId, rtpSender, track, rtpParameters, stopTracks, disableTrackOnPause, zeroRtpOnPause, appData }: {
|
|
77
|
-
id: string;
|
|
78
|
-
localId: string;
|
|
79
|
-
rtpSender?: RTCRtpSender;
|
|
80
|
-
track: MediaStreamTrack;
|
|
81
|
-
rtpParameters: RtpParameters;
|
|
82
|
-
stopTracks: boolean;
|
|
83
|
-
disableTrackOnPause: boolean;
|
|
84
|
-
zeroRtpOnPause: boolean;
|
|
85
|
-
appData?: ProducerAppData;
|
|
86
|
-
});
|
|
87
|
-
/**
|
|
88
|
-
* Producer id.
|
|
89
|
-
*/
|
|
90
|
-
get id(): string;
|
|
91
|
-
/**
|
|
92
|
-
* Local id.
|
|
93
|
-
*/
|
|
94
|
-
get localId(): string;
|
|
95
|
-
/**
|
|
96
|
-
* Whether the Producer is closed.
|
|
97
|
-
*/
|
|
98
|
-
get closed(): boolean;
|
|
99
|
-
/**
|
|
100
|
-
* Media kind.
|
|
101
|
-
*/
|
|
102
|
-
get kind(): MediaKind;
|
|
103
|
-
/**
|
|
104
|
-
* Associated RTCRtpSender.
|
|
105
|
-
*/
|
|
106
|
-
get rtpSender(): RTCRtpSender | undefined;
|
|
107
|
-
/**
|
|
108
|
-
* The associated track.
|
|
109
|
-
*/
|
|
110
|
-
get track(): MediaStreamTrack | null;
|
|
111
|
-
/**
|
|
112
|
-
* RTP parameters.
|
|
113
|
-
*/
|
|
114
|
-
get rtpParameters(): RtpParameters;
|
|
115
|
-
/**
|
|
116
|
-
* Whether the Producer is paused.
|
|
117
|
-
*/
|
|
118
|
-
get paused(): boolean;
|
|
119
|
-
/**
|
|
120
|
-
* Max spatial layer.
|
|
121
|
-
*
|
|
122
|
-
* @type {Number | undefined}
|
|
123
|
-
*/
|
|
124
|
-
get maxSpatialLayer(): number | undefined;
|
|
125
|
-
/**
|
|
126
|
-
* App custom data.
|
|
127
|
-
*/
|
|
128
|
-
get appData(): ProducerAppData;
|
|
129
|
-
/**
|
|
130
|
-
* App custom data setter.
|
|
131
|
-
*/
|
|
132
|
-
set appData(appData: ProducerAppData);
|
|
133
|
-
get observer(): EnhancedEventEmitter;
|
|
134
|
-
/**
|
|
135
|
-
* Closes the Producer.
|
|
136
|
-
*/
|
|
137
|
-
close(): void;
|
|
138
|
-
/**
|
|
139
|
-
* Transport was closed.
|
|
140
|
-
*/
|
|
141
|
-
transportClosed(): void;
|
|
142
|
-
/**
|
|
143
|
-
* Get associated RTCRtpSender stats.
|
|
144
|
-
*/
|
|
145
|
-
getStats(): Promise<RTCStatsReport>;
|
|
146
|
-
/**
|
|
147
|
-
* Pauses sending media.
|
|
148
|
-
*/
|
|
149
|
-
pause(): void;
|
|
150
|
-
/**
|
|
151
|
-
* Resumes sending media.
|
|
152
|
-
*/
|
|
153
|
-
resume(): void;
|
|
154
|
-
/**
|
|
155
|
-
* Replaces the current track with a new one or null.
|
|
156
|
-
*/
|
|
157
|
-
replaceTrack({ track }: {
|
|
158
|
-
track: MediaStreamTrack | null;
|
|
159
|
-
}): Promise<void>;
|
|
160
|
-
/**
|
|
161
|
-
* Sets the video max spatial layer to be sent.
|
|
162
|
-
*/
|
|
163
|
-
setMaxSpatialLayer(spatialLayer: number): Promise<void>;
|
|
164
|
-
setRtpEncodingParameters(params: RTCRtpEncodingParameters): Promise<void>;
|
|
165
|
-
private onTrackEnded;
|
|
166
|
-
private handleTrack;
|
|
167
|
-
private destroyTrack;
|
|
168
|
-
}
|
|
169
|
-
//# sourceMappingURL=Producer.d.ts.map
|
package/lib/Producer.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Producer.d.ts","sourceRoot":"","sources":["../src/Producer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EACN,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,MAAM,MAAM,eAAe,CAAC,eAAe,SAAS,OAAO,GAAG,OAAO,IACrE;IACC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,SAAS,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAChC;IACC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAC1B;IACC,cAAc,EAAE,EAAE,CAAC;IACnB,UAAU,EAAE,EAAE,CAAC;IAEf,QAAQ,EAAE;QACT,MAAM,IAAI;QACV,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;KACtB,CAAC;IACF,SAAS,EAAE;QACV,MAAM,IAAI;QACV,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;KACtB,CAAC;IACF,eAAe,EACf;QACC,gBAAgB,GAAG,IAAI;QACvB,MAAM,IAAI;QACV,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;KACtB,CAAC;IACF,qBAAqB,EACrB;QACC,MAAM;QACN,MAAM,IAAI;QACV,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;KACtB,CAAC;IACF,2BAA2B,EAC3B;QACC,wBAAwB;QACxB,MAAM,IAAI;QACV,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;KACtB,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC;IACvE,QAAQ,EAAE,EAAE,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAClC;IACC,KAAK,EAAE,EAAE,CAAC;IACV,KAAK,EAAE,EAAE,CAAC;IACV,MAAM,EAAE,EAAE,CAAC;IACX,UAAU,EAAE,EAAE,CAAC;CACf,CAAC;AAEF,qBAAa,QAAQ,CAAC,eAAe,SAAS,OAAO,GAAG,OAAO,CAC9D,SAAQ,oBAAoB,CAAC,cAAc,CAAC;IAG5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAe;IAE3C,OAAO,CAAC,MAAM,CAA0B;IAExC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAElC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAE/C,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,gBAAgB,CAAqB;IAE7C,OAAO,CAAC,WAAW,CAAU;IAE7B,OAAO,CAAC,oBAAoB,CAAU;IAEtC,OAAO,CAAC,eAAe,CAAU;IAEjC,OAAO,CAAC,QAAQ,CAAkB;IAElC,SAAS,CAAC,QAAQ,CAAC,SAAS,+CAAsD;gBAGjF,EACC,EAAE,EACF,OAAO,EACP,SAAS,EACT,KAAK,EACL,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,OAAO,EACP,EACD;QACC,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,YAAY,CAAC;QACzB,KAAK,EAAE,gBAAgB,CAAC;QACxB,aAAa,EAAE,aAAa,CAAC;QAC7B,UAAU,EAAE,OAAO,CAAC;QACpB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,cAAc,EAAE,OAAO,CAAC;QACxB,OAAO,CAAC,EAAE,eAAe,CAAC;KAC1B;IA2BF;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAGf;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAGpB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,CAGpB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,YAAY,GAAG,SAAS,CAGxC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,gBAAgB,GAAG,IAAI,CAGnC;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,aAAa,CAGjC;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAGxC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,eAAe,CAG7B;IAED;;OAEG;IACH,IAAI,OAAO,CAAC,OAAO,EAAE,eAAe,EAGnC;IAED,IAAI,QAAQ,IAAI,oBAAoB,CAGnC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;IAmBb;;OAEG;IACH,eAAe,IAAI,IAAI;IAmBvB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAiBzC;;OAEG;IACH,KAAK,IAAI,IAAI;IAkCb;;OAEG;IACH,MAAM,IAAI,IAAI;IAkCd;;OAEG;IACG,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+DhF;;OAEG;IACG,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCvD,wBAAwB,CAC7B,MAAM,EAAE,wBAAwB,GAC9B,OAAO,CAAC,IAAI,CAAC;IAsBhB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;CAoBpB"}
|
package/lib/Producer.js
DELETED
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Producer = void 0;
|
|
4
|
-
const Logger_1 = require("./Logger");
|
|
5
|
-
const EnhancedEventEmitter_1 = require("./EnhancedEventEmitter");
|
|
6
|
-
const errors_1 = require("./errors");
|
|
7
|
-
const logger = new Logger_1.Logger('Producer');
|
|
8
|
-
class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
9
|
-
constructor({ id, localId, rtpSender, track, rtpParameters, stopTracks, disableTrackOnPause, zeroRtpOnPause, appData }) {
|
|
10
|
-
super();
|
|
11
|
-
// Closed flag.
|
|
12
|
-
this._closed = false;
|
|
13
|
-
// Observer instance.
|
|
14
|
-
this._observer = new EnhancedEventEmitter_1.EnhancedEventEmitter();
|
|
15
|
-
logger.debug('constructor()');
|
|
16
|
-
this._id = id;
|
|
17
|
-
this._localId = localId;
|
|
18
|
-
this._rtpSender = rtpSender;
|
|
19
|
-
this._track = track;
|
|
20
|
-
this._kind = track.kind;
|
|
21
|
-
this._rtpParameters = rtpParameters;
|
|
22
|
-
this._paused = disableTrackOnPause ? !track.enabled : false;
|
|
23
|
-
this._maxSpatialLayer = undefined;
|
|
24
|
-
this._stopTracks = stopTracks;
|
|
25
|
-
this._disableTrackOnPause = disableTrackOnPause;
|
|
26
|
-
this._zeroRtpOnPause = zeroRtpOnPause;
|
|
27
|
-
this._appData = appData || {};
|
|
28
|
-
this.onTrackEnded = this.onTrackEnded.bind(this);
|
|
29
|
-
// NOTE: Minor issue. If zeroRtpOnPause is true, we cannot emit the
|
|
30
|
-
// '@replacetrack' event here, so RTCRtpSender.track won't be null.
|
|
31
|
-
this.handleTrack();
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Producer id.
|
|
35
|
-
*/
|
|
36
|
-
get id() {
|
|
37
|
-
return this._id;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Local id.
|
|
41
|
-
*/
|
|
42
|
-
get localId() {
|
|
43
|
-
return this._localId;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Whether the Producer is closed.
|
|
47
|
-
*/
|
|
48
|
-
get closed() {
|
|
49
|
-
return this._closed;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Media kind.
|
|
53
|
-
*/
|
|
54
|
-
get kind() {
|
|
55
|
-
return this._kind;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Associated RTCRtpSender.
|
|
59
|
-
*/
|
|
60
|
-
get rtpSender() {
|
|
61
|
-
return this._rtpSender;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* The associated track.
|
|
65
|
-
*/
|
|
66
|
-
get track() {
|
|
67
|
-
return this._track;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* RTP parameters.
|
|
71
|
-
*/
|
|
72
|
-
get rtpParameters() {
|
|
73
|
-
return this._rtpParameters;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Whether the Producer is paused.
|
|
77
|
-
*/
|
|
78
|
-
get paused() {
|
|
79
|
-
return this._paused;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Max spatial layer.
|
|
83
|
-
*
|
|
84
|
-
* @type {Number | undefined}
|
|
85
|
-
*/
|
|
86
|
-
get maxSpatialLayer() {
|
|
87
|
-
return this._maxSpatialLayer;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* App custom data.
|
|
91
|
-
*/
|
|
92
|
-
get appData() {
|
|
93
|
-
return this._appData;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* App custom data setter.
|
|
97
|
-
*/
|
|
98
|
-
set appData(appData) {
|
|
99
|
-
this._appData = appData;
|
|
100
|
-
}
|
|
101
|
-
get observer() {
|
|
102
|
-
return this._observer;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Closes the Producer.
|
|
106
|
-
*/
|
|
107
|
-
close() {
|
|
108
|
-
if (this._closed) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
logger.debug('close()');
|
|
112
|
-
this._closed = true;
|
|
113
|
-
this.destroyTrack();
|
|
114
|
-
this.emit('@close');
|
|
115
|
-
// Emit observer event.
|
|
116
|
-
this._observer.safeEmit('close');
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Transport was closed.
|
|
120
|
-
*/
|
|
121
|
-
transportClosed() {
|
|
122
|
-
if (this._closed) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
logger.debug('transportClosed()');
|
|
126
|
-
this._closed = true;
|
|
127
|
-
this.destroyTrack();
|
|
128
|
-
this.safeEmit('transportclose');
|
|
129
|
-
// Emit observer event.
|
|
130
|
-
this._observer.safeEmit('close');
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Get associated RTCRtpSender stats.
|
|
134
|
-
*/
|
|
135
|
-
async getStats() {
|
|
136
|
-
if (this._closed) {
|
|
137
|
-
throw new errors_1.InvalidStateError('closed');
|
|
138
|
-
}
|
|
139
|
-
return new Promise((resolve, reject) => {
|
|
140
|
-
this.safeEmit('@getstats', resolve, reject);
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Pauses sending media.
|
|
145
|
-
*/
|
|
146
|
-
pause() {
|
|
147
|
-
logger.debug('pause()');
|
|
148
|
-
if (this._closed) {
|
|
149
|
-
logger.error('pause() | Producer closed');
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
this._paused = true;
|
|
153
|
-
if (this._track && this._disableTrackOnPause) {
|
|
154
|
-
this._track.enabled = false;
|
|
155
|
-
}
|
|
156
|
-
if (this._zeroRtpOnPause) {
|
|
157
|
-
new Promise((resolve, reject) => {
|
|
158
|
-
this.safeEmit('@pause', resolve, reject);
|
|
159
|
-
}).catch(() => { });
|
|
160
|
-
}
|
|
161
|
-
// Emit observer event.
|
|
162
|
-
this._observer.safeEmit('pause');
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Resumes sending media.
|
|
166
|
-
*/
|
|
167
|
-
resume() {
|
|
168
|
-
logger.debug('resume()');
|
|
169
|
-
if (this._closed) {
|
|
170
|
-
logger.error('resume() | Producer closed');
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
this._paused = false;
|
|
174
|
-
if (this._track && this._disableTrackOnPause) {
|
|
175
|
-
this._track.enabled = true;
|
|
176
|
-
}
|
|
177
|
-
if (this._zeroRtpOnPause) {
|
|
178
|
-
new Promise((resolve, reject) => {
|
|
179
|
-
this.safeEmit('@resume', resolve, reject);
|
|
180
|
-
}).catch(() => { });
|
|
181
|
-
}
|
|
182
|
-
// Emit observer event.
|
|
183
|
-
this._observer.safeEmit('resume');
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Replaces the current track with a new one or null.
|
|
187
|
-
*/
|
|
188
|
-
async replaceTrack({ track }) {
|
|
189
|
-
logger.debug('replaceTrack() [track:%o]', track);
|
|
190
|
-
if (this._closed) {
|
|
191
|
-
// This must be done here. Otherwise there is no chance to stop the given
|
|
192
|
-
// track.
|
|
193
|
-
if (track && this._stopTracks) {
|
|
194
|
-
try {
|
|
195
|
-
track.stop();
|
|
196
|
-
}
|
|
197
|
-
catch (error) { }
|
|
198
|
-
}
|
|
199
|
-
throw new errors_1.InvalidStateError('closed');
|
|
200
|
-
}
|
|
201
|
-
else if (track && track.readyState === 'ended') {
|
|
202
|
-
throw new errors_1.InvalidStateError('track ended');
|
|
203
|
-
}
|
|
204
|
-
// Do nothing if this is the same track as the current handled one.
|
|
205
|
-
if (track === this._track) {
|
|
206
|
-
logger.debug('replaceTrack() | same track, ignored');
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
await new Promise((resolve, reject) => {
|
|
210
|
-
this.safeEmit('@replacetrack', track, resolve, reject);
|
|
211
|
-
});
|
|
212
|
-
// Destroy the previous track.
|
|
213
|
-
this.destroyTrack();
|
|
214
|
-
// Set the new track.
|
|
215
|
-
this._track = track;
|
|
216
|
-
// If this Producer was paused/resumed and the state of the new
|
|
217
|
-
// track does not match, fix it.
|
|
218
|
-
if (this._track && this._disableTrackOnPause) {
|
|
219
|
-
if (!this._paused) {
|
|
220
|
-
this._track.enabled = true;
|
|
221
|
-
}
|
|
222
|
-
else if (this._paused) {
|
|
223
|
-
this._track.enabled = false;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
// Handle the effective track.
|
|
227
|
-
this.handleTrack();
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Sets the video max spatial layer to be sent.
|
|
231
|
-
*/
|
|
232
|
-
async setMaxSpatialLayer(spatialLayer) {
|
|
233
|
-
if (this._closed) {
|
|
234
|
-
throw new errors_1.InvalidStateError('closed');
|
|
235
|
-
}
|
|
236
|
-
else if (this._kind !== 'video') {
|
|
237
|
-
throw new errors_1.UnsupportedError('not a video Producer');
|
|
238
|
-
}
|
|
239
|
-
else if (typeof spatialLayer !== 'number') {
|
|
240
|
-
throw new TypeError('invalid spatialLayer');
|
|
241
|
-
}
|
|
242
|
-
if (spatialLayer === this._maxSpatialLayer) {
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
await new Promise((resolve, reject) => {
|
|
246
|
-
this.safeEmit('@setmaxspatiallayer', spatialLayer, resolve, reject);
|
|
247
|
-
}).catch(() => { });
|
|
248
|
-
this._maxSpatialLayer = spatialLayer;
|
|
249
|
-
}
|
|
250
|
-
async setRtpEncodingParameters(params) {
|
|
251
|
-
if (this._closed) {
|
|
252
|
-
throw new errors_1.InvalidStateError('closed');
|
|
253
|
-
}
|
|
254
|
-
else if (typeof params !== 'object') {
|
|
255
|
-
throw new TypeError('invalid params');
|
|
256
|
-
}
|
|
257
|
-
await new Promise((resolve, reject) => {
|
|
258
|
-
this.safeEmit('@setrtpencodingparameters', params, resolve, reject);
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
onTrackEnded() {
|
|
262
|
-
logger.debug('track "ended" event');
|
|
263
|
-
this.safeEmit('trackended');
|
|
264
|
-
// Emit observer event.
|
|
265
|
-
this._observer.safeEmit('trackended');
|
|
266
|
-
}
|
|
267
|
-
handleTrack() {
|
|
268
|
-
if (!this._track) {
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
this._track.addEventListener('ended', this.onTrackEnded);
|
|
272
|
-
}
|
|
273
|
-
destroyTrack() {
|
|
274
|
-
if (!this._track) {
|
|
275
|
-
return;
|
|
276
|
-
}
|
|
277
|
-
try {
|
|
278
|
-
this._track.removeEventListener('ended', this.onTrackEnded);
|
|
279
|
-
// Just stop the track unless the app set stopTracks: false.
|
|
280
|
-
if (this._stopTracks) {
|
|
281
|
-
this._track.stop();
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
catch (error) { }
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
exports.Producer = Producer;
|