author | Dan Sanders <sandersd@chromium.org> |
Wed, 26 Aug 2020 08:53:27 +0000 | |
changeset 546481 | ff203320370a691267bd00d1816312f9de7b6833 |
parent 546480 | bd8576b53e1308ac226f76f49109a9ceed920d8c |
child 546482 | 6f391b1eb0fd0f6ce34c872225cf370d5100262a |
push id | 37735 |
push user | abutkovits@mozilla.com |
push date | Thu, 27 Aug 2020 21:29:40 +0000 |
treeherder | mozilla-central@109f3a4de567 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | testonly |
bugs | 1660383, 25164, 1045247, 2368493, 800406 |
milestone | 82.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
new file mode 100644 index 0000000000000000000000000000000000000000..e21fcba32c125fba820ffa2269013c612d2b78fc GIT binary patch literal 7637 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 Am;e9(
--- a/testing/web-platform/tests/webcodecs/video-decoder.html +++ b/testing/web-platform/tests/webcodecs/video-decoder.html @@ -1,14 +1,54 @@ <!DOCTYPE html> <html> <title>Test the VideoDecoder API.</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> +'use strict'; + +// TODO(sandersd): Move metadata into a helper library. +// TODO(sandersd): Add H.264 idecode test once there is an API to query for +// supported codecs. +let h264 = { + buffer: fetch('h264.mp4').then(r => r.arrayBuffer()), + codec: "avc1.64000c", + description: {offset: 7229, size: 46}, + frames: [{offset: 48, size: 4007}, + {offset: 4055, size: 926}, + {offset: 4981, size: 241}, + {offset: 5222, size: 97}, + {offset: 5319, size: 98}, + {offset: 5417, size: 624}, + {offset: 6041, size: 185}, + {offset: 6226, size: 94}, + {offset: 6320, size: 109}, + {offset: 6429, size: 281}] +}; + +let vp9 = { + buffer: fetch('vp9.mp4').then(r => r.arrayBuffer()), + // TODO(sandersd): Verify that the file is actually level 1. + codec: "vp09.00.10.08", + frames: [{offset: 44, size: 3315}, + {offset: 3359, size: 203}, + {offset: 3562, size: 245}, + {offset: 3807, size: 172}, + {offset: 3979, size: 312}, + {offset: 4291, size: 170}, + {offset: 4461, size: 195}, + {offset: 4656, size: 181}, + {offset: 4837, size: 356}, + {offset: 5193, size: 159}] +}; + +function view(buffer, {offset, size}) { + return new Uint8Array(buffer, offset, size); +} // Calls done after giving async output/error callbacks a final chance to run. async function asyncDone(test) { test.step_timeout(test.step_func_done(), 0); } async_test(async (t) => { // VideoDecoderInit lacks required fields. @@ -49,10 +89,138 @@ async_test(async (t) => { assert_throws_js(TypeError, () => { decoder.configure(config); }); // Valid unambiguous codec accepted. config.codec = 'vp09.00.10.08'; decoder.configure(config); asyncDone(t); }, 'Test VideoDecoder.configure() codec validity'); + +promise_test(t => vp9.buffer.then(buffer => { + let numOutputs = 0; + let decoder = new VideoDecoder({ + output(frame) { + t.step(() => { + assert_equals(++numOutputs, 1, "outputs"); + assert_equals(frame.cropWidth, 320, "cropWidth"); + assert_equals(frame.cropHeight, 240, "cropHeight"); + assert_equals(frame.timestamp, 0, "timestamp"); + frame.destroy(); + }); + }, + error(e) { + t.step(() => { + // TODO(sandersd): Change to 'throw e' once e is defined. + throw "decode error"; + }); + } + }); + + decoder.configure({codec: vp9.codec}); + + decoder.decode(new EncodedVideoChunk('key', 0, view(buffer, vp9.frames[0]))); + + return decoder.flush().then(() => { + assert_equals(numOutputs, 1, "outputs"); + }); +}), 'Decode VP9'); + +promise_test(t => { + let decoder = new VideoDecoder({ + output(frame) { + t.step(() => { + throw "unexpected output"; + }); + }, + error(e) { + t.step(() => { + throw "unexpected error"; + }); + } + }); + + decoder.close(); + + let fakeChunk = new EncodedVideoChunk('key', 0, Uint8Array.of(0)); + assert_throws_dom("InvalidStateError", + () => decoder.configure({codec: vp9.codec}), + "configure"); + assert_throws_dom("InvalidStateError", + () => decoder.decode(fakeChunk), + "reset"); + assert_throws_dom("InvalidStateError", + () => decoder.reset(), + "reset"); + assert_throws_dom("InvalidStateError", + () => decoder.close(), + "close"); + return promise_rejects_dom(t, 'InvalidStateError', decoder.flush(), 'flush'); +}, 'Closed decoder'); + +promise_test(t => { + let numErrors = 0; + let decoder = new VideoDecoder({ + output(frame) { + t.step(() => { + throw "unexpected output"; + }); + }, + error(e) { + numErrors++; + } + }); + + let fakeChunk = new EncodedVideoChunk('key', 0, Uint8Array.of(0)); + decoder.decode(fakeChunk); + + return decoder.flush().then( + () => { throw "flush succeeded unexpectedly"; }, + () => { assert_equals(numErrors, 1, "errors"); }); +}, 'Decode without configure'); + +promise_test(t => { + let numErrors = 0; + let decoder = new VideoDecoder({ + output(frame) { + t.step(() => { + throw "unexpected output"; + }); + }, + error(e) { + numErrors++; + } + }); + + decoder.configure({codec: vp9.codec}); + + let fakeChunk = new EncodedVideoChunk('key', 0, Uint8Array.of(0)); + decoder.decode(fakeChunk); + + return decoder.flush().then( + () => { throw "flush succeeded unexpectedly"; }, + () => { assert_equals(numErrors, 1, "errors"); }); +}, 'Decode corrupt VP9 frame'); + +promise_test(t => { + let numErrors = 0; + let decoder = new VideoDecoder({ + output(frame) { + t.step(() => { + throw "unexpected output"; + }); + }, + error(e) { + numErrors++; + } + }); + + decoder.configure({codec: vp9.codec}); + + let fakeChunk = new EncodedVideoChunk('key', 0, Uint8Array.of()); + decoder.decode(fakeChunk); + + return decoder.flush().then( + () => { throw "flush succeeded unexpectedly"; }, + () => { assert_equals(numErrors, 1, "errors"); }); +}, 'Decode empty VP9 frame'); </script> </html>
new file mode 100644 index 0000000000000000000000000000000000000000..7553e5cae9202c0f144126910e9471658038b455 GIT binary patch literal 6159 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 RvGKB(lo6JY6uu)W`ag%6%r5`{