Fix font loading when attachments precede tracks in MKV#63
Open
edde746 wants to merge 1 commit intopeerless2012:masterfrom
Open
Fix font loading when attachments precede tracks in MKV#63edde746 wants to merge 1 commit intopeerless2012:masterfrom
edde746 wants to merge 1 commit intopeerless2012:masterfrom
Conversation
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.
Fixes #19. Font attachments embedded in MKV files were not loaded when the
AttachmentsEBML element appeared before theTrackselement in the file. The Matroska specification does not enforce a fixed order for top-level elements, so parsers must handle either arrangement.The extractor previously guarded font loading with
hasTracks(), which returned false if no subtitle track had been discovered yet. SinceExtractorInputis a streaming interface, skipped font data cannot be re-read — the fonts were permanently lost.Changes
Fonts encountered before any ASS track are now buffered in
AssHandlerand flushed to libass when the first track is created. Lazy initialization of the native library is preserved — if no ASS tracks exist, libass is never loaded.AssHandler.kt- addedpendingFontsbuffer,addFont()method, flush increateTrack()AssMatroskaExtractor.kt- removedhasTracks()guard, delegates toassHandler.addFont()Before / After
Nyaa ID for example is 1856654.
This PR was developed with AI assistance (Claude Code).