mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Fix detection of version 3 and upper DVD-RW and DVD-RW DL. Fixes #456
This commit is contained in:
@@ -292,7 +292,6 @@ namespace Aaru.Core.Devices.Dumping
|
|||||||
UpdateStatus?.Invoke($"PFI:\n{PFI.Prettify(decPfi)}");
|
UpdateStatus?.Invoke($"PFI:\n{PFI.Prettify(decPfi)}");
|
||||||
|
|
||||||
// False book types
|
// False book types
|
||||||
if(dskType == MediaType.DVDROM)
|
|
||||||
switch(decPfi.DiskCategory)
|
switch(decPfi.DiskCategory)
|
||||||
{
|
{
|
||||||
case DiskCategory.DVDPR:
|
case DiskCategory.DVDPR:
|
||||||
@@ -324,7 +323,7 @@ namespace Aaru.Core.Devices.Dumping
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case DiskCategory.DVDRW:
|
case DiskCategory.DVDRW:
|
||||||
dskType = decPfi.PartVersion >= 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
dskType = decPfi.PartVersion >= 15 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case DiskCategory.HDDVDR:
|
case DiskCategory.HDDVDR:
|
||||||
|
|||||||
@@ -553,7 +553,7 @@ namespace Aaru.Core.Media.Info
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case DiskCategory.DVDRW:
|
case DiskCategory.DVDRW:
|
||||||
MediaType = DecodedPfi.Value.PartVersion >= 3 ? MediaType.DVDRWDL
|
MediaType = DecodedPfi.Value.PartVersion >= 15 ? MediaType.DVDRWDL
|
||||||
: MediaType.DVDRW;
|
: MediaType.DVDRW;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -1307,10 +1307,10 @@ namespace Aaru.Core.Media.Info
|
|||||||
AaruConsole.DebugWriteLine("Dump-media command", "Video partition total size: {0} sectors",
|
AaruConsole.DebugWriteLine("Dump-media command", "Video partition total size: {0} sectors",
|
||||||
totalSize);
|
totalSize);
|
||||||
|
|
||||||
ulong l0Video = (PFI.Decode(cmdBuf).Value.Layer0EndPSN -
|
ulong l0Video = PFI.Decode(cmdBuf).Value.Layer0EndPSN -
|
||||||
PFI.Decode(cmdBuf).Value.DataAreaStartPSN) + 1;
|
PFI.Decode(cmdBuf).Value.DataAreaStartPSN + 1;
|
||||||
|
|
||||||
ulong l1Video = (totalSize - l0Video) + 1;
|
ulong l1Video = totalSize - l0Video + 1;
|
||||||
|
|
||||||
// Get game partition size
|
// Get game partition size
|
||||||
AaruConsole.DebugWriteLine("Dump-media command", "Getting game partition size");
|
AaruConsole.DebugWriteLine("Dump-media command", "Getting game partition size");
|
||||||
@@ -1374,8 +1374,8 @@ namespace Aaru.Core.Media.Info
|
|||||||
totalSize);
|
totalSize);
|
||||||
|
|
||||||
ulong middleZone =
|
ulong middleZone =
|
||||||
(totalSize - ((PFI.Decode(cmdBuf).Value.Layer0EndPSN -
|
totalSize - (PFI.Decode(cmdBuf).Value.Layer0EndPSN -
|
||||||
PFI.Decode(cmdBuf).Value.DataAreaStartPSN) + 1) - gameSize) + 1;
|
PFI.Decode(cmdBuf).Value.DataAreaStartPSN + 1) - gameSize + 1;
|
||||||
|
|
||||||
totalSize = l0Video + l1Video + (middleZone * 2) + gameSize;
|
totalSize = l0Video + l1Video + (middleZone * 2) + gameSize;
|
||||||
ulong layerBreak = l0Video + middleZone + (gameSize / 2);
|
ulong layerBreak = l0Video + middleZone + (gameSize / 2);
|
||||||
|
|||||||
@@ -286,7 +286,7 @@ namespace Aaru.Core
|
|||||||
dskType = MediaType.DVDRDL;
|
dskType = MediaType.DVDRDL;
|
||||||
|
|
||||||
if(dskType == MediaType.DVDRW &&
|
if(dskType == MediaType.DVDRW &&
|
||||||
pfi.Value.PartVersion >= 3)
|
pfi.Value.PartVersion >= 15)
|
||||||
dskType = MediaType.DVDRWDL;
|
dskType = MediaType.DVDRWDL;
|
||||||
|
|
||||||
if(dskType == MediaType.GOD &&
|
if(dskType == MediaType.GOD &&
|
||||||
@@ -554,12 +554,12 @@ namespace Aaru.Core
|
|||||||
xmlTrk.Image.offsetSpecified = true;
|
xmlTrk.Image.offsetSpecified = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
xmlTrk.Size = ((xmlTrk.EndSector - xmlTrk.StartSector) + 1) * (ulong)trk.TrackRawBytesPerSector;
|
xmlTrk.Size = (xmlTrk.EndSector - xmlTrk.StartSector + 1) * (ulong)trk.TrackRawBytesPerSector;
|
||||||
|
|
||||||
xmlTrk.BytesPerSector = (uint)trk.TrackBytesPerSector;
|
xmlTrk.BytesPerSector = (uint)trk.TrackBytesPerSector;
|
||||||
|
|
||||||
uint sectorsToRead = 512;
|
uint sectorsToRead = 512;
|
||||||
ulong sectors = (xmlTrk.EndSector - xmlTrk.StartSector) + 1;
|
ulong sectors = xmlTrk.EndSector - xmlTrk.StartSector + 1;
|
||||||
ulong doneSectors = 0;
|
ulong doneSectors = 0;
|
||||||
|
|
||||||
// If there is only one track, and it's the same as the image file (e.g. ".iso" files), don't re-checksum.
|
// If there is only one track, and it's the same as the image file (e.g. ".iso" files), don't re-checksum.
|
||||||
@@ -599,7 +599,7 @@ namespace Aaru.Core
|
|||||||
sector = image.ReadSectorsLong(doneSectors, sectorsToRead, xmlTrk.Sequence.TrackNumber);
|
sector = image.ReadSectorsLong(doneSectors, sectorsToRead, xmlTrk.Sequence.TrackNumber);
|
||||||
|
|
||||||
UpdateProgress2("Hashing sector {0} of {1}", (long)doneSectors,
|
UpdateProgress2("Hashing sector {0} of {1}", (long)doneSectors,
|
||||||
(long)((trk.TrackEndSector - trk.TrackStartSector) + 1));
|
(long)(trk.TrackEndSector - trk.TrackStartSector + 1));
|
||||||
|
|
||||||
doneSectors += sectorsToRead;
|
doneSectors += sectorsToRead;
|
||||||
}
|
}
|
||||||
@@ -609,7 +609,7 @@ namespace Aaru.Core
|
|||||||
xmlTrk.Sequence.TrackNumber);
|
xmlTrk.Sequence.TrackNumber);
|
||||||
|
|
||||||
UpdateProgress2("Hashing sector {0} of {1}", (long)doneSectors,
|
UpdateProgress2("Hashing sector {0} of {1}", (long)doneSectors,
|
||||||
(long)((trk.TrackEndSector - trk.TrackStartSector) + 1));
|
(long)(trk.TrackEndSector - trk.TrackStartSector + 1));
|
||||||
|
|
||||||
doneSectors += sectors - doneSectors;
|
doneSectors += sectors - doneSectors;
|
||||||
}
|
}
|
||||||
@@ -634,7 +634,7 @@ namespace Aaru.Core
|
|||||||
},
|
},
|
||||||
|
|
||||||
// TODO: Packed subchannel has different size?
|
// TODO: Packed subchannel has different size?
|
||||||
Size = ((xmlTrk.EndSector - xmlTrk.StartSector) + 1) * 96
|
Size = (xmlTrk.EndSector - xmlTrk.StartSector + 1) * 96
|
||||||
};
|
};
|
||||||
|
|
||||||
switch(trk.TrackSubchannelType)
|
switch(trk.TrackSubchannelType)
|
||||||
@@ -664,7 +664,7 @@ namespace Aaru.Core
|
|||||||
|
|
||||||
var subChkWorker = new Checksum();
|
var subChkWorker = new Checksum();
|
||||||
|
|
||||||
sectors = (xmlTrk.EndSector - xmlTrk.StartSector) + 1;
|
sectors = xmlTrk.EndSector - xmlTrk.StartSector + 1;
|
||||||
doneSectors = 0;
|
doneSectors = 0;
|
||||||
|
|
||||||
InitProgress2();
|
InitProgress2();
|
||||||
@@ -687,7 +687,7 @@ namespace Aaru.Core
|
|||||||
SectorTagType.CdSectorSubchannel);
|
SectorTagType.CdSectorSubchannel);
|
||||||
|
|
||||||
UpdateProgress2("Hashing subchannel sector {0} of {1}", (long)doneSectors,
|
UpdateProgress2("Hashing subchannel sector {0} of {1}", (long)doneSectors,
|
||||||
(long)((trk.TrackEndSector - trk.TrackStartSector) + 1));
|
(long)(trk.TrackEndSector - trk.TrackStartSector + 1));
|
||||||
|
|
||||||
doneSectors += sectorsToRead;
|
doneSectors += sectorsToRead;
|
||||||
}
|
}
|
||||||
@@ -698,7 +698,7 @@ namespace Aaru.Core
|
|||||||
SectorTagType.CdSectorSubchannel);
|
SectorTagType.CdSectorSubchannel);
|
||||||
|
|
||||||
UpdateProgress2("Hashing subchannel sector {0} of {1}", (long)doneSectors,
|
UpdateProgress2("Hashing subchannel sector {0} of {1}", (long)doneSectors,
|
||||||
(long)((trk.TrackEndSector - trk.TrackStartSector) + 1));
|
(long)(trk.TrackEndSector - trk.TrackStartSector + 1));
|
||||||
|
|
||||||
doneSectors += sectors - doneSectors;
|
doneSectors += sectors - doneSectors;
|
||||||
}
|
}
|
||||||
@@ -801,7 +801,7 @@ namespace Aaru.Core
|
|||||||
var xmlPart = new Partition
|
var xmlPart = new Partition
|
||||||
{
|
{
|
||||||
Start = xmlTrk.StartSector,
|
Start = xmlTrk.StartSector,
|
||||||
Length = (xmlTrk.EndSector - xmlTrk.StartSector) + 1,
|
Length = xmlTrk.EndSector - xmlTrk.StartSector + 1,
|
||||||
Type = xmlTrk.TrackType1.ToString(),
|
Type = xmlTrk.TrackType1.ToString(),
|
||||||
Size = xmlTrk.Size,
|
Size = xmlTrk.Size,
|
||||||
Sequence = xmlTrk.Sequence.TrackNumber
|
Sequence = xmlTrk.Sequence.TrackNumber
|
||||||
@@ -910,8 +910,8 @@ namespace Aaru.Core
|
|||||||
if(dskType == MediaType.XGD2 &&
|
if(dskType == MediaType.XGD2 &&
|
||||||
sidecar.OpticalDisc[0].Track.Length == 1)
|
sidecar.OpticalDisc[0].Track.Length == 1)
|
||||||
{
|
{
|
||||||
ulong blocks =
|
ulong blocks = sidecar.OpticalDisc[0].Track[0].EndSector - sidecar.OpticalDisc[0].Track[0].StartSector +
|
||||||
(sidecar.OpticalDisc[0].Track[0].EndSector - sidecar.OpticalDisc[0].Track[0].StartSector) + 1;
|
1;
|
||||||
|
|
||||||
if(blocks == 25063 || // Locked (or non compatible drive)
|
if(blocks == 25063 || // Locked (or non compatible drive)
|
||||||
blocks == 4229664 || // Xtreme unlock
|
blocks == 4229664 || // Xtreme unlock
|
||||||
|
|||||||
Submodule Aaru.Decoders updated: a1870c5437...65c2002dfe
@@ -349,7 +349,7 @@ namespace Aaru.DiscImages
|
|||||||
session.StartSector = startingTrack.startLba;
|
session.StartSector = startingTrack.startLba;
|
||||||
session.StartTrack = alcSes.firstTrack;
|
session.StartTrack = alcSes.firstTrack;
|
||||||
session.SessionSequence = alcSes.sessionSequence;
|
session.SessionSequence = alcSes.sessionSequence;
|
||||||
session.EndSector = (endingTrack.startLba + endingTrackExtra.sectors) - 1;
|
session.EndSector = endingTrack.startLba + endingTrackExtra.sectors - 1;
|
||||||
session.EndTrack = alcSes.lastTrack;
|
session.EndTrack = alcSes.lastTrack;
|
||||||
|
|
||||||
Sessions.Add(session);
|
Sessions.Add(session);
|
||||||
@@ -416,7 +416,7 @@ namespace Aaru.DiscImages
|
|||||||
break;
|
break;
|
||||||
case DiskCategory.DVDRW:
|
case DiskCategory.DVDRW:
|
||||||
_imageInfo.MediaType =
|
_imageInfo.MediaType =
|
||||||
pfi0.Value.PartVersion >= 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
pfi0.Value.PartVersion >= 15 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case DiskCategory.HDDVDR:
|
case DiskCategory.HDDVDR:
|
||||||
|
|||||||
@@ -825,7 +825,7 @@ namespace Aaru.DiscImages
|
|||||||
partition.Size = (track.TrackEndSector - track.TrackStartSector) *
|
partition.Size = (track.TrackEndSector - track.TrackStartSector) *
|
||||||
(ulong)track.TrackRawBytesPerSector;
|
(ulong)track.TrackRawBytesPerSector;
|
||||||
|
|
||||||
partition.Length = (track.TrackEndSector - track.TrackStartSector) + 1;
|
partition.Length = track.TrackEndSector - track.TrackStartSector + 1;
|
||||||
partition.Sequence = track.TrackSequence;
|
partition.Sequence = track.TrackSequence;
|
||||||
partition.Offset = offsetBytes;
|
partition.Offset = offsetBytes;
|
||||||
partition.Start = track.TrackStartSector;
|
partition.Start = track.TrackStartSector;
|
||||||
@@ -941,7 +941,7 @@ namespace Aaru.DiscImages
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case DiskCategory.DVDRW:
|
case DiskCategory.DVDRW:
|
||||||
_imageInfo.MediaType = pfi0.Value.PartVersion >= 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
_imageInfo.MediaType = pfi0.Value.PartVersion >= 15 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case DiskCategory.HDDVDR:
|
case DiskCategory.HDDVDR:
|
||||||
@@ -1238,8 +1238,7 @@ namespace Aaru.DiscImages
|
|||||||
foreach(KeyValuePair<uint, ulong> kvp in from kvp in _offsetMap where sectorAddress >= kvp.Value
|
foreach(KeyValuePair<uint, ulong> kvp in from kvp in _offsetMap where sectorAddress >= kvp.Value
|
||||||
from track in Tracks where track.TrackSequence == kvp.Key
|
from track in Tracks where track.TrackSequence == kvp.Key
|
||||||
where sectorAddress - kvp.Value <
|
where sectorAddress - kvp.Value <
|
||||||
(track.TrackEndSector - track.TrackStartSector) + 1
|
track.TrackEndSector - track.TrackStartSector + 1 select kvp)
|
||||||
select kvp)
|
|
||||||
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
|
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
|
||||||
|
|
||||||
throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found");
|
throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found");
|
||||||
@@ -1250,8 +1249,7 @@ namespace Aaru.DiscImages
|
|||||||
foreach(KeyValuePair<uint, ulong> kvp in from kvp in _offsetMap where sectorAddress >= kvp.Value
|
foreach(KeyValuePair<uint, ulong> kvp in from kvp in _offsetMap where sectorAddress >= kvp.Value
|
||||||
from track in Tracks where track.TrackSequence == kvp.Key
|
from track in Tracks where track.TrackSequence == kvp.Key
|
||||||
where sectorAddress - kvp.Value <
|
where sectorAddress - kvp.Value <
|
||||||
(track.TrackEndSector - track.TrackStartSector) + 1
|
track.TrackEndSector - track.TrackStartSector + 1 select kvp)
|
||||||
select kvp)
|
|
||||||
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
|
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
|
||||||
|
|
||||||
throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found");
|
throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found");
|
||||||
@@ -1275,13 +1273,13 @@ namespace Aaru.DiscImages
|
|||||||
if(aaruTrack is null)
|
if(aaruTrack is null)
|
||||||
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
|
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
|
||||||
|
|
||||||
if(length + sectorAddress > (aaruTrack.TrackEndSector - aaruTrack.TrackStartSector) + 1)
|
if(length + sectorAddress > aaruTrack.TrackEndSector - aaruTrack.TrackStartSector + 1)
|
||||||
throw new ArgumentOutOfRangeException(nameof(length),
|
throw new ArgumentOutOfRangeException(nameof(length),
|
||||||
$"Requested more sectors ({length + sectorAddress}) than present in track ({(aaruTrack.TrackEndSector - aaruTrack.TrackStartSector) + 1}), won't cross tracks");
|
$"Requested more sectors ({length + sectorAddress}) than present in track ({aaruTrack.TrackEndSector - aaruTrack.TrackStartSector + 1}), won't cross tracks");
|
||||||
|
|
||||||
DataFileCharacteristics chars = (from characteristics in _filePaths let firstSector =
|
DataFileCharacteristics chars = (from characteristics in _filePaths let firstSector =
|
||||||
characteristics.StartLba let lastSector =
|
characteristics.StartLba let lastSector =
|
||||||
(firstSector + characteristics.Sectors) - 1 let wantedSector =
|
firstSector + characteristics.Sectors - 1 let wantedSector =
|
||||||
(int)(sectorAddress + aaruTrack.TrackStartSector)
|
(int)(sectorAddress + aaruTrack.TrackStartSector)
|
||||||
where wantedSector >= firstSector && wantedSector <= lastSector
|
where wantedSector >= firstSector && wantedSector <= lastSector
|
||||||
select characteristics).FirstOrDefault();
|
select characteristics).FirstOrDefault();
|
||||||
@@ -1410,13 +1408,13 @@ namespace Aaru.DiscImages
|
|||||||
if(aaruTrack is null)
|
if(aaruTrack is null)
|
||||||
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
|
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
|
||||||
|
|
||||||
if(length + sectorAddress > (aaruTrack.TrackEndSector - aaruTrack.TrackStartSector) + 1)
|
if(length + sectorAddress > aaruTrack.TrackEndSector - aaruTrack.TrackStartSector + 1)
|
||||||
throw new ArgumentOutOfRangeException(nameof(length),
|
throw new ArgumentOutOfRangeException(nameof(length),
|
||||||
$"Requested more sectors ({length + sectorAddress}) than present in track ({(aaruTrack.TrackEndSector - aaruTrack.TrackStartSector) + 1}), won't cross tracks");
|
$"Requested more sectors ({length + sectorAddress}) than present in track ({aaruTrack.TrackEndSector - aaruTrack.TrackStartSector + 1}), won't cross tracks");
|
||||||
|
|
||||||
DataFileCharacteristics chars = (from characteristics in _filePaths let firstSector =
|
DataFileCharacteristics chars = (from characteristics in _filePaths let firstSector =
|
||||||
characteristics.StartLba let lastSector =
|
characteristics.StartLba let lastSector =
|
||||||
(firstSector + characteristics.Sectors) - 1 let wantedSector =
|
firstSector + characteristics.Sectors - 1 let wantedSector =
|
||||||
(int)(sectorAddress + aaruTrack.TrackStartSector)
|
(int)(sectorAddress + aaruTrack.TrackStartSector)
|
||||||
where wantedSector >= firstSector && wantedSector <= lastSector
|
where wantedSector >= firstSector && wantedSector <= lastSector
|
||||||
select characteristics).FirstOrDefault();
|
select characteristics).FirstOrDefault();
|
||||||
@@ -1826,8 +1824,7 @@ namespace Aaru.DiscImages
|
|||||||
foreach(KeyValuePair<uint, ulong> kvp in from kvp in _offsetMap where sectorAddress >= kvp.Value
|
foreach(KeyValuePair<uint, ulong> kvp in from kvp in _offsetMap where sectorAddress >= kvp.Value
|
||||||
from track in Tracks where track.TrackSequence == kvp.Key
|
from track in Tracks where track.TrackSequence == kvp.Key
|
||||||
where sectorAddress - kvp.Value <
|
where sectorAddress - kvp.Value <
|
||||||
(track.TrackEndSector - track.TrackStartSector) + 1
|
track.TrackEndSector - track.TrackStartSector + 1 select kvp)
|
||||||
select kvp)
|
|
||||||
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
|
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
|
||||||
|
|
||||||
throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found");
|
throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found");
|
||||||
@@ -1851,13 +1848,13 @@ namespace Aaru.DiscImages
|
|||||||
if(aaruTrack is null)
|
if(aaruTrack is null)
|
||||||
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
|
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
|
||||||
|
|
||||||
if(length + sectorAddress > (aaruTrack.TrackEndSector - aaruTrack.TrackStartSector) + 1)
|
if(length + sectorAddress > aaruTrack.TrackEndSector - aaruTrack.TrackStartSector + 1)
|
||||||
throw new ArgumentOutOfRangeException(nameof(length),
|
throw new ArgumentOutOfRangeException(nameof(length),
|
||||||
$"Requested more sectors ({length + sectorAddress}) than present in track ({(aaruTrack.TrackEndSector - aaruTrack.TrackStartSector) + 1}), won't cross tracks");
|
$"Requested more sectors ({length + sectorAddress}) than present in track ({aaruTrack.TrackEndSector - aaruTrack.TrackStartSector + 1}), won't cross tracks");
|
||||||
|
|
||||||
DataFileCharacteristics chars = (from characteristics in _filePaths let firstSector =
|
DataFileCharacteristics chars = (from characteristics in _filePaths let firstSector =
|
||||||
characteristics.StartLba let lastSector =
|
characteristics.StartLba let lastSector =
|
||||||
(firstSector + characteristics.Sectors) - 1 let wantedSector =
|
firstSector + characteristics.Sectors - 1 let wantedSector =
|
||||||
(int)(sectorAddress + aaruTrack.TrackStartSector)
|
(int)(sectorAddress + aaruTrack.TrackStartSector)
|
||||||
where wantedSector >= firstSector && wantedSector <= lastSector
|
where wantedSector >= firstSector && wantedSector <= lastSector
|
||||||
select characteristics).FirstOrDefault();
|
select characteristics).FirstOrDefault();
|
||||||
|
|||||||
@@ -398,7 +398,7 @@ namespace Aaru.DiscImages
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case DiskCategory.DVDRW:
|
case DiskCategory.DVDRW:
|
||||||
_imageInfo.MediaType = decPfi.PartVersion >= 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
_imageInfo.MediaType = decPfi.PartVersion >= 15 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case DiskCategory.HDDVDR:
|
case DiskCategory.HDDVDR:
|
||||||
|
|||||||
Reference in New Issue
Block a user