@webex/web-client-media-engine 2.1.2 → 2.1.4

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.
@@ -5,6 +5,7 @@ export { Logger as JMPLogger, StreamState } from '@webex/json-multistream';
5
5
  import { LogData } from '@webex/rtcstats';
6
6
  import TypedEmitter, { EventMap } from 'typed-emitter';
7
7
  import { ReceiveSlot as ReceiveSlot$1 } from 'receive-slot';
8
+ import { AvMediaDescription } from '@webex/ts-sdp';
8
9
  import * as js_logger from 'js-logger';
9
10
  import { ILogLevel, ILogHandler } from 'js-logger';
10
11
  export { ILogHandler, default as Logger } from 'js-logger';
@@ -16,7 +17,9 @@ declare enum MediaCodecMimeType {
16
17
  }
17
18
  declare type EncodingParams = {
18
19
  maxPayloadBitsPerSecond?: number;
19
- scaleDownRatio?: number;
20
+ maxFs?: number;
21
+ maxWidth?: number;
22
+ maxHeight?: number;
20
23
  };
21
24
  declare enum RecommendedOpusBitrates {
22
25
  NB = 12000,
@@ -86,20 +89,34 @@ declare class StreamRequest {
86
89
 
87
90
  declare abstract class Transceiver {
88
91
  protected _rtcRtpTransceiver: RTCRtpTransceiver;
89
- constructor(rtcRtpTransceiver: RTCRtpTransceiver);
92
+ mid: string;
93
+ constructor(rtcRtpTransceiver: RTCRtpTransceiver, mid: string);
90
94
  replaceTransceiver(newRtcRtpTransceiver: RTCRtpTransceiver): void;
91
95
  protected get receiver(): RTCRtpReceiver;
92
96
  protected get sender(): RTCRtpSender;
93
- get mid(): string | null;
94
97
  close(): void;
98
+ abstract resetStreamSignaler(): void;
99
+ }
100
+
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;
95
110
  }
96
111
 
97
112
  declare class SendOnlyTransceiver extends Transceiver {
98
113
  publishedTrack?: LocalTrack;
99
114
  csi: number;
100
115
  private direction;
116
+ private streamSignaler;
117
+ rtxEnabled: boolean;
101
118
  private requested;
102
- constructor(rtcpRtpTransceiver: RTCRtpTransceiver, csi: number);
119
+ constructor(rtcpRtpTransceiver: RTCRtpTransceiver, mid: string, csi: number, signaler: EgressStreamSignaler);
103
120
  private handleTrackChange;
104
121
  replaceTransceiver(newRtcRtpTransceiver: RTCRtpTransceiver): Promise<void>;
105
122
  private replacePublishedTrack;
@@ -109,6 +126,15 @@ declare class SendOnlyTransceiver extends Transceiver {
109
126
  setActive(enabled: boolean): boolean;
110
127
  getStats(): Promise<RTCStatsReport>;
111
128
  updateSendParameters(requestedIdEncodingParamsMap: Map<number, EncodingParams>): Promise<void>;
129
+ private isSimulcastEnabled;
130
+ signalStreams(mLine: AvMediaDescription): void;
131
+ get senderIds(): StreamId[];
132
+ getEncodingIndexForStreamId(id: StreamId): number;
133
+ resetStreamSignaler(): void;
134
+ setCodecParameters(parameters: {
135
+ [key: string]: string | undefined;
136
+ }): void;
137
+ deleteCodecParameters(parameters: string[]): void;
112
138
  }
113
139
 
114
140
  interface TransceiverStatItem {
@@ -164,7 +190,6 @@ declare type MultistreamConnectionOptions = {
164
190
  declare class MultistreamConnection extends EventEmitter<MultistreamConnectionEvents> {
165
191
  private pc;
166
192
  private sendTransceivers;
167
- private streamSignalerManager;
168
193
  private recvTransceivers;
169
194
  private dataChannel;
170
195
  private jmpSessions;
@@ -174,14 +199,11 @@ declare class MultistreamConnection extends EventEmitter<MultistreamConnectionEv
174
199
  private overuseStateManager;
175
200
  private overuseUpdateCallback;
176
201
  private options;
177
- private customCodecParameters;
178
- private midMap;
179
- private currentMid;
202
+ private midPredictor;
180
203
  private offerAnswerQueue;
204
+ private requestedIdEncodingParamsMap;
181
205
  private setAnswerResolve?;
182
206
  constructor(userOptions?: Partial<MultistreamConnectionOptions>);
183
- protected addMid(mediaType: MediaType): void;
184
- protected clearMids(): void;
185
207
  private initializePeerConnection;
186
208
  getConnectionState(): ConnectionState;
187
209
  private getVideoEncodingOptions;
@@ -207,6 +229,8 @@ declare class MultistreamConnection extends EventEmitter<MultistreamConnectionEv
207
229
  private prepareLocalOfferForRemoteServer;
208
230
  private preProcessRemoteAnswer;
209
231
  private getSendTransceiverOrThrow;
232
+ private getSendTransceiverByMidOrThrow;
233
+ private getRecvTransceiverByMidOrThrow;
210
234
  getPublishedTracks(): LocalTrack[];
211
235
  setCodecParameters(mediaType: MediaType, parameters: {
212
236
  [key: string]: string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/web-client-media-engine",
3
- "version": "2.1.2",
3
+ "version": "2.1.4",
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",