@fishjam-cloud/ts-client 0.8.1 → 0.10.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/index.d.mts +1308 -0
- package/dist/index.mjs +1 -0
- package/package.json +23 -33
- package/dist/src/FishjamClient.d.ts +0 -511
- package/dist/src/FishjamClient.js +0 -669
- package/dist/src/auth.d.ts +0 -3
- package/dist/src/auth.js +0 -8
- package/dist/src/connectEventsHandler.d.ts +0 -2
- package/dist/src/connectEventsHandler.js +0 -22
- package/dist/src/index.d.ts +0 -7
- package/dist/src/index.js +0 -3
- package/dist/src/protos/fishjam/peer_notifications.d.ts +0 -51
- package/dist/src/protos/fishjam/peer_notifications.js +0 -309
- package/dist/src/protos/index.d.ts +0 -1
- package/dist/src/protos/index.js +0 -1
- package/dist/src/reconnection.d.ts +0 -27
- package/dist/src/reconnection.js +0 -119
- package/dist/src/webrtc/CommandsQueue.d.ts +0 -23
- package/dist/src/webrtc/CommandsQueue.js +0 -87
- package/dist/src/webrtc/ConnectionManager.d.ts +0 -27
- package/dist/src/webrtc/ConnectionManager.js +0 -65
- package/dist/src/webrtc/bitrate.d.ts +0 -12
- package/dist/src/webrtc/bitrate.js +0 -12
- package/dist/src/webrtc/deferred.d.ts +0 -8
- package/dist/src/webrtc/deferred.js +0 -17
- package/dist/src/webrtc/index.d.ts +0 -3
- package/dist/src/webrtc/index.js +0 -1
- package/dist/src/webrtc/internal.d.ts +0 -26
- package/dist/src/webrtc/internal.js +0 -34
- package/dist/src/webrtc/mediaEvent.d.ts +0 -10
- package/dist/src/webrtc/mediaEvent.js +0 -16
- package/dist/src/webrtc/tracks/Local.d.ts +0 -50
- package/dist/src/webrtc/tracks/Local.js +0 -280
- package/dist/src/webrtc/tracks/LocalTrack.d.ts +0 -62
- package/dist/src/webrtc/tracks/LocalTrack.js +0 -225
- package/dist/src/webrtc/tracks/LocalTrackManager.d.ts +0 -38
- package/dist/src/webrtc/tracks/LocalTrackManager.js +0 -77
- package/dist/src/webrtc/tracks/Remote.d.ts +0 -38
- package/dist/src/webrtc/tracks/Remote.js +0 -200
- package/dist/src/webrtc/tracks/RemoteTrack.d.ts +0 -39
- package/dist/src/webrtc/tracks/RemoteTrack.js +0 -64
- package/dist/src/webrtc/tracks/TrackCommon.d.ts +0 -8
- package/dist/src/webrtc/tracks/TrackCommon.js +0 -1
- package/dist/src/webrtc/tracks/bandwidth.d.ts +0 -1
- package/dist/src/webrtc/tracks/bandwidth.js +0 -27
- package/dist/src/webrtc/tracks/encodings.d.ts +0 -1
- package/dist/src/webrtc/tracks/encodings.js +0 -5
- package/dist/src/webrtc/tracks/muteTrackUtils.d.ts +0 -3
- package/dist/src/webrtc/tracks/muteTrackUtils.js +0 -19
- package/dist/src/webrtc/tracks/transceivers.d.ts +0 -2
- package/dist/src/webrtc/tracks/transceivers.js +0 -91
- package/dist/src/webrtc/types.d.ts +0 -314
- package/dist/src/webrtc/types.js +0 -2
- package/dist/src/webrtc/voiceActivityDetection.d.ts +0 -2
- package/dist/src/webrtc/voiceActivityDetection.js +0 -2
- package/dist/src/webrtc/webRTCEndpoint.d.ts +0 -297
- package/dist/src/webrtc/webRTCEndpoint.js +0 -686
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { MLineId, Encoding } from '../types';
|
|
2
|
-
export type TrackId = string;
|
|
3
|
-
export type EndpointId = string;
|
|
4
|
-
export type TrackEncodings = Record<Encoding, boolean>;
|
|
5
|
-
export interface TrackCommon {
|
|
6
|
-
mLineId: MLineId | null;
|
|
7
|
-
encodings: TrackEncodings;
|
|
8
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const splitBandwidth: (rtcRtpEncodingParameters: RTCRtpEncodingParameters[], maxBandwidth: number) => RTCRtpEncodingParameters[];
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export const splitBandwidth = (rtcRtpEncodingParameters, maxBandwidth) => {
|
|
2
|
-
const bandwidth = maxBandwidth * 1024;
|
|
3
|
-
if (bandwidth === 0) {
|
|
4
|
-
return rtcRtpEncodingParameters.map((encoding) => ({
|
|
5
|
-
...encoding,
|
|
6
|
-
maxBitrate: undefined,
|
|
7
|
-
}));
|
|
8
|
-
}
|
|
9
|
-
if (rtcRtpEncodingParameters.length === 0) {
|
|
10
|
-
// This most likely is a race condition. Log an error and prevent catastrophic failure
|
|
11
|
-
console.error("Attempted to limit bandwidth of the track that doesn't have any encodings");
|
|
12
|
-
return rtcRtpEncodingParameters.map((encoding) => ({ ...encoding }));
|
|
13
|
-
}
|
|
14
|
-
if (!rtcRtpEncodingParameters[0])
|
|
15
|
-
throw new Error('RTCRtpEncodingParameters is in invalid state');
|
|
16
|
-
// We are solving the following equation:
|
|
17
|
-
// x + (k0/k1)^2 * x + (k0/k2)^2 * x + ... + (k0/kn)^2 * x = bandwidth
|
|
18
|
-
// where x is the bitrate for the first encoding, kn are scaleResolutionDownBy factors
|
|
19
|
-
// square is dictated by the fact that k0/kn is a scale factor, but we are interested in the total number of pixels in the image
|
|
20
|
-
const firstScaleDownBy = rtcRtpEncodingParameters[0].scaleResolutionDownBy || 1;
|
|
21
|
-
const bitrate_parts = rtcRtpEncodingParameters.reduce((acc, value) => acc + (firstScaleDownBy / (value.scaleResolutionDownBy || 1)) ** 2, 0);
|
|
22
|
-
const x = bandwidth / bitrate_parts;
|
|
23
|
-
return rtcRtpEncodingParameters.map((encoding) => ({
|
|
24
|
-
...encoding,
|
|
25
|
-
maxBitrate: x * (firstScaleDownBy / (encoding.scaleResolutionDownBy || 1)) ** 2,
|
|
26
|
-
}));
|
|
27
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const getEncodingParameters: (parameters: RTCRtpSendParameters, bandwidth: number) => RTCRtpEncodingParameters[];
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { WebRTCEndpoint } from '../webRTCEndpoint';
|
|
2
|
-
export declare function emitMutableEvents<EndpointMetadata, TrackMetadata>(action: 'mute' | 'unmute', webrtc: WebRTCEndpoint<EndpointMetadata, TrackMetadata>, trackId: string): void;
|
|
3
|
-
export declare function getActionType(currentTrack: MediaStreamTrack | null, newTrack: MediaStreamTrack | null): 'mute' | 'unmute' | 'replace';
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { generateMediaEvent } from '../mediaEvent';
|
|
2
|
-
export function emitMutableEvents(action, webrtc, trackId) {
|
|
3
|
-
const mediaEventType = action === 'mute' ? `muteTrack` : `unmuteTrack`;
|
|
4
|
-
const localEventType = action === 'mute' ? `localTrackMuted` : `localTrackUnmuted`;
|
|
5
|
-
const mediaEvent = generateMediaEvent(mediaEventType, { trackId: trackId });
|
|
6
|
-
webrtc.sendMediaEvent(mediaEvent);
|
|
7
|
-
webrtc.emit(localEventType, { trackId: trackId });
|
|
8
|
-
}
|
|
9
|
-
export function getActionType(currentTrack, newTrack) {
|
|
10
|
-
if (currentTrack && !newTrack) {
|
|
11
|
-
return 'mute';
|
|
12
|
-
}
|
|
13
|
-
else if (!currentTrack && newTrack) {
|
|
14
|
-
return 'unmute';
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return 'replace';
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { splitBandwidth } from './bandwidth';
|
|
2
|
-
export const createTransceiverConfig = (trackContext) => {
|
|
3
|
-
if (!trackContext.track)
|
|
4
|
-
throw new Error(`Cannot create transceiver config for `);
|
|
5
|
-
if (trackContext.track.kind === 'audio') {
|
|
6
|
-
return createAudioTransceiverConfig(trackContext.stream);
|
|
7
|
-
}
|
|
8
|
-
return createVideoTransceiverConfig(trackContext, trackContext.maxBandwidth);
|
|
9
|
-
};
|
|
10
|
-
const createAudioTransceiverConfig = (stream) => {
|
|
11
|
-
return {
|
|
12
|
-
direction: 'sendonly',
|
|
13
|
-
streams: stream ? [stream] : [],
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
const createVideoTransceiverConfig = (trackContext, maxBandwidth) => {
|
|
17
|
-
if (!trackContext.simulcastConfig)
|
|
18
|
-
throw new Error(`Simulcast config for track ${trackContext.trackId} not found.`);
|
|
19
|
-
if (trackContext.simulcastConfig.enabled) {
|
|
20
|
-
let simulcastConfig;
|
|
21
|
-
if (maxBandwidth === 0) {
|
|
22
|
-
simulcastConfig = new Map([
|
|
23
|
-
['l', 0],
|
|
24
|
-
['m', 0],
|
|
25
|
-
['h', 0],
|
|
26
|
-
]);
|
|
27
|
-
}
|
|
28
|
-
else if (typeof maxBandwidth === 'number') {
|
|
29
|
-
throw new Error('Invalid bandwidth limit for simulcast track.');
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
simulcastConfig = maxBandwidth;
|
|
33
|
-
}
|
|
34
|
-
return createSimulcastTransceiverConfig(trackContext, simulcastConfig);
|
|
35
|
-
}
|
|
36
|
-
if (typeof maxBandwidth === 'number') {
|
|
37
|
-
return createNonSimulcastTransceiverConfig(trackContext, maxBandwidth);
|
|
38
|
-
}
|
|
39
|
-
throw new Error('LocalTrack is in invalid state!');
|
|
40
|
-
};
|
|
41
|
-
const createNonSimulcastTransceiverConfig = (trackContext, maxBandwidth) => {
|
|
42
|
-
return {
|
|
43
|
-
direction: 'sendonly',
|
|
44
|
-
sendEncodings: splitBandwidth([{ active: true }], maxBandwidth),
|
|
45
|
-
streams: trackContext.stream ? [trackContext.stream] : [],
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
const createSimulcastTransceiverConfig = (trackContext, maxBandwidth) => {
|
|
49
|
-
if (!trackContext.simulcastConfig)
|
|
50
|
-
throw new Error(`Simulcast config for track ${trackContext.trackId} not found.`);
|
|
51
|
-
const activeEncodings = trackContext.simulcastConfig.activeEncodings;
|
|
52
|
-
const encodings = [
|
|
53
|
-
{
|
|
54
|
-
rid: 'l',
|
|
55
|
-
active: activeEncodings.includes('l'),
|
|
56
|
-
// maxBitrate: 4_000_000,
|
|
57
|
-
scaleResolutionDownBy: 4.0,
|
|
58
|
-
// scalabilityMode: "L1T" + TEMPORAL_LAYERS_COUNT,
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
rid: 'm',
|
|
62
|
-
active: activeEncodings.includes('m'),
|
|
63
|
-
scaleResolutionDownBy: 2.0,
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
rid: 'h',
|
|
67
|
-
active: activeEncodings.includes('h'),
|
|
68
|
-
// maxBitrate: 4_000_000,
|
|
69
|
-
// scalabilityMode: "L1T" + TEMPORAL_LAYERS_COUNT,
|
|
70
|
-
},
|
|
71
|
-
];
|
|
72
|
-
return {
|
|
73
|
-
direction: 'sendonly',
|
|
74
|
-
// keep this array from low resolution to high resolution
|
|
75
|
-
// in other case lower resolution encoding can get
|
|
76
|
-
// higher max_bitrate
|
|
77
|
-
sendEncodings: calculateSimulcastEncodings(encodings, maxBandwidth),
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
|
-
const calculateSimulcastEncodings = (encodings, maxBandwidth) => {
|
|
81
|
-
return encodings
|
|
82
|
-
.filter((encoding) => encoding.rid)
|
|
83
|
-
.map((encoding) => {
|
|
84
|
-
const rid = encoding.rid;
|
|
85
|
-
const limit = maxBandwidth.get(rid) || 0;
|
|
86
|
-
return {
|
|
87
|
-
...encoding,
|
|
88
|
-
maxBitrate: limit > 0 ? limit * 1024 : undefined,
|
|
89
|
-
};
|
|
90
|
-
});
|
|
91
|
-
};
|
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import type TypedEmitter from 'typed-emitter';
|
|
2
|
-
import type { SerializedMediaEvent } from './mediaEvent';
|
|
3
|
-
export type MetadataParser<ParsedMetadata> = (rawMetadata: unknown) => ParsedMetadata;
|
|
4
|
-
export type LocalTrackId = string;
|
|
5
|
-
export type MLineId = string;
|
|
6
|
-
export type MediaStreamTrackId = string;
|
|
7
|
-
export type RemoteTrackId = string;
|
|
8
|
-
export type TrackKind = 'audio' | 'video';
|
|
9
|
-
/**
|
|
10
|
-
* Type describing Voice Activity Detection statuses.
|
|
11
|
-
*
|
|
12
|
-
* - `speech` - voice activity has been detected
|
|
13
|
-
* - `silence` - lack of voice activity has been detected
|
|
14
|
-
*/
|
|
15
|
-
export type VadStatus = 'speech' | 'silence';
|
|
16
|
-
/**
|
|
17
|
-
* Type describing maximal bandwidth that can be used, in kbps. 0 is interpreted as unlimited bandwidth.
|
|
18
|
-
*/
|
|
19
|
-
export type BandwidthLimit = number;
|
|
20
|
-
/**
|
|
21
|
-
* Type describing bandwidth limit for simulcast track.
|
|
22
|
-
* It is a mapping (encoding => BandwidthLimit).
|
|
23
|
-
* If encoding isn't present in this mapping, it will be assumed that this particular encoding shouldn't have any bandwidth limit
|
|
24
|
-
*/
|
|
25
|
-
export type SimulcastBandwidthLimit = Map<Encoding, BandwidthLimit>;
|
|
26
|
-
/**
|
|
27
|
-
* Type describing bandwidth limitation of a Track, including simulcast and non-simulcast tracks.
|
|
28
|
-
* A sum type of `BandwidthLimit` and `SimulcastBandwidthLimit`
|
|
29
|
-
*/
|
|
30
|
-
export type TrackBandwidthLimit = BandwidthLimit | SimulcastBandwidthLimit;
|
|
31
|
-
/**
|
|
32
|
-
* Type describing possible reasons for currently selected encoding.
|
|
33
|
-
* - `other` - the exact reason couldn't be determined
|
|
34
|
-
* - `encodingInactive` - previously selected encoding became inactive
|
|
35
|
-
* - `lowBandwidth` - there is no longer enough bandwidth to maintain previously selected encoding
|
|
36
|
-
*/
|
|
37
|
-
export type EncodingReason = 'other' | 'encodingInactive' | 'lowBandwidth';
|
|
38
|
-
/**
|
|
39
|
-
* Simulcast configuration passed to {@link WebRTCEndpoint.addTrack}.
|
|
40
|
-
*
|
|
41
|
-
* At the moment, simulcast track is initialized in three versions - low, medium and high.
|
|
42
|
-
* High resolution is the original track resolution, while medium and low resolutions
|
|
43
|
-
* are the original track resolution scaled down by 2 and 4 respectively.
|
|
44
|
-
*/
|
|
45
|
-
export interface SimulcastConfig {
|
|
46
|
-
/**
|
|
47
|
-
* Whether to simulcast track or not.
|
|
48
|
-
*/
|
|
49
|
-
enabled: boolean;
|
|
50
|
-
/**
|
|
51
|
-
* List of initially active encodings.
|
|
52
|
-
*
|
|
53
|
-
* Encoding that is not present in this list might still be
|
|
54
|
-
* enabled using {@link WebRTCEndpoint.enableTrackEncoding}.
|
|
55
|
-
*/
|
|
56
|
-
activeEncodings: Encoding[];
|
|
57
|
-
/**
|
|
58
|
-
* List of disabled encodings.
|
|
59
|
-
*
|
|
60
|
-
* Encoding that is present in this list was
|
|
61
|
-
* disabled using {@link WebRTCEndpoint.disableTrackEncoding}.
|
|
62
|
-
*/
|
|
63
|
-
disabledEncodings: Encoding[];
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Track's context i.e. all data that can be useful when operating on track.
|
|
67
|
-
*/
|
|
68
|
-
interface TrackContextFields<EndpointMetadata, TrackMetadata> {
|
|
69
|
-
readonly track: MediaStreamTrack | null;
|
|
70
|
-
/**
|
|
71
|
-
* Stream this track belongs to.
|
|
72
|
-
*/
|
|
73
|
-
readonly stream: MediaStream | null;
|
|
74
|
-
/**
|
|
75
|
-
* Endpoint this track comes from.
|
|
76
|
-
*/
|
|
77
|
-
readonly endpoint: Endpoint<EndpointMetadata, TrackMetadata>;
|
|
78
|
-
/**
|
|
79
|
-
* Track id. It is generated by RTC engine and takes form `endpoint_id:<random_uuidv4>`.
|
|
80
|
-
* It is WebRTC agnostic i.e. it does not contain `mid` or `stream id`.
|
|
81
|
-
*/
|
|
82
|
-
readonly trackId: string;
|
|
83
|
-
/**
|
|
84
|
-
* Simulcast configuration.
|
|
85
|
-
* Only present for local tracks.
|
|
86
|
-
*/
|
|
87
|
-
readonly simulcastConfig?: SimulcastConfig;
|
|
88
|
-
/**
|
|
89
|
-
* Any info that was passed in {@link WebRTCEndpoint.addTrack}.
|
|
90
|
-
*/
|
|
91
|
-
readonly metadata?: TrackMetadata;
|
|
92
|
-
readonly rawMetadata: any;
|
|
93
|
-
readonly metadataParsingError?: any;
|
|
94
|
-
readonly maxBandwidth?: TrackBandwidthLimit;
|
|
95
|
-
readonly vadStatus: VadStatus;
|
|
96
|
-
/**
|
|
97
|
-
* Encoding that is currently received.
|
|
98
|
-
* Only present for remote tracks.
|
|
99
|
-
*/
|
|
100
|
-
readonly encoding?: Encoding;
|
|
101
|
-
/**
|
|
102
|
-
* The reason of currently selected encoding.
|
|
103
|
-
* Only present for remote tracks.
|
|
104
|
-
*/
|
|
105
|
-
readonly encodingReason?: EncodingReason;
|
|
106
|
-
}
|
|
107
|
-
export interface TrackContextEvents<EndpointMetadata, TrackMetadata> {
|
|
108
|
-
/**
|
|
109
|
-
* Emitted each time track encoding has changed.
|
|
110
|
-
*
|
|
111
|
-
* Track encoding can change in the following cases:
|
|
112
|
-
* - when user requested a change
|
|
113
|
-
* - when sender stopped sending some encoding (because of bandwidth change)
|
|
114
|
-
* - when receiver doesn't have enough bandwidth
|
|
115
|
-
*
|
|
116
|
-
* Some of those reasons are indicated in {@link TrackContext.encodingReason}.
|
|
117
|
-
*/
|
|
118
|
-
encodingChanged: (context: TrackContext<EndpointMetadata, TrackMetadata>) => void;
|
|
119
|
-
/**
|
|
120
|
-
* Emitted every time an update about voice activity is received from the server.
|
|
121
|
-
*/
|
|
122
|
-
voiceActivityChanged: (context: TrackContext<EndpointMetadata, TrackMetadata>) => void;
|
|
123
|
-
}
|
|
124
|
-
export interface TrackContext<EndpointMetadata, TrackMetadata> extends TrackContextFields<EndpointMetadata, TrackMetadata>, TypedEmitter<Required<TrackContextEvents<EndpointMetadata, TrackMetadata>>> {
|
|
125
|
-
}
|
|
126
|
-
export type TrackNegotiationStatus = 'awaiting' | 'offered' | 'done';
|
|
127
|
-
/**
|
|
128
|
-
* Type describing possible track encodings.
|
|
129
|
-
* - `"h"` - original encoding
|
|
130
|
-
* - `"m"` - original encoding scaled down by 2
|
|
131
|
-
* - `"l"` - original encoding scaled down by 4
|
|
132
|
-
*
|
|
133
|
-
* Notice that to make all encodings work, the initial
|
|
134
|
-
* resolution has to be at least 1280x720.
|
|
135
|
-
* In other case, browser might not be able to scale
|
|
136
|
-
* some encodings down.
|
|
137
|
-
*/
|
|
138
|
-
export type Encoding = 'l' | 'm' | 'h';
|
|
139
|
-
export declare const isEncoding: (encoding: string) => encoding is Encoding;
|
|
140
|
-
/**
|
|
141
|
-
* Events emitted by the {@link WebRTCEndpoint} instance.
|
|
142
|
-
*/
|
|
143
|
-
export interface WebRTCEndpointEvents<EndpointMetadata, TrackMetadata> {
|
|
144
|
-
/**
|
|
145
|
-
* Emitted each time WebRTCEndpoint need to send some data to the server.
|
|
146
|
-
*/
|
|
147
|
-
sendMediaEvent: (mediaEvent: SerializedMediaEvent) => void;
|
|
148
|
-
/**
|
|
149
|
-
* Emitted when endpoint of this {@link WebRTCEndpoint} instance is ready. Triggered by {@link WebRTCEndpoint.connect}
|
|
150
|
-
*/
|
|
151
|
-
connected: (endpointId: string, otherEndpoints: Endpoint<EndpointMetadata, TrackMetadata>[]) => void;
|
|
152
|
-
/**
|
|
153
|
-
* Emitted when endpoint of this {@link WebRTCEndpoint} instance was removed.
|
|
154
|
-
*/
|
|
155
|
-
disconnected: () => void;
|
|
156
|
-
/**
|
|
157
|
-
* Emitted when data in a new track arrives.
|
|
158
|
-
*
|
|
159
|
-
* This event is always emitted after {@link trackAdded}.
|
|
160
|
-
* It informs the user that data related to the given track arrives and can be played or displayed.
|
|
161
|
-
*/
|
|
162
|
-
trackReady: (ctx: TrackContext<EndpointMetadata, TrackMetadata>) => void;
|
|
163
|
-
/**
|
|
164
|
-
* Emitted each time the endpoint which was already in the room, adds new track. Fields track and stream will be set to null.
|
|
165
|
-
* These fields will be set to non-null value in {@link trackReady}
|
|
166
|
-
*/
|
|
167
|
-
trackAdded: (ctx: TrackContext<EndpointMetadata, TrackMetadata>) => void;
|
|
168
|
-
/**
|
|
169
|
-
* Emitted when some track will no longer be sent.
|
|
170
|
-
*
|
|
171
|
-
* It will also be emitted before {@link endpointRemoved} for each track of this endpoint.
|
|
172
|
-
*/
|
|
173
|
-
trackRemoved: (ctx: TrackContext<EndpointMetadata, TrackMetadata>) => void;
|
|
174
|
-
/**
|
|
175
|
-
* Emitted each time endpoint has its track metadata updated.
|
|
176
|
-
*/
|
|
177
|
-
trackUpdated: (ctx: TrackContext<EndpointMetadata, TrackMetadata>) => void;
|
|
178
|
-
/**
|
|
179
|
-
* Emitted each time new endpoint is added to the room.
|
|
180
|
-
*/
|
|
181
|
-
endpointAdded: (endpoint: Endpoint<EndpointMetadata, TrackMetadata>) => void;
|
|
182
|
-
/**
|
|
183
|
-
* Emitted each time endpoint is removed, emitted only for other endpoints.
|
|
184
|
-
*/
|
|
185
|
-
endpointRemoved: (endpoint: Endpoint<EndpointMetadata, TrackMetadata>) => void;
|
|
186
|
-
/**
|
|
187
|
-
* Emitted each time endpoint has its metadata updated.
|
|
188
|
-
*/
|
|
189
|
-
endpointUpdated: (endpoint: Endpoint<EndpointMetadata, TrackMetadata>) => void;
|
|
190
|
-
/**
|
|
191
|
-
* Emitted in case of errors related to multimedia session e.g. ICE connection.
|
|
192
|
-
*/
|
|
193
|
-
connectionError: (error: {
|
|
194
|
-
message: string;
|
|
195
|
-
event: Event;
|
|
196
|
-
}) => void;
|
|
197
|
-
/**
|
|
198
|
-
* Emitted in case of errors related to multimedia session e.g. ICE connection.
|
|
199
|
-
*/
|
|
200
|
-
signalingError: (error: {
|
|
201
|
-
message: string;
|
|
202
|
-
}) => void;
|
|
203
|
-
/**
|
|
204
|
-
* Currently, this event is only emitted when DisplayManager in RTC Engine is
|
|
205
|
-
* enabled and simulcast is disabled.
|
|
206
|
-
*
|
|
207
|
-
* Emitted when priority of video tracks have changed.
|
|
208
|
-
* @param enabledTracks - list of tracks which will be sent to client from SFU
|
|
209
|
-
* @param disabledTracks - list of tracks which will not be sent to client from SFU
|
|
210
|
-
*/
|
|
211
|
-
tracksPriorityChanged: (enabledTracks: TrackContext<EndpointMetadata, TrackMetadata>[], disabledTracks: TrackContext<EndpointMetadata, TrackMetadata>[]) => void;
|
|
212
|
-
/**
|
|
213
|
-
* Emitted every time the server estimates client's bandwidth.
|
|
214
|
-
*
|
|
215
|
-
* @param {bigint} estimation - client's available incoming bitrate estimated
|
|
216
|
-
* by the server. It's measured in bits per second.
|
|
217
|
-
*/
|
|
218
|
-
bandwidthEstimationChanged: (estimation: bigint) => void;
|
|
219
|
-
/**
|
|
220
|
-
* Emitted each time track encoding has been disabled.
|
|
221
|
-
*/
|
|
222
|
-
trackEncodingDisabled: (context: TrackContext<EndpointMetadata, TrackMetadata>, encoding: string) => void;
|
|
223
|
-
/**
|
|
224
|
-
* Emitted each time track encoding has been enabled.
|
|
225
|
-
*/
|
|
226
|
-
trackEncodingEnabled: (context: TrackContext<EndpointMetadata, TrackMetadata>, encoding: string) => void;
|
|
227
|
-
targetTrackEncodingRequested: (event: {
|
|
228
|
-
trackId: string;
|
|
229
|
-
variant: Encoding;
|
|
230
|
-
}) => void;
|
|
231
|
-
disconnectRequested: (event: any) => void;
|
|
232
|
-
localTrackAdded: (event: {
|
|
233
|
-
trackId: string;
|
|
234
|
-
track: MediaStreamTrack;
|
|
235
|
-
stream: MediaStream;
|
|
236
|
-
trackMetadata?: TrackMetadata;
|
|
237
|
-
simulcastConfig: SimulcastConfig;
|
|
238
|
-
maxBandwidth: TrackBandwidthLimit;
|
|
239
|
-
}) => void;
|
|
240
|
-
localTrackRemoved: (event: {
|
|
241
|
-
trackId: string;
|
|
242
|
-
}) => void;
|
|
243
|
-
localTrackReplaced: (event: {
|
|
244
|
-
trackId: string;
|
|
245
|
-
track: MediaStreamTrack | null;
|
|
246
|
-
}) => void;
|
|
247
|
-
localTrackMuted: (event: {
|
|
248
|
-
trackId: string;
|
|
249
|
-
}) => void;
|
|
250
|
-
localTrackUnmuted: (event: {
|
|
251
|
-
trackId: string;
|
|
252
|
-
}) => void;
|
|
253
|
-
localTrackBandwidthSet: (event: {
|
|
254
|
-
trackId: string;
|
|
255
|
-
bandwidth: BandwidthLimit;
|
|
256
|
-
}) => void;
|
|
257
|
-
localTrackEncodingBandwidthSet: (event: {
|
|
258
|
-
trackId: string;
|
|
259
|
-
rid: string;
|
|
260
|
-
bandwidth: BandwidthLimit;
|
|
261
|
-
}) => void;
|
|
262
|
-
localTrackEncodingEnabled: (event: {
|
|
263
|
-
trackId: string;
|
|
264
|
-
encoding: Encoding;
|
|
265
|
-
}) => void;
|
|
266
|
-
localTrackEncodingDisabled: (event: {
|
|
267
|
-
trackId: string;
|
|
268
|
-
encoding: Encoding;
|
|
269
|
-
}) => void;
|
|
270
|
-
localEndpointMetadataChanged: (event: {
|
|
271
|
-
metadata: {
|
|
272
|
-
peer?: EndpointMetadata;
|
|
273
|
-
server?: unknown;
|
|
274
|
-
};
|
|
275
|
-
}) => void;
|
|
276
|
-
localTrackMetadataChanged: (event: {
|
|
277
|
-
trackId: string;
|
|
278
|
-
metadata: TrackMetadata;
|
|
279
|
-
}) => void;
|
|
280
|
-
}
|
|
281
|
-
export type Config<EndpointMetadata, TrackMetadata> = {
|
|
282
|
-
endpointMetadataParser?: MetadataParser<EndpointMetadata>;
|
|
283
|
-
trackMetadataParser?: MetadataParser<TrackMetadata>;
|
|
284
|
-
};
|
|
285
|
-
/**
|
|
286
|
-
* Interface describing Endpoint.
|
|
287
|
-
*/
|
|
288
|
-
export interface Endpoint<EndpointMetadata, TrackMetadata> {
|
|
289
|
-
/**
|
|
290
|
-
* Endpoint's id. It is assigned by user in custom logic that use backend API.
|
|
291
|
-
*/
|
|
292
|
-
id: string;
|
|
293
|
-
/**
|
|
294
|
-
* Type of the endpoint, e.g. "webrtc", "hls" or "rtsp".
|
|
295
|
-
*/
|
|
296
|
-
type: string;
|
|
297
|
-
/**
|
|
298
|
-
* Any information that was provided in {@link WebRTCEndpoint.connect}.
|
|
299
|
-
*/
|
|
300
|
-
metadata: {
|
|
301
|
-
peer?: EndpointMetadata;
|
|
302
|
-
server: any;
|
|
303
|
-
};
|
|
304
|
-
rawMetadata: {
|
|
305
|
-
peer?: any;
|
|
306
|
-
server: any;
|
|
307
|
-
};
|
|
308
|
-
metadataParsingError?: any;
|
|
309
|
-
/**
|
|
310
|
-
* List of tracks that are sent by the endpoint.
|
|
311
|
-
*/
|
|
312
|
-
tracks: Map<string, TrackContext<EndpointMetadata, TrackMetadata>>;
|
|
313
|
-
}
|
|
314
|
-
export {};
|
package/dist/src/webrtc/types.js
DELETED