diff --git a/Aaru.Compression/Aaru.Compression.csproj b/Aaru.Compression/Aaru.Compression.csproj
index c51b1d9a0..531b9694d 100644
--- a/Aaru.Compression/Aaru.Compression.csproj
+++ b/Aaru.Compression/Aaru.Compression.csproj
@@ -79,7 +79,6 @@
-
diff --git a/Aaru.Compression/BZip2.cs b/Aaru.Compression/BZip2.cs
index 5469f948e..107504d3d 100644
--- a/Aaru.Compression/BZip2.cs
+++ b/Aaru.Compression/BZip2.cs
@@ -28,7 +28,8 @@
using System.IO;
using System.Runtime.InteropServices;
-using Ionic.BZip2;
+using SharpCompress.Compressors;
+using SharpCompress.Compressors.BZip2;
namespace Aaru.Compression;
@@ -62,7 +63,7 @@ public partial class BZip2
}
using var cmpMs = new MemoryStream(source);
- using var decStream = new BZip2InputStream(cmpMs, false);
+ using var decStream = BZip2Stream.Create(cmpMs, CompressionMode.Decompress, false);
return decStream.Read(destination, 0, destination.Length);
}
@@ -84,7 +85,7 @@ public partial class BZip2
}
using var cmpMs = new MemoryStream(source);
- using var encStream = new BZip2OutputStream(new MemoryStream(destination), blockSize100K);
+ using var encStream = BZip2Stream.Create(new MemoryStream(destination), CompressionMode.Compress, false);
encStream.Write(source, 0, source.Length);
return source.Length;
diff --git a/Aaru.Filters/Aaru.Filters.csproj b/Aaru.Filters/Aaru.Filters.csproj
index 80f31217b..4a2424d78 100644
--- a/Aaru.Filters/Aaru.Filters.csproj
+++ b/Aaru.Filters/Aaru.Filters.csproj
@@ -45,7 +45,6 @@
-
diff --git a/Aaru.Filters/BZip2.cs b/Aaru.Filters/BZip2.cs
index eb97faba2..9c1141515 100644
--- a/Aaru.Filters/BZip2.cs
+++ b/Aaru.Filters/BZip2.cs
@@ -36,7 +36,8 @@ using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces;
using Aaru.Helpers;
using Aaru.Helpers.IO;
-using Ionic.BZip2;
+using SharpCompress.Compressors;
+using SharpCompress.Compressors.BZip2;
namespace Aaru.Filters;
@@ -142,11 +143,14 @@ public class BZip2 : IFilter
///
public ErrorNumber Open(byte[] buffer)
{
- _dataStream = new MemoryStream(buffer);
- BasePath = null;
- CreationTime = DateTime.UtcNow;
- LastWriteTime = CreationTime;
- _innerStream = new ForcedSeekStream(_dataStream, false);
+ _dataStream = new MemoryStream(buffer);
+ BasePath = null;
+ CreationTime = DateTime.UtcNow;
+ LastWriteTime = CreationTime;
+
+ _innerStream =
+ new ForcedSeekStream(BZip2Stream.Create(_dataStream, CompressionMode.Decompress, false));
+
DataForkLength = _innerStream.Length;
return ErrorNumber.NoError;
@@ -155,11 +159,14 @@ public class BZip2 : IFilter
///
public ErrorNumber Open(Stream stream)
{
- _dataStream = stream;
- BasePath = null;
- CreationTime = DateTime.UtcNow;
- LastWriteTime = CreationTime;
- _innerStream = new ForcedSeekStream(_dataStream, false);
+ _dataStream = stream;
+ BasePath = null;
+ CreationTime = DateTime.UtcNow;
+ LastWriteTime = CreationTime;
+
+ _innerStream =
+ new ForcedSeekStream(BZip2Stream.Create(_dataStream, CompressionMode.Decompress, false));
+
DataForkLength = _innerStream.Length;
return ErrorNumber.NoError;
@@ -172,9 +179,12 @@ public class BZip2 : IFilter
BasePath = System.IO.Path.GetFullPath(path);
var fi = new FileInfo(path);
- CreationTime = fi.CreationTimeUtc;
- LastWriteTime = fi.LastWriteTimeUtc;
- _innerStream = new ForcedSeekStream(_dataStream, false);
+ CreationTime = fi.CreationTimeUtc;
+ LastWriteTime = fi.LastWriteTimeUtc;
+
+ _innerStream =
+ new ForcedSeekStream(BZip2Stream.Create(_dataStream, CompressionMode.Decompress, false));
+
DataForkLength = _innerStream.Length;
return ErrorNumber.NoError;
diff --git a/Aaru.Helpers/IO/ForcedSeekStream.cs b/Aaru.Helpers/IO/ForcedSeekStream.cs
index 686d58b5b..79eed470e 100644
--- a/Aaru.Helpers/IO/ForcedSeekStream.cs
+++ b/Aaru.Helpers/IO/ForcedSeekStream.cs
@@ -48,6 +48,17 @@ public sealed class ForcedSeekStream : Stream where T : Stream
readonly T _baseStream;
long _streamLength;
+ /// Initializes a new instance of the class.
+ /// A pre-created stream instance.
+ ///
+ public ForcedSeekStream(T stream)
+ {
+ _baseStream = stream;
+ _backFile = Path.GetTempFileName();
+ _backStream = new FileStream(_backFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
+ CalculateLength();
+ }
+
/// Initializes a new instance of the class.
/// The real (uncompressed) length of the stream.
/// Parameters that are used to create the base stream.
diff --git a/Aaru.Images/Aaru.Images.csproj b/Aaru.Images/Aaru.Images.csproj
index 12b18caa4..e72a3589d 100644
--- a/Aaru.Images/Aaru.Images.csproj
+++ b/Aaru.Images/Aaru.Images.csproj
@@ -34,7 +34,6 @@
-
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 5a01f0f76..a73961fa3 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -1,82 +1,81 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file