1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // @flow
-
- import type { Dispatch } from 'redux';
-
- import { SET_MAX_RECEIVER_VIDEO_QUALITY, SET_PREFERRED_VIDEO_QUALITY } from './actionTypes';
- import { VIDEO_QUALITY_LEVELS } from './constants';
- import logger from './logger';
-
- /**
- * Sets the max frame height the user prefers to send and receive from the
- * remote participants.
- *
- * @param {number} preferredVideoQuality - The max video resolution to send and
- * receive.
- * @returns {{
- * type: SET_PREFERRED_VIDEO_QUALITY,
- * preferredVideoQuality: number
- * }}
- */
- export function setPreferredVideoQuality(preferredVideoQuality: number) {
- return {
- type: SET_PREFERRED_VIDEO_QUALITY,
- preferredVideoQuality
- };
- }
-
- /**
- * Sets the max frame height that should be received from remote videos.
- *
- * @param {number} maxReceiverVideoQuality - The max video frame height to
- * receive.
- * @returns {{
- * type: SET_MAX_RECEIVER_VIDEO_QUALITY,
- * maxReceiverVideoQuality: number
- * }}
- */
- export function setMaxReceiverVideoQuality(maxReceiverVideoQuality: number) {
- return {
- type: SET_MAX_RECEIVER_VIDEO_QUALITY,
- maxReceiverVideoQuality
- };
- }
-
-
- /**
- * Sets the maximum video size the local participant should send and receive from
- * remote participants.
- *
- * @param {number} frameHeight - The user preferred max frame height for send and
- * receive video.
- * @returns {void}
- */
- export function setVideoQuality(frameHeight: number) {
- return (dispatch: Dispatch<any>, getState: Function) => {
- const { conference, maxReceiverVideoQuality } = getState()['features/base/conference'];
-
- if (frameHeight < VIDEO_QUALITY_LEVELS.LOW) {
- logger.error(`Invalid frame height for video quality - ${frameHeight}`);
-
- return;
- }
- conference.setReceiverVideoConstraint(Math.min(frameHeight, maxReceiverVideoQuality));
- conference.setSenderVideoConstraint(Math.min(frameHeight, VIDEO_QUALITY_LEVELS.HIGH))
- .catch(err => {
- logger.error(`Set video quality command failed - ${err}`);
- });
- };
- }
|