Add remote config for sending higher res screen share

This commit is contained in:
Rashad Sookram 2023-11-06 11:45:37 -05:00 committed by GitHub
parent 9eee548d2a
commit 754bb02c06
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 3 deletions

View file

@ -17,7 +17,7 @@ import { getCountryCode } from './types/PhoneNumber';
export type ConfigKeyType = export type ConfigKeyType =
| 'cds.disableCompatibilityMode' | 'cds.disableCompatibilityMode'
| 'desktop.announcementGroup' | 'desktop.announcementGroup'
| 'desktop.calling.audioLevelForSpeaking' | 'desktop.calling.sendScreenShare1800'
| 'desktop.cdsi.returnAcisWithoutUaks' | 'desktop.cdsi.returnAcisWithoutUaks'
| 'desktop.clientExpiration' | 'desktop.clientExpiration'
| 'desktop.editMessageSend' | 'desktop.editMessageSend'

View file

@ -40,6 +40,7 @@ import {
import { uniqBy, noop } from 'lodash'; import { uniqBy, noop } from 'lodash';
import Long from 'long'; import Long from 'long';
import * as RemoteConfig from '../RemoteConfig';
import type { import type {
ActionsType as CallingReduxActionsType, ActionsType as CallingReduxActionsType,
GroupCallParticipantInfoType, GroupCallParticipantInfoType,
@ -1399,13 +1400,20 @@ export class CallingClass {
this.videoCapturer.disable(); this.videoCapturer.disable();
if (source) { if (source) {
this.hadLocalVideoBeforePresenting = hasLocalVideo; this.hadLocalVideoBeforePresenting = hasLocalVideo;
this.videoCapturer.enableCaptureAndSend(call, { const options = {
// 15fps is much nicer but takes up a lot more CPU. // 15fps is much nicer but takes up a lot more CPU.
maxFramerate: 5, maxFramerate: 5,
maxHeight: 1080, maxHeight: 1080,
maxWidth: 1920, maxWidth: 1920,
screenShareSourceId: source.id, screenShareSourceId: source.id,
}); };
if (RemoteConfig.isEnabled('desktop.calling.sendScreenShare1800')) {
options.maxWidth = 2880;
options.maxHeight = 1800;
}
this.videoCapturer.enableCaptureAndSend(call, options);
this.setOutgoingVideo(conversationId, true); this.setOutgoingVideo(conversationId, true);
} else { } else {
this.setOutgoingVideo( this.setOutgoingVideo(