| <!doctype html> | |
| <meta charset=utf-8> | |
| <title>RTCPeerConnection Simulcast Tests</title> | |
| <meta name="timeout" content="long"> | |
| <script src="../third_party/sdp/sdp.js"></script> | |
| <script src="simulcast.js"></script> | |
| <script src="../RTCPeerConnection-helper.js"></script> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="/resources/testdriver.js"></script> | |
| <script src="/resources/testdriver-vendor.js"></script> | |
| <script src="../../mediacapture-streams/permission-helper.js"></script> | |
| <script> | |
| promise_test(async t => { | |
| assert_implements('getCapabilities' in RTCRtpSender, 'RTCRtpSender.getCapabilities not supported'); | |
| assert_implements(RTCRtpSender.getCapabilities('video').codecs.find(c => c.mimeType === 'video/VP9'), 'VP9 not supported'); | |
| const rids = [0, 1]; | |
| const pc1 = new RTCPeerConnection(); | |
| t.add_cleanup(() => pc1.close()); | |
| const pc2 = new RTCPeerConnection(); | |
| t.add_cleanup(() => pc2.close()); | |
| // This is not a scalability mode test (see wpt/webrtc-svc/ for those) but a | |
| // VP9 simulcast test. Setting `scalabilityMode` should not be needed, however | |
| // many browsers interprets multiple VP9 encodings to mean multiple spatial | |
| // layers by default. During a transition period, Chromium-based browsers | |
| // requires explicitly specifying the scalability mode as a way to opt-in to | |
| // spec-compliant simulcast. See also wpt/webrtc/simulcast/vp9.https.html for | |
| // a version of this test that does not set the scalability mode. | |
| const scalabilityMode = 'L1T2'; | |
| return negotiateSimulcastAndWaitForVideo( | |
| t, rids, pc1, pc2, {mimeType: 'video/VP9'}, scalabilityMode); | |
| }, 'VP9 simulcast setup with two streams and L1T2 set'); | |
| </script> |