diff --git a/src/PdqHash/PdqHasher.cs b/src/PdqHash/PdqHasher.cs index 3986702..437f4d0 100644 --- a/src/PdqHash/PdqHasher.cs +++ b/src/PdqHash/PdqHasher.cs @@ -65,16 +65,16 @@ private static void ComputeDCTMatrix(Memory memory) public HashResult? FromStream(Stream input, string source) { - if (!input.CanSeek) + var stopwatch = Stopwatch.StartNew(); + + using var bufferedStream = input.CanSeek ? null : new MemoryStream(); + if (bufferedStream != null) { - using var buffered = new MemoryStream(); - input.CopyTo(buffered); - buffered.Position = 0; - return FromStream(buffered, source); + input.CopyTo(bufferedStream); + bufferedStream.Position = 0; + input = bufferedStream; } - var stopwatch = Stopwatch.StartNew(); - using var codec = SKCodec.Create(input, out var result); if (codec == null)