gecko-dev/third_party/aom/tools/inspect-cli.js
Ralph Giles 4ccc506a5c Bug 1314147 - Import aom library. r=froydnj,kinetik
This is the reference implementation for the Alliance for
Open Media's av1 video code.

The commit used was 4d668d7feb1f8abd809d1bca0418570a7f142a36.

MozReview-Commit-ID: 5PFTLbBDRrb

--HG--
extra : rebase_source : a51578e072e47ac03b422d10d9b279a3de5fc216
2017-04-12 14:22:04 -07:00

40 lines
1.1 KiB
JavaScript

/**
* This tool lets you test if the compiled Javascript decoder is functioning properly. You'll
* need to download a SpiderMonkey js-shell to run this script.
* https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
*
* Example:
* js-shell inspect-cli.js video.ivf
*/
load("inspect.js");
var buffer = read(scriptArgs[0], "binary");
var Module = {
noExitRuntime: true,
noInitialRun: true,
preInit: [],
preRun: [],
postRun: [function () {
printErr(`Loaded Javascript Decoder OK`);
}],
memoryInitializerPrefixURL: "bin/",
arguments: ['input.ivf', 'output.raw'],
on_frame_decoded_json: function (jsonString) {
let json = JSON.parse("[" + Module.UTF8ToString(jsonString) + "null]");
json.forEach(frame => {
if (frame) {
print(frame.frame);
}
});
}
};
DecoderModule(Module);
Module.FS.writeFile("/tmp/input.ivf", buffer, { encoding: "binary" });
Module._open_file();
Module._set_layers(0xFFFFFFFF); // Set this to zero if you want to benchmark decoding.
while(true) {
printErr("Decoding Frame ...");
if (Module._read_frame()) {
break;
}
}