From d9745e4d3bd2a6fd14393e1278fa4bd07ed94881 Mon Sep 17 00:00:00 2001 From: Dmitry Pentin Date: Thu, 15 Jul 2021 18:42:30 +0300 Subject: [PATCH] Restart interval is now handled by scan decoder --- .../Jpeg/Components/Decoder/HuffmanScanDecoder.cs | 8 ++++++-- src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs | 10 +--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanDecoder.cs index 97ec45ec1..688414b33 100644 --- a/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanDecoder.cs @@ -22,7 +22,9 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder private JpegFrame frame; private JpegComponent[] components; - // The restart interval. + /// + /// The reset interval determined by RST markers. + /// private int restartInterval; // How many mcu's are left to do. @@ -72,7 +74,9 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder this.acHuffmanTables = new HuffmanTable[maxTables]; } - // Reset interval + /// + /// Sets reset interval determined by RST markers. + /// public int ResetInterval { set diff --git a/src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs index ee723f062..e61909798 100644 --- a/src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs @@ -42,11 +42,6 @@ namespace SixLabors.ImageSharp.Formats.Jpeg /// private readonly byte[] markerBuffer = new byte[2]; - /// - /// The reset interval determined by RST markers. - /// - private ushort resetInterval; - /// /// Whether the image has an EXIF marker. /// @@ -1001,7 +996,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg JpegThrowHelper.ThrowBadMarker(nameof(JpegConstants.Markers.DRI), remaining); } - this.resetInterval = this.ReadUint16(stream); + this.scanDecoder.ResetInterval = this.ReadUint16(stream); } /// @@ -1052,9 +1047,6 @@ namespace SixLabors.ImageSharp.Formats.Jpeg // All the comments below are for separate refactoring PR // Main reason it's not fixed here is to make this commit less intrusive - // This can be injectd in DRI marker callback - this.scanDecoder.ResetInterval = this.resetInterval; - // This can be passed as ParseEntropyCodedData() parameter as it is used only there this.scanDecoder.ComponentsLength = selectorsCount;