In dicformat, treat JaguarCD second session as data, compress using LZMA.

This commit is contained in:
2018-02-07 20:25:06 +00:00
parent b5568aaeb7
commit f734ae3d04

View File

@@ -1793,8 +1793,8 @@ namespace DiscImageChef.DiscImages
if(BitConverter.ToUInt64(verifyCrc, 0) != blockHeader.cmpCrc64)
{
DicConsole.DebugWriteLine("DiscImageChef format plugin",
"Expected block CRC {0:X16} but got {1:X16}", blockHeader.cmpCrc64,
BitConverter.ToUInt64(verifyCrc, 0));
"Expected block CRC {0:X16} but got {1:X16}",
blockHeader.cmpCrc64, BitConverter.ToUInt64(verifyCrc, 0));
return false;
}
@@ -2755,6 +2755,12 @@ namespace DiscImageChef.DiscImages
if(imageInfo.XmlMediaType == XmlMediaType.OpticalDisc && trk.TrackType == TrackType.Audio && !nocompress
) currentBlockHeader.compression = CompressionType.Flac;
// JaguarCD stores data in audio tracks. FLAC is too inefficient, use LZMA there.
if(imageInfo.MediaType == MediaType.JaguarCD && trk.TrackType == TrackType.Audio &&
!nocompress &&
currentBlockHeader.compression == CompressionType.Flac &&
trk.TrackSession > 1) currentBlockHeader.compression = CompressionType.Lzma;
blockStream = new MemoryStream();
decompressedStream = new MemoryStream();
if(currentBlockHeader.compression == CompressionType.Flac)