Repository navigation
feat(display): a host-owned display-criteria mode (#842) - #843
Merged
Merged
Conversation
suppressDisplayCriteria means "AVKit writes the criteria from the item", and every branch behind it is built around that inbound write: the play gate holds the full 1000 ms Stage 1 for HDR and Dolby Vision, the panel readout is skipped as stale, and observation is armed for the write. A host that keeps the panel in its system output format (a Dynamic Range "System" setting) or writes criteria of its own had no correct setting. LoadOptions.displayCriteriaOwner names the writer: .engine (default, defers to suppressDisplayCriteria), .avKit, and .host. A host-owned load never writes, clears only a criteria the engine left applied, takes the brief play-gate budget like an engine write (the write happened before load()), reads the panel, and still waits out a switch it sees running. An explicit owner wins over the Bool; a secondary engine stays a non-writer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJcXkGQrMiBPixVEFTSBJS
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.
Implements #842.
suppressDisplayCriteriameans "AVKit writes", so a host that keeps the panel in its system output format, or writes its own criteria, paid up to 1 s of play-gate wait per HDR / DV title for an AVKit write that never came, and lost the engine's panel readout.LoadOptions.displayCriteriaOwner: DisplayCriteriaOwner(.enginedefault,.avKit,.host). Resolution inLoadOptions.effectiveDisplayCriteriaOwner: an explicit non-engine owner wins, otherwisesuppressDisplayCriteriakeeps meaning.avKit. No source break..host: no engine write (load, reload, HDR10 4K HEVC 50fps live HLS via nativeRemoteHLS: AVPlayer exposes no video track (audio-only, black); no HDR display-criteria negotiation. VLC + Android decode it fine #168 nativeRemoteHLS late apply),clearStalefor an engine leftover (reset()staysdidApply-gated),.briefplay-gate grace (renamed parametercriteriaWrittenBeforeLoad), panel readout taken, observation armed so a write during the load is still seen..secondaryengines stay non-writers without a readout regardless of the owner passed.reloadAtCurrentPosition(applying:)likesuppressDisplayCriteria; inventory updated.docs/api.mdrows, CHANGELOG.Tests:
Issue842DisplayCriteriaOwnerTestsplus the renamed-parameter suites (DisplayCriteria*, RemoteHLSFormatDetection, Issue460, SharedOutputRole, SoftwarePathEscalation, Issue493): 170 tests green on macOS. Not run on tvOS hardware; the play-gate timing on a real panel is the device check.🤖 Generated with Claude Code
https://claude.ai/code/session_01WJcXkGQrMiBPixVEFTSBJS