Browse Source

Skip SOS contents when parsing metadata only

pull/549/head
James Jackson-South 9 years ago
parent
commit
934e2bce34
  1. 9
      src/ImageSharp/Formats/Jpeg/GolangPort/OrigJpegDecoderCore.cs
  2. 6
      src/ImageSharp/Formats/Jpeg/PdfJsPort/PdfJsJpegDecoderCore.cs

9
src/ImageSharp/Formats/Jpeg/GolangPort/OrigJpegDecoderCore.cs

@ -361,16 +361,19 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.GolangPort
break; break;
case OrigJpegConstants.Markers.SOS: case OrigJpegConstants.Markers.SOS:
if (!metadataOnly) if (metadataOnly)
{ {
this.ProcessStartOfScanMarker(remaining); this.InputProcessor.Skip(remaining);
} }
else
{
this.ProcessStartOfScanMarker(remaining);
if (this.InputProcessor.ReachedEOF) if (this.InputProcessor.ReachedEOF)
{ {
// If unexpected EOF reached. We can stop processing bytes as we now have the image data. // If unexpected EOF reached. We can stop processing bytes as we now have the image data.
processBytes = false; processBytes = false;
} }
}
break; break;
case OrigJpegConstants.Markers.DRI: case OrigJpegConstants.Markers.DRI:

6
src/ImageSharp/Formats/Jpeg/PdfJsPort/PdfJsJpegDecoderCore.cs

@ -246,7 +246,11 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort
break; break;
case PdfJsJpegConstants.Markers.SOS: case PdfJsJpegConstants.Markers.SOS:
if (!metadataOnly) if (metadataOnly)
{
this.InputStream.Skip(remaining);
}
else
{ {
this.ProcessStartOfScanMarker(); this.ProcessStartOfScanMarker();
} }

Loading…
Cancel
Save