mirror of
https://github.com/servo/servo.git
synced 2025-08-07 14:35:33 +01:00
Update web-platform-tests to revision b'afdce893ed51bc1a7a7ac03b16b5a575caad071a'
This commit is contained in:
parent
a8da28e55d
commit
3b420af385
393 changed files with 17484 additions and 4185 deletions
|
@ -0,0 +1,50 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>RTCEncodedAudioFrame can be cloned and distributed</title>
|
||||
<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 src="../webrtc/RTCPeerConnection-helper.js"></script>
|
||||
<script src="../service-workers/service-worker/resources/test-helpers.sub.js"></script>
|
||||
|
||||
<script>
|
||||
"use strict";
|
||||
promise_test(async t => {
|
||||
const caller1 = new RTCPeerConnection();
|
||||
t.add_cleanup(() => caller1.close());
|
||||
const callee1 = new RTCPeerConnection({encodedInsertableStreams:true});
|
||||
t.add_cleanup(() => callee1.close());
|
||||
await setMediaPermission("granted", ["microphone"]);
|
||||
const inputStream = await navigator.mediaDevices.getUserMedia({audio:true});
|
||||
const inputTrack = inputStream.getAudioTracks()[0];
|
||||
t.add_cleanup(() => inputTrack.stop());
|
||||
caller1.addTrack(inputTrack)
|
||||
exchangeIceCandidates(caller1, callee1);
|
||||
|
||||
const caller2 = new RTCPeerConnection({encodedInsertableStreams:true});
|
||||
t.add_cleanup(() => caller2.close());
|
||||
const sender2 = caller2.addTransceiver("audio").sender;
|
||||
const writer2 = sender2.createEncodedStreams().writable.getWriter();
|
||||
sender2.replaceTrack(new MediaStreamTrackGenerator({ kind: 'audio' }));
|
||||
|
||||
const framesReceivedCorrectly = new Promise((resolve, reject) => {
|
||||
callee1.ontrack = async e => {
|
||||
const receiverStreams = e.receiver.createEncodedStreams();
|
||||
const receiverReader = receiverStreams.readable.getReader();
|
||||
const result = await receiverReader.read();
|
||||
const original = result.value;
|
||||
let clone = original.clone();
|
||||
assert_equals(original.timestamp, clone.timestamp);
|
||||
assert_array_equals(Array.from(original.data), Array.from(clone.data));
|
||||
await writer2.write(clone);
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
|
||||
await exchangeOfferAnswer(caller1, callee1);
|
||||
|
||||
return framesReceivedCorrectly;
|
||||
}, "Cloning before sending works");
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue