Run SHA-256 as WebAssembly with JS fallback; note ffmpeg.wasm as deferred

This commit is contained in:
Claude
2026-10-02 11:10:51 +00:00
parent 883c9e7ba0
commit 0d92accd1d
10 changed files with 189 additions and 9 deletions

View File

@@ -3,7 +3,7 @@
* thread, read in 4 MiB slices (never the whole video in memory).
*
* In: { name } file name under OPFS videos/ (e.g. "abc.mp4")
* Out: { ok: true, sha256, size } | { ok: false, error }
^ * Out: { ok: true, sha256, size, engine } | { ok: false, error }
* ========================================================================== */
'use strict';
importScripts('/sha256.js');
@@ -19,7 +19,7 @@ self.onmessage = async (e) => {
for (let pos = 0; pos < file.size; pos += STEP) {
h.update(new Uint8Array(await file.slice(pos, pos + STEP).arrayBuffer()));
}
self.postMessage({ ok: true, sha256: h.hex(), size: file.size });
self.postMessage({ ok: true, sha256: h.hex(), size: file.size, engine: self.Sha256.engine() });
} catch (err) {
self.postMessage({ ok: false, error: err && err.message ? err.message : String(err) });
}