Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add SVC and Simulcast support for AV1 and VP9. (jitsi#2350)
Add SVC and Simulcast support for AV1 and VP9. The default mode is the full SVC mode for VP9. It works as expected with the current version of JVB. AV1 in the client is only supported when the bridge negotiates the Dependency Descriptor extension headers which are needed for reading the layer information for AV1 and H.264 video frames. * feat: Enable H.264 simulcast support. Multi-encoding simulcast for H.264 is supported now because of the DD header ext support added on the bridge side. * fix(video-quality): Add default bitrates for all codecs. Expect the videoQuality settings in the new format, deprecated configs are still supported. videoQuality: { AV1: { maxBitratesVideo: { low: 100000, standard: 300000, high: 1000000, ssHigh: 1500000 }, useScalabilityModeAPI: { enabled: true, useSimulcast: true, //(defaults to SVC), useKSVC: true //(defaults to L3T3_KEY) }, }, H264: { maxBitratesVideo: { low: 200000, standard: 500000, high: 1500000, ssHigh: 2500000 } }, VP8: { maxBitratesVideo: { low: 200000, standard: 500000, high: 1500000, ssHigh: 2500000 } }, VP9: { maxBitratesVideo: { low: 100000, standard: 300000, high: 1200000, ssHigh: 2500000 }, useScalabilityModeAPI: { enabled: true, useSimulcast: true, //(defaults to SVC), useKSVC: true //(defaults to L3T3_KEY) }, } } * Disable encodings when requested height for screenshare is 0. * feat: add unit tests for scalability modes. * ref: Move all encoding configuration calculation to TPCUtils. * Add more unit tests for VP9 K-SVC mode. * Make codec name in settings case insensitive. Also read the deprecated max bitrates correctly, add unit tests to test it. * ref(TPC): isSimulcastOn -> isSpatialScalabilityOn. It makes more sense to call it spatial scalability than simulcast now that full SVC support is available. * fix: Negotiate AV1 DD header exts only for AV1 and H.264. * fix: Rename setting useL3T3Mode->useKSVC and adjust the defaults.
- Loading branch information