Selaa lähdekoodia

fix(video-quality): Add the ability to request Ultra HD resolutions

Change the preferredVideoQuality and maxReceiverVideoQuality values to Ultra HD resolutions. The requested resolution can be as high as 4K to facilitate VPaaS customers to request 4K. The sender video resolution will always max out at the value specified in the video constraints from config.js settings.
master
Jaya Allamsetty 5 vuotta sitten
vanhempi
commit
39af6f5943

+ 1
- 0
react/features/video-quality/components/OverflowMenuVideoQualityItem.web.js Näytä tiedosto

@@ -21,6 +21,7 @@ import { findNearestQualityLevel } from '../functions';
21 21
  * @type {Object}
22 22
  */
23 23
 const VIDEO_QUALITY_TO_ICON = {
24
+    [VIDEO_QUALITY_LEVELS.ULTRA]: IconVideoQualityHD,
24 25
     [VIDEO_QUALITY_LEVELS.HIGH]: IconVideoQualityHD,
25 26
     [VIDEO_QUALITY_LEVELS.STANDARD]: IconVideoQualitySD,
26 27
     [VIDEO_QUALITY_LEVELS.LOW]: IconVideoQualityLD

+ 19
- 2
react/features/video-quality/components/VideoQualitySlider.web.js Näytä tiedosto

@@ -14,6 +14,7 @@ import { VIDEO_QUALITY_LEVELS } from '../constants';
14 14
 import logger from '../logger';
15 15
 
16 16
 const {
17
+    ULTRA,
17 18
     HIGH,
18 19
     STANDARD,
19 20
     LOW
@@ -97,6 +98,7 @@ class VideoQualitySlider extends Component<Props> {
97 98
         this._enableLowDefinition = this._enableLowDefinition.bind(this);
98 99
         this._enableStandardDefinition
99 100
             = this._enableStandardDefinition.bind(this);
101
+        this._enableUltraHighDefinition = this._enableUltraHighDefinition.bind(this);
100 102
         this._onSliderChange = this._onSliderChange.bind(this);
101 103
 
102 104
         /**
@@ -125,9 +127,9 @@ class VideoQualitySlider extends Component<Props> {
125 127
                 videoQuality: STANDARD
126 128
             },
127 129
             {
128
-                onSelect: this._enableHighDefinition,
130
+                onSelect: this._enableUltraHighDefinition,
129 131
                 textKey: 'videoStatus.highDefinition',
130
-                videoQuality: HIGH
132
+                videoQuality: ULTRA
131 133
             }
132 134
         ];
133 135
     }
@@ -298,6 +300,21 @@ class VideoQualitySlider extends Component<Props> {
298 300
         this._setPreferredVideoQuality(STANDARD);
299 301
     }
300 302
 
303
+    _enableUltraHighDefinition: () => void;
304
+
305
+    /**
306
+     * Dispatches an action to receive ultra HD quality video from remote
307
+     * participants.
308
+     *
309
+     * @private
310
+     * @returns {void}
311
+     */
312
+    _enableUltraHighDefinition() {
313
+        sendAnalytics(createEvent('ultra high'));
314
+        logger.log('Video quality: ultra high enabled');
315
+        this._setPreferredVideoQuality(ULTRA);
316
+    }
317
+
301 318
     /**
302 319
      * Matches the current video quality state with corresponding index of the
303 320
      * component's slider options.

+ 1
- 0
react/features/video-quality/constants.js Näytä tiedosto

@@ -5,6 +5,7 @@
5 5
  * @type {object}
6 6
  */
7 7
 export const VIDEO_QUALITY_LEVELS = {
8
+    ULTRA: 2160,
8 9
     HIGH: 720,
9 10
     STANDARD: 360,
10 11
     LOW: 180

+ 2
- 2
react/features/video-quality/functions.js Näytä tiedosto

@@ -2,8 +2,8 @@
2 2
 
3 3
 import { CFG_LVL_TO_APP_QUALITY_LVL, VIDEO_QUALITY_LEVELS } from './constants';
4 4
 
5
-const { LOW, STANDARD, HIGH } = VIDEO_QUALITY_LEVELS;
6
-const videoQualityLevels = [ LOW, STANDARD, HIGH ];
5
+const { LOW, STANDARD, HIGH, ULTRA } = VIDEO_QUALITY_LEVELS;
6
+const videoQualityLevels = [ LOW, STANDARD, HIGH, ULTRA ];
7 7
 
8 8
 /**
9 9
  * Finds the nearest video quality level to the passed video quality.

+ 1
- 1
react/features/video-quality/middleware.js Näytä tiedosto

@@ -81,7 +81,7 @@ StateListenerRegistry.register(
81 81
         const { maxReceiverVideoQuality } = state['features/video-quality'];
82 82
         const { maxFullResolutionParticipants = 2 } = state['features/base/config'];
83 83
 
84
-        let newMaxRecvVideoQuality = VIDEO_QUALITY_LEVELS.HIGH;
84
+        let newMaxRecvVideoQuality = VIDEO_QUALITY_LEVELS.ULTRA;
85 85
 
86 86
         if (reducedUI) {
87 87
             newMaxRecvVideoQuality = VIDEO_QUALITY_LEVELS.LOW;

+ 2
- 2
react/features/video-quality/reducer.js Näytä tiedosto

@@ -7,9 +7,9 @@ import { validateMinHeightForQualityLvl } from './functions';
7 7
 import logger from './logger';
8 8
 
9 9
 const DEFAULT_STATE = {
10
-    maxReceiverVideoQuality: VIDEO_QUALITY_LEVELS.HIGH,
10
+    maxReceiverVideoQuality: VIDEO_QUALITY_LEVELS.ULTRA,
11 11
     minHeightForQualityLvl: new Map(),
12
-    preferredVideoQuality: VIDEO_QUALITY_LEVELS.HIGH
12
+    preferredVideoQuality: VIDEO_QUALITY_LEVELS.ULTRA
13 13
 };
14 14
 
15 15
 DEFAULT_STATE.minHeightForQualityLvl.set(360, VIDEO_QUALITY_LEVELS.STANDARD);

Loading…
Peruuta
Tallenna