Reach the JBIG2 decoder through the fleet's codec registry - #28
Merged
Conversation
The JBIG2 decoder was named here, in the module that draws PDF pages. It is also named in go-gfx/gfx/codec, which is where the fleet keeps its image decoders and which reads the JBIG2 FILE form. Two modules were choosing the same third-party decoder without either knowing about the other. codec.DecodeEmbeddedJBIG2 (go-gfx/gfx v0.14.0) takes the headerless form a PDF embeds, so this module asks for a decoded picture and stops holding an opinion about who decodes it. That matters more than usual for this decoder. Its resource limits are process-global rather than per-decode, so a library cannot raise them without changing them for everything else in the binary, and it publishes no tagged version — this module now depends on it only indirectly. The day it is swapped should be a change in one place, and now it is. No pixel moves: same decoder, same inversion, same packed rows. The pages this was measured on come out identical. 100% statement coverage, go vet and -race clean, nine cross-compile targets.
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.
#27 landed JBIG2 decoding and named the decoder here.
go-gfx/gfx/codec— where the fleet keeps its image decoders — names the same one, for the JBIG2 file form. Two modules were choosing the same third-party decoder without either knowing about the other.codec.DecodeEmbeddedJBIG2(go-gfx/gfx v0.14.0, added in go-gfx/gfx#24) takes the headerless form a PDF embeds, so this module asks for a decoded picture and stops holding an opinion about who decodes it.That matters more than usual for this decoder:
No pixel moves: same decoder, same inversion, same packed rows.
100% statement coverage,
go vetand-raceclean, nine cross-compile targets.