snapshot of https://github.com/jitsi/jitsi-meet.git @ fd1749dd28f4138aa80234fc7f311b19aaffa0e7 (2026-09-15)
This commit is contained in:
45
react/features/video-quality/middleware.ts
Normal file
45
react/features/video-quality/middleware.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { CONFERENCE_JOINED } from '../base/conference/actionTypes';
|
||||
import { SET_CONFIG } from '../base/config/actionTypes';
|
||||
import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
|
||||
|
||||
import { setPreferredVideoQuality } from './actions';
|
||||
import logger from './logger';
|
||||
|
||||
import './subscriber';
|
||||
|
||||
/**
|
||||
* Implements the middleware of the feature video-quality.
|
||||
*
|
||||
* @param {Store} store - The redux store.
|
||||
* @returns {Function}
|
||||
*/
|
||||
MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
|
||||
const result = next(action);
|
||||
|
||||
switch (action.type) {
|
||||
case CONFERENCE_JOINED: {
|
||||
if (navigator.product === 'ReactNative') {
|
||||
const { resolution } = getState()['features/base/config'];
|
||||
|
||||
if (typeof resolution !== 'undefined') {
|
||||
dispatch(setPreferredVideoQuality(Number.parseInt(`${resolution}`, 10)));
|
||||
logger.info(`Configured preferred receiver video frame height to: ${resolution}`);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SET_CONFIG: {
|
||||
const state = getState();
|
||||
const { videoQuality = {} } = state['features/base/config'];
|
||||
const { persistedPrefferedVideoQuality } = state['features/video-quality-persistent-storage'];
|
||||
|
||||
if (videoQuality.persist && typeof persistedPrefferedVideoQuality !== 'undefined') {
|
||||
dispatch(setPreferredVideoQuality(persistedPrefferedVideoQuality));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
});
|
||||
Reference in New Issue
Block a user