aom/tools/inspect-cli.js

40 строки
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;
}
}