mirror of
https://github.com/aaru-dps/Aaru.git
synced 2026-07-08 17:56:18 +00:00
Handle raw dvd sectors for iso9660
This commit is contained in:
@@ -434,4 +434,14 @@ public sealed class Sector
|
||||
|
||||
return ErrorNumber.NoError;
|
||||
}
|
||||
|
||||
public static byte[] GetUserData(byte[] data)
|
||||
{
|
||||
if(data.Length != 2064) return data;
|
||||
|
||||
byte[] sector = new byte[2048];
|
||||
Array.Copy(data, 12, sector, 0, 2048);
|
||||
|
||||
return sector;
|
||||
}
|
||||
}
|
||||
@@ -135,7 +135,14 @@ public sealed partial class ISO9660
|
||||
|
||||
if(_blockSize == 2048)
|
||||
{
|
||||
buffer = Sector.GetUserData(data, interleaved, fileNumber);
|
||||
if(data.Length == 2064)
|
||||
{
|
||||
buffer = Decoders.DVD.Sector.GetUserData(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
buffer = Sector.GetUserData(data, interleaved, fileNumber);
|
||||
}
|
||||
|
||||
return ErrorNumber.NoError;
|
||||
}
|
||||
@@ -232,7 +239,16 @@ public sealed partial class ISO9660
|
||||
}
|
||||
}
|
||||
|
||||
byte[] sectorData = Sector.GetUserData(data, interleaved, fileNumber);
|
||||
byte[] sectorData;
|
||||
|
||||
if(data.Length == 2064)
|
||||
{
|
||||
sectorData = Decoders.DVD.Sector.GetUserData(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
sectorData = Sector.GetUserData(data, interleaved, fileNumber);
|
||||
}
|
||||
|
||||
ms.Write(sectorData, 0, sectorData.Length);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user