Videos: a video that opens behind another tab has its first picture

- Videos: behind another tab Chrome hands over no video frames, so
  a video that opens there takes its first picture as soon as it has
  data. Before, a video item that began there was missing from the
  recording, sound and all. Switching tabs while recording works.
- Development: 2088 editor checks (68l is new).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
adminandClaude Opus 5.5 committed 2026-10-14 14:36:02 +02:00
1 parent 9c9dfd8e14
commit f0d4f0e2dc
2 files changed
+6 -2

No files matched your search

+1 -1
@@ -21,7 +21,7 @@ php tests/php/releases.test.php # the release stor
php tests/php/files.test.php # uploaded files in a folder per account (#344), the same way
php tests/php/videos.test.php # the video store, its queue and the worker (#402), with the
# real ffmpeg: the CI image and feuerwerk-video have it
node tools/seed-e2e.mjs && node tools/e2e.mjs # 2086 editor checks, screenshots in /tmp/gm-e2e-*.png
node tools/seed-e2e.mjs && node tools/e2e.mjs # 2088 editor checks, screenshots in /tmp/gm-e2e-*.png
GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step
./e2e.sh start [GM_STEPS] # the same run detached, see below
./e2e.sh status # live progress, or the last run's result
+5 -1
@@ -207,7 +207,11 @@ Two action nodes record what the game view shows, with what the master plays (#4
**Real time** off had every frame. Chrome may still put a tab to sleep that stays behind others
for long, with its energy saver for one. The beat is `src/viewport/backgroundBeat.ts`; the waits
of a recording use a worker's timers too (`backgroundTimers.ts`), since Chrome holds a hidden
page's own to once a second.
page's own to once a second. Behind another tab Chrome hands over no video frames
(`requestVideoFrameCallback`), so a video that opens there takes its first picture as soon as
it has data instead of waiting for one. Before, a video item that began behind another tab was
missing from the recording, sound and all, until the tab was in front again, and every frame
of it waited 3 s. Switching back and forth while recording works too.
- **It leaves out the wait for a video.** While the game view leaves a video sprite out because its
picture is not there yet, no frame is taken, the recorded time stands and the sound of that
time is left out too, for at most 3 s at a time. A `Start recording` right after