Skip to content

[3/3] feat: tell viewers when html5 playback is buffering - #274

Merged
dazzatronus merged 4 commits into
mainfrom
derk/html5-progressive-3-buffering
Oct 29, 2026
Merged

dazzatronus merged 4 commits into
mainfrom
derk/html5-progressive-3-buffering

Conversation

@dazzatronus

Copy link
Copy Markdown
Contributor

When a playing html5 clip outruns its bake, motion stutters, and nothing on screen said why.

While playback stutters, a small "Buffering" label with a spinner now sits in the video's bottom-left corner. It appears after half a second of stutter. It goes after 1.5 s of smooth playback, or straight away when playback pauses, everything has loaded, or the video is out of view. A clip counts as stuttering while the playhead's frame isn't in its bake yet.

The label keeps only its own display state. The canvas passes it Edit.isPlaybackBuffering() on every tick, the same way the timeline reads bake progress. It's DOM above the canvas, so exports never include it, and it takes no pointer events. It's hidden from screen readers, which already hear the toolbar's "Preparing smooth playback".

Squash subject: [3/3] feat: tell viewers when html5 playback is buffering. This cuts a minor release.

Verify: npx jest tests/buffering-notice.test.ts tests/html5-player.test.ts -t "uffering". Then press play straight after opening an edit with html5 clips. "Buffering" should appear in the video's corner while it stutters and go once playback is smooth.

Risk: low. The change is UI only.

PR Adds Why separate
[1/3] #271 Frames land as they bake, and clips take turns The store and scheduler the rest builds on
[2/3] #272 Held frames while playing Changes what playback shows
▶ [3/3] this PR Buffering label UI that explains the stutter

@dazzatronus
dazzatronus added this pull request to stack #276 October 29, 2026 01:07
@dazzatronus
dazzatronus force-pushed the derk/html5-progressive-3-buffering branch from cfdf787 to 6ca7f44 Compare October 29, 2026 01:07
Base automatically changed from derk/html5-progressive-2-held to main October 29, 2026 01:13
@dazzatronus
dazzatronus force-pushed the derk/html5-progressive-3-buffering branch from 6ca7f44 to 0e7d9d3 Compare October 29, 2026 01:13
@dazzatronus
dazzatronus merged commit 65098cf into main Oct 29, 2026
1 check passed
@dazzatronus
dazzatronus deleted the derk/html5-progressive-3-buffering branch October 29, 2026 01:16
github-actions Bot pushed a commit that referenced this pull request Oct 29, 2026
# [2.30.0](v2.29.5...v2.30.0) (2026-10-29)

### Bug Fixes

* give html5 and rich-caption clips their own look on the timeline ([#275](#275)) ([7a7eb39](7a7eb39))

### Features

* hold the nearest baked html5 frame while playing ([#272](#272)) ([4f50166](4f50166))
* play html5 frames as they bake ([#271](#271)) ([7e837e6](7e837e6))
* tell viewers when html5 playback is buffering ([#274](#274)) ([65098cf](65098cf))
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 2.30.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant