unarr/internal/library
Deivid Soto 547b0d4e37 fix(stream): retry thumbnail extraction with output-seek on seek-index failure
Fast input seek (-ss before -i) fails on files whose seek index is imprecise
or mildly corrupt: the demuxer lands mid-EBML element ("invalid as first byte
of an EBML number") and decodes no frame, so the web scrubber showed a broken
image (2026-06-03, anime MKVs: 15/15 prewarm thumbnails failed). When the fast
path yields no frame, retry once with output seek (-ss after -i, decode from
the start) + -err_detect ignore_err. Applied in both the on-demand handler
(buildThumbnailArgsAccurate) and the prewarm extractor (ExtractThumbnailJPEG).
Cost is paid only when the fast path fails, so healthy files keep the cheap path.

Regression test: TestBuildThumbnailArgsAccurate.
2026-06-03 18:55:49 +02:00
..
mediainfo fix(stream): retry thumbnail extraction with output-seek on seek-index failure 2026-06-03 18:55:49 +02:00
cache.go chore: rename module from torrentclaw-cli to unarr 2026-03-30 13:06:07 +02:00
cache_test.go feat: add migrate command, media server detection, and debrid auto-config 2026-03-29 16:54:32 +02:00
delete.go feat(library): add server-driven file deletion with allow_delete config 2026-04-10 16:35:12 +02:00
delete_test.go feat(library): add server-driven file deletion with allow_delete config 2026-04-10 16:35:12 +02:00
fingerprint.go feat(library): content fingerprint + path-resilient sync + stream self-heal 2026-06-03 12:08:58 +02:00
fingerprint_test.go feat(library): content fingerprint + path-resilient sync + stream self-heal 2026-06-03 12:08:58 +02:00
paths.go feat(scan): always scan downloads + organize dirs, deduplicate child paths 2026-04-10 11:46:20 +02:00
prewarm.go fix(stream): /critico review fixes for the sidecar cache 2026-06-02 13:46:07 +02:00
prewarm_test.go fix(stream): /critico review fixes for the sidecar cache 2026-06-02 13:46:07 +02:00
resolve.go fix(library): classify resolution by width + height, not height alone 2026-05-27 11:54:29 +02:00
resolve_test.go fix(library): classify resolution by width + height, not height alone 2026-05-27 11:54:29 +02:00
scanner.go feat(library): content fingerprint + path-resilient sync + stream self-heal 2026-06-03 12:08:58 +02:00
scanner_test.go feat(cli): upgrade command, rich status, and version cache 2026-03-31 22:05:43 +02:00
sync.go feat(library): content fingerprint + path-resilient sync + stream self-heal 2026-06-03 12:08:58 +02:00
sync_test.go feat(cli): upgrade command, rich status, and version cache 2026-03-31 22:05:43 +02:00
types.go feat(library): content fingerprint + path-resilient sync + stream self-heal 2026-06-03 12:08:58 +02:00