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