livekit-client 0.14.3 → 0.15.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/.github/workflows/{lint.yaml → test.yaml} +7 -4
- package/README.md +27 -12
- package/dist/api/SignalClient.d.ts +4 -31
- package/dist/api/SignalClient.js +25 -7
- package/dist/api/SignalClient.js.map +1 -1
- package/dist/connect.d.ts +1 -1
- package/dist/connect.js +68 -73
- package/dist/connect.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +10 -0
- package/dist/logger.js +14 -0
- package/dist/logger.js.map +1 -1
- package/dist/options.d.ts +67 -12
- package/dist/options.js +0 -10
- package/dist/options.js.map +1 -1
- package/dist/proto/livekit_models.d.ts +27 -1
- package/dist/proto/livekit_models.js +188 -3
- package/dist/proto/livekit_models.js.map +1 -1
- package/dist/proto/livekit_rtc.d.ts +49 -7
- package/dist/proto/livekit_rtc.js +303 -28
- package/dist/proto/livekit_rtc.js.map +1 -1
- package/dist/room/RTCEngine.d.ts +2 -2
- package/dist/room/RTCEngine.js +6 -4
- package/dist/room/RTCEngine.js.map +1 -1
- package/dist/room/Room.d.ts +9 -18
- package/dist/room/Room.js +61 -36
- package/dist/room/Room.js.map +1 -1
- package/dist/room/events.d.ts +93 -0
- package/dist/room/events.js +93 -0
- package/dist/room/events.js.map +1 -1
- package/dist/room/participant/LocalParticipant.d.ts +27 -11
- package/dist/room/participant/LocalParticipant.js +183 -155
- package/dist/room/participant/LocalParticipant.js.map +1 -1
- package/dist/room/participant/Participant.js +2 -1
- package/dist/room/participant/Participant.js.map +1 -1
- package/dist/room/participant/RemoteParticipant.js +3 -2
- package/dist/room/participant/RemoteParticipant.js.map +1 -1
- package/dist/room/participant/publishUtils.d.ts +11 -0
- package/dist/room/participant/publishUtils.js +148 -0
- package/dist/room/participant/publishUtils.js.map +1 -0
- package/dist/room/participant/publishUtils.test.d.ts +1 -0
- package/dist/room/participant/publishUtils.test.js +79 -0
- package/dist/room/participant/publishUtils.test.js.map +1 -0
- package/dist/room/track/LocalAudioTrack.d.ts +4 -3
- package/dist/room/track/LocalAudioTrack.js +5 -3
- package/dist/room/track/LocalAudioTrack.js.map +1 -1
- package/dist/room/track/LocalTrack.d.ts +1 -3
- package/dist/room/track/LocalTrack.js +2 -49
- package/dist/room/track/LocalTrack.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.d.ts +6 -4
- package/dist/room/track/LocalVideoTrack.js +41 -12
- package/dist/room/track/LocalVideoTrack.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.test.d.ts +1 -0
- package/dist/room/track/LocalVideoTrack.test.js +68 -0
- package/dist/room/track/LocalVideoTrack.test.js.map +1 -0
- package/dist/room/track/RemoteTrackPublication.d.ts +1 -2
- package/dist/room/track/RemoteTrackPublication.js +5 -4
- package/dist/room/track/RemoteTrackPublication.js.map +1 -1
- package/dist/room/track/RemoteVideoTrack.d.ts +0 -2
- package/dist/room/track/RemoteVideoTrack.js +11 -19
- package/dist/room/track/RemoteVideoTrack.js.map +1 -1
- package/dist/room/track/Track.d.ts +1 -2
- package/dist/room/track/Track.js +1 -2
- package/dist/room/track/Track.js.map +1 -1
- package/dist/room/track/options.d.ts +15 -65
- package/dist/room/track/options.js +14 -13
- package/dist/room/track/options.js.map +1 -1
- package/dist/room/track/utils.d.ts +3 -0
- package/dist/room/track/utils.js +68 -0
- package/dist/room/track/utils.js.map +1 -0
- package/dist/room/track/utils.test.d.ts +1 -0
- package/dist/room/track/utils.test.js +85 -0
- package/dist/room/track/utils.test.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/example/index.html +183 -178
- package/example/sample.ts +410 -327
- package/example/styles.css +144 -0
- package/example/webpack.config.js +1 -1
- package/jest.config.js +6 -0
- package/package.json +8 -5
- package/tsconfig.eslint.json +8 -1
- package/dist/room/defaults.d.ts +0 -5
- package/dist/room/defaults.js +0 -32
- package/dist/room/defaults.js.map +0 -1
- package/dist/room/track/create.d.ts +0 -25
- package/dist/room/track/create.js +0 -172
- package/dist/room/track/create.js.map +0 -1
@@ -0,0 +1,68 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const livekit_models_1 = require("../../proto/livekit_models");
|
4
|
+
const LocalVideoTrack_1 = require("./LocalVideoTrack");
|
5
|
+
describe('videoLayersFromEncodings', () => {
|
6
|
+
it('returns single layer for no encoding', () => {
|
7
|
+
const layers = LocalVideoTrack_1.videoLayersFromEncodings(640, 360);
|
8
|
+
expect(layers).toHaveLength(1);
|
9
|
+
expect(layers[0].quality).toBe(livekit_models_1.VideoQuality.HIGH);
|
10
|
+
expect(layers[0].width).toBe(640);
|
11
|
+
expect(layers[0].height).toBe(360);
|
12
|
+
});
|
13
|
+
it('returns single layer for explicit encoding', () => {
|
14
|
+
const layers = LocalVideoTrack_1.videoLayersFromEncodings(640, 360, [{
|
15
|
+
maxBitrate: 200000,
|
16
|
+
}]);
|
17
|
+
expect(layers).toHaveLength(1);
|
18
|
+
expect(layers[0].quality).toBe(livekit_models_1.VideoQuality.HIGH);
|
19
|
+
expect(layers[0].bitrate).toBe(200000);
|
20
|
+
});
|
21
|
+
it('returns three layers for simulcast', () => {
|
22
|
+
const layers = LocalVideoTrack_1.videoLayersFromEncodings(1280, 720, [
|
23
|
+
{
|
24
|
+
scaleResolutionDownBy: 4,
|
25
|
+
rid: 'q',
|
26
|
+
maxBitrate: 125000,
|
27
|
+
},
|
28
|
+
{
|
29
|
+
scaleResolutionDownBy: 2,
|
30
|
+
rid: 'h',
|
31
|
+
maxBitrate: 500000,
|
32
|
+
},
|
33
|
+
{
|
34
|
+
rid: 'f',
|
35
|
+
maxBitrate: 1200000,
|
36
|
+
},
|
37
|
+
]);
|
38
|
+
expect(layers).toHaveLength(3);
|
39
|
+
expect(layers[0].quality).toBe(livekit_models_1.VideoQuality.LOW);
|
40
|
+
expect(layers[0].width).toBe(320);
|
41
|
+
expect(layers[2].quality).toBe(livekit_models_1.VideoQuality.HIGH);
|
42
|
+
expect(layers[2].height).toBe(720);
|
43
|
+
});
|
44
|
+
it('handles portrait', () => {
|
45
|
+
const layers = LocalVideoTrack_1.videoLayersFromEncodings(720, 1280, [
|
46
|
+
{
|
47
|
+
scaleResolutionDownBy: 4,
|
48
|
+
rid: 'q',
|
49
|
+
maxBitrate: 125000,
|
50
|
+
},
|
51
|
+
{
|
52
|
+
scaleResolutionDownBy: 2,
|
53
|
+
rid: 'h',
|
54
|
+
maxBitrate: 500000,
|
55
|
+
},
|
56
|
+
{
|
57
|
+
rid: 'f',
|
58
|
+
maxBitrate: 1200000,
|
59
|
+
},
|
60
|
+
]);
|
61
|
+
expect(layers).toHaveLength(3);
|
62
|
+
expect(layers[0].quality).toBe(livekit_models_1.VideoQuality.LOW);
|
63
|
+
expect(layers[0].height).toBe(320);
|
64
|
+
expect(layers[2].quality).toBe(livekit_models_1.VideoQuality.HIGH);
|
65
|
+
expect(layers[2].width).toBe(720);
|
66
|
+
});
|
67
|
+
});
|
68
|
+
//# sourceMappingURL=LocalVideoTrack.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"LocalVideoTrack.test.js","sourceRoot":"","sources":["../../../src/room/track/LocalVideoTrack.test.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import { TrackInfo } from '../../proto/livekit_models';
|
2
|
-
import { VideoQuality } from '../../proto/livekit_rtc';
|
1
|
+
import { TrackInfo, VideoQuality } from '../../proto/livekit_models';
|
3
2
|
import { Track } from './Track';
|
4
3
|
import TrackPublication from './TrackPublication';
|
5
4
|
import { RemoteTrack } from './types';
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
const logger_1 = __importDefault(require("../../logger"));
|
7
|
+
const livekit_models_1 = require("../../proto/livekit_models");
|
7
8
|
const livekit_rtc_1 = require("../../proto/livekit_rtc");
|
8
9
|
const events_1 = require("../events");
|
9
10
|
const RemoteVideoTrack_1 = __importDefault(require("./RemoteVideoTrack"));
|
@@ -12,14 +13,14 @@ class RemoteTrackPublication extends TrackPublication_1.default {
|
|
12
13
|
constructor() {
|
13
14
|
super(...arguments);
|
14
15
|
this.disabled = false;
|
15
|
-
this.currentVideoQuality =
|
16
|
+
this.currentVideoQuality = livekit_models_1.VideoQuality.HIGH;
|
16
17
|
this.handleVisibilityChange = (visible) => {
|
17
|
-
logger_1.default.debug(
|
18
|
+
logger_1.default.debug('automanage video visibility', this.trackSid, `visible=${visible}`);
|
18
19
|
this.disabled = !visible;
|
19
20
|
this.emitTrackUpdate();
|
20
21
|
};
|
21
22
|
this.handleVideoDimensionsChange = (dimensions) => {
|
22
|
-
logger_1.default.debug(
|
23
|
+
logger_1.default.debug('automanage video dimensions', this.trackSid, `${dimensions.width}x${dimensions.height}`);
|
23
24
|
this.videoDimensions = dimensions;
|
24
25
|
this.emitTrackUpdate();
|
25
26
|
};
|
@@ -129,7 +130,7 @@ class RemoteTrackPublication extends TrackPublication_1.default {
|
|
129
130
|
}
|
130
131
|
else {
|
131
132
|
// defaults to high quality
|
132
|
-
settings.quality =
|
133
|
+
settings.quality = livekit_models_1.VideoQuality.HIGH;
|
133
134
|
}
|
134
135
|
this.emit(events_1.TrackEvent.UpdateSettings, settings);
|
135
136
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RemoteTrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/RemoteTrackPublication.ts"],"names":[],"mappings":";;;;;AAAA,0DAA+B;
|
1
|
+
{"version":3,"file":"RemoteTrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/RemoteTrackPublication.ts"],"names":[],"mappings":"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"}
|
@@ -19,8 +19,6 @@ export default class RemoteVideoTrack extends Track {
|
|
19
19
|
stop(): void;
|
20
20
|
private stopObservingElement;
|
21
21
|
private handleVisibilityChanged;
|
22
|
-
private readonly debouncedHandleVisibilityChanged;
|
23
|
-
private handleResize;
|
24
22
|
private readonly debouncedHandleResize;
|
25
23
|
private updateVisibility;
|
26
24
|
private updateDimensions;
|
@@ -4,7 +4,7 @@ const ts_debounce_1 = require("ts-debounce");
|
|
4
4
|
const events_1 = require("../events");
|
5
5
|
const utils_1 = require("../utils");
|
6
6
|
const Track_1 = require("./Track");
|
7
|
-
const REACTION_DELAY =
|
7
|
+
const REACTION_DELAY = 100;
|
8
8
|
class RemoteVideoTrack extends Track_1.Track {
|
9
9
|
constructor(mediaTrack, sid, receiver, autoManaged) {
|
10
10
|
super(mediaTrack, Track_1.Track.Kind.Video);
|
@@ -18,17 +18,9 @@ class RemoteVideoTrack extends Track_1.Track {
|
|
18
18
|
}
|
19
19
|
this.updateVisibility();
|
20
20
|
};
|
21
|
-
this.
|
22
|
-
this.handleResize = (entry) => {
|
23
|
-
const { target, contentRect } = entry;
|
24
|
-
const elementInfo = this.elementInfos.find((info) => info.element === target);
|
25
|
-
if (elementInfo) {
|
26
|
-
elementInfo.width = contentRect.width;
|
27
|
-
elementInfo.height = contentRect.height;
|
28
|
-
}
|
21
|
+
this.debouncedHandleResize = ts_debounce_1.debounce(() => {
|
29
22
|
this.updateDimensions();
|
30
|
-
};
|
31
|
-
this.debouncedHandleResize = ts_debounce_1.debounce(this.handleResize, REACTION_DELAY);
|
23
|
+
}, REACTION_DELAY);
|
32
24
|
// override id to parsed ID
|
33
25
|
this.sid = sid;
|
34
26
|
this.receiver = receiver;
|
@@ -58,18 +50,18 @@ class RemoteVideoTrack extends Track_1.Track {
|
|
58
50
|
if (!element) {
|
59
51
|
element = super.attach();
|
60
52
|
}
|
61
|
-
|
53
|
+
else {
|
54
|
+
super.attach(element);
|
55
|
+
}
|
62
56
|
if (this.autoManaged) {
|
63
57
|
this.elementInfos.push({
|
64
58
|
element,
|
65
|
-
visible: true,
|
66
|
-
width: element.clientWidth,
|
67
|
-
height: element.clientHeight,
|
59
|
+
visible: true, // default visible
|
68
60
|
});
|
69
61
|
element
|
70
62
|
.handleResize = this.debouncedHandleResize;
|
71
63
|
element
|
72
|
-
.handleVisibilityChanged = this.
|
64
|
+
.handleVisibilityChanged = this.handleVisibilityChanged;
|
73
65
|
utils_1.getIntersectionObserver().observe(element);
|
74
66
|
utils_1.getResizeObserver().observe(element);
|
75
67
|
}
|
@@ -123,9 +115,9 @@ class RemoteVideoTrack extends Track_1.Track {
|
|
123
115
|
let maxHeight = 0;
|
124
116
|
for (const info of this.elementInfos) {
|
125
117
|
if (info.visible) {
|
126
|
-
if (info.
|
127
|
-
maxWidth = info.
|
128
|
-
maxHeight = info.
|
118
|
+
if (info.element.clientWidth + info.element.clientHeight > maxWidth + maxHeight) {
|
119
|
+
maxWidth = info.element.clientWidth;
|
120
|
+
maxHeight = info.element.clientHeight;
|
129
121
|
}
|
130
122
|
}
|
131
123
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RemoteVideoTrack.js","sourceRoot":"","sources":["../../../src/room/track/RemoteVideoTrack.ts"],"names":[],"mappings":";;AAAA,6CAAuC;AACvC,sCAAuC;AAEvC,oCAA8F;AAC9F,mCAA8D;AAE9D,MAAM,cAAc,GAAG,
|
1
|
+
{"version":3,"file":"RemoteVideoTrack.js","sourceRoot":"","sources":["../../../src/room/track/RemoteVideoTrack.ts"],"names":[],"mappings":"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"}
|
@@ -3,7 +3,6 @@ import { EventEmitter } from 'events';
|
|
3
3
|
import { TrackSource, TrackType } from '../../proto/livekit_models';
|
4
4
|
export declare class Track extends EventEmitter {
|
5
5
|
kind: Track.Kind;
|
6
|
-
name: string;
|
7
6
|
mediaStreamTrack: MediaStreamTrack;
|
8
7
|
attachedElements: HTMLMediaElement[];
|
9
8
|
isMuted: boolean;
|
@@ -12,7 +11,7 @@ export declare class Track extends EventEmitter {
|
|
12
11
|
* sid is set after track is published to server, or if it's a remote track
|
13
12
|
*/
|
14
13
|
sid?: Track.SID;
|
15
|
-
protected constructor(mediaTrack: MediaStreamTrack, kind: Track.Kind
|
14
|
+
protected constructor(mediaTrack: MediaStreamTrack, kind: Track.Kind);
|
16
15
|
/**
|
17
16
|
* creates a new HTMLAudioElement or HTMLVideoElement, attaches to it, and returns it
|
18
17
|
*/
|
package/dist/room/track/Track.js
CHANGED
@@ -8,13 +8,12 @@ const events_2 = require("../events");
|
|
8
8
|
// Safari tracks which audio elements have been "blessed" by the user.
|
9
9
|
const recycledElements = [];
|
10
10
|
class Track extends events_1.EventEmitter {
|
11
|
-
constructor(mediaTrack, kind
|
11
|
+
constructor(mediaTrack, kind) {
|
12
12
|
super();
|
13
13
|
this.attachedElements = [];
|
14
14
|
this.isMuted = false;
|
15
15
|
this.kind = kind;
|
16
16
|
this.mediaStreamTrack = mediaTrack;
|
17
|
-
this.name = name || '';
|
18
17
|
this.source = Track.Source.Unknown;
|
19
18
|
}
|
20
19
|
attach(element) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Track.js","sourceRoot":"","sources":["../../../src/room/track/Track.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,+DAAoE;AACpE,sCAAuC;AAEvC,2EAA2E;AAC3E,sEAAsE;AACtE,MAAM,gBAAgB,GAA4B,EAAE,CAAC;AAErD,MAAa,KAAM,SAAQ,qBAAY;
|
1
|
+
{"version":3,"file":"Track.js","sourceRoot":"","sources":["../../../src/room/track/Track.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,+DAAoE;AACpE,sCAAuC;AAEvC,2EAA2E;AAC3E,sEAAsE;AACtE,MAAM,gBAAgB,GAA4B,EAAE,CAAC;AAErD,MAAa,KAAM,SAAQ,qBAAY;IAgBrC,YAAsB,UAA4B,EAAE,IAAgB;QAClE,KAAK,EAAE,CAAC;QAZV,qBAAgB,GAAuB,EAAE,CAAC;QAE1C,YAAO,GAAY,KAAK,CAAC;QAWvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IACrC,CAAC;IAWD,MAAM,CAAC,OAA0B;QAC/B,IAAI,WAAW,GAAG,OAAO,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;YAClC,WAAW,GAAG,OAAO,CAAC;SACvB;QACD,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,WAAW,KAAK,OAAO,EAAE;gBAC3B,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC7B,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;wBACxC,OAAO,GAAG,CAAC,CAAC;qBACb;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,OAAO,EAAE;oBACX,sBAAsB;oBACtB,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC/D;aACF;YACD,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,GAAqB,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;aACjE;SACF;QAED,IAAI,OAAO,YAAY,gBAAgB,EAAE;YACvC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;SACzB;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC3C,OAAO,OAAO,CAAC;SAChB;QAED,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpC,IAAI,OAAO,YAAY,gBAAgB,EAAE;YACvC,sDAAsD;YACtD,OAAO,CAAC,IAAI,EAAE;iBACX,IAAI,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,oBAAoB,CAAC,CAAC;YAC7C,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;SACN;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAYD,MAAM,CAAC,OAA0B;QAC/B,+BAA+B;QAC/B,IAAI,OAAO,EAAE;YACX,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,GAAG,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;aAC9B;YACD,OAAO,OAAO,CAAC;SAChB;QAED,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAES,MAAM;QACd,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,CAAC;IAES,OAAO;QACf,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;IACxC,CAAC;IAEO,cAAc,CAAC,OAAyB;QAC9C,IAAI,OAAO,YAAY,gBAAgB,EAAE;YACzC,0CAA0C;YACxC,IAAI,WAAW,GAAG,IAAI,CAAC;YACvB,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC7B,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE;oBACpB,WAAW,GAAG,KAAK,CAAC;iBACrB;YACH,CAAC,CAAC,CAAC;YACH,IAAI,WAAW,EAAE;gBACf,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAChC;SACF;IACH,CAAC;CACF;AA9ID,sBA8IC;AAED,gBAAgB;AAChB,SAAgB,eAAe,CAAC,KAAuB,EAAE,OAAyB;IAChF,IAAI,WAAwB,CAAC;IAC7B,IAAI,OAAO,CAAC,SAAS,YAAY,WAAW,EAAE;QAC5C,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;KACjC;SAAM;QACL,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;KACjC;IAED,kDAAkD;IAClD,IAAI,cAAkC,CAAC;IACvC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,cAAc,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;KAC/C;SAAM;QACL,cAAc,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;KAC/C;IAED,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QAC5B,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAtBD,0CAsBC;AAED,gBAAgB;AAChB,SAAgB,WAAW,CACzB,KAAuB,EACvB,OAAyB;IAEzB,IAAI,OAAO,CAAC,SAAS,YAAY,WAAW,EAAE;QAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;QACtC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;KAC1B;AACH,CAAC;AATD,kCASC;AAED,WAAiB,KAAK;IACpB,IAAY,IAIX;IAJD,WAAY,IAAI;QACd,uBAAe,CAAA;QACf,uBAAe,CAAA;QACf,2BAAmB,CAAA;IACrB,CAAC,EAJW,IAAI,GAAJ,UAAI,KAAJ,UAAI,QAIf;IAED,IAAY,MAMX;IAND,WAAY,MAAM;QAChB,2BAAiB,CAAA;QACjB,mCAAyB,CAAA;QACzB,sCAA4B,CAAA;QAC5B,iDAAuC,CAAA;QACvC,6BAAmB,CAAA;IACrB,CAAC,EANW,MAAM,GAAN,YAAM,KAAN,YAAM,QAMjB;IAOD,gBAAgB;IAChB,SAAgB,WAAW,CAAC,CAAO;QACjC,QAAQ,CAAC,EAAE;YACT,KAAK,IAAI,CAAC,KAAK;gBACb,OAAO,0BAAS,CAAC,KAAK,CAAC;YACzB,KAAK,IAAI,CAAC,KAAK;gBACb,OAAO,0BAAS,CAAC,KAAK,CAAC;YACzB;gBACE,OAAO,0BAAS,CAAC,YAAY,CAAC;SACjC;IACH,CAAC;IATe,iBAAW,cAS1B,CAAA;IAED,gBAAgB;IAChB,SAAgB,aAAa,CAAC,CAAY;QACxC,QAAQ,CAAC,EAAE;YACT,KAAK,0BAAS,CAAC,KAAK;gBAClB,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,KAAK,0BAAS,CAAC,KAAK;gBAClB,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB;gBACE,OAAO,IAAI,CAAC,OAAO,CAAC;SACvB;IACH,CAAC;IATe,mBAAa,gBAS5B,CAAA;IAED,gBAAgB;IAChB,SAAgB,aAAa,CAAC,CAAS;QACrC,QAAQ,CAAC,EAAE;YACT,KAAK,MAAM,CAAC,MAAM;gBAChB,OAAO,4BAAW,CAAC,MAAM,CAAC;YAC5B,KAAK,MAAM,CAAC,UAAU;gBACpB,OAAO,4BAAW,CAAC,UAAU,CAAC;YAChC,KAAK,MAAM,CAAC,WAAW;gBACrB,OAAO,4BAAW,CAAC,YAAY,CAAC;YAClC,KAAK,MAAM,CAAC,gBAAgB;gBAC1B,OAAO,4BAAW,CAAC,kBAAkB,CAAC;YACxC;gBACE,OAAO,4BAAW,CAAC,YAAY,CAAC;SACnC;IACH,CAAC;IAbe,mBAAa,gBAa5B,CAAA;IAED,gBAAgB;IAChB,SAAgB,eAAe,CAAC,CAAc;QAC5C,QAAQ,CAAC,EAAE;YACT,KAAK,4BAAW,CAAC,MAAM;gBACrB,OAAO,MAAM,CAAC,MAAM,CAAC;YACvB,KAAK,4BAAW,CAAC,UAAU;gBACzB,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B,KAAK,4BAAW,CAAC,YAAY;gBAC3B,OAAO,MAAM,CAAC,WAAW,CAAC;YAC5B,KAAK,4BAAW,CAAC,kBAAkB;gBACjC,OAAO,MAAM,CAAC,gBAAgB,CAAC;YACjC;gBACE,OAAO,MAAM,CAAC,OAAO,CAAC;SACzB;IACH,CAAC;IAbe,qBAAe,kBAa9B,CAAA;AACH,CAAC,EA3EgB,KAAK,GAAL,aAAK,KAAL,aAAK,QA2ErB"}
|
@@ -17,12 +17,12 @@ export interface TrackPublishDefaults {
|
|
17
17
|
*/
|
18
18
|
audioBitrate?: number;
|
19
19
|
/**
|
20
|
-
* dtx (Discontinuous
|
20
|
+
* dtx (Discontinuous Transmission of audio), defaults to true
|
21
21
|
*/
|
22
22
|
dtx?: boolean;
|
23
23
|
/**
|
24
|
-
* use simulcast, defaults to
|
25
|
-
* When using simulcast, LiveKit will publish up to three
|
24
|
+
* use simulcast, defaults to true.
|
25
|
+
* When using simulcast, LiveKit will publish up to three versions of the stream
|
26
26
|
* at various resolutions.
|
27
27
|
*/
|
28
28
|
simulcast?: boolean;
|
@@ -36,40 +36,6 @@ export interface TrackPublishDefaults {
|
|
36
36
|
*/
|
37
37
|
stopMicTrackOnMute?: boolean;
|
38
38
|
}
|
39
|
-
export interface TrackCaptureDefaults {
|
40
|
-
/**
|
41
|
-
* default device to use for microphone capture
|
42
|
-
*/
|
43
|
-
audioDeviceId?: string;
|
44
|
-
/**
|
45
|
-
* specifies whether automatic gain control is preferred, defaults to true
|
46
|
-
*/
|
47
|
-
autoGainControl?: boolean;
|
48
|
-
/**
|
49
|
-
* the channel count or range of channel counts which are acceptable and/or required
|
50
|
-
*/
|
51
|
-
channelCount?: number;
|
52
|
-
/**
|
53
|
-
* whether or not echo cancellation is preferred, defaults to true
|
54
|
-
*/
|
55
|
-
echoCancellation?: boolean;
|
56
|
-
/**
|
57
|
-
* whether noise suppression is preferred, defaults to true
|
58
|
-
*/
|
59
|
-
noiseSuppression?: boolean;
|
60
|
-
/**
|
61
|
-
* set if a particular video facing mode is preferred
|
62
|
-
*/
|
63
|
-
videoFacingMode?: 'user' | 'environment' | 'left' | 'right';
|
64
|
-
/**
|
65
|
-
* default device to use for camera capture
|
66
|
-
*/
|
67
|
-
videoDeviceId?: string;
|
68
|
-
/**
|
69
|
-
* default video capture resolution
|
70
|
-
*/
|
71
|
-
videoResolution?: VideoResolution;
|
72
|
-
}
|
73
39
|
/**
|
74
40
|
* Options when publishing tracks
|
75
41
|
*/
|
@@ -88,33 +54,26 @@ export interface CreateLocalTracksOptions {
|
|
88
54
|
* audio track options, true to create with defaults. false if audio shouldn't be created
|
89
55
|
* default true
|
90
56
|
*/
|
91
|
-
audio?: boolean |
|
57
|
+
audio?: boolean | AudioCaptureOptions;
|
92
58
|
/**
|
93
59
|
* video track options, true to create with defaults. false if video shouldn't be created
|
94
60
|
* default true
|
95
61
|
*/
|
96
|
-
video?: boolean |
|
62
|
+
video?: boolean | VideoCaptureOptions;
|
97
63
|
}
|
98
|
-
export interface
|
99
|
-
/** name of track */
|
100
|
-
name?: string;
|
64
|
+
export interface VideoCaptureOptions {
|
101
65
|
/**
|
102
66
|
* A ConstrainDOMString object specifying a device ID or an array of device
|
103
67
|
* IDs which are acceptable and/or required.
|
104
68
|
*/
|
105
69
|
deviceId?: ConstrainDOMString;
|
106
|
-
}
|
107
|
-
export interface CreateVideoTrackOptions extends CreateLocalTrackOptions {
|
108
70
|
/**
|
109
71
|
* a facing or an array of facings which are acceptable and/or required.
|
110
|
-
* [valid options](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints/facingMode)
|
111
72
|
*/
|
112
|
-
facingMode?:
|
73
|
+
facingMode?: 'user' | 'environment' | 'left' | 'right';
|
113
74
|
resolution?: VideoResolution;
|
114
75
|
}
|
115
|
-
export interface
|
116
|
-
/** name of track, defaults to "screen" */
|
117
|
-
name?: string;
|
76
|
+
export interface ScreenShareCaptureOptions {
|
118
77
|
/**
|
119
78
|
* true to capture audio shared. browser support for audio capturing in
|
120
79
|
* screenshare is limited: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#browser_compatibility
|
@@ -123,7 +82,7 @@ export interface CreateScreenTrackOptions {
|
|
123
82
|
/** capture resolution, defaults to full HD */
|
124
83
|
resolution?: VideoResolution;
|
125
84
|
}
|
126
|
-
export interface
|
85
|
+
export interface AudioCaptureOptions {
|
127
86
|
/**
|
128
87
|
* specifies whether automatic gain control is preferred and/or required
|
129
88
|
*/
|
@@ -132,6 +91,11 @@ export interface CreateAudioTrackOptions extends CreateLocalTrackOptions {
|
|
132
91
|
* the channel count or range of channel counts which are acceptable and/or required
|
133
92
|
*/
|
134
93
|
channelCount?: ConstrainULong;
|
94
|
+
/**
|
95
|
+
* A ConstrainDOMString object specifying a device ID or an array of device
|
96
|
+
* IDs which are acceptable and/or required.
|
97
|
+
*/
|
98
|
+
deviceId?: ConstrainDOMString;
|
135
99
|
/**
|
136
100
|
* whether or not echo cancellation is preferred and/or required
|
137
101
|
*/
|
@@ -153,20 +117,6 @@ export interface CreateAudioTrackOptions extends CreateLocalTrackOptions {
|
|
153
117
|
*/
|
154
118
|
sampleSize?: ConstrainULong;
|
155
119
|
}
|
156
|
-
/**
|
157
|
-
* example
|
158
|
-
*
|
159
|
-
* ```typescript
|
160
|
-
* {
|
161
|
-
* width: 960,
|
162
|
-
* height: 540,
|
163
|
-
* frameRate: {
|
164
|
-
* ideal: 30,
|
165
|
-
* max: 60,
|
166
|
-
* },
|
167
|
-
* }
|
168
|
-
* ```
|
169
|
-
*/
|
170
120
|
export interface VideoResolution {
|
171
121
|
width: number;
|
172
122
|
height: number;
|
@@ -181,7 +131,7 @@ export declare class VideoPreset {
|
|
181
131
|
encoding: VideoEncoding;
|
182
132
|
width: number;
|
183
133
|
height: number;
|
184
|
-
constructor(width: number, height: number, maxBitrate: number, maxFramerate
|
134
|
+
constructor(width: number, height: number, maxBitrate: number, maxFramerate?: number);
|
185
135
|
get resolution(): VideoResolution;
|
186
136
|
}
|
187
137
|
export interface AudioPreset {
|
@@ -15,6 +15,7 @@ class VideoPreset {
|
|
15
15
|
width: this.width,
|
16
16
|
height: this.height,
|
17
17
|
frameRate: this.encoding.maxFramerate,
|
18
|
+
aspectRatio: this.width / this.height,
|
18
19
|
};
|
19
20
|
}
|
20
21
|
}
|
@@ -35,27 +36,27 @@ var AudioPresets;
|
|
35
36
|
* Sane presets for video resolution/encoding
|
36
37
|
*/
|
37
38
|
exports.VideoPresets = {
|
38
|
-
qvga: new VideoPreset(320, 180,
|
39
|
-
vga: new VideoPreset(640, 360,
|
40
|
-
qhd: new VideoPreset(960, 540,
|
41
|
-
hd: new VideoPreset(1280, 720,
|
42
|
-
fhd: new VideoPreset(1920, 1080,
|
39
|
+
qvga: new VideoPreset(320, 180, 120000, 10),
|
40
|
+
vga: new VideoPreset(640, 360, 300000, 20),
|
41
|
+
qhd: new VideoPreset(960, 540, 600000, 25),
|
42
|
+
hd: new VideoPreset(1280, 720, 2000000, 30),
|
43
|
+
fhd: new VideoPreset(1920, 1080, 3000000, 30),
|
43
44
|
};
|
44
45
|
/**
|
45
46
|
* Four by three presets
|
46
47
|
*/
|
47
48
|
exports.VideoPresets43 = {
|
48
|
-
qvga: new VideoPreset(240, 180,
|
49
|
-
vga: new VideoPreset(480, 360,
|
50
|
-
qhd: new VideoPreset(720, 540,
|
51
|
-
hd: new VideoPreset(960, 720,
|
52
|
-
fhd: new VideoPreset(1440, 1080,
|
49
|
+
qvga: new VideoPreset(240, 180, 90000, 10),
|
50
|
+
vga: new VideoPreset(480, 360, 225000, 20),
|
51
|
+
qhd: new VideoPreset(720, 540, 450000, 25),
|
52
|
+
hd: new VideoPreset(960, 720, 1500000, 30),
|
53
|
+
fhd: new VideoPreset(1440, 1080, 2800000, 30),
|
53
54
|
};
|
54
55
|
exports.ScreenSharePresets = {
|
55
56
|
vga: new VideoPreset(640, 360, 200000, 3),
|
56
57
|
hd_8: new VideoPreset(1280, 720, 400000, 5),
|
57
|
-
hd_15: new VideoPreset(1280, 720,
|
58
|
-
fhd_15: new VideoPreset(1920, 1080,
|
59
|
-
fhd_30: new VideoPreset(1920, 1080,
|
58
|
+
hd_15: new VideoPreset(1280, 720, 1000000, 15),
|
59
|
+
fhd_15: new VideoPreset(1920, 1080, 1500000, 15),
|
60
|
+
fhd_30: new VideoPreset(1920, 1080, 3000000, 30),
|
60
61
|
};
|
61
62
|
//# 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":";;;AA4JA,MAAa,WAAW;IAOtB,YAAY,KAAa,EAAE,MAAc,EAAE,UAAkB,EAAE,YAAqB;QAClF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG;YACd,UAAU;YACV,YAAY;SACb,CAAC;IACJ,CAAC;IAED,IAAI,UAAU;QACZ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY;YACrC,WAAW,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;SACtC,CAAC;IACJ,CAAC;CACF;AAxBD,kCAwBC;AAQD,IAAiB,YAAY,CAU5B;AAVD,WAAiB,YAAY;IACd,sBAAS,GAAgB;QACpC,UAAU,EAAE,KAAM;KACnB,CAAC;IACW,mBAAM,GAAgB;QACjC,UAAU,EAAE,KAAM;KACnB,CAAC;IACW,kBAAK,GAAgB;QAChC,UAAU,EAAE,KAAM;KACnB,CAAC;AACJ,CAAC,EAVgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAU5B;AAED;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC5C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,EAAE,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,OAAS,EAAE,EAAE,CAAC;IAC7C,GAAG,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;CAChD,CAAC;AAEF;;GAEG;AACU,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAM,EAAE,EAAE,CAAC;IAC3C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,EAAE,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,OAAS,EAAE,EAAE,CAAC;IAC5C,GAAG,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;CAChD,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAChC,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,CAAC,CAAC;IAC1C,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,MAAO,EAAE,CAAC,CAAC;IAC5C,KAAK,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,OAAS,EAAE,EAAE,CAAC;IAChD,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;IAClD,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;CACnD,CAAC"}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { AudioCaptureOptions, CreateLocalTracksOptions, VideoCaptureOptions } from './options';
|
2
|
+
export declare function mergeDefaultOptions(options?: CreateLocalTracksOptions, audioDefaults?: AudioCaptureOptions, videoDefaults?: VideoCaptureOptions): CreateLocalTracksOptions;
|
3
|
+
export declare function constraintsForOptions(options: CreateLocalTracksOptions): MediaStreamConstraints;
|
@@ -0,0 +1,68 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.constraintsForOptions = exports.mergeDefaultOptions = void 0;
|
4
|
+
function mergeDefaultOptions(options, audioDefaults, videoDefaults) {
|
5
|
+
const opts = Object.assign({}, options);
|
6
|
+
if (opts.audio === true)
|
7
|
+
opts.audio = {};
|
8
|
+
if (opts.video === true)
|
9
|
+
opts.video = {};
|
10
|
+
// use defaults
|
11
|
+
if (opts.audio) {
|
12
|
+
mergeObjectWithoutOverwriting(opts.audio, audioDefaults);
|
13
|
+
}
|
14
|
+
if (opts.video) {
|
15
|
+
mergeObjectWithoutOverwriting(opts.video, videoDefaults);
|
16
|
+
}
|
17
|
+
return opts;
|
18
|
+
}
|
19
|
+
exports.mergeDefaultOptions = mergeDefaultOptions;
|
20
|
+
function mergeObjectWithoutOverwriting(mainObject, objectToMerge) {
|
21
|
+
Object.keys(objectToMerge).forEach((key) => {
|
22
|
+
if (mainObject[key] === undefined)
|
23
|
+
mainObject[key] = objectToMerge[key];
|
24
|
+
});
|
25
|
+
return mainObject;
|
26
|
+
}
|
27
|
+
function constraintsForOptions(options) {
|
28
|
+
const constraints = {};
|
29
|
+
if (options.video) {
|
30
|
+
// default video options
|
31
|
+
if (typeof options.video === 'object') {
|
32
|
+
const videoOptions = {};
|
33
|
+
const target = videoOptions;
|
34
|
+
const source = options.video;
|
35
|
+
Object.keys(source).forEach((key) => {
|
36
|
+
switch (key) {
|
37
|
+
case 'resolution':
|
38
|
+
// flatten VideoResolution fields
|
39
|
+
mergeObjectWithoutOverwriting(target, source.resolution);
|
40
|
+
break;
|
41
|
+
default:
|
42
|
+
target[key] = source[key];
|
43
|
+
}
|
44
|
+
});
|
45
|
+
constraints.video = videoOptions;
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
constraints.video = options.video;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
else {
|
52
|
+
constraints.video = false;
|
53
|
+
}
|
54
|
+
if (options.audio) {
|
55
|
+
if (typeof options.audio === 'object') {
|
56
|
+
constraints.audio = options.audio;
|
57
|
+
}
|
58
|
+
else {
|
59
|
+
constraints.audio = true;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
else {
|
63
|
+
constraints.audio = false;
|
64
|
+
}
|
65
|
+
return constraints;
|
66
|
+
}
|
67
|
+
exports.constraintsForOptions = constraintsForOptions;
|
68
|
+
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/room/track/utils.ts"],"names":[],"mappings":";;;AAKA,SAAgB,mBAAmB,CACjC,OAAkC,EAClC,aAAmC,EACnC,aAAmC;IAEnC,MAAM,IAAI,qBACL,OAAO,CACX,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;QAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;QAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAEzC,eAAe;IACf,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,6BAA6B,CAAC,IAAI,CAAC,KAAgC,EACjE,aAAwC,CAAC,CAAC;KAC7C;IACD,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,6BAA6B,CAAC,IAAI,CAAC,KAAgC,EACjE,aAAwC,CAAC,CAAC;KAC7C;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AArBD,kDAqBC;AAED,SAAS,6BAA6B,CACpC,UAAmC,EACnC,aAAsC;IAEtC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACzC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,UAAU,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAiC;IACrE,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,wBAAwB;QACxB,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrC,MAAM,YAAY,GAA0B,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,YAAuC,CAAC;YACvD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAgC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,QAAQ,GAAG,EAAE;oBACX,KAAK,YAAY;wBACf,iCAAiC;wBACjC,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,UAAqC,CAAC,CAAC;wBACpF,MAAM;oBACR;wBACE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;iBAC7B;YACH,CAAC,CAAC,CAAC;YACH,WAAW,CAAC,KAAK,GAAG,YAAY,CAAC;SAClC;aAAM;YACL,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SACnC;KACF;SAAM;QACL,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;KAC3B;IAED,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrC,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SACnC;aAAM;YACL,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;SAC1B;KACF;SAAM;QACL,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;KAC3B;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AArCD,sDAqCC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|