Fix screenshare resolution
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
This commit is contained in:
parent
c5e5b54561
commit
6baa4a7739
3 changed files with 23 additions and 16 deletions
|
@ -8,6 +8,11 @@ export const REQUESTED_VIDEO_WIDTH = 960;
|
|||
export const REQUESTED_VIDEO_HEIGHT = 720;
|
||||
export const REQUESTED_VIDEO_FRAMERATE = 30;
|
||||
|
||||
export const REQUESTED_SCREEN_SHARE_WIDTH = 2880;
|
||||
export const REQUESTED_SCREEN_SHARE_HEIGHT = 1800;
|
||||
// 15fps is much nicer but takes up a lot more CPU.
|
||||
export const REQUESTED_SCREEN_SHARE_FRAMERATE = 5;
|
||||
|
||||
export const MAX_FRAME_WIDTH = 2880;
|
||||
export const MAX_FRAME_HEIGHT = 1800;
|
||||
export const FRAME_BUFFER_SIZE = MAX_FRAME_WIDTH * MAX_FRAME_HEIGHT * 4;
|
||||
|
|
|
@ -96,6 +96,9 @@ import {
|
|||
REQUESTED_VIDEO_WIDTH,
|
||||
REQUESTED_VIDEO_HEIGHT,
|
||||
REQUESTED_VIDEO_FRAMERATE,
|
||||
REQUESTED_SCREEN_SHARE_WIDTH,
|
||||
REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||
REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||
} from '../calling/constants';
|
||||
import { callingMessageToProto } from '../util/callingMessageToProto';
|
||||
import { requestMicrophonePermissions } from '../util/requestMicrophonePermissions';
|
||||
|
@ -2042,10 +2045,9 @@ export class CallingClass {
|
|||
this.hadLocalVideoBeforePresenting = hasLocalVideo;
|
||||
drop(
|
||||
this.enableCaptureAndSend(call, {
|
||||
// 15fps is much nicer but takes up a lot more CPU.
|
||||
maxFramerate: 5,
|
||||
maxHeight: 1800,
|
||||
maxWidth: 2880,
|
||||
maxFramerate: REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||
maxHeight: REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||
maxWidth: REQUESTED_SCREEN_SHARE_WIDTH,
|
||||
mediaStream,
|
||||
})
|
||||
);
|
||||
|
|
|
@ -10,9 +10,9 @@ import * as Errors from '../types/errors';
|
|||
import type { PresentableSource } from '../types/Calling';
|
||||
import type { LocalizerType } from '../types/Util';
|
||||
import {
|
||||
REQUESTED_VIDEO_WIDTH,
|
||||
REQUESTED_VIDEO_HEIGHT,
|
||||
REQUESTED_VIDEO_FRAMERATE,
|
||||
REQUESTED_SCREEN_SHARE_WIDTH,
|
||||
REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||
REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||
} from '../calling/constants';
|
||||
import { strictAssert } from './assert';
|
||||
import { explodePromise } from './explodePromise';
|
||||
|
@ -178,16 +178,16 @@ export class DesktopCapturer {
|
|||
const stream = await navigator.mediaDevices.getDisplayMedia({
|
||||
video: {
|
||||
width: {
|
||||
max: REQUESTED_VIDEO_WIDTH,
|
||||
ideal: REQUESTED_VIDEO_WIDTH,
|
||||
max: REQUESTED_SCREEN_SHARE_WIDTH,
|
||||
ideal: REQUESTED_SCREEN_SHARE_WIDTH,
|
||||
},
|
||||
height: {
|
||||
max: REQUESTED_VIDEO_HEIGHT,
|
||||
ideal: REQUESTED_VIDEO_HEIGHT,
|
||||
max: REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||
ideal: REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||
},
|
||||
frameRate: {
|
||||
max: REQUESTED_VIDEO_FRAMERATE,
|
||||
ideal: REQUESTED_VIDEO_FRAMERATE,
|
||||
max: REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||
ideal: REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
@ -223,9 +223,9 @@ export class DesktopCapturer {
|
|||
let isRunning = false;
|
||||
|
||||
const stream = new macScreenShare.Stream({
|
||||
width: REQUESTED_VIDEO_WIDTH,
|
||||
height: REQUESTED_VIDEO_HEIGHT,
|
||||
frameRate: REQUESTED_VIDEO_FRAMERATE,
|
||||
width: REQUESTED_SCREEN_SHARE_WIDTH,
|
||||
height: REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||
frameRate: REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||
|
||||
onStart: () => {
|
||||
isRunning = true;
|
||||
|
|
Loading…
Reference in a new issue