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_HEIGHT = 720;
|
||||||
export const REQUESTED_VIDEO_FRAMERATE = 30;
|
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_WIDTH = 2880;
|
||||||
export const MAX_FRAME_HEIGHT = 1800;
|
export const MAX_FRAME_HEIGHT = 1800;
|
||||||
export const FRAME_BUFFER_SIZE = MAX_FRAME_WIDTH * MAX_FRAME_HEIGHT * 4;
|
export const FRAME_BUFFER_SIZE = MAX_FRAME_WIDTH * MAX_FRAME_HEIGHT * 4;
|
||||||
|
|
|
@ -96,6 +96,9 @@ import {
|
||||||
REQUESTED_VIDEO_WIDTH,
|
REQUESTED_VIDEO_WIDTH,
|
||||||
REQUESTED_VIDEO_HEIGHT,
|
REQUESTED_VIDEO_HEIGHT,
|
||||||
REQUESTED_VIDEO_FRAMERATE,
|
REQUESTED_VIDEO_FRAMERATE,
|
||||||
|
REQUESTED_SCREEN_SHARE_WIDTH,
|
||||||
|
REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||||
|
REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||||
} from '../calling/constants';
|
} from '../calling/constants';
|
||||||
import { callingMessageToProto } from '../util/callingMessageToProto';
|
import { callingMessageToProto } from '../util/callingMessageToProto';
|
||||||
import { requestMicrophonePermissions } from '../util/requestMicrophonePermissions';
|
import { requestMicrophonePermissions } from '../util/requestMicrophonePermissions';
|
||||||
|
@ -2042,10 +2045,9 @@ export class CallingClass {
|
||||||
this.hadLocalVideoBeforePresenting = hasLocalVideo;
|
this.hadLocalVideoBeforePresenting = hasLocalVideo;
|
||||||
drop(
|
drop(
|
||||||
this.enableCaptureAndSend(call, {
|
this.enableCaptureAndSend(call, {
|
||||||
// 15fps is much nicer but takes up a lot more CPU.
|
maxFramerate: REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||||
maxFramerate: 5,
|
maxHeight: REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||||
maxHeight: 1800,
|
maxWidth: REQUESTED_SCREEN_SHARE_WIDTH,
|
||||||
maxWidth: 2880,
|
|
||||||
mediaStream,
|
mediaStream,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,9 +10,9 @@ import * as Errors from '../types/errors';
|
||||||
import type { PresentableSource } from '../types/Calling';
|
import type { PresentableSource } from '../types/Calling';
|
||||||
import type { LocalizerType } from '../types/Util';
|
import type { LocalizerType } from '../types/Util';
|
||||||
import {
|
import {
|
||||||
REQUESTED_VIDEO_WIDTH,
|
REQUESTED_SCREEN_SHARE_WIDTH,
|
||||||
REQUESTED_VIDEO_HEIGHT,
|
REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||||
REQUESTED_VIDEO_FRAMERATE,
|
REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||||
} from '../calling/constants';
|
} from '../calling/constants';
|
||||||
import { strictAssert } from './assert';
|
import { strictAssert } from './assert';
|
||||||
import { explodePromise } from './explodePromise';
|
import { explodePromise } from './explodePromise';
|
||||||
|
@ -178,16 +178,16 @@ export class DesktopCapturer {
|
||||||
const stream = await navigator.mediaDevices.getDisplayMedia({
|
const stream = await navigator.mediaDevices.getDisplayMedia({
|
||||||
video: {
|
video: {
|
||||||
width: {
|
width: {
|
||||||
max: REQUESTED_VIDEO_WIDTH,
|
max: REQUESTED_SCREEN_SHARE_WIDTH,
|
||||||
ideal: REQUESTED_VIDEO_WIDTH,
|
ideal: REQUESTED_SCREEN_SHARE_WIDTH,
|
||||||
},
|
},
|
||||||
height: {
|
height: {
|
||||||
max: REQUESTED_VIDEO_HEIGHT,
|
max: REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||||
ideal: REQUESTED_VIDEO_HEIGHT,
|
ideal: REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||||
},
|
},
|
||||||
frameRate: {
|
frameRate: {
|
||||||
max: REQUESTED_VIDEO_FRAMERATE,
|
max: REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||||
ideal: REQUESTED_VIDEO_FRAMERATE,
|
ideal: REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -223,9 +223,9 @@ export class DesktopCapturer {
|
||||||
let isRunning = false;
|
let isRunning = false;
|
||||||
|
|
||||||
const stream = new macScreenShare.Stream({
|
const stream = new macScreenShare.Stream({
|
||||||
width: REQUESTED_VIDEO_WIDTH,
|
width: REQUESTED_SCREEN_SHARE_WIDTH,
|
||||||
height: REQUESTED_VIDEO_HEIGHT,
|
height: REQUESTED_SCREEN_SHARE_HEIGHT,
|
||||||
frameRate: REQUESTED_VIDEO_FRAMERATE,
|
frameRate: REQUESTED_SCREEN_SHARE_FRAMERATE,
|
||||||
|
|
||||||
onStart: () => {
|
onStart: () => {
|
||||||
isRunning = true;
|
isRunning = true;
|
||||||
|
|
Loading…
Reference in a new issue