mirror of
https://github.com/servo/servo
synced 2026-05-11 17:37:21 +02:00
Update web-platform-tests to revision b'468d01bbd84da2babf265c6af46947be68713440'
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
// META: global=window,dedicatedworker
|
||||
// META: script=/webcodecs/utils.js
|
||||
|
||||
const testData = {
|
||||
src: 'sfx-aac.mp4',
|
||||
config: {
|
||||
codec: 'mp4a.40.2',
|
||||
sampleRate: 48000,
|
||||
numberOfChannels: 1,
|
||||
description: {offset: 2552, size: 5},
|
||||
}
|
||||
};
|
||||
|
||||
// Create a view of an ArrayBuffer.
|
||||
function view(buffer, {offset, size}) {
|
||||
return new Uint8Array(buffer, offset, size);
|
||||
}
|
||||
|
||||
function testSharedArrayBufferDescription(t, useView) {
|
||||
const data = testData;
|
||||
|
||||
// Don't run test if the codec is not supported.
|
||||
let supported = false;
|
||||
return AudioDecoder
|
||||
.isConfigSupported({
|
||||
codec: data.config.codec,
|
||||
sampleRate: data.config.sampleRate,
|
||||
numberOfChannels: data.config.numberOfChannels
|
||||
})
|
||||
.catch(_ => {
|
||||
assert_implements_optional(false, data.config.codec + ' unsupported');
|
||||
})
|
||||
.then(support => {
|
||||
supported = support.supported;
|
||||
assert_implements_optional(
|
||||
supported, data.config.codec + ' unsupported');
|
||||
return fetch(data.src);
|
||||
})
|
||||
.then(response => {
|
||||
return response.arrayBuffer();
|
||||
})
|
||||
.then(buf => {
|
||||
config = {...data.config};
|
||||
if (data.config.description) {
|
||||
let desc = new SharedArrayBuffer(data.config.description.size);
|
||||
let descView = new Uint8Array(desc);
|
||||
descView.set(view(buf, data.config.description));
|
||||
config.description = useView ? descView : desc;
|
||||
}
|
||||
|
||||
// Support was verified above, so the description shouldn't change
|
||||
// that.
|
||||
return AudioDecoder.isConfigSupported(config);
|
||||
})
|
||||
.then(support => {
|
||||
assert_true(support.supported);
|
||||
|
||||
const decoder = new AudioDecoder(getDefaultCodecInit(t));
|
||||
decoder.configure(config);
|
||||
assert_equals(decoder.state, 'configured', 'state');
|
||||
});
|
||||
}
|
||||
|
||||
promise_test(t => {
|
||||
return testSharedArrayBufferDescription(t, /*useView=*/ false);
|
||||
}, 'Test isConfigSupported() and configure() using a SharedArrayBuffer');
|
||||
|
||||
promise_test(t => {
|
||||
return testSharedArrayBufferDescription(t, /*useView=*/ true);
|
||||
}, 'Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer)');
|
||||
Reference in New Issue
Block a user