OCR runs only when a QR is (re)detected, to stay light.
If OCR cannot parse an expiry, the scanner uses a 15-second expiry and renews it every 5 seconds while the QR remains visible.