Repository navigation
fix(export): tag browser exports as limited range so Safari's whites stay white - #277
Merged
Merged
Conversation
github-actions Bot
pushed a commit
that referenced
this pull request
Oct 30, 2026
## [2.30.1](v2.30.0...v2.30.1) (2026-10-30) ### Bug Fixes * draw clip filters in the preview as the render applies them ([#265](#265)) ([ac02f9b](ac02f9b)) * draw html5 frames on a software canvas so Firefox keeps their gradients ([#280](#280)) ([d508db8](d508db8)) * **export:** draw export frames into one stencil target so Firefox keeps masked content ([#278](#278)) ([f431c6b](f431c6b)) * **export:** tag browser exports as limited range so Safari's whites stay white ([#277](#277)) ([c6150eb](c6150eb)) * keep a frame's embedded images when Safari draws an html5 clip ([#279](#279)) ([5154007](5154007)) * keep baking html5 clips while their tab is in the background ([#281](#281)) ([e1fa158](e1fa158))
|
🎉 This PR is included in version 2.30.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This was referenced Oct 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every browser export from Safari plays with grey whites. Safari's
VideoEncoderwrites limited-range H.264: white is stored as 235, and the SPS carries no range flag. But it reportsdecoderConfig.colorSpace.fullRange: true. mediabunny writes that into the MP4'scolrbox, so players read 235 as light grey rather than white. Chrome reportsfalse, so its exports are unaffected.The exporter now sets
fullRangetofalseinonEncodedPacket, which mediabunny calls before it muxes the packet's metadata. Chrome, Safari and Firefox all encode canvas frames as limited range. mediabunny 1.64.0, the latest, behaves the same, so updating it wouldn't help.Verify:
npm run verify:ci. Then, in Safari, export an edit with a white background:ffprobe -show_entries stream=color_rangereportstv(it waspc), and the white plays as white in QuickTime.Risk: if a browser ever encoded full-range output, its exports would be tagged limited and show crushed blacks and whites. Reading the flag from the SPS would remove that assumption.
Independent of #278: the two merge cleanly in either order, and pass together.