Skip over a few sectors on audio sector read error in Plextor drives as sometimes it's a firmware bug with their cache.

This commit is contained in:
2020-03-03 03:03:34 +00:00
parent dc18b6cdc0
commit c399291c25
3 changed files with 35 additions and 4 deletions

View File

@@ -126,7 +126,17 @@ namespace Aaru.Core.Devices.Dumping
if(_supportsPlextorD8 && audioExtents.Contains(badSector))
{
sense = _dev.PlextorReadCdDa(out cmdBuf, out _, badSectorToRead, blockSize, sectorsToTrim,
supportedPlextorSubchannel, _dev.Timeout, out cmdDuration);
supportedPlextorSubchannel, 0, out cmdDuration);
if(sense)
{
// As a workaround for some firmware bugs, seek far away.
_dev.PlextorReadCdDa(out _, out _, badSectorToRead - 32, blockSize, sectorsToTrim,
supportedPlextorSubchannel, 0, out _);
sense = _dev.PlextorReadCdDa(out cmdBuf, out _, badSectorToRead, blockSize, sectorsToTrim,
supportedPlextorSubchannel, _dev.Timeout, out cmdDuration);
}
totalDuration += cmdDuration;
}