Ver código fonte

fix(AV1): scalability for FF 136+

master
Hristo Terezov 5 meses atrás
pai
commit
ec955fae34

+ 5
- 0
modules/RTC/TPCUtils.js Ver arquivo

728
             // only one outbound-rtp stream is present, three separate encodings have to be configured.
728
             // only one outbound-rtp stream is present, three separate encodings have to be configured.
729
             || (!this.codecSettings[videoCodec].scalabilityModeEnabled && videoCodec === CodecMimeType.VP9)
729
             || (!this.codecSettings[videoCodec].scalabilityModeEnabled && videoCodec === CodecMimeType.VP9)
730
 
730
 
731
+            // FF uses simulcast with AV1.
732
+            || (!this.codecSettings[videoCodec].scalabilityModeEnabled
733
+                && this.codecSettings[videoCodec].useSimulcast
734
+                && videoCodec === CodecMimeType.AV1)
735
+
731
             // When scalability is enabled, always for H.264, and only when simulcast is explicitly enabled via
736
             // When scalability is enabled, always for H.264, and only when simulcast is explicitly enabled via
732
             // config.js for VP9 and AV1 since full SVC is the default mode for these 2 codecs.
737
             // config.js for VP9 and AV1 since full SVC is the default mode for these 2 codecs.
733
             || (this.codecSettings[videoCodec].scalabilityModeEnabled
738
             || (this.codecSettings[videoCodec].scalabilityModeEnabled

+ 9
- 0
modules/browser/BrowserCapabilities.js Ver arquivo

245
         return this.isChromiumBased() && this.isEngineVersionLessThan(112);
245
         return this.isChromiumBased() && this.isEngineVersionLessThan(112);
246
     }
246
     }
247
 
247
 
248
+    /**
249
+     * Returns true if K-SVC is supported for AV1.
250
+     *
251
+     * @returns {boolean}
252
+     */
253
+    supportsKSVCForAV1() {
254
+        return !this.isFirefox();
255
+    }
256
+
248
     /**
257
     /**
249
      * Returns true if VP9 is supported by the client on the browser. VP9 is currently disabled on Safari
258
      * Returns true if VP9 is supported by the client on the browser. VP9 is currently disabled on Safari
250
      * and older versions of Firefox because of issues. Please check https://bugs.webkit.org/show_bug.cgi?id=231074 for
259
      * and older versions of Firefox because of issues. Please check https://bugs.webkit.org/show_bug.cgi?id=231074 for

+ 2
- 2
service/RTC/StandardVideoQualitySettings.ts Ver arquivo

57
             none: 0
57
             none: 0
58
         },
58
         },
59
         scalabilityModeEnabled: browser.supportsScalabilityModeAPI(),
59
         scalabilityModeEnabled: browser.supportsScalabilityModeAPI(),
60
-        useSimulcast: false, // defaults to SVC.
61
-        useKSVC: true // defaults to L3T3_KEY for SVC mode.
60
+        useSimulcast: !browser.supportsKSVCForAV1(),
61
+        useKSVC: browser.supportsKSVCForAV1()
62
     },
62
     },
63
     h264: {
63
     h264: {
64
         maxBitratesVideo: {
64
         maxBitratesVideo: {

Carregando…
Cancelar
Salvar