livekit-client 0.16.4 → 0.17.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/api/RequestQueue.js +6 -6
- package/dist/api/RequestQueue.js.map +1 -1
- package/dist/api/SignalClient.d.ts +3 -0
- package/dist/api/SignalClient.js +23 -3
- package/dist/api/SignalClient.js.map +1 -1
- package/dist/connect.js +1 -1
- package/dist/connect.js.map +1 -1
- package/dist/options.d.ts +7 -2
- package/dist/proto/livekit_models.d.ts +33 -0
- package/dist/proto/livekit_models.js +213 -3
- package/dist/proto/livekit_models.js.map +1 -1
- package/dist/proto/livekit_rtc.d.ts +15 -1
- package/dist/proto/livekit_rtc.js +128 -2
- package/dist/proto/livekit_rtc.js.map +1 -1
- package/dist/room/RTCEngine.d.ts +3 -2
- package/dist/room/RTCEngine.js +12 -8
- package/dist/room/RTCEngine.js.map +1 -1
- package/dist/room/Room.js +19 -8
- package/dist/room/Room.js.map +1 -1
- package/dist/room/events.d.ts +6 -1
- package/dist/room/events.js +6 -1
- package/dist/room/events.js.map +1 -1
- package/dist/room/participant/LocalParticipant.d.ts +3 -1
- package/dist/room/participant/LocalParticipant.js +17 -1
- package/dist/room/participant/LocalParticipant.js.map +1 -1
- package/dist/room/participant/RemoteParticipant.d.ts +2 -1
- package/dist/room/participant/RemoteParticipant.js +3 -3
- package/dist/room/participant/RemoteParticipant.js.map +1 -1
- package/dist/room/participant/publishUtils.d.ts +6 -0
- package/dist/room/participant/publishUtils.js +65 -24
- package/dist/room/participant/publishUtils.js.map +1 -1
- package/dist/room/participant/publishUtils.test.js +35 -5
- package/dist/room/participant/publishUtils.test.js.map +1 -1
- package/dist/room/track/LocalAudioTrack.d.ts +2 -0
- package/dist/room/track/LocalAudioTrack.js +23 -0
- package/dist/room/track/LocalAudioTrack.js.map +1 -1
- package/dist/room/track/LocalTrack.d.ts +4 -0
- package/dist/room/track/LocalTrack.js +34 -0
- package/dist/room/track/LocalTrack.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.d.ts +1 -0
- package/dist/room/track/LocalVideoTrack.js +13 -0
- package/dist/room/track/LocalVideoTrack.js.map +1 -1
- package/dist/room/track/RemoteTrack.d.ts +1 -0
- package/dist/room/track/RemoteTrack.js +1 -0
- package/dist/room/track/RemoteTrack.js.map +1 -1
- package/dist/room/track/RemoteVideoTrack.d.ts +4 -2
- package/dist/room/track/RemoteVideoTrack.js +25 -11
- package/dist/room/track/RemoteVideoTrack.js.map +1 -1
- package/dist/room/track/Track.d.ts +4 -1
- package/dist/room/track/Track.js +20 -1
- package/dist/room/track/Track.js.map +1 -1
- package/dist/room/track/defaults.js +2 -2
- package/dist/room/track/defaults.js.map +1 -1
- package/dist/room/track/options.d.ts +65 -15
- package/dist/room/track/options.js +38 -0
- package/dist/room/track/options.js.map +1 -1
- package/dist/room/track/types.d.ts +11 -0
- package/dist/room/track/utils.d.ts +10 -0
- package/dist/room/track/utils.js +46 -1
- package/dist/room/track/utils.js.map +1 -1
- package/dist/room/utils.d.ts +1 -0
- package/dist/room/utils.js +5 -1
- package/dist/room/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/api/RequestQueue.ts +7 -7
- package/src/api/SignalClient.ts +31 -4
- package/src/connect.ts +1 -1
- package/src/options.ts +12 -3
- package/src/proto/livekit_models.ts +249 -0
- package/src/proto/livekit_rtc.ts +155 -0
- package/src/room/RTCEngine.ts +16 -9
- package/src/room/Room.ts +17 -7
- package/src/room/events.ts +6 -1
- package/src/room/participant/LocalParticipant.ts +23 -4
- package/src/room/participant/RemoteParticipant.ts +4 -4
- package/src/room/participant/publishUtils.test.ts +46 -6
- package/src/room/participant/publishUtils.ts +72 -27
- package/src/room/track/LocalAudioTrack.ts +19 -1
- package/src/room/track/LocalTrack.ts +36 -0
- package/src/room/track/LocalVideoTrack.ts +9 -1
- package/src/room/track/RemoteTrack.ts +2 -0
- package/src/room/track/RemoteVideoTrack.ts +20 -9
- package/src/room/track/Track.ts +14 -2
- package/src/room/track/defaults.ts +2 -2
- package/src/room/track/options.ts +55 -3
- package/src/room/track/types.ts +12 -0
- package/src/room/track/utils.ts +39 -0
- package/src/room/utils.ts +4 -0
- package/src/version.ts +1 -1
@@ -20,7 +20,7 @@ const RemoteTrack_1 = __importDefault(require("./RemoteTrack"));
|
|
20
20
|
const Track_1 = require("./Track");
|
21
21
|
const REACTION_DELAY = 100;
|
22
22
|
class RemoteVideoTrack extends RemoteTrack_1.default {
|
23
|
-
constructor(mediaTrack, sid, receiver,
|
23
|
+
constructor(mediaTrack, sid, receiver, adaptiveStreamSettings) {
|
24
24
|
super(mediaTrack, sid, Track_1.Track.Kind.Video, receiver);
|
25
25
|
this.elementInfos = [];
|
26
26
|
this.monitorReceiver = () => __awaiter(this, void 0, void 0, function* () {
|
@@ -49,11 +49,10 @@ class RemoteVideoTrack extends RemoteTrack_1.default {
|
|
49
49
|
this.debouncedHandleResize = ts_debounce_1.debounce(() => {
|
50
50
|
this.updateDimensions();
|
51
51
|
}, REACTION_DELAY);
|
52
|
-
this.
|
52
|
+
this.adaptiveStreamSettings = adaptiveStreamSettings;
|
53
53
|
}
|
54
54
|
get isAdaptiveStream() {
|
55
|
-
|
56
|
-
return (_a = this.adaptiveStream) !== null && _a !== void 0 ? _a : false;
|
55
|
+
return this.adaptiveStreamSettings !== undefined;
|
57
56
|
}
|
58
57
|
/** @internal */
|
59
58
|
setMuted(muted) {
|
@@ -77,7 +76,7 @@ class RemoteVideoTrack extends RemoteTrack_1.default {
|
|
77
76
|
}
|
78
77
|
// It's possible attach is called multiple times on an element. When that's
|
79
78
|
// the case, we'd want to avoid adding duplicate elementInfos
|
80
|
-
if (this.
|
79
|
+
if (this.adaptiveStreamSettings
|
81
80
|
&& this.elementInfos.find((info) => info.element === element) === undefined) {
|
82
81
|
this.elementInfos.push({
|
83
82
|
element,
|
@@ -144,9 +143,20 @@ class RemoteVideoTrack extends RemoteTrack_1.default {
|
|
144
143
|
(_b = utils_1.getResizeObserver()) === null || _b === void 0 ? void 0 : _b.unobserve(element);
|
145
144
|
this.elementInfos = this.elementInfos.filter((info) => info.element !== element);
|
146
145
|
}
|
146
|
+
handleAppVisibilityChanged() {
|
147
|
+
const _super = Object.create(null, {
|
148
|
+
handleAppVisibilityChanged: { get: () => super.handleAppVisibilityChanged }
|
149
|
+
});
|
150
|
+
return __awaiter(this, void 0, void 0, function* () {
|
151
|
+
if (!this.isAdaptiveStream)
|
152
|
+
return;
|
153
|
+
yield _super.handleAppVisibilityChanged.call(this);
|
154
|
+
this.updateVisibility();
|
155
|
+
});
|
156
|
+
}
|
147
157
|
updateVisibility() {
|
148
158
|
const lastVisibilityChange = this.elementInfos.reduce((prev, info) => Math.max(prev, info.visibilityChangedAt || 0), 0);
|
149
|
-
const isVisible = this.elementInfos.some((info) => info.visible);
|
159
|
+
const isVisible = this.elementInfos.some((info) => info.visible) && !this.isInBackground;
|
150
160
|
if (this.lastVisible === isVisible) {
|
151
161
|
return;
|
152
162
|
}
|
@@ -161,16 +171,20 @@ class RemoteVideoTrack extends RemoteTrack_1.default {
|
|
161
171
|
this.emit(events_1.TrackEvent.VisibilityChanged, isVisible, this);
|
162
172
|
}
|
163
173
|
updateDimensions() {
|
164
|
-
var _a, _b;
|
174
|
+
var _a, _b, _c, _d;
|
165
175
|
let maxWidth = 0;
|
166
176
|
let maxHeight = 0;
|
167
177
|
for (const info of this.elementInfos) {
|
168
|
-
|
169
|
-
|
170
|
-
|
178
|
+
const pixelDensity = (_b = (_a = this.adaptiveStreamSettings) === null || _a === void 0 ? void 0 : _a.pixelDensity) !== null && _b !== void 0 ? _b : 1;
|
179
|
+
const pixelDensityValue = pixelDensity === 'screen' ? window.devicePixelRatio : pixelDensity;
|
180
|
+
const currentElementWidth = info.element.clientWidth * pixelDensityValue;
|
181
|
+
const currentElementHeight = info.element.clientHeight * pixelDensityValue;
|
182
|
+
if (currentElementWidth + currentElementHeight > maxWidth + maxHeight) {
|
183
|
+
maxWidth = currentElementWidth;
|
184
|
+
maxHeight = currentElementHeight;
|
171
185
|
}
|
172
186
|
}
|
173
|
-
if (((
|
187
|
+
if (((_c = this.lastDimensions) === null || _c === void 0 ? void 0 : _c.width) === maxWidth && ((_d = this.lastDimensions) === null || _d === void 0 ? void 0 : _d.height) === maxHeight) {
|
174
188
|
return;
|
175
189
|
}
|
176
190
|
this.lastDimensions = {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RemoteVideoTrack.js","sourceRoot":"","sources":["../../../src/room/track/RemoteVideoTrack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6CAAuC;AACvC,sCAAuC;AACvC,oCAAgF;AAChF,oCAA8F;AAC9F,gEAAwC;AACxC,mCAA8D;
|
1
|
+
{"version":3,"file":"RemoteVideoTrack.js","sourceRoot":"","sources":["../../../src/room/track/RemoteVideoTrack.ts"],"names":[],"mappings":"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"}
|
@@ -7,8 +7,8 @@ export declare class Track extends Track_base {
|
|
7
7
|
mediaStreamTrack: MediaStreamTrack;
|
8
8
|
attachedElements: HTMLMediaElement[];
|
9
9
|
isMuted: boolean;
|
10
|
-
streamState: Track.StreamState;
|
11
10
|
source: Track.Source;
|
11
|
+
protected isInBackground: boolean;
|
12
12
|
/**
|
13
13
|
* sid is set after track is published to server, or if it's a remote track
|
14
14
|
*/
|
@@ -38,6 +38,8 @@ export declare class Track extends Track_base {
|
|
38
38
|
protected enable(): void;
|
39
39
|
protected disable(): void;
|
40
40
|
private recycleElement;
|
41
|
+
appVisibilityChangedListener: () => void;
|
42
|
+
protected handleAppVisibilityChanged(): Promise<void>;
|
41
43
|
}
|
42
44
|
/** @internal */
|
43
45
|
export declare function attachToElement(track: MediaStreamTrack, element: HTMLMediaElement): void;
|
@@ -86,6 +88,7 @@ export declare type TrackEventCallbacks = {
|
|
86
88
|
updateSubscription: () => void;
|
87
89
|
audioPlaybackStarted: () => void;
|
88
90
|
audioPlaybackFailed: (error: Error) => void;
|
91
|
+
audioSilenceDetected: () => void;
|
89
92
|
visibilityChanged: (visible: boolean, track?: any) => void;
|
90
93
|
videoDimensionsChanged: (dimensions: Track.Dimensions, track?: any) => void;
|
91
94
|
};
|
package/dist/room/track/Track.js
CHANGED
@@ -1,4 +1,13 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
12
|
exports.detachTrack = exports.attachToElement = exports.Track = void 0;
|
4
13
|
const events_1 = require("events");
|
@@ -14,11 +23,15 @@ class Track extends events_1.EventEmitter {
|
|
14
23
|
super();
|
15
24
|
this.attachedElements = [];
|
16
25
|
this.isMuted = false;
|
17
|
-
this.streamState = Track.StreamState.Active;
|
18
26
|
this._currentBitrate = 0;
|
27
|
+
this.appVisibilityChangedListener = () => {
|
28
|
+
this.handleAppVisibilityChanged();
|
29
|
+
};
|
19
30
|
this.kind = kind;
|
20
31
|
this.mediaStreamTrack = mediaTrack;
|
21
32
|
this.source = Track.Source.Unknown;
|
33
|
+
this.isInBackground = document.visibilityState === 'hidden';
|
34
|
+
document.addEventListener('visibilitychange', this.appVisibilityChangedListener);
|
22
35
|
}
|
23
36
|
/** current receive bits per second */
|
24
37
|
get currentBitrate() {
|
@@ -87,6 +100,7 @@ class Track extends events_1.EventEmitter {
|
|
87
100
|
}
|
88
101
|
stop() {
|
89
102
|
this.mediaStreamTrack.stop();
|
103
|
+
document.removeEventListener('visibilitychange', this.appVisibilityChangedListener);
|
90
104
|
}
|
91
105
|
enable() {
|
92
106
|
this.mediaStreamTrack.enabled = true;
|
@@ -109,6 +123,11 @@ class Track extends events_1.EventEmitter {
|
|
109
123
|
}
|
110
124
|
}
|
111
125
|
}
|
126
|
+
handleAppVisibilityChanged() {
|
127
|
+
return __awaiter(this, void 0, void 0, function* () {
|
128
|
+
this.isInBackground = document.visibilityState === 'hidden';
|
129
|
+
});
|
130
|
+
}
|
112
131
|
}
|
113
132
|
exports.Track = Track;
|
114
133
|
/** @internal */
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Track.js","sourceRoot":"","sources":["../../../src/room/track/Track.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"Track.js","sourceRoot":"","sources":["../../../src/room/track/Track.ts"],"names":[],"mappings":"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"}
|
@@ -6,7 +6,7 @@ exports.publishDefaults = {
|
|
6
6
|
audioBitrate: options_1.AudioPresets.speech.maxBitrate,
|
7
7
|
dtx: true,
|
8
8
|
simulcast: true,
|
9
|
-
screenShareEncoding: options_1.ScreenSharePresets.
|
9
|
+
screenShareEncoding: options_1.ScreenSharePresets.h720fps15.encoding,
|
10
10
|
stopMicTrackOnMute: false,
|
11
11
|
};
|
12
12
|
exports.audioDefaults = {
|
@@ -16,6 +16,6 @@ exports.audioDefaults = {
|
|
16
16
|
noiseSuppression: true,
|
17
17
|
};
|
18
18
|
exports.videoDefaults = {
|
19
|
-
resolution: options_1.VideoPresets.
|
19
|
+
resolution: options_1.VideoPresets.h540.resolution,
|
20
20
|
};
|
21
21
|
//# sourceMappingURL=defaults.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/room/track/defaults.ts"],"names":[],"mappings":";;;AAAA,uCAGmB;AAEN,QAAA,eAAe,GAAyB;IACnD,YAAY,EAAE,sBAAY,CAAC,MAAM,CAAC,UAAU;IAC5C,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,4BAAkB,CAAC,
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/room/track/defaults.ts"],"names":[],"mappings":";;;AAAA,uCAGmB;AAEN,QAAA,eAAe,GAAyB;IACnD,YAAY,EAAE,sBAAY,CAAC,MAAM,CAAC,UAAU;IAC5C,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,4BAAkB,CAAC,SAAS,CAAC,QAAQ;IAC1D,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAEW,QAAA,aAAa,GAAwB;IAChD,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEW,QAAA,aAAa,GAAwB;IAChD,UAAU,EAAE,sBAAY,CAAC,IAAI,CAAC,UAAU;CACzC,CAAC"}
|
@@ -26,6 +26,18 @@ export interface TrackPublishDefaults {
|
|
26
26
|
* at various resolutions.
|
27
27
|
*/
|
28
28
|
simulcast?: boolean;
|
29
|
+
/**
|
30
|
+
* custom video simulcast layers for camera tracks, defaults to h180, h360, h540
|
31
|
+
* You can specify up to two custom layers that will be used instead of
|
32
|
+
* the LiveKit default layers.
|
33
|
+
* Note: the layers need to be ordered from lowest to highest quality
|
34
|
+
*/
|
35
|
+
videoSimulcastLayers?: Array<VideoPreset>;
|
36
|
+
/**
|
37
|
+
* custom video simulcast layers for screen tracks
|
38
|
+
* Note: the layers need to be ordered from lowest to highest quality
|
39
|
+
*/
|
40
|
+
screenShareSimulcastLayers?: Array<VideoPreset>;
|
29
41
|
/**
|
30
42
|
* For local tracks, stop the underlying MediaStreamTrack when the track is muted (or paused)
|
31
43
|
* on some platforms, this option is necessary to disable the microphone recording indicator.
|
@@ -147,26 +159,64 @@ export declare namespace AudioPresets {
|
|
147
159
|
* Sane presets for video resolution/encoding
|
148
160
|
*/
|
149
161
|
export declare const VideoPresets: {
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
162
|
+
readonly h90: VideoPreset;
|
163
|
+
readonly h180: VideoPreset;
|
164
|
+
readonly h216: VideoPreset;
|
165
|
+
readonly h360: VideoPreset;
|
166
|
+
readonly h540: VideoPreset;
|
167
|
+
readonly h720: VideoPreset;
|
168
|
+
readonly h1080: VideoPreset;
|
169
|
+
readonly h1440: VideoPreset;
|
170
|
+
readonly h2160: VideoPreset;
|
171
|
+
/** @deprecated */
|
172
|
+
readonly qvga: VideoPreset;
|
173
|
+
/** @deprecated */
|
174
|
+
readonly vga: VideoPreset;
|
175
|
+
/** @deprecated */
|
176
|
+
readonly qhd: VideoPreset;
|
177
|
+
/** @deprecated */
|
178
|
+
readonly hd: VideoPreset;
|
179
|
+
/** @deprecated */
|
180
|
+
readonly fhd: VideoPreset;
|
155
181
|
};
|
156
182
|
/**
|
157
183
|
* Four by three presets
|
158
184
|
*/
|
159
185
|
export declare const VideoPresets43: {
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
186
|
+
readonly h120: VideoPreset;
|
187
|
+
readonly h180: VideoPreset;
|
188
|
+
readonly h240: VideoPreset;
|
189
|
+
readonly h360: VideoPreset;
|
190
|
+
readonly h480: VideoPreset;
|
191
|
+
readonly h540: VideoPreset;
|
192
|
+
readonly h720: VideoPreset;
|
193
|
+
readonly h1080: VideoPreset;
|
194
|
+
readonly h1440: VideoPreset;
|
195
|
+
/** @deprecated */
|
196
|
+
readonly qvga: VideoPreset;
|
197
|
+
/** @deprecated */
|
198
|
+
readonly vga: VideoPreset;
|
199
|
+
/** @deprecated */
|
200
|
+
readonly qhd: VideoPreset;
|
201
|
+
/** @deprecated */
|
202
|
+
readonly hd: VideoPreset;
|
203
|
+
/** @deprecated */
|
204
|
+
readonly fhd: VideoPreset;
|
165
205
|
};
|
166
206
|
export declare const ScreenSharePresets: {
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
207
|
+
readonly h360fps3: VideoPreset;
|
208
|
+
readonly h720fps5: VideoPreset;
|
209
|
+
readonly h720fps15: VideoPreset;
|
210
|
+
readonly h1080fps15: VideoPreset;
|
211
|
+
readonly h1080fps30: VideoPreset;
|
212
|
+
/** @deprecated */
|
213
|
+
readonly vga: VideoPreset;
|
214
|
+
/** @deprecated */
|
215
|
+
readonly hd_8: VideoPreset;
|
216
|
+
/** @deprecated */
|
217
|
+
readonly hd_15: VideoPreset;
|
218
|
+
/** @deprecated */
|
219
|
+
readonly fhd_15: VideoPreset;
|
220
|
+
/** @deprecated */
|
221
|
+
readonly fhd_30: VideoPreset;
|
172
222
|
};
|
@@ -36,27 +36,65 @@ var AudioPresets;
|
|
36
36
|
* Sane presets for video resolution/encoding
|
37
37
|
*/
|
38
38
|
exports.VideoPresets = {
|
39
|
+
h90: new VideoPreset(160, 90, 60000, 15),
|
40
|
+
h180: new VideoPreset(320, 180, 120000, 15),
|
41
|
+
h216: new VideoPreset(384, 216, 180000, 15),
|
42
|
+
h360: new VideoPreset(640, 360, 300000, 20),
|
43
|
+
h540: new VideoPreset(960, 540, 600000, 25),
|
44
|
+
h720: new VideoPreset(1280, 720, 2000000, 30),
|
45
|
+
h1080: new VideoPreset(1920, 1080, 3000000, 30),
|
46
|
+
h1440: new VideoPreset(2560, 1440, 5000000, 30),
|
47
|
+
h2160: new VideoPreset(3840, 2160, 8000000, 30),
|
48
|
+
/** @deprecated */
|
39
49
|
qvga: new VideoPreset(320, 180, 120000, 10),
|
50
|
+
/** @deprecated */
|
40
51
|
vga: new VideoPreset(640, 360, 300000, 20),
|
52
|
+
/** @deprecated */
|
41
53
|
qhd: new VideoPreset(960, 540, 600000, 25),
|
54
|
+
/** @deprecated */
|
42
55
|
hd: new VideoPreset(1280, 720, 2000000, 30),
|
56
|
+
/** @deprecated */
|
43
57
|
fhd: new VideoPreset(1920, 1080, 3000000, 30),
|
44
58
|
};
|
45
59
|
/**
|
46
60
|
* Four by three presets
|
47
61
|
*/
|
48
62
|
exports.VideoPresets43 = {
|
63
|
+
h120: new VideoPreset(160, 120, 80000, 15),
|
64
|
+
h180: new VideoPreset(240, 180, 100000, 15),
|
65
|
+
h240: new VideoPreset(320, 240, 150000, 15),
|
66
|
+
h360: new VideoPreset(480, 360, 225000, 20),
|
67
|
+
h480: new VideoPreset(640, 480, 300000, 20),
|
68
|
+
h540: new VideoPreset(720, 540, 450000, 25),
|
69
|
+
h720: new VideoPreset(960, 720, 1500000, 30),
|
70
|
+
h1080: new VideoPreset(1440, 1080, 2500000, 30),
|
71
|
+
h1440: new VideoPreset(1920, 1440, 3500000, 30),
|
72
|
+
/** @deprecated */
|
49
73
|
qvga: new VideoPreset(240, 180, 90000, 10),
|
74
|
+
/** @deprecated */
|
50
75
|
vga: new VideoPreset(480, 360, 225000, 20),
|
76
|
+
/** @deprecated */
|
51
77
|
qhd: new VideoPreset(720, 540, 450000, 25),
|
78
|
+
/** @deprecated */
|
52
79
|
hd: new VideoPreset(960, 720, 1500000, 30),
|
80
|
+
/** @deprecated */
|
53
81
|
fhd: new VideoPreset(1440, 1080, 2800000, 30),
|
54
82
|
};
|
55
83
|
exports.ScreenSharePresets = {
|
84
|
+
h360fps3: new VideoPreset(640, 360, 200000, 3),
|
85
|
+
h720fps5: new VideoPreset(1280, 720, 400000, 5),
|
86
|
+
h720fps15: new VideoPreset(1280, 720, 1000000, 15),
|
87
|
+
h1080fps15: new VideoPreset(1920, 1080, 1500000, 15),
|
88
|
+
h1080fps30: new VideoPreset(1920, 1080, 3000000, 30),
|
89
|
+
/** @deprecated */
|
56
90
|
vga: new VideoPreset(640, 360, 200000, 3),
|
91
|
+
/** @deprecated */
|
57
92
|
hd_8: new VideoPreset(1280, 720, 400000, 5),
|
93
|
+
/** @deprecated */
|
58
94
|
hd_15: new VideoPreset(1280, 720, 1000000, 15),
|
95
|
+
/** @deprecated */
|
59
96
|
fhd_15: new VideoPreset(1920, 1080, 1500000, 15),
|
97
|
+
/** @deprecated */
|
60
98
|
fhd_30: new VideoPreset(1920, 1080, 3000000, 30),
|
61
99
|
};
|
62
100
|
//# sourceMappingURL=options.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/room/track/options.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/room/track/options.ts"],"names":[],"mappings":"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"}
|
@@ -5,3 +5,14 @@ import type RemoteVideoTrack from './RemoteVideoTrack';
|
|
5
5
|
export declare type RemoteTrack = RemoteAudioTrack | RemoteVideoTrack;
|
6
6
|
export declare type AudioTrack = RemoteAudioTrack | LocalAudioTrack;
|
7
7
|
export declare type VideoTrack = RemoteVideoTrack | LocalVideoTrack;
|
8
|
+
export declare type AdaptiveStreamSettings = {
|
9
|
+
/**
|
10
|
+
* Set a custom pixel density, defaults to 1
|
11
|
+
* When streaming videos on a ultra high definition screen this setting
|
12
|
+
* let's you account for the devicePixelRatio of those screens.
|
13
|
+
* Set it to `screen` to use the actual pixel density of the screen
|
14
|
+
* Note: this might significantly increase the bandwidth consumed by people
|
15
|
+
* streaming on high definition screens.
|
16
|
+
*/
|
17
|
+
pixelDensity?: number | 'screen';
|
18
|
+
};
|
@@ -1,3 +1,13 @@
|
|
1
1
|
import { AudioCaptureOptions, CreateLocalTracksOptions, VideoCaptureOptions } from './options';
|
2
|
+
import { AudioTrack } from './types';
|
2
3
|
export declare function mergeDefaultOptions(options?: CreateLocalTracksOptions, audioDefaults?: AudioCaptureOptions, videoDefaults?: VideoCaptureOptions): CreateLocalTracksOptions;
|
3
4
|
export declare function constraintsForOptions(options: CreateLocalTracksOptions): MediaStreamConstraints;
|
5
|
+
/**
|
6
|
+
* This function detects silence on a given [[Track]] instance.
|
7
|
+
* Returns true if the track seems to be entirely silent.
|
8
|
+
*/
|
9
|
+
export declare function detectSilence(track: AudioTrack, timeOffset?: number): Promise<boolean>;
|
10
|
+
/**
|
11
|
+
* @internal
|
12
|
+
*/
|
13
|
+
export declare function getNewAudioContext(): AudioContext | void;
|
package/dist/room/track/utils.js
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.constraintsForOptions = exports.mergeDefaultOptions = void 0;
|
12
|
+
exports.getNewAudioContext = exports.detectSilence = exports.constraintsForOptions = exports.mergeDefaultOptions = void 0;
|
13
|
+
const utils_1 = require("../utils");
|
4
14
|
function mergeDefaultOptions(options, audioDefaults, videoDefaults) {
|
5
15
|
const opts = Object.assign({}, options);
|
6
16
|
if (opts.audio === true)
|
@@ -65,4 +75,39 @@ function constraintsForOptions(options) {
|
|
65
75
|
return constraints;
|
66
76
|
}
|
67
77
|
exports.constraintsForOptions = constraintsForOptions;
|
78
|
+
/**
|
79
|
+
* This function detects silence on a given [[Track]] instance.
|
80
|
+
* Returns true if the track seems to be entirely silent.
|
81
|
+
*/
|
82
|
+
function detectSilence(track, timeOffset = 200) {
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
84
|
+
const ctx = getNewAudioContext();
|
85
|
+
if (ctx) {
|
86
|
+
const analyser = ctx.createAnalyser();
|
87
|
+
analyser.fftSize = 2048;
|
88
|
+
const bufferLength = analyser.frequencyBinCount;
|
89
|
+
const dataArray = new Uint8Array(bufferLength);
|
90
|
+
const source = ctx.createMediaStreamSource(new MediaStream([track.mediaStreamTrack]));
|
91
|
+
source.connect(analyser);
|
92
|
+
yield utils_1.sleep(timeOffset);
|
93
|
+
analyser.getByteTimeDomainData(dataArray);
|
94
|
+
const someNoise = dataArray.some((sample) => sample !== 128 && sample !== 0);
|
95
|
+
ctx.close();
|
96
|
+
return !someNoise;
|
97
|
+
}
|
98
|
+
return false;
|
99
|
+
});
|
100
|
+
}
|
101
|
+
exports.detectSilence = detectSilence;
|
102
|
+
/**
|
103
|
+
* @internal
|
104
|
+
*/
|
105
|
+
function getNewAudioContext() {
|
106
|
+
// @ts-ignore
|
107
|
+
const AudioContext = window.AudioContext || window.webkitAudioContext;
|
108
|
+
if (AudioContext) {
|
109
|
+
return new AudioContext();
|
110
|
+
}
|
111
|
+
}
|
112
|
+
exports.getNewAudioContext = getNewAudioContext;
|
68
113
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/room/track/utils.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/room/track/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/room/utils.d.ts
CHANGED
@@ -3,6 +3,7 @@ export declare function unpackStreamId(packed: string): string[];
|
|
3
3
|
export declare function sleep(duration: number): Promise<void>;
|
4
4
|
export declare function isFireFox(): boolean;
|
5
5
|
export declare function isSafari(): boolean;
|
6
|
+
export declare function isMobile(): boolean;
|
6
7
|
export declare const getResizeObserver: () => ResizeObserver;
|
7
8
|
export declare const getIntersectionObserver: () => IntersectionObserver;
|
8
9
|
export interface ObservableMediaElement extends HTMLMediaElement {
|
package/dist/room/utils.js
CHANGED
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
9
9
|
});
|
10
10
|
};
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
-
exports.getClientInfo = exports.getIntersectionObserver = exports.getResizeObserver = exports.isSafari = exports.isFireFox = exports.sleep = exports.unpackStreamId = void 0;
|
12
|
+
exports.getClientInfo = exports.getIntersectionObserver = exports.getResizeObserver = exports.isMobile = exports.isSafari = exports.isFireFox = exports.sleep = exports.unpackStreamId = void 0;
|
13
13
|
const livekit_models_1 = require("../proto/livekit_models");
|
14
14
|
const version_1 = require("../version");
|
15
15
|
const separator = '|';
|
@@ -35,6 +35,10 @@ function isSafari() {
|
|
35
35
|
return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
36
36
|
}
|
37
37
|
exports.isSafari = isSafari;
|
38
|
+
function isMobile() {
|
39
|
+
return /Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent);
|
40
|
+
}
|
41
|
+
exports.isMobile = isMobile;
|
38
42
|
function roDispatchCallback(entries) {
|
39
43
|
for (const entry of entries) {
|
40
44
|
entry.target.handleResize(entry);
|
package/dist/room/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/room/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAAqE;AACrE,wCAAsD;AAEtD,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,SAAgB,cAAc,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtB,CAAC;AAND,wCAMC;AAED,SAAsB,KAAK,CAAC,QAAgB;;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;CAAA;AAFD,sBAEC;AAED,SAAgB,SAAS;IACvB,OAAO,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAFD,8BAEC;AAED,SAAgB,QAAQ;IACtB,OAAO,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAFD,4BAEC;AAED,SAAS,kBAAkB,CAAC,OAA8B;IACxD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC1B,KAAK,CAAC,MAAiC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC9D;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAoC;IAC9D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC1B,KAAK,CAAC,MAAiC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACzE;AACH,CAAC;AAED,IAAI,cAAc,GAA0B,IAAI,CAAC;AAC1C,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,IAAI,CAAC,cAAc;QAAE,cAAc,GAAG,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC7E,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEF,IAAI,oBAAoB,GAAgC,IAAI,CAAC;AACtD,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,IAAI,CAAC,oBAAoB;QAAE,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAC/F,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAHW,QAAA,uBAAuB,2BAGlC;AAOF,SAAgB,aAAa;IAC3B,MAAM,IAAI,GAAG,2BAAU,CAAC,WAAW,CAAC;QAClC,GAAG,EAAE,+BAAc,CAAC,EAAE;QACtB,QAAQ,EAAE,yBAAe;QACzB,OAAO,EAAP,iBAAO;KACR,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAPD,sCAOC"}
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/room/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAAqE;AACrE,wCAAsD;AAEtD,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,SAAgB,cAAc,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtB,CAAC;AAND,wCAMC;AAED,SAAsB,KAAK,CAAC,QAAgB;;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;CAAA;AAFD,sBAEC;AAED,SAAgB,SAAS;IACvB,OAAO,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAFD,8BAEC;AAED,SAAgB,QAAQ;IACtB,OAAO,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAFD,4BAEC;AAED,SAAgB,QAAQ;IACtB,OAAO,uCAAuC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC3E,CAAC;AAFD,4BAEC;AAED,SAAS,kBAAkB,CAAC,OAA8B;IACxD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC1B,KAAK,CAAC,MAAiC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC9D;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAoC;IAC9D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC1B,KAAK,CAAC,MAAiC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACzE;AACH,CAAC;AAED,IAAI,cAAc,GAA0B,IAAI,CAAC;AAC1C,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,IAAI,CAAC,cAAc;QAAE,cAAc,GAAG,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC7E,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEF,IAAI,oBAAoB,GAAgC,IAAI,CAAC;AACtD,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,IAAI,CAAC,oBAAoB;QAAE,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAC/F,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAHW,QAAA,uBAAuB,2BAGlC;AAOF,SAAgB,aAAa;IAC3B,MAAM,IAAI,GAAG,2BAAU,CAAC,WAAW,CAAC;QAClC,GAAG,EAAE,+BAAc,CAAC,EAAE;QACtB,QAAQ,EAAE,yBAAe;QACzB,OAAO,EAAP,iBAAO;KACR,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAPD,sCAOC"}
|
package/dist/version.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "0.16.
|
1
|
+
export declare const version = "0.16.6";
|
2
2
|
export declare const protocolVersion = 6;
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
package/src/api/RequestQueue.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import log from '../logger';
|
2
2
|
|
3
3
|
export default class Queue {
|
4
4
|
private queue: Array<() => void>;
|
@@ -11,34 +11,34 @@ export default class Queue {
|
|
11
11
|
}
|
12
12
|
|
13
13
|
enqueue(cb: () => void) {
|
14
|
-
|
14
|
+
log.trace('enqueuing request to fire later');
|
15
15
|
this.queue.push(cb);
|
16
16
|
}
|
17
17
|
|
18
18
|
dequeue() {
|
19
19
|
const evt = this.queue.shift();
|
20
20
|
if (evt) evt();
|
21
|
-
|
21
|
+
log.trace('firing request from queue');
|
22
22
|
}
|
23
23
|
|
24
24
|
async run() {
|
25
25
|
if (this.running) return;
|
26
|
-
|
26
|
+
log.trace('start queue');
|
27
27
|
this.running = true;
|
28
28
|
while (this.running && this.queue.length > 0) {
|
29
29
|
this.dequeue();
|
30
30
|
}
|
31
31
|
this.running = false;
|
32
|
-
|
32
|
+
log.trace('queue finished');
|
33
33
|
}
|
34
34
|
|
35
35
|
pause() {
|
36
|
-
|
36
|
+
log.trace('pausing queue');
|
37
37
|
this.running = false;
|
38
38
|
}
|
39
39
|
|
40
40
|
reset() {
|
41
|
-
|
41
|
+
log.trace('resetting queue');
|
42
42
|
this.running = false;
|
43
43
|
this.queue = [];
|
44
44
|
}
|