@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.
@@ -1,9 +1,9 @@
1
- import { ConnectionState, LocalTrack } from '@webex/webrtc-core';
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, SourceState, Policy, PolicySpecificInfo, CodecInfo, JmpScrRequest, ActiveSpeakerNotificationMsg, MediaContent, MediaType, Source, VideoContentHint } from '@webex/json-multistream';
4
- export { Logger as JMPLogger, SourceState } from '@webex/json-multistream';
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: SourceState, csi?: number) => void;
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: SourceState, csi?: number): void;
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 maybeSendSourceIndication;
167
- sendSourceIndication(mediaType: MediaType, numLiveSources: number, sources?: Source[], videoContentHint?: VideoContentHint | undefined): void;
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 getVideoSources;
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, mediaRequests: MediaRequest[]): void;
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, MediaRequest, MultistreamConnection, MultistreamConnectionEventNames, MultistreamConnectionEvents, ReceiveSlot, ReceiveSlotEvents, ReceiveSlotId, ReceiverEvents, RecommendedOpusBitrates, SendOnlyTransceiver, TransceiverStats, compareReceiveSlotIds, getLogLevel, getRecommendedMaxBitrateForFrameSize, logger, setLogHandler, setLogLevel };
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": "1.41.1",
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": "^1.22.0",
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",