|  | <!doctype html> | 
|  | <meta charset=utf-8> | 
|  | <title>RTCRtpParameters encodings</title> | 
|  | <script src="/resources/testharness.js"></script> | 
|  | <script src="/resources/testharnessreport.js"></script> | 
|  | <script src="/webrtc/dictionary-helper.js"></script> | 
|  | <script src="/webrtc/RTCRtpParameters-helper.js"></script> | 
|  | <script> | 
|  | 'use strict'; | 
|  |  | 
|  | // Test is based on the following editor draft: | 
|  | // https://w3c.github.io/webrtc-svc/ | 
|  |  | 
|  | // Get the first encoding in param.encodings. | 
|  | // Asserts that param.encodings has at least one element. | 
|  | function getFirstEncoding(param) { | 
|  | const { encodings } = param; | 
|  | assert_equals(encodings.length, 1); | 
|  | return encodings[0]; | 
|  | } | 
|  |  | 
|  | promise_test(async t => { | 
|  | const pc = new RTCPeerConnection(); | 
|  | t.add_cleanup(() => pc.close()); | 
|  | const { sender } = pc.addTransceiver('video', { | 
|  | sendEncodings: [{scalabilityMode: 'L1T3'}], | 
|  | }); | 
|  |  | 
|  | const param = sender.getParameters(); | 
|  | const encoding = getFirstEncoding(param); | 
|  |  | 
|  | assert_equals(encoding.scalabilityMode, 'L1T3'); | 
|  |  | 
|  | }, `Setting scalabilityMode to a legal value should be accepted`); | 
|  |  | 
|  | promise_test(async t => { | 
|  | const capabilities = RTCRtpSender.getCapabilities('video'); | 
|  | var svcSupported = false; | 
|  | for (const codec of capabilities.codecs) { | 
|  | if ('scalabilityModes' in codec && codec.scalabilityModes.length > 0) { | 
|  | svcSupported = true; | 
|  | } | 
|  | } | 
|  | assert_true(svcSupported); | 
|  | }, `Sender capabilities should include at least some scalability modes`); | 
|  |  | 
|  | </script> |