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

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