Pre-compress state files with Zstd

This commit is contained in:
Matt Nadareski
2025-10-09 10:01:24 -04:00
parent bbfdf462d0
commit 41bc410452
3 changed files with 24 additions and 12 deletions

View File

@@ -39,6 +39,7 @@
- Add preemptive helper for Zstd handling
- Pre-compress skeleton files with Zstd
- Fix broken file count tests
- Pre-compress state files with Zstd
### 3.4.2 (2025-09-30)

View File

@@ -103,7 +103,7 @@ namespace MPF.Processors.Test
var processor = new Redumper(RedumpSystem.IBMPCcompatible);
var actual = processor.GetOutputFiles(MediaType.CDROM, outputDirectory, outputFilename);
Assert.Equal(18, actual.Count);
Assert.Equal(19, actual.Count);
}
[Fact]
@@ -114,7 +114,7 @@ namespace MPF.Processors.Test
var processor = new Redumper(RedumpSystem.IBMPCcompatible);
var actual = processor.GetOutputFiles(MediaType.DVD, outputDirectory, outputFilename);
Assert.Equal(16, actual.Count);
Assert.Equal(17, actual.Count);
}
[Fact]
@@ -125,7 +125,7 @@ namespace MPF.Processors.Test
var processor = new Redumper(RedumpSystem.IBMPCcompatible);
var actual = processor.GetOutputFiles(MediaType.HDDVD, outputDirectory, outputFilename);
Assert.Equal(11, actual.Count);
Assert.Equal(12, actual.Count);
}
[Fact]
@@ -136,7 +136,7 @@ namespace MPF.Processors.Test
var processor = new Redumper(RedumpSystem.IBMPCcompatible);
var actual = processor.GetOutputFiles(MediaType.BluRay, outputDirectory, outputFilename);
Assert.Equal(11, actual.Count);
Assert.Equal(12, actual.Count);
}
[Fact]
@@ -161,7 +161,7 @@ namespace MPF.Processors.Test
string outputFilename = string.Empty;
var processor = new Redumper(RedumpSystem.IBMPCcompatible);
var actual = processor.FoundAllFiles(MediaType.CDROM, outputDirectory, outputFilename);
Assert.Equal(8, actual.Count);
Assert.Equal(7, actual.Count);
}
[Fact]

View File

@@ -99,9 +99,11 @@ namespace MPF.Processors
VolumeLabels = volLabels;
}
// Pre-compress the skeleton using Zstandard
// Pre-compress the skeleton and state using Zstandard
if (File.Exists($"{basePath}.skeleton"))
_ = CompressZstandard($"{basePath}.skeleton");
if (File.Exists($"{basePath}.state"))
_ = CompressZstandard($"{basePath}.state");
// Extract info based generically on MediaType
switch (mediaType)
@@ -477,10 +479,13 @@ namespace MPF.Processors
"pma"),
new([$"{outputFilename}.scram", $"{outputFilename}.scrap"], OutputFileFlags.Required
| OutputFileFlags.Deleteable),
new($"{outputFilename}.state", OutputFileFlags.Required
| OutputFileFlags.Binary
// TODO: Required if Zstandard version doesn't exist
new($"{outputFilename}.state", OutputFileFlags.Binary
| OutputFileFlags.Zippable,
"state"),
new($"{outputFilename}.state.zst", OutputFileFlags.Binary
| OutputFileFlags.Zippable,
"state_zst"),
new($"{outputFilename}.subcode", OutputFileFlags.Required
| OutputFileFlags.Binary
| OutputFileFlags.Zippable,
@@ -595,10 +600,13 @@ namespace MPF.Processors
new($"{outputFilename}.ssv2", OutputFileFlags.Binary
| OutputFileFlags.Zippable,
"ssv2"),
new($"{outputFilename}.state", OutputFileFlags.Required
| OutputFileFlags.Binary
// TODO: Required if Zstandard version doesn't exist
new($"{outputFilename}.state", OutputFileFlags.Binary
| OutputFileFlags.Zippable,
"state"),
new($"{outputFilename}.state.zst", OutputFileFlags.Binary
| OutputFileFlags.Zippable,
"state_zst"),
];
case MediaType.HDDVD: // TODO: Confirm that this information outputs
@@ -636,10 +644,13 @@ namespace MPF.Processors
new($"{outputFilename}.skeleton.zst", OutputFileFlags.Binary
| OutputFileFlags.Zippable,
"skeleton_zst"),
new($"{outputFilename}.state", OutputFileFlags.Required
| OutputFileFlags.Binary
// TODO: Required if Zstandard version doesn't exist
new($"{outputFilename}.state", OutputFileFlags.Binary
| OutputFileFlags.Zippable,
"state"),
new($"{outputFilename}.state.zst", OutputFileFlags.Binary
| OutputFileFlags.Zippable,
"state_zst"),
];
}