Settings, PLAN: video previews follow the Transcode device
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
fac8a3a180
commit
f2997a04c8
@@ -852,6 +852,16 @@ something long in one, switch away and back, refresh — it's all still there.
|
|||||||
- 360 files: the look-around view, zoom 8°–300° (ordinary lens into stereographic, the
|
- 360 files: the look-around view, zoom 8°–300° (ordinary lens into stereographic, the
|
||||||
"little planet"), drag/pinch/wheel, phone motion. Full screen is the element's, or the
|
"little planet"), drag/pinch/wheel, phone motion. Full screen is the element's, or the
|
||||||
whole window on an iPhone.
|
whole window on an iPhone.
|
||||||
|
- **Video previews follow the setting too** (same day, asked for as "it should use the
|
||||||
|
same video generation device"). On the device's own machine the hub says which device
|
||||||
|
by header (`X-Hamlab-Device`); for a file elsewhere the hub asks the file's machine's
|
||||||
|
cache first (`?cached=1`), else has the device's machine make it from the hub's one-file
|
||||||
|
URL (`POST /api/files/thumb-from`) and keeps it in the file's machine's cache (`PUT
|
||||||
|
/api/files/thumb`, refused if the file changed since its listing), so each is made once.
|
||||||
|
A failure is kept as a failure. Unreachable → made where the file is, as before. Images
|
||||||
|
and audio covers stay on the file's machine's CPU (a JPEG is cheaper there than a GPU
|
||||||
|
round trip). Measured: a `hamtv` video previewed on grid's A380 in 0.22 s, then 2 ms
|
||||||
|
from hamtv's cache. The previews button's tooltip names the device.
|
||||||
- Measured (`web/scripts/e2e-player.mjs`, Chromium): an iPhone HLG clip on `core` made on
|
- Measured (`web/scripts/e2e-player.mjs`, Chromium): an iPhone HLG clip on `core` made on
|
||||||
grid's A380 — 3.2 s to play, a seek 1.0 s, a quality change 1.5 s; the 8K 360 Disney day on
|
grid's A380 — 3.2 s to play, a seek 1.0 s, a quality change 1.5 s; the 8K 360 Disney day on
|
||||||
grid — 3.1 s, 2160s on Auto, a seek 4.9 s (10 s source keyframes).
|
grid — 3.1 s, 2160s on Auto, a seek 4.9 s (10 s source keyframes).
|
||||||
|
|||||||
@@ -298,7 +298,8 @@ function TranscodeDevice() {
|
|||||||
{err && <div className="error" style={{ marginTop: 8 }}>{err}</div>}
|
{err && <div className="error" style={{ marginTop: 8 }}>{err}</div>}
|
||||||
<div className="muted small" style={{ marginTop: 10 }}>
|
<div className="muted small" style={{ marginTop: 10 }}>
|
||||||
Opening a video in Files plays it YouTube's way — Auto picks the quality the connection takes, any quality can be picked by hand,
|
Opening a video in Files plays it YouTube's way — Auto picks the quality the connection takes, any quality can be picked by hand,
|
||||||
or the file as it is — and every quality is made on the fly, from wherever you seek to, on this device. When it is on another
|
or the file as it is — and every quality is made on the fly, from wherever you seek to, on this device. Video previews
|
||||||
|
(thumbnails) are made on it too; image previews stay on each machine's CPU. When it is on another
|
||||||
machine than the file, that machine reads the file through this hub. If it can't be reached, the file's own machine makes it instead.
|
machine than the file, that machine reads the file through this hub. If it can't be reached, the file's own machine makes it instead.
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user