Second try at fixing #634

This commit is contained in:
2021-07-12 01:54:40 +01:00
parent 53ff8ebb37
commit 59b3f86098

View File

@@ -411,6 +411,14 @@ namespace Aaru.Core.Media
if(!smallestPregapLbaPerTrack.ContainsKey(trackNo))
smallestPregapLbaPerTrack[trackNo] = dumping ? 1 : 0;
uint firstTrackNumberInSameSession = tracks.
Where(t => t.TrackSession ==
tracks[i].TrackSession).
Min(t => t.TrackSequence);
if(tracks[i].TrackSequence == firstTrackNumberInSameSession)
break;
if(qPos < smallestPregapLbaPerTrack[trackNo])
{
int dif = smallestPregapLbaPerTrack[trackNo] - qPos;
@@ -418,23 +426,6 @@ namespace Aaru.Core.Media
tracks[i].TrackStartSector -= (ulong)dif;
smallestPregapLbaPerTrack[trackNo] = qPos;
uint firstTrackNumberInSameSession = tracks.
Where(t => t.TrackSession ==
tracks[i].TrackSession).
Min(t => t.TrackSequence);
if(tracks[i].TrackSequence == firstTrackNumberInSameSession)
{
if(tracks[i].TrackPregap != 151)
status = true;
dif = (int)(tracks[i].TrackPregap - 150);
tracks[i].TrackPregap -= (ulong)dif;
tracks[i].TrackStartSector += (ulong)dif;
continue;
}
if(i > 0 &&
tracks[i - 1].TrackEndSector >= tracks[i].TrackStartSector)
tracks[i - 1].TrackEndSector = tracks[i].TrackStartSector - 1;