@webex/web-client-media-engine 2.1.7 → 3.0.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.
- package/dist/cjs/index.js +7696 -6614
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +7640 -6566
- package/dist/esm/index.js.map +1 -1
- package/dist/types/index.d.ts +54 -48
- package/package.json +2 -2
package/dist/types/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { AudioDeviceConstraints, ConnectionState,
|
|
3
|
-
import { StreamId, StreamState, Policy, PolicySpecificInfo, CodecInfo, StreamRequest as StreamRequest$1,
|
|
4
|
-
export { Logger as JMPLogger, StreamState } from '@webex/json-multistream';
|
|
1
|
+
import { LocalStream, ConnectionState } from '@webex/webrtc-core';
|
|
2
|
+
export { AudioDeviceConstraints, ConnectionState, LocalCameraStream, LocalDisplayStream, LocalMicrophoneStream, LocalStream, LocalStreamEventNames, LocalSystemAudioStream, MediaStreamTrackKind, PeerConnection, RemoteStream, StreamEventNames, VideoDeviceConstraints, WcmeError, createCameraStream, createDisplayStream, createDisplayStreamWithAudio, createMicrophoneStream, getAudioInputDevices, getAudioOutputDevices, getDevices, getVideoInputDevices, setOnDeviceChangeHandler } from '@webex/webrtc-core';
|
|
3
|
+
import { StreamId, StreamState, MediaType, Policy, PolicySpecificInfo, CodecInfo, StreamRequest as StreamRequest$1, MediaContent } from '@webex/json-multistream';
|
|
4
|
+
export { ActiveSpeakerInfo, CodecInfo, H264Codec, Logger as JMPLogger, MediaContent, MediaFamily, MediaType, Policy, PolicySpecificInfo, ReceiverSelectedInfo, StreamState, getMediaContent, getMediaFamily, getMediaType } from '@webex/json-multistream';
|
|
5
5
|
import { LogData } from '@webex/rtcstats';
|
|
6
6
|
import TypedEmitter, { EventMap } from 'typed-emitter';
|
|
7
|
-
import {
|
|
7
|
+
import { TypedEvent } from '@webex/ts-events';
|
|
8
8
|
import { AvMediaDescription } from '@webex/ts-sdp';
|
|
9
|
+
import { ReceiveSlot as ReceiveSlot$1 } from 'receive-slot';
|
|
9
10
|
import * as js_logger from 'js-logger';
|
|
10
11
|
import { ILogLevel, ILogHandler } from 'js-logger';
|
|
11
12
|
export { ILogHandler, default as Logger } from 'js-logger';
|
|
@@ -46,14 +47,15 @@ declare function compareReceiveSlotIds(id1: ReceiveSlotId, id2: ReceiveSlotId):
|
|
|
46
47
|
declare enum ReceiveSlotEvents {
|
|
47
48
|
MediaStarted = "media-started",
|
|
48
49
|
MediaStopped = "media-stopped",
|
|
50
|
+
MediaEnded = "media-ended",
|
|
49
51
|
SourceUpdate = "source-update"
|
|
50
52
|
}
|
|
51
53
|
interface ReceiverEvents extends EventMap {
|
|
52
54
|
[ReceiveSlotEvents.MediaStarted]: () => void;
|
|
53
55
|
[ReceiveSlotEvents.MediaStopped]: () => void;
|
|
56
|
+
[ReceiveSlotEvents.MediaEnded]: () => void;
|
|
54
57
|
[ReceiveSlotEvents.SourceUpdate]: (state: StreamState, csi?: number) => void;
|
|
55
58
|
}
|
|
56
|
-
|
|
57
59
|
declare class ReceiveSlot extends EventEmitter<ReceiverEvents> {
|
|
58
60
|
static Events: typeof ReceiveSlotEvents;
|
|
59
61
|
private _idGetter;
|
|
@@ -61,11 +63,9 @@ declare class ReceiveSlot extends EventEmitter<ReceiverEvents> {
|
|
|
61
63
|
private _sourceState;
|
|
62
64
|
private _currentRxCsi?;
|
|
63
65
|
constructor(idGetter: () => ReceiveSlotId | null, track: MediaStreamTrack);
|
|
64
|
-
private
|
|
65
|
-
private
|
|
66
|
-
|
|
67
|
-
private removeTrackHandlers;
|
|
68
|
-
replaceTrack(newTrack: MediaStreamTrack): void;
|
|
66
|
+
private handleStreamMuteStateChange;
|
|
67
|
+
private handleStreamEnded;
|
|
68
|
+
_replaceTrack(newTrack: MediaStreamTrack): void;
|
|
69
69
|
_updateSource(state: StreamState, csi?: number): void;
|
|
70
70
|
close(): void;
|
|
71
71
|
get id(): ReceiveSlotId | null;
|
|
@@ -77,14 +77,15 @@ declare type StreamSignalingMode = 'MID-RID' | 'SSRC';
|
|
|
77
77
|
|
|
78
78
|
declare type BundlePolicy = 'max-bundle' | 'max-compat';
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
80
|
+
interface EgressStreamSignaler {
|
|
81
|
+
signalStreams(simulcastEnabled: boolean, rtxEnabled: boolean, mLine: AvMediaDescription): void;
|
|
82
|
+
getSenderIds(): StreamId[];
|
|
83
|
+
getEncodingIndexForStreamId(streamId: StreamId): number;
|
|
84
|
+
reset(): void;
|
|
85
|
+
setCodecParameters(parameters: {
|
|
86
|
+
[key: string]: string | undefined;
|
|
87
|
+
}): void;
|
|
88
|
+
deleteCodecParameters(parameters: string[]): void;
|
|
88
89
|
}
|
|
89
90
|
|
|
90
91
|
declare abstract class Transceiver {
|
|
@@ -98,37 +99,33 @@ declare abstract class Transceiver {
|
|
|
98
99
|
abstract resetStreamSignaler(): void;
|
|
99
100
|
}
|
|
100
101
|
|
|
101
|
-
interface EgressStreamSignaler {
|
|
102
|
-
signalStreams(simulcastEnabled: boolean, rtxEnabled: boolean, mLine: AvMediaDescription): void;
|
|
103
|
-
getSenderIds(): StreamId[];
|
|
104
|
-
getEncodingIndexForStreamId(streamId: StreamId): number;
|
|
105
|
-
reset(): void;
|
|
106
|
-
setCodecParameters(parameters: {
|
|
107
|
-
[key: string]: string | undefined;
|
|
108
|
-
}): void;
|
|
109
|
-
deleteCodecParameters(parameters: string[]): void;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
102
|
declare class SendOnlyTransceiver extends Transceiver {
|
|
113
|
-
|
|
103
|
+
publishedStream?: LocalStream;
|
|
114
104
|
csi: number;
|
|
115
105
|
private direction;
|
|
116
106
|
private streamSignaler;
|
|
117
107
|
rtxEnabled: boolean;
|
|
108
|
+
streamMuteStateChange: TypedEvent<() => void>;
|
|
109
|
+
streamPublishStateChange: TypedEvent<() => void>;
|
|
110
|
+
private mediaType;
|
|
118
111
|
private requested;
|
|
119
|
-
|
|
112
|
+
private requestedIdEncodingParamsMap;
|
|
113
|
+
constructor(rtcRtpTransceiver: RTCRtpTransceiver, mid: string, csi: number, signaler: EgressStreamSignaler, mediaType: MediaType);
|
|
120
114
|
private handleTrackChange;
|
|
115
|
+
private handleStreamConstraintsChange;
|
|
116
|
+
private handleStreamMuteStateChange;
|
|
121
117
|
replaceTransceiver(newRtcRtpTransceiver: RTCRtpTransceiver): Promise<void>;
|
|
122
|
-
private
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
118
|
+
private replacePublishedStream;
|
|
119
|
+
setStreamRequested(requested: boolean): Promise<void>;
|
|
120
|
+
publishStream(stream: LocalStream): Promise<void>;
|
|
121
|
+
unpublishStream(): Promise<void>;
|
|
126
122
|
setActive(enabled: boolean): boolean;
|
|
127
123
|
getStats(): Promise<RTCStatsReport>;
|
|
128
124
|
updateSendParameters(requestedIdEncodingParamsMap: Map<number, EncodingParams>): Promise<void>;
|
|
129
125
|
private isSimulcastEnabled;
|
|
130
126
|
signalStreams(mLine: AvMediaDescription): void;
|
|
131
127
|
get senderIds(): StreamId[];
|
|
128
|
+
get numActiveSimulcastLayers(): number | undefined;
|
|
132
129
|
getEncodingIndexForStreamId(id: StreamId): number;
|
|
133
130
|
resetStreamSignaler(): void;
|
|
134
131
|
setCodecParameters(parameters: {
|
|
@@ -137,6 +134,24 @@ declare class SendOnlyTransceiver extends Transceiver {
|
|
|
137
134
|
deleteCodecParameters(parameters: string[]): void;
|
|
138
135
|
}
|
|
139
136
|
|
|
137
|
+
declare class SendSlot {
|
|
138
|
+
private sendTransceiver;
|
|
139
|
+
constructor(sendTransceiver: SendOnlyTransceiver);
|
|
140
|
+
publishStream(stream: LocalStream): Promise<void>;
|
|
141
|
+
unpublishStream(): Promise<void>;
|
|
142
|
+
set active(active: boolean);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
declare class StreamRequest {
|
|
146
|
+
policy: Policy;
|
|
147
|
+
policySpecificInfo: PolicySpecificInfo;
|
|
148
|
+
receiveSlots: ReceiveSlot$1[];
|
|
149
|
+
maxPayloadBitsPerSecond: number;
|
|
150
|
+
codecInfos: CodecInfo[];
|
|
151
|
+
constructor(policy: Policy, policySpecificInfo: PolicySpecificInfo, receiveSlots: ReceiveSlot$1[], maxPayloadBitsPerSecond: number, codecInfos?: CodecInfo[]);
|
|
152
|
+
_toJmpStreamRequest(): StreamRequest$1;
|
|
153
|
+
}
|
|
154
|
+
|
|
140
155
|
interface TransceiverStatItem {
|
|
141
156
|
report: RTCStatsReport;
|
|
142
157
|
currentDirection: RTCRtpTransceiverDirection;
|
|
@@ -164,7 +179,6 @@ interface TransceiverStats {
|
|
|
164
179
|
}
|
|
165
180
|
|
|
166
181
|
declare type MetricsCallback = (logData: LogData) => void;
|
|
167
|
-
|
|
168
182
|
declare enum MultistreamConnectionEventNames {
|
|
169
183
|
VideoSourceCountUpdate = "video-source-count-update",
|
|
170
184
|
AudioSourceCountUpdate = "audio-source-count-update",
|
|
@@ -172,20 +186,17 @@ declare enum MultistreamConnectionEventNames {
|
|
|
172
186
|
ConnectionStateUpdate = "connection-state-update"
|
|
173
187
|
}
|
|
174
188
|
interface MultistreamConnectionEvents extends EventMap {
|
|
175
|
-
[MultistreamConnectionEventNames.ActiveSpeakerNotification]: (
|
|
189
|
+
[MultistreamConnectionEventNames.ActiveSpeakerNotification]: (csis: number[]) => void;
|
|
176
190
|
[MultistreamConnectionEventNames.VideoSourceCountUpdate]: (numTotalSources: number, numLiveSources: number, mediaContent: MediaContent) => void;
|
|
177
191
|
[MultistreamConnectionEventNames.AudioSourceCountUpdate]: (numTotalSources: number, numLiveSources: number, mediaContent: MediaContent) => void;
|
|
178
192
|
[MultistreamConnectionEventNames.ConnectionStateUpdate]: (state: ConnectionState) => void;
|
|
179
193
|
}
|
|
180
194
|
declare type MultistreamConnectionOptions = {
|
|
181
|
-
floorControlledPresentation: boolean;
|
|
182
195
|
disableSimulcast: boolean;
|
|
183
196
|
streamSignalingMode: StreamSignalingMode;
|
|
184
197
|
bundlePolicy: BundlePolicy;
|
|
185
198
|
iceServers: RTCIceServer[] | undefined;
|
|
186
199
|
disableContentSimulcast: boolean;
|
|
187
|
-
enableMainAudio: boolean;
|
|
188
|
-
enableMainVideo: boolean;
|
|
189
200
|
};
|
|
190
201
|
declare class MultistreamConnection extends EventEmitter<MultistreamConnectionEvents> {
|
|
191
202
|
private pc;
|
|
@@ -201,22 +212,19 @@ declare class MultistreamConnection extends EventEmitter<MultistreamConnectionEv
|
|
|
201
212
|
private options;
|
|
202
213
|
private midPredictor;
|
|
203
214
|
private offerAnswerQueue;
|
|
204
|
-
private requestedIdEncodingParamsMap;
|
|
205
215
|
private setAnswerResolve?;
|
|
206
216
|
constructor(userOptions?: Partial<MultistreamConnectionOptions>);
|
|
207
217
|
private initializePeerConnection;
|
|
208
218
|
getConnectionState(): ConnectionState;
|
|
209
219
|
private getVideoEncodingOptions;
|
|
210
220
|
private createSendTransceiver;
|
|
221
|
+
createSendSlot(mediaType: MediaType): SendSlot;
|
|
211
222
|
private createJmpSession;
|
|
212
223
|
private updateRequestedStreams;
|
|
213
224
|
private createDataChannel;
|
|
214
225
|
close(): void;
|
|
215
226
|
private sendMediaRequestStatus;
|
|
216
227
|
sendSourceAdvertisement(mediaType: MediaType): void;
|
|
217
|
-
publishTrack(track: LocalTrack): Promise<void>;
|
|
218
|
-
unpublishTrack(track: LocalTrack): Promise<void>;
|
|
219
|
-
private addTrackListeners;
|
|
220
228
|
private getVideoStreamStates;
|
|
221
229
|
createReceiveSlot(mediaType: MediaType): Promise<ReceiveSlot>;
|
|
222
230
|
getIngressPayloadType(mediaType: MediaType, mimeType: MediaCodecMimeType): number;
|
|
@@ -224,14 +232,12 @@ declare class MultistreamConnection extends EventEmitter<MultistreamConnectionEv
|
|
|
224
232
|
setAnswer(answer: string): Promise<void>;
|
|
225
233
|
private doLocalOfferAnswer;
|
|
226
234
|
private queueLocalOfferAnswer;
|
|
227
|
-
enableMultistreamAudio(enabled: boolean): boolean;
|
|
228
235
|
private preProcessLocalOffer;
|
|
229
236
|
private prepareLocalOfferForRemoteServer;
|
|
230
237
|
private preProcessRemoteAnswer;
|
|
231
238
|
private getSendTransceiverOrThrow;
|
|
232
239
|
private getSendTransceiverByMidOrThrow;
|
|
233
240
|
private getRecvTransceiverByMidOrThrow;
|
|
234
|
-
getPublishedTracks(): LocalTrack[];
|
|
235
241
|
setCodecParameters(mediaType: MediaType, parameters: {
|
|
236
242
|
[key: string]: string | undefined;
|
|
237
243
|
}): Promise<void>;
|
|
@@ -254,4 +260,4 @@ declare function setLogLevel(level: ILogLevel): void;
|
|
|
254
260
|
declare function getLogLevel(): ILogLevel;
|
|
255
261
|
declare function setLogHandler(logHandler: ILogHandler): void;
|
|
256
262
|
|
|
257
|
-
export { MediaCodecMimeType, MetricsCallback, MultistreamConnection, MultistreamConnectionEventNames, MultistreamConnectionEvents, ReceiveSlot, ReceiveSlotEvents, ReceiveSlotId, ReceiverEvents, RecommendedOpusBitrates,
|
|
263
|
+
export { MediaCodecMimeType, MetricsCallback, MultistreamConnection, MultistreamConnectionEventNames, MultistreamConnectionEvents, ReceiveSlot, ReceiveSlotEvents, ReceiveSlotId, ReceiverEvents, RecommendedOpusBitrates, SendSlot, StreamRequest, TransceiverStats, compareReceiveSlotIds, getLogLevel, getRecommendedMaxBitrateForFrameSize, logger, setLogHandler, setLogLevel };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/web-client-media-engine",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Web Client Media Engine is common web code for interacting with the multistream media server.",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@webex/rtcstats": "^1.0.2",
|
|
59
59
|
"@webex/ts-events": "^1.0.1",
|
|
60
60
|
"@webex/ts-sdp": "1.3.1",
|
|
61
|
-
"@webex/webrtc-core": "
|
|
61
|
+
"@webex/webrtc-core": "2.0.0",
|
|
62
62
|
"async": "^3.2.4",
|
|
63
63
|
"bowser": "^2.11.0",
|
|
64
64
|
"js-logger": "^1.6.1",
|