Repository navigation
Conversation
Owner
|
Thanks for this, nice catch. A complete length chain with a one-byte EOS header is exactly the shape the #561 sanitizer cannot see, and keeping the picture and the trailing RPU instead of cutting the sample is the right call. I built the branch locally and the NAL sanitizer and new header suites pass. Happy to take it once it is out of draft and your hardware run is done. A few small things for when you get back to it:
Optional: the #561 cut and this pass now walk the same chain twice per HEVC sample. Cheap enough to leave as is, just noting it in case folding them into one walk turns out simple. |
Nebr88
force-pushed
the
fix/truncated-hevc-header
branch
from
November 2, 2026 09:19
e3405c5 to
7c45b8e
Compare
Nebr88
force-pushed
the
fix/truncated-hevc-header
branch
from
November 4, 2026 11:49
7c45b8e to
d8b9a77
Compare
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.
A length-prefixed HEVC sample can walk exactly while containing a one-byte EOS header. Apple's native path can reject its whole fMP4 segment even when the sample also contains a valid picture and following Dolby Vision RPU.
Remove only incomplete two-byte HEVC headers after framing is confirmed. Valid pictures/RPUs and timestamps survive, shared packet storage is made writable before compaction, and a header-only sample is dropped. Unconfirmed framing and H.264 retain their existing behavior.
Maintainer feedback addressed: doc-comment/property pairing, unrelated import reorder, actual muxer round-trip/COW/all-short-drop tests, changelog and format docs. Rebased onto main a6fbf0a (4 November). The optional combined NAL walk remains outside this correctness fix.
Validation on Apple Silicon, macOS26.7.1, Xcode27.2 / Swift6.4.2:
Still draft pending isolated hardware qualification and investigation of the full-suite failures. Historical passing counts describe earlier commits, not this head.