@webex/web-client-media-engine 1.41.1 → 2.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/README.md +183 -0
- package/dist/cjs/index.js +524 -353
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +524 -353
- package/dist/esm/index.js.map +1 -1
- package/dist/types/index.d.ts +45 -56
- package/package.json +3 -7
package/dist/types/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LocalTrack, ConnectionState } from '@webex/webrtc-core';
|
|
2
2
|
export { AudioDeviceConstraints, ConnectionState, LocalCameraTrack, LocalDisplayTrack, LocalMicrophoneTrack, LocalTrack, LocalTrackEvents, MediaStreamTrackKind, PeerConnection, TrackEndEvent, TrackMuteEvent, TrackPublishEvent, VideoDeviceConstraints, WcmeError, createCameraTrack, createDisplayTrack, createMicrophoneTrack, getAudioInputDevices, getAudioOutputDevices, getDevices, getVideoInputDevices, setOnDeviceChangeHandler } from '@webex/webrtc-core';
|
|
3
|
-
import { StreamId,
|
|
4
|
-
export { Logger as JMPLogger,
|
|
5
|
-
import TypedEmitter, { EventMap } from 'typed-emitter';
|
|
3
|
+
import { StreamId, StreamState, ActiveSpeakerNotificationMsg, MediaContent, MediaType, StreamRequest } from '@webex/json-multistream';
|
|
4
|
+
export { Logger as JMPLogger, StreamRequest, StreamState } from '@webex/json-multistream';
|
|
6
5
|
import { LogData } from '@webex/rtcstats';
|
|
6
|
+
import TypedEmitter, { EventMap } from 'typed-emitter';
|
|
7
7
|
import * as js_logger from 'js-logger';
|
|
8
8
|
import { ILogLevel, ILogHandler } from 'js-logger';
|
|
9
9
|
export { ILogHandler, default as Logger } from 'js-logger';
|
|
@@ -30,6 +30,13 @@ declare const EventEmitter_base: new <TT extends EventMap>() => TypedEmitter<TT>
|
|
|
30
30
|
declare class EventEmitter<T extends EventMap> extends EventEmitter_base<T> {
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
declare enum OveruseState {
|
|
34
|
+
NOT_OVERUSED = 0,
|
|
35
|
+
OVERUSED = 1
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
declare type OveruseUpdateCallback = (state: OveruseState) => void;
|
|
39
|
+
|
|
33
40
|
declare type ReceiveSlotId = StreamId;
|
|
34
41
|
declare function compareReceiveSlotIds(id1: ReceiveSlotId, id2: ReceiveSlotId): boolean;
|
|
35
42
|
declare enum ReceiveSlotEvents {
|
|
@@ -40,7 +47,7 @@ declare enum ReceiveSlotEvents {
|
|
|
40
47
|
interface ReceiverEvents extends EventMap {
|
|
41
48
|
[ReceiveSlotEvents.MediaStarted]: () => void;
|
|
42
49
|
[ReceiveSlotEvents.MediaStopped]: () => void;
|
|
43
|
-
[ReceiveSlotEvents.SourceUpdate]: (state:
|
|
50
|
+
[ReceiveSlotEvents.SourceUpdate]: (state: StreamState, csi?: number) => void;
|
|
44
51
|
}
|
|
45
52
|
|
|
46
53
|
declare class ReceiveSlot extends EventEmitter<ReceiverEvents> {
|
|
@@ -55,34 +62,44 @@ declare class ReceiveSlot extends EventEmitter<ReceiverEvents> {
|
|
|
55
62
|
private handleTrackUnmuted;
|
|
56
63
|
private removeTrackHandlers;
|
|
57
64
|
replaceTrack(newTrack: MediaStreamTrack): void;
|
|
58
|
-
_updateSource(state:
|
|
65
|
+
_updateSource(state: StreamState, csi?: number): void;
|
|
59
66
|
close(): void;
|
|
60
67
|
get id(): ReceiveSlotId | null;
|
|
61
68
|
get stream(): MediaStream;
|
|
62
69
|
get currentRxCsi(): number | undefined;
|
|
63
70
|
}
|
|
64
71
|
|
|
65
|
-
declare class MediaRequest {
|
|
66
|
-
policy: Policy;
|
|
67
|
-
policySpecificInfo: PolicySpecificInfo;
|
|
68
|
-
receiveSlots: ReceiveSlot[];
|
|
69
|
-
maxPayloadBitsPerSecond: number;
|
|
70
|
-
codecInfos: CodecInfo[];
|
|
71
|
-
constructor(policy: Policy, policySpecificInfo: PolicySpecificInfo, receiveSlots: ReceiveSlot[], maxPayloadBitsPerSecond: number, codecInfos?: CodecInfo[]);
|
|
72
|
-
_toJmpScrRequest(): JmpScrRequest;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
declare enum OveruseState {
|
|
76
|
-
NOT_OVERUSED = 0,
|
|
77
|
-
OVERUSED = 1
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
declare type OveruseUpdateCallback = (state: OveruseState) => void;
|
|
81
|
-
|
|
82
72
|
declare type StreamSignalingMode = 'MID-RID' | 'SSRC';
|
|
83
73
|
|
|
84
74
|
declare type BundlePolicy = 'max-bundle' | 'max-compat';
|
|
85
75
|
|
|
76
|
+
declare abstract class Transceiver {
|
|
77
|
+
protected _rtcRtpTransceiver: RTCRtpTransceiver;
|
|
78
|
+
constructor(rtcRtpTransceiver: RTCRtpTransceiver);
|
|
79
|
+
replaceTransceiver(newRtcRtpTransceiver: RTCRtpTransceiver): void;
|
|
80
|
+
protected get receiver(): RTCRtpReceiver;
|
|
81
|
+
protected get sender(): RTCRtpSender;
|
|
82
|
+
get mid(): string | null;
|
|
83
|
+
close(): void;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
declare class SendOnlyTransceiver extends Transceiver {
|
|
87
|
+
publishedTrack?: LocalTrack;
|
|
88
|
+
csi: number;
|
|
89
|
+
private direction;
|
|
90
|
+
private requested;
|
|
91
|
+
constructor(rtcpRtpTransceiver: RTCRtpTransceiver, csi: number);
|
|
92
|
+
private handleTrackChange;
|
|
93
|
+
replaceTransceiver(newRtcRtpTransceiver: RTCRtpTransceiver): Promise<void>;
|
|
94
|
+
private replacePublishedTrack;
|
|
95
|
+
setTrackRequested(requested: boolean): Promise<void>;
|
|
96
|
+
publishTrack(track: LocalTrack): Promise<void>;
|
|
97
|
+
unpublishTrack(): Promise<void>;
|
|
98
|
+
setActive(enabled: boolean): boolean;
|
|
99
|
+
getStats(): Promise<RTCStatsReport>;
|
|
100
|
+
updateSendParameters(requestedIdEncodingParamsMap: Map<number, EncodingParams>): Promise<void>;
|
|
101
|
+
}
|
|
102
|
+
|
|
86
103
|
interface TransceiverStatItem {
|
|
87
104
|
report: RTCStatsReport;
|
|
88
105
|
currentDirection: RTCRtpTransceiverDirection;
|
|
@@ -159,16 +176,15 @@ declare class MultistreamConnection extends EventEmitter<MultistreamConnectionEv
|
|
|
159
176
|
private getVideoEncodingOptions;
|
|
160
177
|
private createSendTransceiver;
|
|
161
178
|
private createJmpSession;
|
|
162
|
-
private sendSourceWarnings;
|
|
163
179
|
private updateRequestedStreams;
|
|
164
180
|
private createDataChannel;
|
|
165
181
|
close(): void;
|
|
166
|
-
private
|
|
167
|
-
|
|
182
|
+
private sendMediaRequestStatus;
|
|
183
|
+
sendSourceAdvertisement(mediaType: MediaType): void;
|
|
168
184
|
publishTrack(track: LocalTrack): Promise<void>;
|
|
169
185
|
unpublishTrack(track: LocalTrack): Promise<void>;
|
|
170
186
|
private addTrackListeners;
|
|
171
|
-
private
|
|
187
|
+
private getVideoStreamStates;
|
|
172
188
|
createReceiveSlot(mediaType: MediaType): Promise<ReceiveSlot>;
|
|
173
189
|
getIngressPayloadType(mediaType: MediaType, mimeType: MediaCodecMimeType): number;
|
|
174
190
|
createOffer(): Promise<RTCSessionDescriptionInit>;
|
|
@@ -184,7 +200,7 @@ declare class MultistreamConnection extends EventEmitter<MultistreamConnectionEv
|
|
|
184
200
|
[key: string]: string | undefined;
|
|
185
201
|
}): Promise<void>;
|
|
186
202
|
deleteCodecParameters(mediaType: MediaType, parameters: string[]): Promise<void>;
|
|
187
|
-
requestMedia(mediaType: MediaType,
|
|
203
|
+
requestMedia(mediaType: MediaType, streamRequests: StreamRequest[]): void;
|
|
188
204
|
renewPeerConnection(userOptions?: Partial<MultistreamConnectionOptions>): void;
|
|
189
205
|
private getReceiveSlotById;
|
|
190
206
|
getStats(): Promise<RTCStatsReport>;
|
|
@@ -197,36 +213,9 @@ declare class MultistreamConnection extends EventEmitter<MultistreamConnectionEv
|
|
|
197
213
|
getAllCsis(): Record<string, number | undefined>;
|
|
198
214
|
}
|
|
199
215
|
|
|
200
|
-
declare abstract class Transceiver {
|
|
201
|
-
protected _rtcRtpTransceiver: RTCRtpTransceiver;
|
|
202
|
-
constructor(rtcRtpTransceiver: RTCRtpTransceiver);
|
|
203
|
-
replaceTransceiver(newRtcRtpTransceiver: RTCRtpTransceiver): void;
|
|
204
|
-
protected get receiver(): RTCRtpReceiver;
|
|
205
|
-
protected get sender(): RTCRtpSender;
|
|
206
|
-
get mid(): string | null;
|
|
207
|
-
close(): void;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
declare class SendOnlyTransceiver extends Transceiver {
|
|
211
|
-
publishedTrack?: LocalTrack;
|
|
212
|
-
csi: number;
|
|
213
|
-
private direction;
|
|
214
|
-
private requested;
|
|
215
|
-
constructor(rtcpRtpTransceiver: RTCRtpTransceiver, csi: number);
|
|
216
|
-
private handleTrackChange;
|
|
217
|
-
replaceTransceiver(newRtcRtpTransceiver: RTCRtpTransceiver): Promise<void>;
|
|
218
|
-
private replacePublishedTrack;
|
|
219
|
-
setTrackRequested(requested: boolean): Promise<void>;
|
|
220
|
-
publishTrack(track: LocalTrack): Promise<void>;
|
|
221
|
-
unpublishTrack(): Promise<void>;
|
|
222
|
-
setActive(enabled: boolean): boolean;
|
|
223
|
-
getStats(): Promise<RTCStatsReport>;
|
|
224
|
-
updateSendParameters(requestedIdEncodingParamsMap: Map<number, EncodingParams>): Promise<void>;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
216
|
declare const logger: js_logger.ILogger;
|
|
228
217
|
declare function setLogLevel(level: ILogLevel): void;
|
|
229
218
|
declare function getLogLevel(): ILogLevel;
|
|
230
219
|
declare function setLogHandler(logHandler: ILogHandler): void;
|
|
231
220
|
|
|
232
|
-
export { MediaCodecMimeType,
|
|
221
|
+
export { MediaCodecMimeType, MultistreamConnection, MultistreamConnectionEventNames, MultistreamConnectionEvents, ReceiveSlot, ReceiveSlotEvents, ReceiveSlotId, ReceiverEvents, RecommendedOpusBitrates, SendOnlyTransceiver, 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": "2.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",
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"fix": "run-s fix:*",
|
|
15
15
|
"fix:prettier": "prettier \"src/**/*.ts\" --write",
|
|
16
16
|
"fix:lint": "eslint src --ext .ts --fix",
|
|
17
|
-
"prepare": "husky install",
|
|
18
17
|
"release": "semantic-release",
|
|
19
18
|
"test": "run-s build test:*",
|
|
20
19
|
"test:coverage": "jest --coverage",
|
|
@@ -55,8 +54,9 @@
|
|
|
55
54
|
"yarn": ">=1.19.1"
|
|
56
55
|
},
|
|
57
56
|
"dependencies": {
|
|
58
|
-
"@webex/json-multistream": "^
|
|
57
|
+
"@webex/json-multistream": "^2.0.1",
|
|
59
58
|
"@webex/rtcstats": "^1.0.1",
|
|
59
|
+
"@webex/ts-events": "^1.0.1",
|
|
60
60
|
"@webex/ts-sdp": "1.3.1",
|
|
61
61
|
"@webex/webrtc-core": "^1.6.0",
|
|
62
62
|
"async": "^3.2.4",
|
|
@@ -66,8 +66,6 @@
|
|
|
66
66
|
"uuid": "^8.3.2"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@commitlint/cli": "^16.0.2",
|
|
70
|
-
"@commitlint/config-conventional": "^16.0.0",
|
|
71
69
|
"@rollup/plugin-commonjs": "^21.0.1",
|
|
72
70
|
"@rollup/plugin-node-resolve": "^13.1.3",
|
|
73
71
|
"@semantic-release/changelog": "^6.0.1",
|
|
@@ -86,11 +84,9 @@
|
|
|
86
84
|
"eslint-plugin-jest": "^25.3.4",
|
|
87
85
|
"eslint-plugin-jsdoc": "^37.6.1",
|
|
88
86
|
"eslint-plugin-prettier": "^4.0.0",
|
|
89
|
-
"husky": "^7.0.4",
|
|
90
87
|
"jest": "^27.4.7",
|
|
91
88
|
"jest-canvas-mock": "^2.4.0",
|
|
92
89
|
"jest-fetch-mock": "^3.0.3",
|
|
93
|
-
"lint-staged": "^12.1.7",
|
|
94
90
|
"npm-run-all": "^4.1.5",
|
|
95
91
|
"prettier": "^2.5.1",
|
|
96
92
|
"rimraf": "^3.0.2",
|