Expose simulcast settings to client config

master
Håvar Aambø Fosstveit 2020-03-21 21:03:11 +01:00
parent 9670e45e7a
commit d64247d12d
2 changed files with 35 additions and 4 deletions

View File

@ -23,6 +23,18 @@ var config =
* ultra ~ 3840x2560 * ultra ~ 3840x2560
**/ **/
defaultResolution : 'medium', defaultResolution : 'medium',
// Enable or disable simulcast for webcam video
simulcast : true,
// Enable or disable simulcast for screen sharing video
simulcastSharing : false,
// Simulcast encoding layers and levels
simulcastEncodings :
[
{ scaleResolutionDownBy: 4 },
{ scaleResolutionDownBy: 2 },
{ scaleResolutionDownBy: 1 }
],
// Socket.io request timeout
requestTimeout : 10000, requestTimeout : 10000,
transportOptions : transportOptions :
{ {

View File

@ -157,9 +157,15 @@ export default class RoomClient
// Whether simulcast should be used. // Whether simulcast should be used.
this._useSimulcast = useSimulcast; this._useSimulcast = useSimulcast;
if ('simulcast' in window.config)
this._useSimulcast = window.config.simulcast;
// Whether simulcast should be used for sharing // Whether simulcast should be used for sharing
this._useSharingSimulcast = useSharingSimulcast; this._useSharingSimulcast = useSharingSimulcast;
if ('simulcastSharing' in window.config)
this._useSharingSimulcast = window.config.simulcastSharing;
this._muted = muted; this._muted = muted;
// This device // This device
@ -2573,10 +2579,18 @@ export default class RoomClient
encodings = VIDEO_SVC_ENCODINGS; encodings = VIDEO_SVC_ENCODINGS;
} }
else else
{
if ('simulcastEncodings' in window.config)
{
encodings = window.config.simulcastEncodings
.map((encoding) => ({ ...encoding, dtx: true }));
}
else
{ {
encodings = VIDEO_SIMULCAST_ENCODINGS encodings = VIDEO_SIMULCAST_ENCODINGS
.map((encoding) => ({ ...encoding, dtx: true })); .map((encoding) => ({ ...encoding, dtx: true }));
} }
}
this._screenSharingProducer = await this._sendTransport.produce( this._screenSharingProducer = await this._sendTransport.produce(
{ {
@ -2742,8 +2756,13 @@ export default class RoomClient
if (firstVideoCodec.mimeType.toLowerCase() === 'video/vp9') if (firstVideoCodec.mimeType.toLowerCase() === 'video/vp9')
encodings = VIDEO_KSVC_ENCODINGS; encodings = VIDEO_KSVC_ENCODINGS;
else
{
if ('simulcastEncodings' in window.config)
encodings = window.config.simulcastEncodings;
else else
encodings = VIDEO_SIMULCAST_ENCODINGS; encodings = VIDEO_SIMULCAST_ENCODINGS;
}
this._webcamProducer = await this._sendTransport.produce( this._webcamProducer = await this._sendTransport.produce(
{ {