mirror of
https://github.com/servo/servo
synced 2026-05-12 01:46:28 +02:00
66 lines
1.6 KiB
HTML
66 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<title>Test the AudioDecoder API.</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/webcodecs/utils.js"></script>
|
|
<script>
|
|
|
|
const defaultConfig = {
|
|
codec: "opus",
|
|
sampleRate: 48000,
|
|
numberOfChannels: 2
|
|
};
|
|
|
|
function getFakeChunk() {
|
|
return new EncodedAudioChunk({
|
|
type:'key',
|
|
timestamp:0,
|
|
data:Uint8Array.of(0)
|
|
});
|
|
}
|
|
|
|
promise_test(t => {
|
|
// AudioDecoderInit lacks required fields.
|
|
assert_throws_js(TypeError, () => { new AudioDecoder({}); });
|
|
|
|
// AudioDecoderInit has required fields.
|
|
let decoder = new AudioDecoder(getDefaultCodecInit(t));
|
|
|
|
assert_equals(decoder.state, "unconfigured");
|
|
decoder.close();
|
|
|
|
return endAfterEventLoopTurn();
|
|
}, 'Test AudioDecoder construction');
|
|
|
|
promise_test(t => {
|
|
let decoder = new AudioDecoder(getDefaultCodecInit(t));
|
|
|
|
let badCodecsList = [
|
|
'', // Empty codec
|
|
'bogus', // Non exsitent codec
|
|
'vp8', // Video codec
|
|
'audio/webm; codecs="opus"' // Codec with mime type
|
|
]
|
|
|
|
testConfigurations(decoder, defaultConfig, badCodecsList);
|
|
|
|
return endAfterEventLoopTurn();
|
|
}, 'Test AudioDecoder.configure()');
|
|
|
|
promise_test(t => {
|
|
let decoder = new AudioDecoder(getDefaultCodecInit(t));
|
|
|
|
return testClosedCodec(t, decoder, defaultConfig, getFakeChunk());
|
|
}, 'Verify closed AudioDecoder operations');
|
|
|
|
promise_test(t => {
|
|
let decoder = new AudioDecoder(getDefaultCodecInit(t));
|
|
|
|
return testUnconfiguredCodec(t, decoder, getFakeChunk());
|
|
}, 'Verify unconfigured AudioDecoder operations');
|
|
|
|
|
|
</script>
|
|
</html>
|