From 7540fd9018aae10e351d738ad626204fd8ed0348 Mon Sep 17 00:00:00 2001 From: Dmitry Pentin Date: Mon, 12 Jul 2021 23:36:08 +0300 Subject: [PATCH] Fixed baseline images tsting code --- .../Formats/Jpg/SpectralJpegTests.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/ImageSharp.Tests/Formats/Jpg/SpectralJpegTests.cs b/tests/ImageSharp.Tests/Formats/Jpg/SpectralJpegTests.cs index b694808b76..09548e2761 100644 --- a/tests/ImageSharp.Tests/Formats/Jpg/SpectralJpegTests.cs +++ b/tests/ImageSharp.Tests/Formats/Jpg/SpectralJpegTests.cs @@ -6,8 +6,10 @@ using System.IO; using System.Linq; using System.Threading; using SixLabors.ImageSharp.Formats.Jpeg; +using SixLabors.ImageSharp.Formats.Jpeg.Components; using SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder; using SixLabors.ImageSharp.IO; +using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Tests.Formats.Jpg.Utils; @@ -139,8 +141,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg private class DebugSpectralConverter : SpectralConverter where TPixel : unmanaged, IPixel { - private readonly SpectralConverter converter; - private JpegFrame frame; private LibJpegTools.SpectralData spectralData; @@ -177,6 +177,16 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg } this.baselineScanRowCounter++; + + // As spectral buffers are reused for each stride decoding - we need to manually clear it like it's done in SpectralConverter + foreach (JpegComponent component in this.frame.Components) + { + Buffer2D spectralBlocks = component.SpectralBlocks; + for (int i = 0; i < spectralBlocks.Height; i++) + { + spectralBlocks.GetRowSpan(i).Clear(); + } + } } public override void InjectFrameData(JpegFrame frame, IRawJpegData jpegData)