mirror of
https://github.com/servo/servo.git
synced 2025-08-21 21:35:32 +01:00
Update web-platform-tests to revision 632a3f59238036b6e24b28d47218ba9986ff4c62
This commit is contained in:
parent
cd02ca6c19
commit
fb838278a5
430 changed files with 15017 additions and 508 deletions
|
@ -0,0 +1,82 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
Test the construction of AudioWorkletNode with real-time context
|
||||
</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/webaudio/resources/audit.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script id="layout-test-code">
|
||||
const audit = Audit.createTaskRunner();
|
||||
const context = new AudioContext();
|
||||
|
||||
(async function () {
|
||||
await context.audioWorklet.addModule(
|
||||
'processors/channel-count-processor.js');
|
||||
|
||||
// Test if the output channe count dynamically changes if the input
|
||||
// and output is 1.
|
||||
audit.define(
|
||||
{label: 'Dynamically change the channel count to if unspecified.'},
|
||||
(task, should) => {
|
||||
// Use arbitrary parameters for the test.
|
||||
const buffer = new AudioBuffer({
|
||||
numberOfChannels: 17,
|
||||
length: 1,
|
||||
sampleRate: context.sampleRate,
|
||||
});
|
||||
const source = new AudioBufferSourceNode(context);
|
||||
source.buffer = buffer;
|
||||
|
||||
const node = new AudioWorkletNode(context, 'channel-count', {
|
||||
numberOfInputs: 1,
|
||||
numberOfOutputs: 1,
|
||||
});
|
||||
|
||||
node.port.onmessage = (message) => {
|
||||
const expected = message.data;
|
||||
should(expected.outputChannel,
|
||||
'The expected output channel count').beEqualTo(17);
|
||||
task.done();
|
||||
};
|
||||
|
||||
// We need to make an actual connection becasue the channel count
|
||||
// change happen when the rendering starts. It is to test if the
|
||||
// channel count adapts to the upstream node correctly.
|
||||
source.connect(node).connect(context.destination);
|
||||
source.start();
|
||||
});
|
||||
|
||||
// Test if outputChannelCount is honored as expected even if the input
|
||||
// and output is 1.
|
||||
audit.define(
|
||||
{label: 'Givien outputChannelCount must be honored.'},
|
||||
(task, should) => {
|
||||
const node = new AudioWorkletNode(
|
||||
context, 'channel-count', {
|
||||
numberOfInputs: 1,
|
||||
numberOfOutputs: 1,
|
||||
outputChannelCount: [2],
|
||||
});
|
||||
|
||||
node.port.onmessage = (message) => {
|
||||
const expected = message.data;
|
||||
should(expected.outputChannel,
|
||||
'The expected output channel count').beEqualTo(2);
|
||||
task.done();
|
||||
};
|
||||
|
||||
// We need to make an actual connection becasue the channel count
|
||||
// change might happen when the rendering starts. It is to test
|
||||
// if the specified channel count is kept correctly.
|
||||
node.connect(context.destination);
|
||||
});
|
||||
|
||||
audit.run();
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,19 @@
|
|||
/**
|
||||
* @class ChannelCountProcessor
|
||||
* @extends AudioWorkletProcessor
|
||||
*/
|
||||
class ChannelCountProcessor extends AudioWorkletProcessor {
|
||||
constructor(options) {
|
||||
super(options);
|
||||
}
|
||||
|
||||
process(inputs, outputs) {
|
||||
this.port.postMessage({
|
||||
inputChannel: inputs[0].length,
|
||||
outputChannel: outputs[0].length
|
||||
});
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
registerProcessor('channel-count', ChannelCountProcessor);
|
Loading…
Add table
Add a link
Reference in a new issue