@gueshbzh-perso/scanner 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -51,7 +51,7 @@ await reader.destroy(); // removes the preview, frees the engine
51
51
  | `camera` | `{ facingMode: 'environment', resolution: 'hd' }` | Also `deviceId`, `rememberDevice` (default `true`), `releaseWhenHidden` (default `true`: the camera is released while the page is hidden and reopened when it is visible again). |
52
52
  | `overlay` | all on | `showRegion`, `showDetections`, `showTorchButton`, `showCameraSwitch`, `color`, or `false`. |
53
53
  | `feedback` | beep + vibrate | `{ beep, vibrate }` or `false`. |
54
- | `processing` | `{ maxDimension: 1024, backend: 'auto' }` | Decoder image size; `'webgl'`, `'canvas'` or `'auto'`. |
54
+ | `processing` | `{ maxDimension: 1024, backend: 'auto', nativeDetector: 'auto' }` | Decoder image size; `'webgl'`, `'canvas'` or `'auto'`; `nativeDetector: 'auto'` uses the browser's `BarcodeDetector` as the fast pass where it exists, `'off'` always uses the engine alone (see [How it works](#how-it-works)). |
55
55
  | `worker` | `true` | Decode in Web Workers; falls back to the main thread if unavailable. |
56
56
  | `workers` | cores − 1 (1–3) | Number of decoding workers: frames are decoded in parallel. |
57
57
  | `wasmUrl`, `workerUrl` | auto | Override asset URLs (CDN, custom bundler setup). |
@@ -64,7 +64,7 @@ await reader.destroy(); // removes the preview, frees the engine
64
64
  - `setRegionOfInterest(region)`
65
65
  - `setTorch(on)`, `torchAvailable`, `setZoom(zoom)`, `switchCamera(deviceId?)`, `BarcodeReader.listCameras()`
66
66
  - `clearCooldown(text)` — allow a code to be reported again immediately
67
- - `stats` — `{ fps, decodeMs, grabMs, frameWidth, frameHeight, backend, worker, workers }`
67
+ - `stats` — `{ fps, decodeMs, grabMs, frameWidth, frameHeight, backend, worker, workers, native, nativeMs }`
68
68
  - `video` — the underlying `<video>` element
69
69
 
70
70
  Detection points are in video pixels (`video.videoWidth` space).
@@ -139,6 +139,19 @@ overlay (ROI mask, highlights, torch / camera buttons) · beep · vibration
139
139
  - If WebGL2 is missing or the context is lost, the pipeline switches to Canvas 2D.
140
140
  - If the engine crashes, the worker is restarted transparently.
141
141
  - The engine is downloaded and compiled once, then shared by every worker.
142
+ - By default (`processing.nativeDetector: 'auto'`), browsers that ship a native
143
+ `BarcodeDetector` (Chrome on Android, macOS and ChromeOS) search each video
144
+ frame with it, straight from the `<video>`: no grab, no worker. While it
145
+ finds nothing, the workers still decode a frame from time to time (~3 per
146
+ second) with the fallback strategies, which read the hard codes (laser
147
+ engraving, shadows…) the native decoder has no preprocessing for. Its codes get the
148
+ same multi-frame confirmation and de-duplication. It is used only when it
149
+ supports every requested format (`micro_qr`, which it lacks, is then read
150
+ by the fallbacks), and dropped for the engine alone if it ever fails.
151
+ Detection is by feature, not by browser: any browser that ships the API
152
+ gets it, but a JavaScript polyfill of `BarcodeDetector` is ignored (it
153
+ would only be a slower engine on the main thread). Safari, Firefox and
154
+ Chrome on Windows / Linux do not have it today: nothing changes there.
142
155
 
143
156
  ## Browser support
144
157
 
package/dist/core.d.ts CHANGED
@@ -25,12 +25,20 @@ export interface FrameOutcome {
25
25
  export declare class SessionCore {
26
26
  private session;
27
27
  configure(options: EngineOptions): void;
28
- /** Strategy plan of the next frame, for a `DecoderCore` configured the same way. */
29
- plan(): FramePlan;
28
+ /**
29
+ * Strategy plan of the next frame, for a `DecoderCore` configured the same
30
+ * way. `fastPath: false` when the native `BarcodeDetector` already searched
31
+ * the frame: the decoder then runs the fallback strategy only.
32
+ */
33
+ plan(fastPath?: boolean): FramePlan;
30
34
  /** Record a decoded frame; returns the new codes and the live ones. */
31
35
  commit(report: FrameReport): FrameOutcome;
32
- /** Decode on this thread (inline engine): plan, decode and commit at once. */
33
- process(pixels: Uint8Array, width: number, height: number, format: PixelFormat): FrameOutcome;
36
+ /**
37
+ * Record codes read by the native `BarcodeDetector`: same format filter,
38
+ * confirmation and de-duplication as decoded frames. Points are kept as
39
+ * given (video pixels).
40
+ */
41
+ commitExternal(codes: Detection[], elapsedMs: number): FrameOutcome;
34
42
  reset(): void;
35
43
  clearCooldown(text: string): void;
36
44
  destroy(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9G,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAEvC,kEAAkE;AAClE,wBAAgB,cAAc,IAAI,GAAG,CAEpC;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAQhF;AAID,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGnF;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,CAGjE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CASlG;AAYD,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAIpD;AAED,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC5B,wEAAwE;IACxE,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qEAAqE;AACrE,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAgC;IAE/C,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKvC,oFAAoF;IACpF,IAAI,IAAI,SAAS;IAIjB,uEAAuE;IACvE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY;IAOzC,8EAA8E;IAC9E,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IAW7F,KAAK,IAAI,IAAI;IAIb,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,MAAM;CAIf;AAED,+EAA+E;AAC/E,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,QAAQ,CAAkC;IAElD,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKvC,MAAM,CACJ,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,SAAS,GACd,WAAW;IAOd,8DAA8D;IAC9D,IAAI,CACF,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,GACrB,SAAS,EAAE;IAiBd,OAAO,IAAI,IAAI;CAMhB"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9G,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAEvC,kEAAkE;AAClE,wBAAgB,cAAc,IAAI,GAAG,CAEpC;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAQhF;AAID,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGnF;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,CAGjE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CASlG;AAYD,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAIpD;AAQD,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC5B,wEAAwE;IACxE,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qEAAqE;AACrE,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAgC;IAE/C,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKvC;;;;OAIG;IACH,IAAI,CAAC,QAAQ,UAAO,GAAG,SAAS;IAKhC,uEAAuE;IACvE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY;IAOzC;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY;IAOnE,KAAK,IAAI,IAAI;IAIb,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,MAAM;CAIf;AAED,+EAA+E;AAC/E,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,QAAQ,CAAkC;IAElD,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKvC,MAAM,CACJ,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,SAAS,GACd,WAAW;IAOd,8DAA8D;IAC9D,IAAI,CACF,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,GACrB,SAAS,EAAE;IAiBd,OAAO,IAAI,IAAI;CAMhB"}
package/dist/core.js CHANGED
@@ -6,6 +6,8 @@
6
6
  // - `SessionCore`: the session. Cheap calls (`plan`, `commit`), main thread.
7
7
  // - `DecoderCore`: the expensive decoding, one per Web Worker.
8
8
  // The inline engine (no Worker support) uses both on the main thread.
9
+ // Codes read by the browser's native `BarcodeDetector` enter the session with
10
+ // `SessionCore.commitExternal` (see `native.ts`).
9
11
  import init, { WasmFrameDecoder, WasmScanner, WasmScanSession, version } from './wasm/scanner_wasm.js';
10
12
  /** Default location of the engine binary, next to this module. */
11
13
  export function defaultWasmUrl() {
@@ -66,6 +68,12 @@ export function toDetection(r) {
66
68
  d.rawBytes = r.rawBytes;
67
69
  return d;
68
70
  }
71
+ function toScanResult(d) {
72
+ const r = { text: d.text, format: d.format, points: d.points, timestampMs: d.timestamp };
73
+ if (d.rawBytes)
74
+ r.rawBytes = d.rawBytes;
75
+ return r;
76
+ }
69
77
  /** The scan session of a camera stream (state only, cheap calls). */
70
78
  export class SessionCore {
71
79
  constructor() {
@@ -75,9 +83,14 @@ export class SessionCore {
75
83
  this.session?.free();
76
84
  this.session = new WasmScanSession(streamConfig(options));
77
85
  }
78
- /** Strategy plan of the next frame, for a `DecoderCore` configured the same way. */
79
- plan() {
80
- return this.active().plan();
86
+ /**
87
+ * Strategy plan of the next frame, for a `DecoderCore` configured the same
88
+ * way. `fastPath: false` when the native `BarcodeDetector` already searched
89
+ * the frame: the decoder then runs the fallback strategy only.
90
+ */
91
+ plan(fastPath = true) {
92
+ const session = this.active();
93
+ return fastPath ? session.plan() : session.planFallbackOnly();
81
94
  }
82
95
  /** Record a decoded frame; returns the new codes and the live ones. */
83
96
  commit(report) {
@@ -86,16 +99,16 @@ export class SessionCore {
86
99
  const results = fresh ? fresh.map(toDetection) : null;
87
100
  return { results, live: results ?? session.lastDetections.map(toDetection), decodeMs: report.elapsedMs };
88
101
  }
89
- /** Decode on this thread (inline engine): plan, decode and commit at once. */
90
- process(pixels, width, height, format) {
102
+ /**
103
+ * Record codes read by the native `BarcodeDetector`: same format filter,
104
+ * confirmation and de-duplication as decoded frames. Points are kept as
105
+ * given (video pixels).
106
+ */
107
+ commitExternal(codes, elapsedMs) {
91
108
  const session = this.active();
92
- // Write straight into WASM memory: avoids one more copy of the frame.
93
- session.frameBuffer(pixels.length).set(pixels);
94
- const t0 = performance.now();
95
- const fresh = session.processFrameBuffer(width, height, format);
96
- const decodeMs = performance.now() - t0;
109
+ const fresh = session.commitExternal(codes.map(toScanResult), elapsedMs);
97
110
  const results = fresh ? fresh.map(toDetection) : null;
98
- return { results, live: results ?? session.lastDetections.map(toDetection), decodeMs };
111
+ return { results, live: results ?? session.lastDetections.map(toDetection), decodeMs: elapsedMs };
99
112
  }
100
113
  reset() {
101
114
  this.session?.reset();
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,mBAAmB;AACnB,6EAA6E;AAC7E,+DAA+D;AAC/D,sEAAsE;AACtE,8EAA8E;AAC9E,kDAAkD;AAClD,OAAO,IAAI,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAMvG,kEAAkE;AAClE,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAiB;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,MAAM,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;QAC5E,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,IAAI,WAAW,GAA2B,IAAI,CAAC;AAE/C,+EAA+E;AAC/E,MAAM,UAAU,QAAQ,CAAC,MAAyC;IAChE,WAAW,KAAX,WAAW,GAAK,IAAI,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,EAAC;IACvE,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAAC,CAAgB;IAChD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACtG,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAgB,EAAE,QAAiC,EAAE;IAChF,MAAM,GAAG,GAAmB,EAAE,GAAG,KAAK,EAAE,CAAC;IACzC,IAAI,CAAC,CAAC,OAAO;QAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IACvC,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS;QAAE,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;IACvE,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;QAAE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IAC3D,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IAC9D,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,mBAAmB,IAAI,IAAI,CAAC;IACpD,IAAI,CAAC,CAAC,mBAAmB,KAAK,SAAS;QAAE,GAAG,CAAC,mBAAmB,GAAG,CAAC,CAAC,mBAAmB,CAAC;IACzF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,CAAgB;IACpC,0EAA0E;IAC1E,6EAA6E;IAC7E,OAAO,YAAY,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAa;IACvC,MAAM,CAAC,GAAc,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpG,IAAI,CAAC,CAAC,QAAQ;QAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IACxC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,YAAY,CAAC,CAAY;IAChC,MAAM,CAAC,GAAe,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IACrG,IAAI,CAAC,CAAC,QAAQ;QAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IACxC,OAAO,CAAC,CAAC;AACX,CAAC;AAUD,qEAAqE;AACrE,MAAM,OAAO,WAAW;IAAxB;QACU,YAAO,GAA2B,IAAI,CAAC;IAsDjD,CAAC;IApDC,SAAS,CAAC,OAAsB;QAC9B,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,QAAQ,GAAG,IAAI;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAChE,CAAC;IAED,uEAAuE;IACvE,MAAM,CAAC,MAAmB;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IAC3G,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,KAAkB,EAAE,SAAiB;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACpG,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,OAAO,WAAW;IAAxB;QACU,YAAO,GAA4B,IAAI,CAAC;QACxC,aAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAkDpD,CAAC;IAhDC,SAAS,CAAC,OAAsB;QAC9B,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CACJ,MAAkB,EAClB,KAAa,EACb,MAAc,EACd,MAAmB,EACnB,IAAe;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,8DAA8D;IAC9D,IAAI,CACF,MAAkB,EAClB,KAAa,EACb,MAAc,EACd,MAAmB,EACnB,OAAsB;QAEtB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAA8B,CAAC;gBACpF,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzE,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF"}
package/dist/engine.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { FrameOutcome } from './core.js';
1
2
  import type { PixelFormat } from './wasm/scanner_wasm.js';
2
3
  import type { AssetOptions, Detection, EngineOptions } from './types.js';
3
4
  export interface FrameReply {
@@ -13,8 +14,18 @@ export interface Engine {
13
14
  /** Frames that can be decoded at the same time (number of workers). */
14
15
  readonly concurrency: number;
15
16
  configure(options: EngineOptions): Promise<void>;
16
- /** Decode a camera frame. `buffer` is transferred and returned in the reply. */
17
- processFrame(buffer: ArrayBuffer, width: number, height: number, format: PixelFormat): Promise<FrameReply>;
17
+ /**
18
+ * Decode a camera frame. `buffer` is transferred and returned in the reply.
19
+ * `fastPath: false` runs the fallback strategy only, for a frame the
20
+ * native `BarcodeDetector` already searched without finding anything.
21
+ */
22
+ processFrame(buffer: ArrayBuffer, width: number, height: number, format: PixelFormat, fastPath?: boolean): Promise<FrameReply>;
23
+ /**
24
+ * Record codes read by the native `BarcodeDetector` in a frame: same
25
+ * format filter, multi-frame confirmation and de-duplication as decoded
26
+ * frames. Points are returned as given.
27
+ */
28
+ commitExternal(codes: Detection[], elapsedMs: number): Promise<FrameOutcome>;
18
29
  /** One-shot scan of a still image, running every strategy. */
19
30
  scanImage(buffer: ArrayBuffer, width: number, height: number, format: PixelFormat, options: EngineOptions): Promise<Detection[]>;
20
31
  reset(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,gFAAgF;IAChF,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3G,8DAA8D;IAC9D,SAAS,CACP,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AA0LD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAM3G;AAoDD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B9E;AAID,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAMpE"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAA0B,MAAM,WAAW,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD;;;;OAIG;IACH,YAAY,CACV,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,QAAQ,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7E,8DAA8D;IAC9D,SAAS,CACP,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAgMD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAM3G;AAoED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B9E;AAID,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAMpE"}
package/dist/engine.js CHANGED
@@ -133,11 +133,11 @@ class WorkerPoolEngine {
133
133
  this.configured = true;
134
134
  await Promise.all(this.workers.map((w) => w.configure(options)));
135
135
  }
136
- async processFrame(buffer, width, height, format) {
136
+ async processFrame(buffer, width, height, format, fastPath = true) {
137
137
  if (!this.configured)
138
138
  throw new Error('Engine not configured');
139
139
  const generation = this.generation;
140
- const plan = this.session.plan();
140
+ const plan = this.session.plan(fastPath);
141
141
  let res;
142
142
  try {
143
143
  res = await this.idleWorker().ok({ type: 'decode', buffer, width, height, format, plan }, [buffer]);
@@ -153,6 +153,11 @@ class WorkerPoolEngine {
153
153
  }
154
154
  return { ...this.session.commit(res.report), buffer: returned };
155
155
  }
156
+ async commitExternal(codes, elapsedMs) {
157
+ if (!this.configured)
158
+ throw new Error('Engine not configured');
159
+ return this.session.commitExternal(codes, elapsedMs);
160
+ }
156
161
  async scanImage(buffer, width, height, format, options) {
157
162
  const res = await this.idleWorker().ok({ type: 'scan', buffer, width, height, format, options }, [
158
163
  buffer,
@@ -203,10 +208,25 @@ class InlineEngine {
203
208
  this.decoder = new DecoderCore();
204
209
  }
205
210
  async configure(options) {
211
+ // Same configuration for both: a plan is an index in the decoder's list
212
+ // of fallback strategies (as with workers).
206
213
  this.session.configure(options);
214
+ this.decoder.configure(options);
215
+ }
216
+ async processFrame(buffer, width, height, format, fastPath = true) {
217
+ const plan = this.session.plan(fastPath);
218
+ let report;
219
+ try {
220
+ report = this.decoder.decode(new Uint8Array(buffer), width, height, format, plan);
221
+ }
222
+ catch (err) {
223
+ this.session.commit(emptyReport(plan));
224
+ throw err;
225
+ }
226
+ return { ...this.session.commit(report), buffer };
207
227
  }
208
- async processFrame(buffer, width, height, format) {
209
- return { ...this.session.process(new Uint8Array(buffer), width, height, format), buffer };
228
+ async commitExternal(codes, elapsedMs) {
229
+ return this.session.commitExternal(codes, elapsedMs);
210
230
  }
211
231
  async scanImage(buffer, width, height, format, options) {
212
232
  return this.decoder.scan(new Uint8Array(buffer), width, height, format, options);
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { Rect } from './grabber.js';
2
+ import type { BarcodeFormat, Detection, Point } from './types.js';
3
+ /** A code found by `BarcodeDetector.detect()`. */
4
+ export interface NativeBarcode {
5
+ rawValue: string;
6
+ format: string;
7
+ /** Corners in pixels of the source (for a `<video>`: `videoWidth` space). */
8
+ cornerPoints: readonly Point[];
9
+ }
10
+ interface BarcodeDetectorInstance {
11
+ detect(source: CanvasImageSource): Promise<NativeBarcode[]>;
12
+ }
13
+ /** The `BarcodeDetector` constructor. */
14
+ export interface BarcodeDetectorClass {
15
+ new (options?: {
16
+ formats?: string[];
17
+ }): BarcodeDetectorInstance;
18
+ getSupportedFormats(): Promise<string[]>;
19
+ }
20
+ /** Native decoder serving one reader configuration. */
21
+ export declare class NativeDetector {
22
+ private detector;
23
+ /** Formats the detector looks for. */
24
+ readonly formats: readonly BarcodeFormat[];
25
+ private constructor();
26
+ /**
27
+ * A detector for `formats` (default: all), or `undefined` when the native
28
+ * decoder cannot replace the engine's fast path: API absent, or one of the
29
+ * requested formats not supported natively (codes of that format would
30
+ * then only be read by the slower fallbacks).
31
+ */
32
+ static create(formats: readonly BarcodeFormat[] | undefined, api?: BarcodeDetectorClass | undefined): Promise<NativeDetector | undefined>;
33
+ /**
34
+ * Codes in `source` whose center lies in `rect` (the region of interest, in
35
+ * source pixels), as detections in source pixels. Throws when the native
36
+ * decoder fails.
37
+ */
38
+ detect(source: CanvasImageSource, rect: Rect): Promise<Detection[]>;
39
+ }
40
+ /** `true` for a function implemented by the browser, not in JavaScript. */
41
+ export declare function isBuiltIn(fn: object): boolean;
42
+ export {};
43
+ //# sourceMappingURL=native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIlE,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,YAAY,EAAE,SAAS,KAAK,EAAE,CAAC;CAChC;AAED,UAAU,uBAAuB;IAC/B,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CAC7D;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,KAAK,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,uBAAuB,CAAC;IAChE,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1C;AAwBD,uDAAuD;AACvD,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ;IAChB,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE;IAH5C,OAAO;IAMP;;;;;OAKG;WACU,MAAM,CACjB,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,EAC7C,GAAG,GAAE,oBAAoB,GAAG,SAAuB,GAClD,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAoBtC;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAW1E;AAiBD,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE7C"}
package/dist/native.js ADDED
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Formats of this SDK, all spelled like the native ones (`qr_code`, `ean_13`…)
3
+ * except `micro_qr`, which the native API does not have: when it is asked
4
+ * for, it is still read by the engine's fallback strategies (`Hard` decodes
5
+ * the raw frame with every format), only less often than by a fast path.
6
+ */
7
+ const NATIVE_FORMATS = [
8
+ 'qr_code',
9
+ 'data_matrix',
10
+ 'aztec',
11
+ 'pdf417',
12
+ 'code_128',
13
+ 'code_39',
14
+ 'code_93',
15
+ 'ean_13',
16
+ 'ean_8',
17
+ 'upc_a',
18
+ 'upc_e',
19
+ 'itf',
20
+ 'codabar',
21
+ ];
22
+ /** Native decoder serving one reader configuration. */
23
+ export class NativeDetector {
24
+ constructor(detector,
25
+ /** Formats the detector looks for. */
26
+ formats) {
27
+ this.detector = detector;
28
+ this.formats = formats;
29
+ }
30
+ /**
31
+ * A detector for `formats` (default: all), or `undefined` when the native
32
+ * decoder cannot replace the engine's fast path: API absent, or one of the
33
+ * requested formats not supported natively (codes of that format would
34
+ * then only be read by the slower fallbacks).
35
+ */
36
+ static async create(formats, api = nativeApi()) {
37
+ if (!api)
38
+ return undefined;
39
+ let supported;
40
+ try {
41
+ supported = await api.getSupportedFormats();
42
+ }
43
+ catch {
44
+ return undefined;
45
+ }
46
+ // On Android the list is empty until Google Play Services has downloaded
47
+ // its barcode module (first use on the device, in the background): the
48
+ // detector is unavailable *for now*, the engine does the whole job.
49
+ const wanted = (formats?.length ? formats : NATIVE_FORMATS).filter((f) => f !== 'micro_qr');
50
+ if (wanted.length === 0 || !wanted.every((f) => supported.includes(f)))
51
+ return undefined;
52
+ try {
53
+ return new NativeDetector(new api({ formats: [...wanted] }), wanted);
54
+ }
55
+ catch {
56
+ return undefined;
57
+ }
58
+ }
59
+ /**
60
+ * Codes in `source` whose center lies in `rect` (the region of interest, in
61
+ * source pixels), as detections in source pixels. Throws when the native
62
+ * decoder fails.
63
+ */
64
+ async detect(source, rect) {
65
+ const found = await this.detector.detect(source);
66
+ const timestamp = Date.now();
67
+ return found.flatMap((code) => {
68
+ const format = code.format;
69
+ if (!this.formats.includes(format) || code.cornerPoints.length === 0)
70
+ return [];
71
+ if (!contains(rect, center(code.cornerPoints)))
72
+ return [];
73
+ const points = code.cornerPoints.map((p) => ({ x: p.x, y: p.y }));
74
+ return [{ text: code.rawValue, format, points, timestamp }];
75
+ });
76
+ }
77
+ }
78
+ /**
79
+ * The browser's own `BarcodeDetector`, if any. Feature detection only (no
80
+ * list of browsers or devices): any browser that ships the API is used.
81
+ *
82
+ * Polyfills are rejected: packages such as `barcode-detector` install a
83
+ * `BarcodeDetector` that runs ZXing in WebAssembly on the main thread,
84
+ * slower than this SDK's own engine in its workers. A built-in class
85
+ * stringifies as `function BarcodeDetector() { [native code] }`.
86
+ */
87
+ function nativeApi() {
88
+ const api = Reflect.get(globalThis, 'BarcodeDetector');
89
+ if (typeof api !== 'function' || !isBuiltIn(api))
90
+ return undefined;
91
+ return api;
92
+ }
93
+ /** `true` for a function implemented by the browser, not in JavaScript. */
94
+ export function isBuiltIn(fn) {
95
+ return /\{\s*\[native code\]\s*\}\s*$/.test(Function.prototype.toString.call(fn));
96
+ }
97
+ function center(points) {
98
+ const n = points.length;
99
+ return {
100
+ x: points.reduce((s, p) => s + p.x, 0) / n,
101
+ y: points.reduce((s, p) => s + p.y, 0) / n,
102
+ };
103
+ }
104
+ function contains(r, p) {
105
+ return p.x >= r.x && p.x <= r.x + r.width && p.y >= r.y && p.y <= r.y + r.height;
106
+ }
107
+ //# sourceMappingURL=native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
package/dist/overlay.js CHANGED
@@ -150,7 +150,8 @@ function drawPolygon(ctx, pts) {
150
150
  return;
151
151
  ctx.beginPath();
152
152
  if (pts.length === 2 && second) {
153
- // 1D codes report the two ends of the scan line: draw a thick bar.
153
+ // Fallback for a 1D code whose box could not be measured: the two ends
154
+ // of the scan line, drawn as a thick bar.
154
155
  ctx.save();
155
156
  ctx.lineWidth = 10;
156
157
  ctx.globalAlpha *= 0.6;
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
package/dist/reader.d.ts CHANGED
@@ -21,8 +21,20 @@ export declare class BarcodeReader {
21
21
  private engineOptions;
22
22
  private running;
23
23
  private paused;
24
- /** A grab (GPU readback) is in progress. */
24
+ /** A frame is being acquired: grab (GPU readback) and native detection. */
25
25
  private grabbing;
26
+ /** Native `BarcodeDetector` used as the fast path, when enabled and available. */
27
+ private native;
28
+ /** Bumped when the native detector is replaced: results of the old one are dropped. */
29
+ private nativeGeneration;
30
+ /** The native detector failed once: not used again by this reader. */
31
+ private nativeFailed;
32
+ /** Native detector active: a fallback-only frame is being grabbed or decoded. */
33
+ private fallbackInFlight;
34
+ /** Native detector active: earliest time of the next fallback-only frame. */
35
+ private nextFallbackAt;
36
+ /** Which decoder drew the current highlights: each one only clears its own. */
37
+ private highlightSource;
26
38
  /** Frames being decoded (at most `engine.concurrency`). */
27
39
  private decoding;
28
40
  /** Sequence number of the last grabbed frame, and of the last one drawn. */
@@ -102,14 +114,41 @@ export declare class BarcodeReader {
102
114
  * Back-pressure: at most one grab in flight and one frame waiting for a
103
115
  * free worker. While a frame waits, no new grab starts, so frames are
104
116
  * skipped, never queued, and the waiting frame is at most one decode old.
117
+ * The native detection is part of the grab stage, so the same rule keeps
118
+ * at most one `detect()` in flight.
105
119
  */
106
120
  private tick;
121
+ /**
122
+ * Grab stage. With the native `BarcodeDetector`, the frame is searched
123
+ * natively first, straight from the `<video>` (Chrome reads it outside the
124
+ * page's threads): no grab of our own. Codes it finds are committed right
125
+ * away. When it finds nothing, the engine gets a frame **from time to
126
+ * time** (`FALLBACK_INTERVAL_MS`), without its fast path, for one fallback
127
+ * strategy: the safety net for what the native decoder has no
128
+ * preprocessing for (laser engraving, light-on-dark codes, `micro_qr`…).
129
+ * Grabbing and decoding every frame as well would double the reads of the
130
+ * frame and keep the workers busy on frames the native decoder handles,
131
+ * costing battery and CPU it also needs.
132
+ */
133
+ private acquire;
134
+ /** The engine may decode a frame for its fallbacks (native detector active). */
135
+ private fallbackDue;
136
+ /** The native decoder threw: decode with the engine only from now on. */
137
+ private disableNative;
138
+ /** The region of interest, in video pixels. */
139
+ private videoRect;
107
140
  private grabFrame;
108
141
  private enqueue;
109
142
  private decode;
110
143
  private decodeFrame;
144
+ /** Draw the live codes of frame `seq` and report the new ones, mapped to video pixels by `toVideo`. */
145
+ private present;
111
146
  private handleFrameError;
112
147
  private takeBuffer;
148
+ /**
149
+ * Account for a processed frame. `counted: false` for a native miss handed
150
+ * to the engine: that frame is counted once, when the engine is done.
151
+ */
113
152
  private updatePerf;
114
153
  private track;
115
154
  private refreshButtons;
@@ -1 +1 @@
1
- {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAa,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AA4B7G,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;AAExC;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAoDtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IApDjB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,SAAS,CAKf;IACF,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAS;IACzB,kFAAkF;IAClF,OAAO,CAAC,MAAM,CAA6B;IAC3C,uFAAuF;IACvF,OAAO,CAAC,gBAAgB,CAAK;IAC7B,sEAAsE;IACtE,OAAO,CAAC,YAAY,CAAS;IAC7B,iFAAiF;IACjF,OAAO,CAAC,gBAAgB,CAAS;IACjC,6EAA6E;IAC7E,OAAO,CAAC,cAAc,CAAK;IAC3B,+EAA+E;IAC/E,OAAO,CAAC,eAAe,CAAoC;IAC3D,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAK;IACrB,4EAA4E;IAC5E,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,KAAK,CAAK;IAClB,0DAA0D;IAC1D,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAA8B;IAC9C,yEAAyE;IACzE,OAAO,CAAC,SAAS,CAAK;IACtB,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAK;IACrB,2EAA2E;IAC3E,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IACrE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,IAAI,CAAoF;IAEhG,OAAO;IAkBP,kGAAkG;WACrF,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAWnE,0EAA0E;IAC1E,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAIhD,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAK3F,qDAAqD;IACrD,IAAI,KAAK,IAAI,gBAAgB,CAE5B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,KAAK,IAAI,WAAW,CAavB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,gGAAgG;IAChG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YASR,IAAI;IAiBlB,wFAAwF;YAC1E,aAAa;IAqB3B,OAAO,CAAC,aAAa;IASrB;;;;;;;;;OASG;YACW,kBAAkB;IA+BhC,kFAAkF;IAC5E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,iDAAiD;IACjD,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,IAAI;IAId,yFAAyF;IACnF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKzC,gGAAgG;IAC1F,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtD,oDAAoD;IACpD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,IAAI,cAAc,IAAI,OAAO,CAE5B;IAEK,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,kFAAkF;IAC5E,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBpD,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,cAAc;IAMtB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,IAAI;IAYZ;;;;;;;;;;;OAWG;YACW,OAAO;IAwCrB,gFAAgF;IAChF,OAAO,CAAC,WAAW;IAInB,yEAAyE;IACzE,OAAO,CAAC,aAAa;IAUrB,+CAA+C;IAC/C,OAAO,CAAC,SAAS;YAOH,SAAS;IAuBvB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,MAAM;YAYA,WAAW;IA2BzB,uGAAuG;IACvG,OAAO,CAAC,OAAO;IA6Bf,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,UAAU;IAQlB;;;OAGG;IACH,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,KAAK;YAIC,cAAc;IAU5B,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,WAAW;CAGpB"}