/** * 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; } }