Documentation
¶
Overview ¶
The browser-side jabstream receiver, the JAB Code peer of the qrstream shim. Exposes
jabstreamScanFrame(imageData) -> {fileID, have, total, done, sameAsLast, name?, data?} | {error, recoverable} | {miss, reason}
on the JS global with the same result protocol as the QR shim. Camera frames flow through one persistent jabcode Stream decoder (frames of a live camera are one coherent sequence), the per-frame CRC-32C envelope is verified before any header field is read, and collection state stays bounded: only the stream currently being assembled is held, only the most recently completed stream is remembered for sameAsLast suppression.
A frame that holds no decodable JAB symbol or fails the envelope check is an unusable frame, not an error; the miss result names the reason so the worker can ship it to the diagnostic log while the page keeps treating it as a plain miss. Collector failures are recoverable: assembled state is dropped and the symbol decoder reset so the next frame starts clean.