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.
Helps #6720
In "5.1. Basic MP File Structure" of the specification, the order of the markers is SOI, APP1 and then APP2.
Testing Pillow at the moment, JPEG's APP0 marker comes immediately after SOI.
This PR stops passing
encoderinfo["extra"]
data to JpegImagePlugin, and instead has MpoImagePlugin write out the markers by itself, so that SOI is first, then the optional APP1 EXIF marker, then APP2, and then the data created by JpegImagePlugin.I've also given up on the idea of writing data to file and then rewinding to populate the offsets to each frame later, and am instead using
io.BytesIO
to store the JPEG data until the offsets have been calculated, and then write to file.