diff --git a/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanDecoder.cs b/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanDecoder.cs index c189e4e285..d212340c10 100644 --- a/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanDecoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanDecoder.cs @@ -16,10 +16,12 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder /// internal class HuffmanScanDecoder { - private readonly HuffmanTable[] dcHuffmanTables; - private readonly HuffmanTable[] acHuffmanTables; private readonly BufferedReadStream stream; + // huffman tables + public HuffmanTable[] dcHuffmanTables; + public HuffmanTable[] acHuffmanTables; + // Frame related private JpegFrame frame; private JpegComponent[] components; @@ -88,15 +90,11 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder /// The token to monitor cancellation. public HuffmanScanDecoder( BufferedReadStream stream, - HuffmanTable[] dcHuffmanTables, - HuffmanTable[] acHuffmanTables, CancellationToken cancellationToken) { this.dctZigZag = ZigZag.CreateUnzigTable(); this.stream = stream; this.scanBuffer = new HuffmanScanBuffer(stream); - this.dcHuffmanTables = dcHuffmanTables; - this.acHuffmanTables = acHuffmanTables; this.cancellationToken = cancellationToken; } diff --git a/src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs b/src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs index 5d7e12618c..dda4e96ea3 100644 --- a/src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs @@ -1051,12 +1051,13 @@ namespace SixLabors.ImageSharp.Formats.Jpeg var sd = new HuffmanScanDecoder( stream, - this.dcHuffmanTables, - this.acHuffmanTables, cancellationToken) { Frame = this.Frame, + dcHuffmanTables = this.dcHuffmanTables, + acHuffmanTables = this.acHuffmanTables, + ResetInterval = this.resetInterval, componentsLength = selectorsCount,